Gå til innhold

Forklaring til hva som blir utført i denne koden!


Anbefalte innlegg

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 av nirosan
Lenke til kommentar
Videoannonse
Annonse
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 av kjartana
Lenke til kommentar

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.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...