• Keine Ergebnisse gefunden

¨Ubungspaket 9 Logische Ausdr¨ucke

N/A
N/A
Protected

Academic year: 2021

Aktie "¨Ubungspaket 9 Logische Ausdr¨ucke"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Ubungspaket 9 ¨

Logische Ausdr¨ ucke

Ubungsziele: ¨

1. Umgang mit logischen Vergleichs- und Verkn¨ upfungsoperatoren 2. Bilden einfacher und komplexer logischer Ausdr¨ ucke

Skript:

Kapitel: 22 Semester:

Wintersemester 2021/22 Betreuer:

Thomas, Tim und Ralf Synopsis:

Logische Ausdr¨ ucke bestehen aus Vergleichsoperatoren wie

” gr¨ oßer“

oder ” kleiner“ sowie aus logischen Verkn¨ upfungen wie

” und“,

” oder“

bzw. ” nicht“. Logische Ausdr¨ ucke ben¨ otigen wir vor allem bei Fall-

unterscheidungen sowie Schleifen und ¨ uben sie deshalb hier gesondert

ein.

(2)

Teil I: Stoffwiederholung

Aufgabe 1: Wahr und Falsch

Wie werden in der Programmiersprache C die beiden logischen Werte

” wahr“ und

” falsch“

ausgedr¨ uckt?

wahr : falsch:

Aufgabe 2: Pr¨ azedenzregeln

Erkl¨ are kurz mit eigenen Worten, was man beim Programmieren als Pr¨ azedenzregeln be- zeichnet. Was hat dies mit der Regel

” Punktrechnung geht vor Strichrechnung“ zu tun, die wir aus dem Mathematikunterricht kennen?

Aufgabe 3: Klammersetzung

Welche Klammern sind f¨ ur das Einklammern von arithmetischen und logischen Ausdr¨ ucken in der Programmiersprache C erlaubt?

(): []: {}:

(3)

Teil II: Quiz

Aufgabe 1: Klammersetzung

Bei gemischten Ausdr¨ ucken ist immer die Frage, ob man Klammern setzen muss und wenn ja, wo? Hier hilft die Pr¨ azedenztabelle (siehe Anhang im Skript oder den gesammelten Ubungspaketen) weiter, nach der der Compiler die Ausdr¨ ¨ ucke auswertet. Wo sind in den folgenden Ausdr¨ ucken die Klammern, wie sie sich der Compiler denkt. In den Ausdr¨ ucken sind i und j immer Variablen vom Typ int.

Ohne Klammern mit gedachten Klammern i > 1 && j > 2

. . . .

i < j || j == 1

. . . .

i < j || j == 1 && j != 4

. . . .

i + 1 < j || j + 2 < i

. . . .

Aufgabe 2: Vereinfachung logischer Ausdr¨ ucke

Manchmal kann man logische Ausdr¨ ucke vereinfachen. Im Folgenden steht a immer f¨ ur einen (logischen) Ausdruck, der die Werte

” wahr“ und

” falsch“ annehmen kann. ¨ Uberlege, wie sich die folgenden Ausdr¨ ucke vereinfachen lassen:

Ausdruck Vereinfachung a und wahr

. . . .

a oder wahr

. . . .

a und falsch

. . . .

a oder falsch

. . . .

9-2 Wintersemester 2021/22, Einf¨ uhrung in die Praktische Informatik

(4)

Teil III: Fehlersuche

Aufgabe 1: Fehler in logischen Ausdr¨ ucken

Im folgenden Programm haben sich in den logischen Ausdr¨ ucken wieder ein paar kleine Fehler eingeschlichen. Die nachfolgende Ausgabeanweisung (printf()) gibt immer an, f¨ ur welche F¨ alle der Ausdruck ein logisches

” wahr“ liefern soll. Finde und korrigiere die Fehler.

1 # i n c l u d e < s t d i o . h >

2

3 int m a i n ( int argc , c h a r ** a r g v )

4 {

5 int i , j , k ;

6 /* e i n l e s e n von W e r t e n f u e r i , j und k */

7 if i == 1 && j == 1 )

8 p r i n t f ( " i und j h a b e n b e i d e den w e r t 1\ n " ) ; 9 if ( i == 1 && j == 1 || k > 0 )

10 p r i n t f ( " i ist 1 und g l e i c h z e i t i g j g l e i c h 1 o d e r k p o s i t i v \ n " ) ;

11 if ( i = > 1 )

12 p r i n t f ( " i ist g r o e s s e r o d e r g l e i c h 1\ n " ) ;

13 if ( i = 1 )

14 p r i n t f ( " i hat den w e r t 1\ n " ) ; 15 if ( i == 1 &&& j == 1 )

16 p r i n t f ( " i und j h a b e n b e i d e den w e r t 1\ n " ) ; 17 if ( ! ( i < 1) && j > -1 )

18 p r i n t f ( " i und j s i n d b e i d e g r o e s s e r als 0\ n " ) ;

19 }

(5)

Teil IV: Anwendungen

Aufgabe 1: Werte logischer Ausdr¨ ucke

Welche Bedeutung und Werte haben bzw. liefern die folgenden logischen Ausdr¨ ucke? In allen F¨ allen sind i = 1, j = 2 und n = 0 Variablen vom Typ int und haben in allen F¨ allen die angegebenen drei Werte. ¨ Uberlege dir erst das Ergebnis und ¨ uberpr¨ ufe es erst anschließend anhand eines kleinen eigenen Programms. Beispiel f¨ ur die erste Aufgabe:

1 # i n c l u d e < s t d i o . h >

2

3 int m a i n ( int argc , c h a r ** a r g v )

4 {

5 int i = 1 , j = 2 , n = 0;

6 p r i n t f ( " E r g e b n i s : % d \ n " , i > 2 ) ;

7 }

Ausdruck Vermutung Resultat Bedeutung

i > 2

. . . .

i < 2

. . . .

i < 2 && n == 0

. . . .

i

. . . .

! i

. . . .

! n

. . . .

i == 1 && j

. . . .

i > 2 || n == 0

. . . .

i > 2 || j == 2

. . . .

i && ! n

. . . .

i == 2 && (j == 1 || n == 1)

. . . .

(i == 2 && j == 1) || n == 1

. . . .

i && j && ! n

. . . .

9-4 Wintersemester 2021/22, Einf¨ uhrung in die Praktische Informatik

Referenzen

ÄHNLICHE DOKUMENTE

Bei Grundrechenoperationen (+,-,*,:) und stetigen Funktionen kann die Bildung des

Im Folgenden werden die beiden Pre- und Post-Operatoren innerhalb etwas komplexerer Ausdr¨ ucke verwendet.. Hinweis: Bei der

Da rechts aber eine Variable steht, k¨ onnte man die Ausd¨ ucke schachteln, denn der Wert einer Zuweisung ist das Ergebnis. Das ++ bezieht sich auf j, i wird um den neuen Wert von

Welche Klammern sind f¨ ur das Einklammern von arithmetischen und logischen Ausdr¨ ucken in der Programmiersprache C erlaubt. (): ja []: nein

W¨ ahlen Sie jeweils Teilmengen von R so als Definitionsbereich und Zielbereich aus, dass durch die Zuordnung x → x 2 + x − 6 eine weder injektive noch surjektive Funktion,

[r]

– Auch f¨ur komplexere Strukturen als regul¨are Sprachen – G¨angig f¨ur die Beschreibung von Programmiersprachen.. Beispiel: Auszug der Grammatik

Du kannst nach literalen Zeichenketten suchen und weisst, dass bei regul¨ aren Aus- dr¨ ucke standardm¨ assig Gross- und Kleinschreibung unterschieden werden.. Du kannst regul¨