Boolean: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Oliver.kastner (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Maria.grandl (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(65 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Was ist das?=
==Was ist das?==


Eine [[Variable]] kann den speziellen '''Datentyp''' Boolean (nach [https://de.wikipedia.org/wiki/George_Boole George Boole] benannt) besitzen, dann kann sie nur zwei Zustände erfassen - ähnlich wie ein Lichtschalter an/ aus. Bei der Programmierung hat der boolsche Datentyp den logischen Wert ''wahr'' oder ''falsch'' (engl. true/ false).
Eine [[Variable]] kann den speziellen [[Datentyp]] Boolean (nach [https://de.wikipedia.org/wiki/George_Boole George Boole] benannt) besitzen.<br \>
Der Datentyp wird häufig auch mit dem Kurzwort '''Bool''' bezeichnet.  


Dies wird z.B. bei ''Wenn-Dann-Sonst'' (if-then-else) Anweisungen verwendet, wenn eine Aussage auf ihren Wahrheitsgehalt überprüft und verglichen wird.
Ist eine Variable vom Datentyp Boolean, dann kann sie nur '''zwei''' Zustände speichern.<br \>
Boolsche Werte werden auch bei logischen Verknüpfungen verwendet, dabei werden mehrere Aussagen mit UND/ ODER verknüpft.
Das kannst du mit einem Lichtschalter vergleichen: Dieser befindet sich '''entweder''' im Zustand "''an''" '''oder''' im Zustand "''aus''".


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


Für die Programmierung des BBC micro:bit stehen die Befehle aus der Kategorie '''Logik''' zur Verfügung. Alle Elemente, die zwischen den spitzen Klammern stehen, werden auf ihren Wahrheitsgehalt überprüft und ergeben somit ''wahr'' oder ''falsch''.


==Wenn-Dann-Sonst==
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.
 
[[Datei:Bool_and.png|400px|UND]] [[Datei:Bool_or.png|380px|ODER]]
 
==Befehle==
 
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''.
 
==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">
if (Jahr == 2022) {
input.onButtonPressed(Button.A, function () {
    basic.showString("Frohes Neues Jahr 2022!")
    if (Jahr == 2022) {
} else {
        basic.showString("Happy" + Jahr + "!")
    } 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()
     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)
        }
    }
})
</pre>
</pre>


Zum Programm: https://makecode.microbit.org/_DvzCTgbsvXoT
==Übung==
Versuche, die Biber-der-Informatik-Aufgabe "'''Wasserversorgung'''" zu lösen.<br \>
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.<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