Løsningsforslag ukeoppg. 1: 22. − 28. aug (INF1000 - Høst 2012)
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