Trädvy Permalänk
Medlem
Registrerad
Okt 2007

Hjälp med Väldigt enkel kod

Så, då har jag nått min första inlämningsuppgift men dum som man är så antog man att all kurslitteratur fanns tillgänglig under "Mina läromedel", vilket den såklart inte gjorde. Hur som helst så är boken Programmering 1 med C# beställd för någon dag sedan men den har fortfarande inte kommit och därför efterfrågar jag absolut nybörjarhjälp.

Uppgiften går ut man att programmet efterfrågar namn och ålder. Efter det ska programmet beroende på hur många år du har kvar till pensionen skriva ut en text.
Jag antar att det är if-satsen som ska användas för att skriva ut olika texter beroende på antalet år kvar till pension men det jag inte förstår är hur jag ska göra så att endast åldern tas i beräkning när man t.ex. skriver in "Sven Svensson 47".

Det jag behöver är en hjälpande hand för att komma igång och inte nödvändigtvis att någon skriver hela koden så jag bara kan kopiera den

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Skrivet av Miikks:

Så, då har jag nått min första inlämningsuppgift men dum som man är så antog man att all kurslitteratur fanns tillgänglig under "Mina läromedel", vilket den såklart inte gjorde. Hur som helst så är boken Programmering 1 med C# beställd för någon dag sedan men den har fortfarande inte kommit och därför efterfrågar jag absolut nybörjarhjälp.

Uppgiften går ut man att programmet efterfrågar namn och ålder. Efter det ska programmet beroende på hur många år du har kvar till pensionen skriva ut en text.
Jag antar att det är if-satsen som ska användas för att skriva ut olika texter beroende på antalet år kvar till pension men det jag inte förstår är hur jag ska göra så att endast åldern tas i beräkning när man t.ex. skriver in "Sven Svensson 47".
Eller ska dessa skrivas på olika rader?

Det jag behöver är en hjälpande hand för att komma igång och inte nödvändigtvis att någon skriver hela koden så jag bara kan kopiera den

Det är fullt möjligt att plocka ut tecken baserat på mönster från en text men jag kan inte tänka mig att uppgiften kräver det.
Hämta ut värden två gånger. En för namn och en för ålder.

Lite tråkigt att du hakar upp dig på uppgiften istället för logiken (jag menar inte att det är ditt fel). Är du säker på att det är så otydligt specifierat i uppgiften?

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Skåne
Registrerad
Jun 2013

Jag kan inte C# men kan du inte bara ta pensionsålder minus variabeln som innehåller användarens ålder?

Trädvy Permalänk
Medlem
Registrerad
Okt 2007

@Leedow: Har har tänkt på det men det framgår inte i uppgiften. Kanske är det jag som gör det för svårt

Trädvy Permalänk
Medlem
Plats
Bästkusten
Registrerad
Jun 2009
Skrivet av Miikks:

@Leedow: Har har tänkt på det men det framgår inte i uppgiften. Kanske är det jag som gör det för svårt

Du kan väl läsa in två gånger istället för en. Läs först in namnet och spara i en sträng, läs sedan in åldern och spara i en annan variabel. Sen är det bara att köra en enkel switch-sats för att skriva ut olika text beroende på åldern.

|| 2700K @ 4.7GHz || MSI GTX 1080 TI Gaming X || Xonar DG || Samsung 750 EVO 500GB & OCZ Agility 3 120GB & Crucial C300 64GB & Crucial V4 256GB || XFX XXX 650W || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2008

Nu har jag inte programmerat på år och dagar, att jag satt med Actionscript kanske kan förklara en hel del

Men som jag ser det så behöver du väl bara följande variabler:
namn
ålder
pensionsålder (65)

Antar att du kommer göra någon enkel variant av ett formulär eller liknande, där namnet skrivs in i variabeln för namn och samma sak med ålder.
När du sedan vill plocka ut hur många år det är kvar till pension så är det bara att lägga i texten: "Sven Svensson har (pensionsålder - ålder) år kvar till pension. Vill du göra det riktigt fint här så kan du även kolla med en if-sats om åldern är 65 eller högre så skrivs det t.ex. ut "Grattis Sven Svensson, du har redan gått i pension!"

Otroligt basic, vet inte riktigt om jag tillför något till det du behöver veta, men man kan alltid hoppas att man är till hjälp någonstans

:: Asus Prime Z270-A:: Intel i7 7700K @ 4,5 GHz :: Corsair Vengeance LP 16 GB DDR4 2400MHz :: EVGA GTX1080 SC 8GB :: Corsair RM750x :: Samsung 850 EVO 250GB :: Fractal Design R5 White ::

Trädvy Permalänk
Medlem
Registrerad
Jan 2016

I det här fallet verkar det onödigt att läsa in namn och ålder samtidigt, har en variabel för båda!

Alltså att man måste skriva in två gånger, först frågar du efter namnet, sparar det dem skriver i en variabel, sedan frågar du personen att skriva i åldern.

Ibland kan det vara bra att bara skriva ner uppgiften i naturligt språk, alltså inte kod, pseudokod som det kallas. För den hör uppgiften skulle det tex kunna se ut så här

(string) namn
(int) ålder (int)
(int) pension = 65

namn = från användare
ålder = frun användare

tidkvar = pension - ålder

Om tidkvar <30
Medelande, Hej namn, du har lång tid kvar att arbeta
Om tidkvar > 5
Medelande, Hej namn, du är snart där
OSV...

När du skrivit upp alla uppgifter är det bara att översätta det till programmering! Tex, hur man hämtar information ifrån input, hur man skriver till konsolen och så vidare. Men jag tror du är på rätt spår, bara att du gör det lite svårare för dig själv

Trädvy Permalänk
Moderator
Plats
Linköping
Registrerad
Okt 2006
Skrivet av gunnarviking:

I det här fallet verkar det onödigt att läsa in namn och ålder samtidigt, har en variabel för båda!

Alltså att man måste skriva in två gånger, först frågar du efter namnet, sparar det dem skriver i en variabel, sedan frågar du personen att skriva i åldern.

Ibland kan det vara bra att bara skriva ner uppgiften i naturligt språk, alltså inte kod, pseudokod som det kallas. För den hör uppgiften skulle det tex kunna se ut så här

(string) namn
(int) ålder (int)
(int) pension = 65

namn = från användare
ålder = frun användare

tidkvar = pension - ålder

Om tidkvar <30
Medelande, Hej namn, du har lång tid kvar att arbeta
Om tidkvar > 5
Medelande, Hej namn, du är snart där
OSV...

När du skrivit upp alla uppgifter är det bara att översätta det till programmering! Tex, hur man hämtar information ifrån input, hur man skriver till konsolen och så vidare. Men jag tror du är på rätt spår, bara att du gör det lite svårare för dig själv

Det var mig en lustig if-sats men jag antar det är principen du vill visa?

Har du åsikter om moderering, frågor eller något annat kan du kontakta mig via shimonu@sweclockers.com

Trädvy Permalänk
Medlem
Plats
LUND
Registrerad
Aug 2011
Skrivet av Shimonu:

Det var mig en lustig if-sats men jag antar det är principen du vill visa?

Om du råkar ha excel på svenska och skriver makron så skriver du "om", fulaste jag sätt!

MS-7673 | i5-2500K @ 4.4Ghz | GTX 670 @ ~1.3GHz | Corsair 8GB VENGEANCE LP | Corsair AX 860W 80+ Platinum | Fractal Design R4

Trädvy Permalänk
Moderator
Plats
Linköping
Registrerad
Okt 2006
Skrivet av djwalle:

Om du råkar ha excel på svenska och skriver makron så skriver du "om", fulaste jag sätt!

Jag tänkte mer på att om tidkvar var större än 5 så var man snart där. Till exempel.

Med den if-satsen kan man ha 1 år kvar men den kommer skriva att man har lång tid kvar. "tidkvar < 30" är det första som kollas.

Har du åsikter om moderering, frågor eller något annat kan du kontakta mig via shimonu@sweclockers.com

Trädvy Permalänk
Medlem
Plats
Bästkusten
Registrerad
Jun 2009
Skrivet av djwalle:

Om du råkar ha excel på svenska och skriver makron så skriver du "om", fulaste jag sätt!

Det var nog logiken i if-satsen som var lustig och inte ordvalet

|| 2700K @ 4.7GHz || MSI GTX 1080 TI Gaming X || Xonar DG || Samsung 750 EVO 500GB & OCZ Agility 3 120GB & Crucial C300 64GB & Crucial V4 256GB || XFX XXX 650W || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Trädvy Permalänk
Medlem
Plats
LUND
Registrerad
Aug 2011
Skrivet av Shimonu:

Jag tänkte mer på att om tidkvar var större än 5 så var man snart där. Till exempel.

Med den if-satsen kan man ha 1 år kvar men den kommer skriva att man har lång tid kvar. "tidkvar < 30" är det första som kollas.

Skrivet av DunderKlumpen:

Det var nog logiken i if-satsen som var lustig och inte ordvalet

Jaha, jag läste visst inte så noga

MS-7673 | i5-2500K @ 4.4Ghz | GTX 670 @ ~1.3GHz | Corsair 8GB VENGEANCE LP | Corsair AX 860W 80+ Platinum | Fractal Design R4

Trädvy Permalänk
Medlem
Registrerad
Jan 2016
Skrivet av Shimonu:

Det var mig en lustig if-sats men jag antar det är principen du vill visa?

Ja precis! Inte helt optimalt kanske, men någonstans ska man börja

Edit,

Var visst lite snabb med mina krokodiler med! Tvärt om ska det givetvis vara

Trädvy Permalänk
Medlem
Plats
Örebro
Registrerad
Mar 2011
Skrivet av Miikks:

Så, då har jag nått min första inlämningsuppgift men dum som man är så antog man att all kurslitteratur fanns tillgänglig under "Mina läromedel", vilket den såklart inte gjorde. Hur som helst så är boken Programmering 1 med C# beställd för någon dag sedan men den har fortfarande inte kommit och därför efterfrågar jag absolut nybörjarhjälp.

Uppgiften går ut man att programmet efterfrågar namn och ålder. Efter det ska programmet beroende på hur många år du har kvar till pensionen skriva ut en text.
Jag antar att det är if-satsen som ska användas för att skriva ut olika texter beroende på antalet år kvar till pension men det jag inte förstår är hur jag ska göra så att endast åldern tas i beräkning när man t.ex. skriver in "Sven Svensson 47".

Det jag behöver är en hjälpande hand för att komma igång och inte nödvändigtvis att någon skriver hela koden så jag bara kan kopiera den

En snabb överblick du kan följa.

variabel namn LIKA MED input
variabel ålder (kommer behöva parsas någonstans dvs. göras om till en integer) LIKA MED input

OM ålder UNDER 65

Skriv text + (65 minus ålder)

Om du vill att allt ska skrivas på samma rad behöver du använda någonting som kallas för regex. Det handlar om datalogi, egentligen.
Den skulle se ut såhär för att få ut siffror: "\d+". Men jag tvivlar på att det behövs i ditt program.