Ukeoppgaver 3: 5. - 11. sep (INF1000 - H?st 2013)

Utskrift/ lesing med easyIO, arrayer, l?kker   (kapittel 3-4 i l?reboka, "Rett p? Java" 3. utg.)

M?l
?ve p? l?kker og arrayer, innlesing fra tastatur og utskrift til skjerm.

[N?kkeloppg.]: Oppgave merket med n?kkelsymbol er plukket ut som spesielt representativ for de viktigste temaene fra ukens forelesning, og alle b?r ha som minimumsm?l ? l?se denne selvstendig.

I tillegg til de vanlige ukeoppgavene er det laget stjerneoppgaver for de som ?nsker litt st?rre utfordringer innenfor ukens tema, og ekstraoppgaver for de som ?nsker mer trening p? deler av det grunnleggende stoffet.

Oppgaver

  1. Innlesing fra tastatur, utskrift til skjerm: kap. 3, oppg. 3 (side 72)
    Bruk easyIO som gjennomg?tt denne uken, eller Scanner gjennomg?tt forrige uke. Lag et program som ber om og leser inn to flyttall. Programmet skal deretter regne ut produktet av de to tallene og skrive ut svaret. Her er et eksempel p? hvordan en kj?ring av programmet kan se ut:
     Oppgi verdien til x: 9
     Oppgi verdien til y: 10
     Produktet av x og y er 90.0
    

    Hint:Innlesing fra terminal b?r gj?res i to steg, f?rst en utskrift som sier til bruker hva hun skal taste inn (det kalles for ledetekst), og s? kommer selve setningen som henter input fra tastaturet, til dette kan du bruke enten EasyIO eller Javas innebygde funksjoner:
    • EasyIO: F?lg malen fra eksemplet p? side 58.  Bruk tast.inDouble() og ikke tast.inInt() slik at bruker kan taste inn et flyttall. 

    • Scanner: Se Rett p? Java kapittel 3.11 og lysark.

    I begge tilfeller s? vil programsetningen som leser inn tallet (tast.inInt() eller scan.nextInt()) stoppe kj?ringen av programmet midlertidig inntil bruker har tastet inn et svar.  N?r bruker har gjort det, blir tallet lagret i den angitte variabelen, og kj?ringen av programmet fortsetter med neste setning.

     
  2. Utskrift med 2 desimaler p? to m?ter: easyIO og printf
    Ved utskrift av desimaltall er det ofte ?nskelig ? kontrollere hvor mange desimaler som skrives ut. Bruker vi System.out.println(tall) til ? skrive ut en double-variabel tall, f?r vi med alle desimalene som er lagret i tall (med unntak av avsluttende nuller i desimalene). To m?ter ? kontrollere antall desimaler som skrives ut er:
    • EasyIO: Du kan f? skrevet ut variabelen tall med 2 desimaler etter komma med f?rste setning nedenfor. I setning to fyller Java p? med blanke tegn til venstre slik at hele utskriften tar 7 plasser:
        skjerm.outln(tall, 2);
        skjerm.outln(tall, 2, 7);

    • Printf:
      I de vanligste brukte versjoner av Java (5.0, 6, og 7, ogs? kalt 1.5, 1.6, og 1.7) finnes en metode kalt "printf" som gir oss god kontroll over utskriften, f?lgende setninger gir samme resultat som EasyIO-setningene ovenfor:
        System.out.printf("Tall: %.2f\n", tall);
        System.out.printf("Tall: %7.2f\n", tall);
      Koden \n (omvendt-skr?strek etterfulgt av n) gir et linjeskift, og kan tas bort i setningene over hvis du ikke ?nsker linjeskift. 

    Oppgave: Bruk dette til ? endre programmet fra forrige oppgave (oppgave 1 ovenfor) til ? skrive ut produktet med 2 desimaler, og igjen med 3 desimaler p? 10 plasser.


     

  3. For-l?kke: kap. 4, oppg. 4 (side 85)
    Lag et program som skriver ut p? skjermen omkretsene til sirkler med radiusene r = 1, 2, ..., 10 (omkretsen O beregnes etter formelen O = 2 π r.  Sett π = 3.14).  Utskriften skal f?lge m?nsteret:
    Radius = 1 gir omkrets = 6.28
    Radius = 2 gir omkrets = 12.57
    ..osv..
    

     
  4. While-l?kke: : kap. 4, oppg. 5 (side 85)
    (a) Gjenta forrige oppgave, men bruk while-l?kke i stedet.

    (b) Som forrige oppgave, men utskriften skal n? f?rst stoppe n?r omkretsen overstiger 1000.  Tips: Bruk while-l?kken til ? kontrollere O.

     
  5. Lag en array:
    (a) Deklarer et array av heltall med plass til 4 tall og sett inn tallene 0-3.
    (b) Endre f?rste og siste tallet i arrayen til ? v?re 1337.
     
  6. [N?kkeloppg.]: Array med tall:
    (a) Lag et program med en for-l?kke som ber bruker taste inn fem heltall og lagrer disse i en array kalt tall:
    int[] tall = new int[5];
    
    (b) Sum av array: Utvid programmet slik at det regner ut summen av tallene ved hjelp av en l?kke, og skriver ut resultatet.
    (c) Minste verdi: Utvid programmet slik at det finner og skriver ut det minste tallet i arrayen.
    (d) Lave verdier: Legg til programkode som skriver ut alle verdiene i arrayen som er mindre enn 10.
    (e) S?k: Legg til programkode som skriver ut en beskjed om verdien 5 finnes eller ikke finnes i arrayen.



Tibakemelding om dette oppgavesettet kan du skrive i bloggen eller sende p? mail til ingridgg[a] ifi.uio.no

Publisert 29. aug. 2013 09:30 - Sist endret 5. sep. 2013 16:34