Informatik9: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
Keine Bearbeitungszusammenfassung Markierung: 2017-Quelltext-Bearbeitung |
||
(28 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<[[9b 2022 23]] | |||
==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. <br> <br> | |||
===bedingte Anweisungen (if-else)=== | |||
{{Box|Lösung| | {{Box|Lösung| | ||
void potenz2hoch(int n) | /** <br> | ||
/* Die Methode istNull überprüft, ob eine eingegebene Zahl <br> | |||
/* gleich 0 ist.<br> | |||
/** | |||
|Lösung}} | |||
void istNull (int a) | |||
{ | |||
if(a==0){ | |||
System.out.println(a+" ist null!"); | |||
} | |||
} | |||
{{Box|Lösung| | |||
/** <br> | |||
/* Die Methode groesserKleinerNull überprüft, ob eine eingegebene Zahl <br> | |||
/* größer, kleiner oder gleich 0 ist.<br> | |||
/* Es gibt auch andere Lösungen.<br> | |||
/** | |||
|Lösung}} | |||
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)=== | |||
{{Box|Lösung| | |||
/** <br> | |||
/* Die Methode potenz2hoch berechnet die Zahl 2 hoch n <br> | |||
/* und gibt das Ergebnis aus. n muss dabei eine natürlich Zahl sein.<br> | |||
/** | |||
|Lösung}} | |||
void potenz2hoch(int n) | |||
{ | { | ||
int ergebnis = 1; | int ergebnis = 1; | ||
for(int i = n; i>0;i = i - 1){ | for(int i = n; i>0;i = i - 1){ // statt i = i-1 kann man i-- schreiben. | ||
ergebnis = ergebnis*2; | ergebnis = ergebnis*2; | ||
} | } | ||
System.out.println("2 hoch "+ n+" ist "+ergebnis); | System.out.println("2 hoch "+ n+" ist "+ergebnis); | ||
} | } | ||
{{Box|Lösung| | |||
/** <br> | |||
/* Gib die Zahlen von 1 bis 10 untereinander aus. | |||
/** | |||
|Lösung}} | |Lösung}} | ||
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); | |||
} | |||
} | |||
{{Box|Üben| | |||
# Ändere bei der obigen Methode folgendes ab, teste sie und notiere, was sich ändert: | |||
*<nowiki>statt i<=10 setze i<10 ein</nowiki> | |||
*<nowiki>statt i<=10 setze i<20 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 +=2 ein</nowiki> | |||
*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ß. | |||
# Programmiere die Methode "fakultaetVon10()", die die Fakultät <math>10! = 1~ \cdot~ 2~\cdot~...~\cdot ~10</math> berechnet. | |||
# Wandle die Methode fakultaet(int n) so ab, dass ein Parameter n übergeben werden kann und die Fakultät nicht nur bis 10 sondern bis n berechnet wird. | |||
|Ü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 "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.