3 Eine Münze werfen

Ablaufmodellierung

Ziel ist es, ein Programm zu einem einfachen Münzwurfspiel zu entwickeln. Das folgende Flussdiagramm zeigt den Ablauf von Eingaben, Berechnungen und Ausgaben.

Flussdiagramm Münzwurf

Mit einem Struktogramm lässt sich die Ablaufstruktur weiter verdeutlichen.

Flussdiagramm Münzwurf

Aufgabe 3.1

  1. Welche Ausgaben werden nach dem Flussdiagramm erzeugt, wenn der Benutzer als Tipp ein 'K' eingibt und die Zufallszahl 1 erzeugt wird?
  2. Welche anderen Abläufe und Ausgaben sind hier denkbar. Begründe mit den Fallunterscheidungen im Flussdiagramm.

Implementierung

Das mit einem Flussdiagramm / Struktogramm beschriebene Verfahren soll jetzt in ein Java-Programm übersetzt werden.

import java.util.*;

public class Muenzwurf
{
    public static void main(String[] args){
       
        //Eingabe
        System.out.println("Bitte einen Tipp abgeben!");
        System.out.println("Kopf (K) oder Zahl (Z)");
        Scanner sc = new Scanner(System.in);
        char tipp = sc.next().charAt(0);

        //Verarbeitung
        int zufallszahl = (int) (2*Math.random());
        char seite;
        if (zufallszahl == 0) {
            System.out.println("Kopf ist gefallen.");
            seite = 'K';
        }
        else {
            System.out.println("Zahl ist gefallen.");
            seite = 'Z';
        }
        
        // Ausgabe
        // ...
    }
}

Aufgabe 3.2

  1. Erstelle ein neues BlueJ-Projekt mit Namen „Zufall“. Lege eine neue Klasse „Muenzwurf“ an und teste den gezeigten Programmcode. Welcher Teil des Flussdiagramms / Struktogramms wird hier implementiert?
  2. Ergänze den noch fehlenden Teil. Achte ganz genau auf auf die geschweiften Klammern.
  3. Das folgende Programm enthält weitere Fallunterscheidungen. Kannst du das Flussdiagramm so erweitern, dass es zum erweiterten Programm passt. Beschreibe anhand von Fallbeispielen, wie sich das erweiterte Programm verhält.
import java.util.*;

public class Muenzwurf
{
    public static void main(String[] args){
       
        //Eingabe
        System.out.println("Bitte einen Tipp abgeben!");
        System.out.println("Kopf (K) oder Zahl (Z)");
        Scanner sc = new Scanner(System.in);
        char tipp = sc.next().charAt(0);
        if (tipp == 'k') {tipp = 'K';}
        if (tipp == 'z') {tipp = 'Z';}

        //Verarbeitung
        int zufallszahl = (int) (2*Math.random());
        char seite;
        if (zufallszahl == 0) {
            System.out.println("Kopf ist gefallen.");
            seite = 'K';
        }
        else {
            System.out.println("Zahl ist gefallen.");
            seite = 'Z';
        }
        
        // Ausgabe
        // ...
    }
}


Quellen

Text: http://www.inf-schule.de/programmierung/imperativeprogrammierung/fallstudien/kontrollstrukturen/fallstudie_zufallsexperimente/muenzewerfen