Informatik I Übung, Woche 40

Ähnliche Dokumente
Informatik I Übung, Woche 40

Informatik I Übung, Woche 41

Informatik I Übung, Woche 41

Syntax der Sprache PASCAL

Programmieren lernen mit Visual Basic

2.2 Einfache Datenstrukturen

Javakurs für Anfänger

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14

10 Wiederholungsanweisungen

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Einstieg in die Informatik mit Java

Java Ablaufsteuerung (Beispiele)

2.5 Programmstrukturen Entscheidung / Alternative

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

Datentypen: integer, char, string, boolean

Javakurs für Anfänger

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Einstieg in die Informatik mit Java

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Bedingte Anweisungen

Einstieg in die Informatik mit Java

Einführung in die Programmierung für NF. Übung

Programmiereinführung Python Vorlesung zu Modul 1B. Anwendungsnahes Programmieren, FS19 Dr. Lukas Fässler Departement Informatik, ETH Zürich

C# - Einführung in die Programmiersprache Bedingte Anweisungen und Schleifen

Java Anweisungen und Ablaufsteuerung

Modellierung und Programmierung 1

Einstieg in die Informatik mit Java

Java I Vorlesung Imperatives Programmieren

3. Wahrheitswerte. Boolesche Funktionen; der Typ bool; logische und relationale Operatoren; Kurzschlussauswertung

Unterlagen. CPP-Uebungen-08/

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Informatik 1. Prüfung im Wintersemester 1997/98

Einführung in die C++ Programmierung für Ingenieure

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Schleifen in C/C++/Java

Programmieren I. Kapitel 5. Kontrollfluss

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Quick-Start Informatik Programmieren in Python Teil 1

Einführung in die Programmierung mit VBA

Algorithmen zur Datenanalyse in C++

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Imperative Programmierung in Java: Kontrollfluß II

4.4 Imperative Algorithmen Verzweigung und Iteration

Girls Day 2017 Programmierung

Webbasierte Programmierung

Aufgabe Total Punkte

3. Anweisungen und Kontrollstrukturen

Grundlagen der Programmierung

Grundlagen der Programmierung

Werkzeuge zur Programmentwicklung

Syntax von LOOP-Programmen

C.3 Funktionen und Prozeduren

Einführung in die Programmierung Wintersemester 2011/12

Tutoraufgabe 1 (Typcasting):

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Angewandte Mathematik und Programmierung

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Operatoren in C/C++ und Java:

4.Grundsätzliche Programmentwicklungsmethoden

Algorithmen und ihre Programmierung

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

Vorkurs Informatik WiSe 17/18

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Programmierkurs Java

Programmierkurs Python I

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

System.out.println("TEXT");

Schleifen: Immer wieder dasselbe tun

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programming 101. Carl Herrmann IPMB & DKFZ

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

05 For-Schleifen. For-Schleifen 1/7 Was ist eine Schleife?

Algorithmen und ihre Programmierung -Teil 2-

Algorithmen und Datenstrukturen (für ET/IT)

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Transkript:

Giuseppe Accaputo 2. Oktober, 2014

Plan für heute 1. Fragen & Nachbesprechung Übung 2 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 3 Informatik 1 (D-BAUG) Giuseppe Accaputo 2

Nachbesprechung Übung 2: Aufgabe 2.1 IF-Abfrage Eine IF-Abfrage ist eine Anweisung; deshalb wird sie mit einem Strich-Punkt abgeschlossen sollte eine weitere Anweisung darauf folgen IF... THEN Anweisung ; IF... THEN Anweisung_1 ELSE Anweisung_2 ; IF... THEN Anweisung_1 ELSE IF... THEN Anweisung_2 ELSE Anweisung_3 ; Informatik 1 (D-BAUG) Giuseppe Accaputo 3

Nachbesprechung Übung 2: Aufgabe 2.1 Syntaxfehler Syntaxfehler: Fehler im Programmcode, die durch unkorrektes Verwenden der Sprache erzeugt und vom Compiler während der Kompilierung erkannt werden Beispiele: fehlender Strich-Punkt zwischen zwei Anweisungen, ungültiger Variablennamen Analogie: Artikel für ein Magazin schreiben Author des Artikels Programmierer Artikel Programmcode Person, welche beim Magazin für die Veröffentlichung des Textes verantwortlich ist und den Text vor der Veröffentlichung auf grammatikalische Fehler überprüft Compiler Grammatikalische Fehler im Artikel Syntaxfehler Informatik 1 (D-BAUG) Giuseppe Accaputo 4

Nachbesprechung Übung 2: Aufgabe 2.1 Welche Fehler erkennt der Compiler nicht? Semantische Fehler: Fehler in der Bedeutung des Programms Beispiel: Wir führen eine Anweisung nur dann aus, wenn der Benutzer über 18 Jahre alt ist, schreiben jedoch im Programmcode IF alter < 18 THEN Anweisung ; Der Compiler wird diesen Code kompilieren da er syntaktisch korrekt ist, jedoch ist er semantisch falsch (Anweisung wird für Benutzer ausgeführt, welche unter 18 Jahre alt sind). Der in dieser Situation semantisch korrekte Code würde wie folgt aussehen: IF alter > 18 THEN Anweisung ; Informatik 1 (D-BAUG) Giuseppe Accaputo 5

Nachbesprechung Übung 2: Aufgabe 2.1 Aufgabe 2.1: Prog5.pas Welches sind die Syntaxfehler (die Fehler, welche vom Compiler erkannt werden) im folgenden Codeausschnitt?... IF y < 0 THEN x := 1; z := 3; IF y = 0 THEN x :=5; ELSE x := 6;... Informatik 1 (D-BAUG) Giuseppe Accaputo 6

Nachbesprechung Übung 2: Aufgabe 2.1 Aufgabe 2.1: Prog5.pas und Semantik... IF y < 0 THEN BEGIN x := 1; z := 3; END IF y = 0 THEN x :=5 ELSE x := 6;... Informatik 1 (D-BAUG) Giuseppe Accaputo 7

Zusammenfassung der Vorlesung (Woche 40) De Morgansche Regeln De Morgansche Regeln 1. not (a and b) (not a) or (not b) 2. not (a or b) (not a) and (not b) Informatik 1 (D-BAUG) Giuseppe Accaputo 8

Zusammenfassung der Vorlesung (Woche 40) Short-Circuit Auswertung (Kurzschlussauswertung) Short-Circuit Auswertung (Kurzschlussauswertung) Regeln: a and b: Werte zuerst a aus; werte b nur aus falls a wahr ist a or b: Werte zuerst a aus; werte b nur aus falls a falsch ist Beispiele: Folgende Werte sind gegeben: a := 1; b := 2; c := false; Was wird in den folgenden Zeilen ausgewertet? IF (a = b) and c THEN Anweisung_1; IF (a = b) or c THEN Anweisung_2; Informatik 1 (D-BAUG) Giuseppe Accaputo 9

Zusammenfassung der Vorlesung (Woche 40) Schleifen WHILE-DO WHILE Bedingung DO Anweisung ; In Worte: SOLANGE Bedingung wahr ist, führe Anweisung aus Programmierer ist verantwortlich dafür, dass die WHILE-Schleife nach einer endlichen Anzahl Iterationen abbricht Informatik 1 (D-BAUG) Giuseppe Accaputo 10

Zusammenfassung der Vorlesung (Woche 40) Schleifen WHILE-DO ein: Beispiel VAR a : BOOLEAN ; BEGIN a := true ; WHILE a DO Writeln ( Hello, world! ) END. Wie sieht die Ausgabe auf der Konsole aus? Informatik 1 (D-BAUG) Giuseppe Accaputo 11

Zusammenfassung der Vorlesung (Woche 40) Schleifen 1. 2. FOR-Schleife: Syntax FOR Variable := Startwert TO Endwert DO Anweisung ; FOR Variable := Startwert DOWNTO Endwert DO Anweisung ; In Worte: Zähle Variable von Startwert bis Endwert und führe jedes mal Anweisung aus Informatik 1 (D-BAUG) Giuseppe Accaputo 12

Zusammenfassung der Vorlesung (Woche 40) Schleifen FOR-Schleife: Informationen zur Anwendung Variable, Startwert und Endwert müssen als INTEGER Variablen deklariert werden: VAR Variable, Startwert, Endwert : INTEGER ; Anweisung kann eine einzelne Anweisung sein oder ein Block bestehend aus mehreren Anweisungen Informatik 1 (D-BAUG) Giuseppe Accaputo 13

Zusammenfassung der Vorlesung (Woche 40) Schleifen FOR-Schleife: Informationen zur Anwendung Variable ist eine read-only Variable, d.h. sie kann in der FOR-Schleife nicht verändert werden (nur lesen erlaubt). Folgendes funktioniert also nicht: FOR Variable := Startwert TO Endwert DO Variable := Variable + 1; = Variable wird verändert: Variable := Variable + 1 Folgendes funktioniert stattdessen: FOR Variable := Startwert TO Endwert DO NeueVariable := Variable + 1; = Variable wird nur gelesen (read-only) Informatik 1 (D-BAUG) Giuseppe Accaputo 14

Zusammenfassung der Vorlesung (Woche 40) Schleifen FOR-Schleife: ein Beispiel VAR start_v, end_v, curr_ v : INTEGER ; BEGIN start_v := 1; end_ v := 5; FOR curr_ v := start_ v TO end_ v DO Writeln ( curr_v ); END. Wie sieht die Ausgabe auf der Konsole aus? Informatik 1 (D-BAUG) Giuseppe Accaputo 15

Zusammenfassung der Vorlesung (Woche 40) Schleifen REPEAT-UNTIL REPEAT Anweisung_ 1 ; Anweisung_ 2 ;...; Anweisung_N ; UNTIL Bedingung ; In Worte: Wiederhole die Anweisungssequenz Anweisung_1, Anweisung_2,..., Anweisung_N bis Bedingung erfüllt ist Informatik 1 (D-BAUG) Giuseppe Accaputo 16

Zusammenfassung der Vorlesung (Woche 40) Schleifen REPEAT-UNTIL: Beispiel Fordere den Benutzer auf, für das Geschlecht entweder m oder w einzugeben. Gibt der Benutzer stattdessen einen anderen Buchstaben ein, so wird er solange aufgefordert das Geschlecht einzugeben, bis er korrekterweise entweder m oder w eingegeben hat: REPEAT Write ( Bitte Geschlecht eingeben (m/w): ); Readln ( input ); UNTIL ( input = m ) or ( input = w ); Informatik 1 (D-BAUG) Giuseppe Accaputo 17

Zusammenfassung der Vorlesung (Woche 40) Wann soll ich welche Schleifenart verwenden? Wann soll ich welche Schleife verwenden? Verwende eine FOR-Schleife wenn die Anzahl der Iterationen bekannt ist Verwende eine WHILE-DO-Schleife wenn die Anzahl der Iterationen unbekannt ist Unterschied zwischen WHILE-DO und REPEAT-UNTIL: WHILE-DO überprüft zuerst ob Bedingung erfüllt ist und führt erst dann die Anweisung aus WHILE-DO-Schleife wird abgebrochen, wenn Bedingung nicht erfüllt ist REPEAT-UNTIL führt die Anweisung mindestens einmal aus und überprüft erst dann, ob die Bedingung erfüllt ist REPEAT-UNTIL-Schleife wird abgebrochen, wenn Bedingung erfüllt ist Informatik 1 (D-BAUG) Giuseppe Accaputo 18

Sonstiges FOR-TO WHILE-DO Jede FOR-TO-Schleife kann in eine WHILE-DO-Schleife umgewandelt werden (Umkehrung gilt nicht immer) FOR Variable := Startwert TO Endwert DO Anweisung ; Variable := Startwert ; ist äquivalent zu WHILE Variable <= Endwert DO BEGIN Anweisung ; Variable := Variable + 1; END Informatik 1 (D-BAUG) Giuseppe Accaputo 19

Tipps zur Übung 3 Tipps zur Übung 3 Aufgabe 3.1: Unbedingt lösen! Aufgabe 3.2: Auf Programmierstil achten student := str = w ; ist die elegantere Version des folgenden Codeausschnitts (beide tun dasselbe): IF str = w THEN student = true ELSE student = false ; Aufgabe 3.3: Bezüglich der Wahl der Schliefe siehe Slide 18 Informatik 1 (D-BAUG) Giuseppe Accaputo 20

Tipps zur Übung 3 Reminder: Präzedenz und die Boole schen Operatoren Präzedenz: Boole sche Operatoren haben höhere Präzedenez als Vergleichsoperatoren: 1. Klammern: (...) 2. Unäre Operatoren: +, -, not 3. Punkt-Operatoren: *, /, div, mod, and 4. Strich-Operatoren: +, -, or, xor 5. Vergleichs-Operatoren: =, <>, <, >, <=, >= Informatik 1 (D-BAUG) Giuseppe Accaputo 21

Tipps zur Übung 3 Beispiel: Präzedenz und die Boole schen Operatoren Beispiel: VAR a,b,c,d : INTEGER ; BEGIN a := 1; b := 2; c := 3; d := 4; IF a < b and c < d THEN Writeln ( Yes ) ELSE Writeln ( No ); END. Wie sieht die Ausgabe auf der Konsole aus? Informatik 1 (D-BAUG) Giuseppe Accaputo 22

Tipps zur Übung 3 Beispiel: Präzedenz und die Boole schen Operatoren Beispiel: VAR a,b,c,d : INTEGER ; BEGIN a := 1; b := 2; c := 3; d := 4; IF (a < b) and (c < d) THEN Writeln ( Yes ) ELSE Writeln ( No ); END. = Wird nun erfolgreich kompiliert und gibt Yes aus Informatik 1 (D-BAUG) Giuseppe Accaputo 23