nirosan Skrevet 14. desember 2008 Skrevet 14. desember 2008 (endret) Hei! Sitter med denne oppgaven, men jeg skjønner ikke helt hva som blir printet ut, har prøvd å kompilere og får da: x = 12 x = 13 a = 4 b = 4 b = 5 b = 6 men det som jeg fant ut på arket var: x = 12, sikkert noe jeg har oversett er uansett veldig usikker, så fint om noen kan forklare hva koden gjør, linje for linje. /// Slik jeg forstår koden, så øker b med 1 helt til den blir like stor som C, derfor 6 print outs, så går den igjennom løkka flere ganger. /// // c) Hva blir skrevet ut i programeksemplet under? int a = 4; int b = 1; int c = 7; while (b < c) { int xx = a + b + c; if (xx < 2 * c) System.out.println("x = " + xx); else if (xx > 2 * c) System.out.println("b = " + b); else System.out.println("a = " + a); b++; } } } Endret 14. desember 2008 av nirosan
kjartana Skrevet 14. desember 2008 Skrevet 14. desember 2008 (endret) Hei! Sitter med denne oppgaven, men jeg skjønner ikke helt hva som blir printet ut, har prøvd å kompilere og får da: x = 12 x = 13 a = 4 b = 4 b = 5 b = 6 men det som jeg fant ut på arket var: x = 12, sikkert noe jeg har oversett er uansett veldig usikker, så fint om noen kan forklare hva koden gjør, linje for linje. /// Slik jeg forstår koden, så øker b med 1 helt til den blir like stor som C, derfor 6 print outs, så går den igjennom løkka flere ganger. /// // c) Hva blir skrevet ut i programeksemplet under? int a = 4; int b = 1; int c = 7; while (b < c) { int xx = a + b + c; if (xx < 2 * c) System.out.println("x = " + xx); else if (xx > 2 * c) System.out.println("b = " + b); else System.out.println("a = " + a); b++; } } } Så lenge b er mindre enn 7 så hvis xx summen er mindre enn 14 skrives xx ut (x er 12 og 13). B er da 1 og 2 hvis summen er 14 så skrives a ut (a er 4). B er da 3 hvis summen er over 14 så skrives b ut (b er 4, 5 og 6) øker b med en til så stopper utskrift Endret 14. desember 2008 av kjartana
ranger** Skrevet 14. desember 2008 Skrevet 14. desember 2008 Ey, niroboyz. int a = 4; int b = 1; int c = 7; while (b < c) { int xx = a + b + c; if (xx < 2 * c) System.out.println("x = " + xx); else if (xx > 2 * c) System.out.println("b = " + b); else System.out.println("a = " + a); b++; } } Her er det,slik du sa, snakk om en løkke som går helt til,men ikke med, b = 7, dvs 6 ganger. Som du ser blir b bare inkrementert i slutten av løkka. If-else strukturen bestemmer hva som skal skrives ut for kver gjennomkjøring. Det jeg gjorde for å løse denne var å ta et ark og skrive opp alle variablene bortover på arket, og antall gjennomkjøringer nedover på arket, slik at det viser forandring i variablene. Dette ble slik: gjennomkjøring || a || b || c || XX || utskrift initialverdier|| 4 || 1 || 7 || 0 || -- ----------------------------------------------- 1. || - || 2 || - || 12 || XX = 12 2. || - || 3 || - || 13 || XX = 13 3. || - || 4 || - || 14 || a = 4 4. || - || 5 || - || 15 || b = 4 5. || - || 6 || - || 16 || b = 5 6. || - || 7 || - || 17 || b = 6 ---------------------------------------------------- Først tar jeg å sjekker om b < c, så regner jeg ut XX. Deretter ser jeg hvilken av de tre utskriftene som blir valg ved å se på (xx < 2 * c)og (xx > 2 * c), deretter blir b++; Deretter gjør jeg alt på nytt, helt til men ikke med b = 7. da brytes betingelsen til while-løkka og programmet terminerer. Håper du forsto litt av det her PS: Det er mange feil i fasiten til eksamensoppgavene her. Øyvind er emo pga det.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå