Inhaltsverzeichnis
Variablen, Wiederholung
Aufgabe 1
Welchen Wert hat die Variable a am Ende des Programms?
double a; double b; double c; a = 2*(7 - 16/2); // a == -2 b = a + 4; // b == 2 c = a + b + 3*b; // c = 6 a = b - c + 3*a; // a = -10
Antwort: a hat den Wert -10.
Aufgabe 2
Schreibe eine Methode, die die Zahlen von 1 bis 10 ausgibt!
void zahlenausgabe{ int i; i = 1; while(1 <= 10){ System.out.println(i); i = i + 1; } }
Aufgabe 3
Schreibe eine Methode, die die Zahl n entgegennimmt und die Summe 1 + 2 + 3 + … + n zurückliefert!
int summe(int n){ int zähler = 1; int sum = 0; while(zähler <= n){ sum = sum + zähler; zähler = zähler + 1; } return sum; }
Aufgabe 4
Schreibe eine Methdode, die die Einmaleinstabelle ausgibt, also
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
Lösung:
void einmaleinstabelle(){ int zeile = 1; while(zeile <= 10){ int spalte = 1; while(spalte <= 10){ System.out.print( zeile * spalte + " "); spalte = spalte + 1; } System.out.println(); zeile = zeile + 1; } }
Aufgabe 5
Schreibe eine Methode istPrimzahl, die eine int-Zahl entgegennimmt und ausgibt, ob es sich dabei um eine Primzahl handelt.
void istPrimzahl(int n){ int z = 2; while(z <= Math.sqrt(n)){ if( n % z == 0){ System.out.println("Keine Primzahl!"); return; } z = z + 1; } System.out.println("Primzahl!"); }
Bemerkung: n % z
ist der Rest der Division von n
durch z
.
Primzahlberechnung
public class Eratosthenes { void berechnePrimzahl(){ boolean[] z = new boolean[21]; // Annahme: Alle Zahlen sind Primzahlen int n = 0; while(n < z.length){ z[n] = true; n = n + 1; } z[1] = false; // 1 ist keine Primzahl int a = 0; // a zeigt auf die nächste Primzahl; while(a < z.length){ // nächste Primzahl suchen int b = a + 1; while ( b < z.length && z[b] == false){ b = b + 1; } a = b; // a zeigt jetzt auf die nächste Primzahl // Vielfache von a streichen b = 2*a; while (b < z.length){ z[b] = false; b = b + a; } } int b = 1; while(b < z.length){ if(z[b] == true){ System.out.println(b + ", "); } b = b + 1; } } }