Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  12 2786
Hei, har de siste dagene tuklet litt med C#, har ingen tidligere programmerings kunnskap, men synes dette er kjempe spennede.

Har så langt fulgt følgende tutorial, som jeg forresten anbefaler på det sterkeste. Meget nybegynnervennelig.

Alt har gått skinner til i dag, når jeg fikk følgende oppgave:
Try coming up with the code to get this:

Kode

     *     
    ***    
   *****   
  *******
 *********
***********
Svaret på oppgaven er som følgende og det er som dere ser loops jeg lærer om for øyeblikket:

Kode

for (int row = 0; row < 6; row++)
{
    // Counting backwards here!
    for (int spaces = 5 - row; spaces > 0; spaces--)
    {
        Console.Write(" ");
    }
 
    for (int column = 0; column < (2 * row + 1); column++)
    {
        Console.Write("*");
    }
 
    Console.WriteLine();
}
Når jeg prøver å lese denne koden i hodet mitt, så får jeg det ikke til å gi mening. Her er omtrentlig slik jeg leser det:
  • for (int row = 0; row < 6; row++) Row får verdien 0. Om row er mindre en 6, legg til 1. Row har nå verdien 1?
  • for (int spaces = 5 - row; spaces > 0; spaces--) spaces får verdien 5 - 1. Om row er større en 0, trekk fra 1. Row har nå verdien 3?

Her må tankegangen min allerede ha bristet fordi progammet vill etter mitt hode bare printe ut 3 tomrom, og ikke 5, som må til for å få "*" i riktig posisjon. Så det jeg egentlig lurer på er om noen kan forklare hva som faktisk skjer her, hvordan programmet "tenker." Vil gjerne forstå dette ordentlig før jeg går videre.
Sist endret av Mentalism; 26. november 2013 kl. 18:51.
for (int row = 0; row < 6; row++)

Les den slik:
Set row til 1
så lenge row er mindre enn 6 gjør det som står mellom krøllparantesene, så legg til 1.

Det er viktig å bemerke at dette med å legge til en skjer ETTER du har kjørt koden i blokken - og en gang for hver gang koden skal repeteres (noe den gjør så lenge utsagnet "row < 6" er sant)
Sist endret av etse; 26. november 2013 kl. 18:55.
Sitat av etse Vis innlegg
for (int row = 0; row < 6; row++)

Les den slik:
Set row til 1
så lenge row er mindre enn 6 gjør det som står mellom krøllparantesene, så legg til 1.

Det er viktig å bemerke at dette med å legge til en skjer ETTER du har kjørt koden i blokken - og en gang for hver gang koden skal repeteres (noe den gjør så lenge utsagnet "row < 6" er sant)
Vis hele sitatet...
Ahhh, så det skjer etter du har kjørt koden, da forstår jeg brått mye mer. Takk skal du ha! Tråden kan lukkes.
▼ ... over en måned senere ... ▼
Mentalism: Brennhett tips for deg som jobber i C#: Lær deg debugging. NÅ! Det er veldig enkelt å starte med. Trykk i margen på ei linje der du vil hooke inn debuggeren og du vil få opp et rødt stoppskilt (breakpoint), trykk F5 for å starte kompilering og debugging. Programmet vil stoppe opp når det når linjen som du satte breakpoint, og du kan bruke F10 og F11 for å trø inn i eller hoppe over en metode.

http://www.youtube.com/watch?v=C0vDKXIq_9A
Til andre som vil starte med lignende, så er det lurt å lese om slike ting i dokumentasjonen man finner på nettet.

++row ville lagt til før koden kjøres, row++ legger til i etterkant, som nevnt. Veldig ofte kan du bare google "for-loop C#", eller hva enn annet du trenger, etterfulgt av språket du bruker, så får du svar.
▼ ... over en uke senere ... ▼
Sitat av |d13m0b Vis innlegg
Mentalism: Brennhett tips for deg som jobber i C#: Lær deg debugging. NÅ! Det er veldig enkelt å starte med. Trykk i margen på ei linje der du vil hooke inn debuggeren og du vil få opp et rødt stoppskilt (breakpoint), trykk F5 for å starte kompilering og debugging. Programmet vil stoppe opp når det når linjen som du satte breakpoint, og du kan bruke F10 og F11 for å trø inn i eller hoppe over en metode.

http://www.youtube.com/watch?v=C0vDKXIq_9A
Vis hele sitatet...
KP for den. Gjerne også les deg opp på det. Dette var noe jeg selv gjorde altfor sent og kunne sikkert spart meg for mange dumme spørsmål.

Vil forøvrig påstå at dette gjelder alle språk, ikke bare C#.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Det gjelder slett ikke alle språk. Forskjellige språk og miljøer har enormt forskjellige metoder for å debugge. C# i VS har antakelig ett av de beste. Man finner samme typen (roughly) debugging i Java-IDE-er også. I andre språk og miljøer er det ikke sikkert man får så mye som en stacktrace.
Sist endret av robhol; 6. januar 2014 kl. 12:45.
▼ ... over en uke senere ... ▼
Sitat av robhol Vis innlegg
Det gjelder slett ikke alle språk. Forskjellige språk og miljøer har enormt forskjellige metoder for å debugge. C# i VS har antakelig ett av de beste. Man finner samme typen (roughly) debugging i Java-IDE-er også. I andre språk og miljøer er det ikke sikkert man får så mye som en stacktrace.
Vis hele sitatet...
Det jeg prøvde å få gjennom var at man bør lære seg debugging uansett hvilket språk man lærer.

Hvis du trodde jeg mente at alle språk brukte samme metode som VS for å "debugge"(sette breakpoints, watch, threads, etc) så.. ja, vet ikke helt hvordan du kunne kommet fram til det.
▼ ... over en måned senere ... ▼
Jeg fikk bare lyst til å kommentere og gi litt kudos til både tråstarter og dem som har svart her. Velformulert spørsmål, og svært verdifulle svar.

Det finnes ingen dumme spørsmål
Sitat av tormaroe Vis innlegg
Vis hele sitatet...
Du lenket til localhost, går ut fra du ville lenke til blogginnlegget ditt på http://blog.kjempekjekt.com/2011/05/...-dumme-sprsml/ ?
Sitat av The Great Catsby Vis innlegg
Du lenket til localhost, går ut fra du ville lenke til blogginnlegget ditt på http://blog.kjempekjekt.com/2011/05/...-dumme-sprsml/ ?
Vis hele sitatet...
HA, det var ikke meningen Har en fane med bloggen og en annen fane med min lokale versjon av bloggen. Ble nok litt forvirret - takk for at du ryddet opp!
Sitat av tormaroe Vis innlegg
HA, det var ikke meningen Har en fane med bloggen og en annen fane med min lokale versjon av bloggen. Ble nok litt forvirret - takk for at du ryddet opp!
Vis hele sitatet...
Ingen problem.
Når tråden først har gått sin gang og sporet av, vil jeg si at jeg ramlet innom bloggen din igjen etter dette, pleier å sjekke den innimellom, og synes den er tidvis interessant, spesielt når du skriver om Ruby.
Likte veldig godt videoen din på Game Of Life (dog kanskje ikke synes musikken var så tøff).
Sitat av The Great Catsby Vis innlegg
Når tråden først har gått sin gang og sporet av, vil jeg si at jeg ramlet innom bloggen din igjen etter dette, pleier å sjekke den innimellom, og synes den er tidvis interessant, spesielt når du skriver om Ruby.
Likte veldig godt videoen din på Game Of Life (dog kanskje ikke synes musikken var så tøff).
Vis hele sitatet...
Takk for det! Jeg skriver jo om veldig mye forskjellig, så jeg kan vel ikke forvente at du skal være interessert i alt

Har veldig lyst til å lage flere videoer, men det tar overraskende mye tid, så det er en stund siden jeg har orket desverre.