Informatik9: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
Keine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
||
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 75: | Zeile 75: | ||
*<nowiki>statt i = 1 setze i = 0 ein</nowiki> | *<nowiki>statt i = 1 setze i = 0 ein</nowiki> | ||
*<nowiki>statt i++ setze i = i+2 ein</nowiki> | *<nowiki>statt i++ setze i = i+2 ein</nowiki> | ||
*<nowiki>statt i++ setze i = | *<nowiki>statt i++ setze i +=2 ein</nowiki> | ||
*finde eigene Änderungen. | *finde eigene Änderungen. | ||
# Ändere beim Methodenkopf "void von1bisn(int n)" und die Wiederholung so ab, dass man die Zahlen von 1 bis n ausgegeben bekommt. Vorsicht, nicht wundern, wenn die ersten Zahlen auf der Konsole nicht auftauchen. Dann ist n zu groß. | # Ändere beim Methodenkopf "void von1bisn(int n)" und die Wiederholung so ab, dass man die Zahlen von 1 bis n ausgegeben bekommt. Vorsicht, nicht wundern, wenn die ersten Zahlen auf der Konsole nicht auftauchen. Dann ist n zu groß. | ||
Zeile 82: | Zeile 82: | ||
|Üben}} | |Üben}} | ||
'''Aufgabe'''<br> | |||
In der Cloud oder in OndDrive findet ihr ein neues Projekt "Blumenwiese". Hier findet ihr sehr viele Klassen. Ihr könnt sie gerne alle anschauen, bearbeiten sollt ihr in der Klasse "Wiederholen" die Methode " | In der Cloud oder in OndDrive findet ihr ein neues Projekt "Blumenwiese". Hier findet ihr sehr viele Klassen. Ihr könnt sie gerne alle anschauen, bearbeiten sollt ihr in der Klasse "Wiederholen" die Methode "alleBlumenAufheben". Um das Blumenfeld zu sehen. müsst ihr die Klasse einmal öffnen (mit nr=1). Dann seht ihr, was zu tun ist. | ||
| | |||
===bedingte Wiederholung === | |||
{{Box|Lösung| | |||
/** <br> | |||
/* Solange das Gewicht der Kuh unter 1000 ist, soll die Kuh fressen. | |||
/** | |||
|Lösung}} | |||
void langFressen() | |||
{ | |||
while(masse < 1000) // solange die Masse unter 1000 ist, | |||
{ | |||
fressen(); // wird die Methode fressen aufgerufen. | |||
} | |||
} | |||
====Infos==== | |||
{| class="wikitable" | |||
|+ | |||
! DEKLARATION !! Beispiel !!Pseudocode | |||
|- | |||
| | |||
while(<Bedingung>) | |||
{ | |||
Anweisung(en); | |||
} | |||
| | |||
int i = 0; | |||
int potenz = 1; | |||
while(i<=10) | |||
{ | |||
System.out.println("2^" + i + " = " + potenz); | |||
potenz = potenz*2; | |||
i++; | |||
} | |||
| | |||
Startwerte für i <br> | |||
und p festlegen<br> | |||
Solange i <= 10 ist,<br> | |||
gib die zweier Potenz aus,<br> | |||
nächste Potenz berechnen<br> | |||
i, um eins erhöhen (Dient zum Zählen für den Abbruch der Wiederholung)<br> | |||
|} | |||
'''Aufgabe'''<br> | |||
# Überlege dir, wie du den Exponenten berechnen kannst einer 2er Potenz. z.B. 32 = 2^x. Wie groß ist x? | |||
# Formuliere einen Satz mit "Solange". | |||
# Notiere eine Methode "exponentBerechnen(int potenz)", die die Potenz erhält und den Exponenten berechnet und ausgibt. Du kannst dazu ein neues Projekt erstellen oder es bei dem Bauernhof eintragen. | |||
<u>Lösung1</u> | |||
void exponentBerechnen1(int potenz) | |||
{ | |||
int i = 0; | |||
while(potenz >1) | |||
{ | |||
potenz = potenz/2; | |||
i++; | |||
} | |||
System.out.println(i); | |||
} | |||
<u>Lösung2</u> | |||
void exponentBerechnen2(int potenz) | |||
{ | |||
int i = 0; | |||
int p = 1; | |||
while(potenz >=p) | |||
{ | |||
p = p*2; | |||
i++; | |||
} | |||
System.out.println(i-1); | |||
} | |||
# Lass die Figur flo in der Blumenwiese einmal am Rand entlang laufen. Methode (void amRandLaufen()). Tipp: Du kannst die Figur flo am Anfang erstmal in die obere linke Ecke gehen lassen. | |||
# Lass die Figur flo einmal in ganze Blumenwiese ablaufen und die vorhandenen Blumen aufheben. Methode (void ganzeBlumenwieseLaufen()). Teste die Methode bei beiden Blumenwiesen. |
Aktuelle Version vom 14. Juni 2023, 08:38 Uhr
Kontrollsturkturen in Java
Hier findet ihr Lösungen zu den Kontrollstrukturen in Informatik. Ihr könnt den Text kopieren und in eure Klassen in BlueJ einfügen. Denkt auch daran den Methodenkopf zu kopieren oder selbr in BlueJ hinzuzufügen.
bedingte Anweisungen (if-else)
void istNull (int a) { if(a==0){ System.out.println(a+" ist null!"); } }
void groesserKleinerNull (int a) { if(a>0) { System.out.println(a+ " ist größer 0."); } else { if (a<0){ System.out.println(a+ " ist kleiner 0."); } else //a ist nun weder <0 noch >0. Also muss gelten a=0. { System.out.println(a+ " ist null."); } } }
Wiederholung mit fester Anzahl (for)
void potenz2hoch(int n) { int ergebnis = 1; for(int i = n; i>0;i = i - 1){ // statt i = i-1 kann man i-- schreiben. ergebnis = ergebnis*2; } System.out.println("2 hoch "+ n+" ist "+ergebnis); }
void von1bis10() { for(int i = 1; i<=10;i++){ // i++ bedeutet i = i + 1,also i wird um 1 erhöht. System.out.println(i); } }
Aufgabe
In der Cloud oder in OndDrive findet ihr ein neues Projekt "Blumenwiese". Hier findet ihr sehr viele Klassen. Ihr könnt sie gerne alle anschauen, bearbeiten sollt ihr in der Klasse "Wiederholen" die Methode "alleBlumenAufheben". Um das Blumenfeld zu sehen. müsst ihr die Klasse einmal öffnen (mit nr=1). Dann seht ihr, was zu tun ist.
bedingte Wiederholung
void langFressen() { while(masse < 1000) // solange die Masse unter 1000 ist, { fressen(); // wird die Methode fressen aufgerufen. } }
Infos
DEKLARATION | Beispiel | Pseudocode |
---|---|---|
while(<Bedingung>) { Anweisung(en); } |
int i = 0; int potenz = 1; while(i<=10) { System.out.println("2^" + i + " = " + potenz); potenz = potenz*2; i++; } |
Startwerte für i |
Aufgabe
- Überlege dir, wie du den Exponenten berechnen kannst einer 2er Potenz. z.B. 32 = 2^x. Wie groß ist x?
- Formuliere einen Satz mit "Solange".
- Notiere eine Methode "exponentBerechnen(int potenz)", die die Potenz erhält und den Exponenten berechnet und ausgibt. Du kannst dazu ein neues Projekt erstellen oder es bei dem Bauernhof eintragen.
Lösung1
void exponentBerechnen1(int potenz) { int i = 0; while(potenz >1) { potenz = potenz/2; i++; } System.out.println(i); }
Lösung2
void exponentBerechnen2(int potenz) { int i = 0; int p = 1; while(potenz >=p) { p = p*2; i++; } System.out.println(i-1); }
- Lass die Figur flo in der Blumenwiese einmal am Rand entlang laufen. Methode (void amRandLaufen()). Tipp: Du kannst die Figur flo am Anfang erstmal in die obere linke Ecke gehen lassen.
- Lass die Figur flo einmal in ganze Blumenwiese ablaufen und die vorhandenen Blumen aufheben. Methode (void ganzeBlumenwieseLaufen()). Teste die Methode bei beiden Blumenwiesen.