1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

Ähnliche Dokumente
Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

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

Algorithmen und Datenstrukturen (für ET/IT)

Informatik I. Informatik I. 4.1 Funktionsaufrufe. 4.2 Mathematische Funktionen. 4.3 Funktionsdefinitionen. 4.4 Variablengültigkeitsbereich

Java Ablaufsteuerung (Beispiele)

Informatik I. 4. Funktionen: Aufrufe und Definitionen. 25. Oktober Albert-Ludwigs-Universität Freiburg. Informatik I.

3. Grundanweisungen in Java

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

1 Funktionsaufrufe. Informatik I: Einführung in die Programmierung 4. Funktionen: Aufrufe und Definitionen. Standardfunktionen: Typen-Konversion

Kontrollstrukturen. Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue

Programmieren in Python

Java Anweisungen und Ablaufsteuerung

Informatik I. Informatik I Iteratoren Generatoren Das Modul itertools. Iterierbare Objekte Iteratoren. Python-Interpreter

Programmieren in Python

Informatik I: Einführung in die Programmierung

Angewandte Mathematik und Programmierung

Programming 101. Carl Herrmann IPMB & DKFZ

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

Schleifen in C/C++/Java

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Javakurs für Anfänger

Algorithmen und ihre Programmierung -Teil 2-

Grundlagen der Programmierung

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Schleifen in C/C++/Java

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

Python für Linguisten

WS2018/ Oktober 2018

Javakurs für Anfänger

Die Notwendigkeit für wiederholte Programmausführungen. Agenda für heute, 11. März, 2010

Datentypen und Operatoren

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Tutorübungen

Programmieren I. Kapitel 5. Kontrollfluss

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Programmieren in Python

Ideen und Konzepte der Informatik

Programmieren in C/C++ und MATLAB

Programmieren in Python 3. Variablen, Funktionen und Bedingungen

Einführung in die Informatik I

Grundlagen der Programmierung

Anweisungen in Python

A2.1 Python. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A2.1 Python. A2.2 Kurzer Sprachüberblick. A2.3 Selectionsort in Python

Informatik I: Einführung in die Programmierung

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Modellierung und Programmierung 1

Steuerungsstrukturen. Ablaufsteuerung der PL/SQL Ausführung. IF Anweisungen. Einfaches IF

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Programmieren 1 C Überblick

Arbeitsblätter für Algorithmierung und Strukturierung

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

ModProg 15-16, Vorl. 5

Algorithmik und Programmieren

Kontrollstrukturen (1)

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Bedingte Anweisungen

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

Algorithmen und Datenstrukturen

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Einführung in die Programmierung Wintersemester 2011/12

Operatoren (1) Operatoren (2)

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Kontrollstrukturen -- Schleifen und Wiederholungen

Funktionen in Python

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen"

Abschnitt 11: Korrektheit von imperativen Programmen

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Einführung in die Programmierung mit VBA

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

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Python Zahlen, Strings Logik Kontrollstrukturen. Scriptsprachen. Python Basics. Sascha Winter

5. Elementare Befehle und Struktogramme

Bisher. Programme. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Algorithmen und Datenstrukturen

Kapitel 15: Von dynamischen zu statischen Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

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

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

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Korrektheit und Hoare-Kalkül für Imperative Programme

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

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

Kapitel 15: Von dynamischen zu statischen Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2018/2018. Inhaltsverzeichnis 1

Transkript:

1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren Neben arithmetischen Ausdrücken gibt es noch Boolesche Ausdrücke mit oder als Werte. Die einfachsten Booleschen Ausdrücke sind Vergleiche mit dem Gleichheitsoperator ==. Die Werte und gehören zum und werden automatisch nach int konvertiert: >>> 42 == 42 >>> 'egg' == 'spam' >>> type('egg' == 'spam') <class 'bool'> >>> + 2 Es gibt die folgenden Vergleichsoperatoren: symbolisch Bedeutung x == y Ist x gleich y? x!= y Ist x ungleich y? x > y Ist x echt größer als y? x < y Ist x echt kleiner als y? x >= y Ist x größer oder gleich y? x <= y Ist x kleiner oder gleich y? Strings werden anhand der lexikographischen Ordnung verglichen, wobei für Einzelzeichen der Unicode-Wert (Ergebnis der ord-funktion) benutzt wird. Werte unvergleichbarer Typen sind ungleich. Bei den Anordnungsrelationen gibt es einen Fehler! 27. Oktober 2015 B. Nebel Info I 4 / 21 27. Oktober 2015 B. Nebel Info I 5 / 21

Vergleichsoperatoren in Aktion >>> 'spamer' < 'spam' >>> 'Spam' < 'spam' >>> 2.1-2.0 == 0.1 >>> < >>> 42 == 'zweiundvierzig' >>> 41 < '42' Traceback (most recent call last): TypeError: unorderable types: int() < str() 27. Oktober 2015 B. Nebel Info I 6 / 21 Es gibt die folgenden logischen : or, and, not mit aufsteigender Operatorpräzedenz. Bedeutung wie in Boolescher Logik, d.h. x < 10 or y > 100 hat den Wert, wenn x kleiner als 10 ist, oder falls das nicht der Fall ist, wenn y größer als 100 ist. 1 <= x and x <= 10 hat den Wert, wenn x zwischen 1 und 10 (inklusive) liegt. Dies kann in Python auch so geschrieben werden (wie in mathematischer Notation): 1 <= x <= 10. not(x < y) ist wenn x y ist. Alle Nullwerte, d.h. None, 0, 0.0, (0 + 0j) und '', werden wie behandelt, alle anderen Werte wie! Die Auswertung wird beendet, wenn das Ergebnis klar ist (Unterschied bei Seiteneffekten und Werten äquivalent zu 27. Oktober ). 2015 B. Nebel Info I 7 / 21 in Aktion 2 >>> 1 < 5 < 10 >>> 5 < 1 or 'spam' < 'egg' >>> 'spam' or 'spam' >>> '' or 'default' 'default' >>> 'egg' and 'spam' 'spam' >>> 0 and 10 < 100 0 >>> not 'spam' and (None or 0.0 or 10 < 100) el el 27. Oktober 2015 B. Nebel Info I 8 / 21 27. Oktober 2015 B. Nebel Info I 10 / 21

Bedingte Ausführung If-else Bisher wurde jede eingegebene ausgeführt. Manchmal möchte man aber eine oder einen sblock nur unter bestimmten ausführen:. print('x ist strikt positiv') x ist strikt positiv >>> x = 0 print('x ist strikt positiv') >>> el Möchte man im positiven und im negativen Fall etwas machen:. >>> if x%2 == 0: print('x ist gerade') else: print('x ist ungerade') x ist ungerade Soll ein sblock leer bleiben, kann man dafür pass einsetzen. el 27. Oktober 2015 B. Nebel Info I 11 / 21 27. Oktober 2015 B. Nebel Info I 12 / 21 Verkettete bedingten en Geschachtelte Konditionale Will man mehrere Fälle behandeln, gibt es die verketteten bedingten en >>> y = 0 >>> if x < y: print('x ist kleiner als y') elif x > y: print('x ist größer als y') else: print('x und y sind gleich') x ist größer als y Es wird immer der Block ausgeführt, bei dem die Bedingung das erste Mal wahr wird. el Man kann auch bedingte en als Block in bedingten en unterbringen. >>> x = 100 if x < 10: print('kleine positive Zahl') else: print('negative Zahl') >>> Durch Einrückung ist immer klar, wozu die bedingte gehört! el 27. Oktober 2015 B. Nebel Info I 13 / 21 27. Oktober 2015 B. Nebel Info I 14 / 21

3 Oft muss etwas wiederholt gemacht werden, bis ein bestimmter Wert erreicht wird. Hier benutzt man die Schleife: while Bedingung: en Die en werden wiederholt, solange die Bedingung (oder einen äquivalenten Wert) liefert. Damit könnten wir unseren Multiplikationsalgorithmus umsetzen. 27. Oktober 2015 B. Nebel Info I 16 / 21 27. Oktober 2015 B. Nebel Info I 17 / 21 Multiplikations-Algorithmus Multiplikations-Programm in Python Eingabe und Ausgabe Eingabe: Zwei natürliche Zahlen L und R Ausgabe: Das Produkt von L und R Algorithmus 1 Setze P auf 0. 2 Falls R = 0, gebe P als Ergebnis zurück. 3 Addiere L zu P hinzu. >>> def mult(l, r): p = 0 while r!= 0: p = p + l r = r - 1 return p >>> mult(3, 2) 6 4 Reduziere R um 1. 5 Mache bei Schritt 2 weiter. Was passiert hier genau? Visualisierung der Ausführung: http://pythontutor.com 27. Oktober 2015 B. Nebel Info I 18 / 21 27. Oktober 2015 B. Nebel Info I 19 / 21

Ein weiteres Beispiel: Summe aller Zahlen bis n Zusammenfassung Wir wollen alle Zahlen von 1 bis n aufsummieren: n i=1 i. >>> def sumup(n): i = 1 result = 0 while i <= n: result = result + i i = i + 1 return result >>> sumup(10) 55 Ginge auch einfacher: n i=1 = (n+1) n 2 Visualisierung bool is ein weiterer Typ, dessen beide Werte und sind. Vergleiche, wie z.b. == oder <, liefern Boolesche Werte. Boolesche Werte werden automatisch nach int konvertiert, wobei gleich 1 und gleich 0 ist. Alle Nullwerte werden als interpretiert, alle Nichtnullwerte als. Mit if-(elif)-else-en kann man bei der Ausführung verschiedende en wählen. erlauben die bedingte Wiederholung von en im Körper der Schleife. Nutzen Sie pythontutor.com, um Programmausführungen zu verstehen. 27. Oktober 2015 B. Nebel Info I 20 / 21 27. Oktober 2015 B. Nebel Info I 21 / 21