Boolean: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Maria.grandl (Diskussion | Beiträge)
Maria.grandl (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 8: Zeile 8:


Eine Variable vom Datentyp Boolean kann '''entweder''' den logischen Wert ''wahr'' '''oder''' ''falsch'' (engl. true/ false) annehmen.
Eine Variable vom Datentyp Boolean kann '''entweder''' den logischen Wert ''wahr'' '''oder''' ''falsch'' (engl. true/ false) annehmen.


Dies wird z.B. bei der [[Bedingte Anweisungen|bedingten Anweisung]] verwendet, wenn überprüft werden soll, ob eine Aussage ''wahr'' oder ''falsch'' ist.<br \>
Dies wird z.B. bei der [[Bedingte Anweisungen|bedingten Anweisung]] verwendet, wenn überprüft werden soll, ob eine Aussage ''wahr'' oder ''falsch'' ist.<br \>
Eine '''Aussage''' ist ein feststellender Satz, dem eindeutig einer der beiden Wahrheitswerte zugeordnet werden kann.
Boolsche Werte werden auch bei logischen UND-Verknüpfungen bzw. ODER-Verknüpfungen verwendet.
Boolsche Werte werden auch bei logischen UND-Verknüpfungen bzw. ODER-Verknüpfungen verwendet.


[[Datei:Bool_and.png|400px|UND]] [[Datei:Bool_or.png|380px|ODER]]
[[Datei:Bool_and.png|400px|UND]] [[Datei:Bool_or.png|380px|ODER]]


==Befehlsblöcke==
==Befehle==


Für die Programmierung des BBC micro:bit stehen die Befehle aus der Kategorie '''Logik''' zur Verfügung.<br \>
Die folgenden Beispielprogramme zeigen dir, wie du mit boolschen Variablen bzw. mit logischen Operatoren und Verknüpfungen arbeiten kannst.<br \>
In der Befehlskategorie '''Logik''' findest du die entsprechenden Befehle.<br \>
Alle Elemente, die zwischen den spitzen Klammern stehen, werden auf ihren Wahrheitsgehalt überprüft und ergeben somit ''wahr'' oder ''falsch''.
Alle Elemente, die zwischen den spitzen Klammern stehen, werden auf ihren Wahrheitsgehalt überprüft und ergeben somit ''wahr'' oder ''falsch''.


==Wenn-Dann-Sonst==
==Beispielprogramm - Abbruchbedingung für Schleife==
 
<pre id="bo01">
input.onButtonPressed(Button.A, function () {
    traurig = false
})
let traurig = false
traurig = true
while (traurig) {
    basic.showIcon(IconNames.Sad)
}
basic.showIcon(IconNames.Happy)
</pre>
 
Zum Programm: https://makecode.microbit.org/_UkoagrUjHRD8
 
==Beispielprogramm - Wenn WAHR, dann...==


<pre id="01">
<pre id="01">
let Jahr = 2022
input.onButtonPressed(Button.A, function () {
if (Jahr == 2022) {
    if (Jahr == 2022) {
     basic.showString("Frohes Neues Jahr 2022!")
        basic.showString("Happy" + Jahr + "!")
} else {
    } else {
        basic.showIcon(IconNames.Chessboard)
        basic.clearScreen()
    }
})
input.onButtonPressed(Button.B, function () {
    Jahr = 2022
})
let Jahr = 0
Jahr = 2020
</pre>
 
Zum Programm: https://makecode.microbit.org/_KxpixiW4k4Dz
 
==Beispielprogramm - Wahr oder Falsch?==
 
Mit dem folgenden Programm kannst du testen, welche logische Verknüpfung (wert1 - wert4) bzw. welche Aussage (wert 5 - wert 7) wahr oder falsch ist.
 
<pre id="bo02">
input.onButtonPressed(Button.A, function () {
    if (wert1 == false) {
        basic.showString("F")
     } else {
        basic.showString("W")
    }
})
let wert1 = false
wert1 = 5 < 3 && 2 < 8
let wert2 = 1 < 3 && 2 < 8
let wert3 = 5 < 3 || 2 < 8
let wert4 = 5 > 3 || 2 < 8
let wert5 = 9 < 2.5
let wert6 = 8 > 2 * 3
let wert7 = !(false)
</pre>
 
Zum Programm: https://makecode.microbit.org/_XEfJb0URFeHk
 
==Beispielprogramm - Würfelspiel "3 gewinnt"==
 
Das folgende Programm erwartet 2 Eingaben.<br \>
Wenn der Benuter/die Benutzerin einmal den Knopf A '''und''' einmal den Knopf B gedrückt hat, führt das Programm die nächsten Befehle aus.
 
<pre id ="bo04">
let Eingabe_1 = false
let Zahl_1 = 0
let Eingabe_2 = false
let Zahl_2 = 0
/**
* Variable vom Datentyp "Boolean
*/
input.onButtonPressed(Button.A, function () {
    Eingabe_1 = true
    Zahl_1 = randint(1, 6)
    basic.showNumber(Zahl_1)
    basic.clearScreen()
})
input.onButtonPressed(Button.B, function () {
    Eingabe_2 = true
    Zahl_2 = randint(1, 6)
    basic.showNumber(Zahl_2)
     basic.clearScreen()
     basic.clearScreen()
}
})
basic.forever(function () {
    if (Eingabe_1 && Eingabe_2) {
        Eingabe_1 = false
        Eingabe_2 = false
        if (Zahl_1 - Zahl_2 == 3) {
            basic.showIcon(IconNames.Yes)
        } else {
            basic.showIcon(IconNames.No)
        }
    }
})
</pre>
</pre>


==weiterführendes Beispiel==
Zum Programm: https://makecode.microbit.org/_DvzCTgbsvXoT
[https://makecode.microbit.org/_DvzCTgbsvXoT| Würfeln mit Zufallszahl - 2-Spieler Version]


==Übung==
==Übung==
Zeile 39: Zeile 129:


https://www.ocg.at/sites/ocg.at/files/medien/pdfs/Biber-Aufgaben2012-mitLoesungen-AT-web.pdf
https://www.ocg.at/sites/ocg.at/files/medien/pdfs/Biber-Aufgaben2012-mitLoesungen-AT-web.pdf
Versuche, die Biber-der-Informatik-Aufgabe "'''Mondzauber'''" zu lösen.<br \>
Du findest die Aufgabe (inkl. Lösung) unter folgendem Link auf Seite '''30''':
https://www.ocg.at/sites/ocg.at/files/medien/pdfs/BiberAufgaben2019.pdf


<htmlet>makecode_embed</htmlet>
<htmlet>makecode_embed</htmlet>

Aktuelle Version vom 12. Mai 2022, 14:24 Uhr

Was ist das?

Eine Variable kann den speziellen Datentyp Boolean (nach George Boole benannt) besitzen.
Der Datentyp wird häufig auch mit dem Kurzwort Bool bezeichnet.

Ist eine Variable vom Datentyp Boolean, dann kann sie nur zwei Zustände speichern.
Das kannst du mit einem Lichtschalter vergleichen: Dieser befindet sich entweder im Zustand "an" oder im Zustand "aus".

Eine Variable vom Datentyp Boolean kann entweder den logischen Wert wahr oder falsch (engl. true/ false) annehmen.


Dies wird z.B. bei der bedingten Anweisung verwendet, wenn überprüft werden soll, ob eine Aussage wahr oder falsch ist.
Eine Aussage ist ein feststellender Satz, dem eindeutig einer der beiden Wahrheitswerte zugeordnet werden kann.

Boolsche Werte werden auch bei logischen UND-Verknüpfungen bzw. ODER-Verknüpfungen verwendet.

UND ODER

Befehle

Die folgenden Beispielprogramme zeigen dir, wie du mit boolschen Variablen bzw. mit logischen Operatoren und Verknüpfungen arbeiten kannst.
In der Befehlskategorie Logik findest du die entsprechenden Befehle.
Alle Elemente, die zwischen den spitzen Klammern stehen, werden auf ihren Wahrheitsgehalt überprüft und ergeben somit wahr oder falsch.

Beispielprogramm - Abbruchbedingung für Schleife

input.onButtonPressed(Button.A, function () {
    traurig = false
})
let traurig = false
traurig = true
while (traurig) {
    basic.showIcon(IconNames.Sad)
}
basic.showIcon(IconNames.Happy)

Zum Programm: https://makecode.microbit.org/_UkoagrUjHRD8

Beispielprogramm - Wenn WAHR, dann...

input.onButtonPressed(Button.A, function () {
    if (Jahr == 2022) {
        basic.showString("Happy" + Jahr + "!")
    } else {
        basic.showIcon(IconNames.Chessboard)
        basic.clearScreen()
    }
})
input.onButtonPressed(Button.B, function () {
    Jahr = 2022
})
let Jahr = 0
Jahr = 2020

Zum Programm: https://makecode.microbit.org/_KxpixiW4k4Dz

Beispielprogramm - Wahr oder Falsch?

Mit dem folgenden Programm kannst du testen, welche logische Verknüpfung (wert1 - wert4) bzw. welche Aussage (wert 5 - wert 7) wahr oder falsch ist.

input.onButtonPressed(Button.A, function () {
    if (wert1 == false) {
        basic.showString("F")
    } else {
        basic.showString("W")
    }
})
let wert1 = false
wert1 = 5 < 3 && 2 < 8
let wert2 = 1 < 3 && 2 < 8
let wert3 = 5 < 3 || 2 < 8
let wert4 = 5 > 3 || 2 < 8
let wert5 = 9 < 2.5
let wert6 = 8 > 2 * 3
let wert7 = !(false)

Zum Programm: https://makecode.microbit.org/_XEfJb0URFeHk

Beispielprogramm - Würfelspiel "3 gewinnt"

Das folgende Programm erwartet 2 Eingaben.
Wenn der Benuter/die Benutzerin einmal den Knopf A und einmal den Knopf B gedrückt hat, führt das Programm die nächsten Befehle aus.

let Eingabe_1 = false
let Zahl_1 = 0
let Eingabe_2 = false
let Zahl_2 = 0
/**
 * Variable vom Datentyp "Boolean
 */
input.onButtonPressed(Button.A, function () {
    Eingabe_1 = true
    Zahl_1 = randint(1, 6)
    basic.showNumber(Zahl_1)
    basic.clearScreen()
})
input.onButtonPressed(Button.B, function () {
    Eingabe_2 = true
    Zahl_2 = randint(1, 6)
    basic.showNumber(Zahl_2)
    basic.clearScreen()
})
basic.forever(function () {
    if (Eingabe_1 && Eingabe_2) {
        Eingabe_1 = false
        Eingabe_2 = false
        if (Zahl_1 - Zahl_2 == 3) {
            basic.showIcon(IconNames.Yes)
        } else {
            basic.showIcon(IconNames.No)
        }
    }
})

Zum Programm: https://makecode.microbit.org/_DvzCTgbsvXoT

Übung

Versuche, die Biber-der-Informatik-Aufgabe "Wasserversorgung" zu lösen.
Du findest die Aufgabe (inkl. Lösung) unter folgendem Link auf Seite 43:

https://www.ocg.at/sites/ocg.at/files/medien/pdfs/Biber-Aufgaben2012-mitLoesungen-AT-web.pdf


Versuche, die Biber-der-Informatik-Aufgabe "Mondzauber" zu lösen.
Du findest die Aufgabe (inkl. Lösung) unter folgendem Link auf Seite 30:

https://www.ocg.at/sites/ocg.at/files/medien/pdfs/BiberAufgaben2019.pdf