Oppgavesettet: Ukeoppgaver 1.
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.
Oppgaver
- Finn fem syntaksfeil: kap. 1, oppg. 3 (side 26)
Finn feilene i dette programmet:class Utskrift { public stitac void main(String args) ( System.out.println("Beethoven skrev Skjebnesymfonien") System.out.println("og ?tte andre symfonier.); } }
Det er fem syntaksfeil i programmet:1. N?kkelordet "static" er stavet feil. 2. Det mangler hakeparenteser ("[]") etter "String" p? linje 2. Denne feilen oppdages ikke av kompilatoren, men av kj?resystemet fordi det er lov ? lage metoder uten "[]" der, bare ikke lov ? bruke de som hoved-main-metoden n?r man kj?rer et program. Kj?resystemet gir ofte litt mer uventede feilmeldinger enn kompilatoren, men disse vil du ogs? etter hvert l?re deg ? kjenne igjen. I dette tilfellet f?r vi f?lgende feilmelding n?r vi pr?ver ? kj?re programmet: java.lang.NoSuchMethodError: main Exception in thread "main" Som vi ser s? betyr feilmeldingen at kj?resystemmet ikke fant noen (riktig skrevet) main-metode. 3. Det st?r vanlig parentes i stedet for kr?llparentes p? slutten av linje 2. 4. Det mangler semikolon p? slutten av linje 3. 5. Avsluttende anf?rselstegn mangler p? linje 4.
- Bokstavpyramide: kap. 1, oppg. 5 (side 26)
Vi ?nsker ? skrive ut f?lgende tekst p? skjermen (med samme pyramideformatering):a a a a b a a c c a a d f d a
Lag et Java-program som gj?r dette, ved ? bruke flere utskriftssetninger.
Tips:
Idéen her er ? finne hvor og hvordan man kan legge inn mellomroms-tegn i programmet for ? f? til pyramideformateringen. Senere i kurset, i kapittel 3 (side 54) vil du l?re en annen m?te ? l?se denne oppgaven p? hvor Java tar seg av pyramideformateringen.class Pyramide { public static void main(String[] args) { System.out.println(" a"); // 4 mellomrom f?r ?a? System.out.println(" a a"); // 3 mellomrom f?r ?a a? System.out.println(" a b a"); System.out.println(" a c c a"); System.out.println("a d f d a"); } }
Her er en annen m?te ? programmere dette p?, som gir samme resultat.
"\n" (bakover-skr?strek etterfulgt av n) er koden for linjeskift i Java.
class Pyramide { public static void main(String[] args) { System.out.println(" a\n" + " a a\n" + " a b a\n" + " a c c a\n" + "a d f d a"); } }
Kj?reeksempel: (Begge programmene ovenfor gir samme resultat)> javac Pyramide.java > java Pyramide a a a a b a a c c a a d f d a
Tilbakemelding p? dette oppgavesettet kan du skrive i bloggen eller sende p? mail til siriamj [a]ifi.uio.no