Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

10:weitere_uebungsaufgaben_zu_algorithmen [2018/06/03 22:53] (aktuell)
Zeile 1: Zeile 1:
 +====== Übungsaufgaben zu Algorithmen ======
 +
 +==== Aufgabe 1: Nasowas ====
 +Gegeben ist die folgende Methode.
 +<​code>​
 + ​public void Nasowas (int a)
 +    {
 +        while (a>4) {
 +            a=a-5;
 +        }
 +        if (a==0) System.out.println("​JA"​);​
 +        else System.out.println("​NEIN"​);​
 +    }
 +</​code>​
 +Was geschieht beim Methodenaufruf Nasowas(12) bzw. Nasowas(15)?​ Welchen Zweck hat die Methode?
 +<hidden Lösung>
 +Nasowas(12) liefert die Ausgabe "​Nein",​ Nasowas(15) führt zu "​Ja"​. Die Methode überprüft,​ ob die übergebene Zahl durch 5 teilbar ist.
 +</​hidden>​
 +
 +
 +==== Aufgabe 2: PIN und PUK beim Handy ====
 +Zu der SIM-Karte für ein Mobilfunktelefon gibt es ein PIN (personal identification number), die aus vier Ziffern besteht und beim Einschalten des Geräts richtig eingeben werden muss. Bei dreimaliger falscher Eingabe wird die PIN gesperrt und ist ungültig. \\
 +Erstelle eine Klasse Handy mit geeigneten Attributen sowie die Methode anschalten(),​ die die Eingabe der PIN simuliert. Nutze zur Eingabe die Methoden der Klasse Eingabe aus dem Klassenpaket tools.\\
 +<note tip>Um zum Beispiel bei einer while-Schleife zwei Bedingungen gleichzeitig zu prüfen, verwendet man Operatoren.\\
 +Falls zwei Bedingungen gleichzeitig erfüllt sein müssen (UND-Operator),​ schreibt man in Java &&​.\\
 +Bsp:\\
 +<​code>​
 +while (a<b && a<10){
 +   a++;
 +}
 +</​code> ​
 +Solange a kleiner als b und gleichzeitig kleiner als 10 ist, wird a um jeweils 1 addiert. Nach der Schleife ist also a entweder größer gleich a oder mindestens 10.
 +</​note>​
 +
 +
 +
 +Zum Entsperren der PIN ist die Eingabe der sogenannten PUK (personal unblocking key) notwendig, eine Zahlenfolge aus acht Ziffern.\\ ​
 +Erweitere die Methode anschalten(),​ um die Eingabe der PUK.\\
 +
 +
 +
 +
 +
 +==== Aufgabe 3: Zahlenratespiel ====
 +Entwirf eine Methode spiele(), die zufällig eine Zahl zwischen 1 und 20 wählt. Der Benutzer soll dabei die Zahl erraten und jeweils einen Hinweis erhalten, ob die seine Zahl größer oder kleiner als die gesuchte Zahl ist.
 +<​note>​Java bietet ein Möglichkeit Zufallszahlen zu erhalten. Die Methode Math.random() liefert ein zufällige Dezimalzahl zwischen 0 und 1. Multipliziert man dies mit 20, so erhält man eine zufällige Dezimalzahl zwischen 0 und 20. Um diese Dezimalzahl in eine Ganzzahl (Datentyp int) umzuwandeln,​ schreibt man vor den Ausdruck //​(int)//</​note>​
 +
 +
 +<hidden vollständige Lösung>
 +<​code>​
 +public class Ratespiel {
 +
 + public void starte() {
 + int geheimzahl;
 + // zufällige Zahl zwischen 0 und 19 erzeugen
 + geheimzahl = (int)(Math.random() * 20);
 + int eingabezahl;​
 + do {
 + eingabezahl = Eingabe.gibInt("​Rate eine Zahl!"​);​
 + if (eingabezahl < geheimzahl) {
 + System.out.println("​Die eingegebene Zahl ist zu klein!"​);​
 + }
 + if (eingabezahl > geheimzahl) {
 + System.out.println("​Die eingegebene Zahl ist zu groß!"​);​
 + }
 + }
 + while (eingabezahl != geheimzahl);​
 + System.out.println("​Richtig,​ die Zahl lautet:"​ + geheimzahl);​
 + }
 +}
 +</​code>​
 +
 +</​hidden>​
 +
 +
  
Drucken/exportieren