Willkommen . . . . . . Studentinnen und Studenten der Studiengänge • • • Umweltnaturwissenschaften Erdwissenschaften Agrarwissenschaften zur Vorlesung http://www.pup.ethz.ch/ Agenda für heute, 25. Februar, 2010 • Begrüssung • Ziele und Struktur der Lehrveranstaltung, Leistungskontrolle • Grundlagen der Programmierung • Die Arbeitsumgebungen • Der Aufbau eines Pascal-Programms • Fehlerquellen Lesen Sie den Begleittext Kapitel 1 & 2. Programmieren und Problemlösen 2/16 © Departement Informatik, ETH Zürich Das Team Dozent Prof. Dr. H. Hinterberger Departement Informatik Assistierende Hilfsassistent Karl Presser Kajetan Abt Barbara Scheuner Tanja Werthmüller Programmieren und Problemlösen 3/16 © Departement Informatik, ETH Zürich • Begrüssung • Ziele und Struktur der Lehrveranstaltung, Leistungskontrolle • Grundlagen der Programmierung • Die Arbeitsumgebungen • Der Aufbau eines Pascal-Programms • Fehlerquellen Ziele und Struktur der Vorlesung, Leistungskontrolle In dieser Lehrveranstaltung lernen Sie: • Die Grundlagen der Programmierung verstehen und anwenden • Einen PC mit Pascal und Delphi zu programmieren So arbeiten Sie: • Vorlesung: 1h • Begleitetes Selbststudium + Übungen 2h • Selbständiges Arbeiten Programmieren und Problemlösen 4/16 © Departement Informatik, ETH Zürich Themen der 7 Übungen, Leistungskontrolle Abgabetermine Übung 1: Übung 2: Übung 3: Übung 4: Übung 5: Übung 6: Übung 7: Grundlagen, erste Programme (TP) Wiederholte Programmausführung Arrays, Prozeduren Grafische Objekte (Delphi) Parametr. Prozeduren, Funktionen Externe Daten verarbeiten Bilddaten verarbeiten Zwischenprüfung Semesterende-Prüfung 11. März 11. März 25. März 15. April 29. April 13. Mai 3. Juni 15. April (45 Min.) 27. Mai, 15 – 16 Uhr Leistungskontrolle: • Alle 7 Übungen bearbeiten und abgegeben • Semesterende-Prüfung bestehen (Note 4 oder besser) Programmieren und Problemlösen 5/16 © Departement Informatik, ETH Zürich Ihre Computerarbeitsplätze Raum Anzahl CAB H 56 CAB H 57 20 20 Programmieren und Problemlösen Typ PC/Windows 7 PC/Windows 7 6/16 © Departement Informatik, ETH Zürich Themen der Vorlesungen 1 2 3 4 5 6 7 8 9 10 Datum Einführung Bedingte Programmausführung Wiederholte Programmausführung Strukturierte Variablen: Array Prozeduren Delphi, imp. vs. oo Programmieren Vorlesungsfrei (Osterferien) Zwischenprüfung Param. Prozeduren, Bespr. Zwischenprüfung Permanente Datenspeicherung: Files Strukturierte Variablen: Record Vorlesungsfrei (Auffahrt) Strukturierte Programmierung: Units Semesterende-Prüfung Vorlesungsfrei (Synthesewoche UWIS) Programmieren und Problemlösen 7/16 25. Feb. 4. März 11. März 18. März 25. März 1. April 8. April 15. April 22. April 29. April 6. Mai 13. Mai 20. Mai 27. Mai 3. Juni © Departement Informatik, ETH Zürich • Begrüssung • Ziele und Struktur der Lehrveranstaltung, Leistungskontrolle • Grundlagen der Programmierung • Die Arbeitsumgebungen • Der Aufbau eines Pascal-Programms • Fehlerquellen Grundlagen der Programmierung Kapitel 1 lesen xyz.pas Quellprogramm tpc.exe fpc.exe Computer Pascalcompiler xyz.exe Objektprogramm Computer Eingabedaten Ausgabedaten Programmieren und Problemlösen 8/16 © Departement Informatik, ETH Zürich • Begrüssung • Ziele und Struktur der Lehrveranstaltung, Leistungskontrolle • Grundlagen der Programmierung • Die Arbeitsumgebungen • Der Aufbau eines Pascal-Programms • Fehlerquellen Die Arbeitsumgebungen Konsole –Text Konsole – Grafik Befehlszeilen-Ebene (DOS) Befehlszeilen-Ebene (DOS) Werkzeuge: Werkzeuge: • Texteditor Notepad • Pascal-compiler tpc.exe • Programmeditor turbo.exe Programmieren und Problemlösen 9/16 Desktop Windows Werkzeuge: • "Visuelle" Programmierumgebung delphi.exe © Departement Informatik, ETH Zürich • Begrüssung • Ziele und Struktur der Lehrveranstaltung, Leistungskontrolle • Grundlagen der Programmierung • Die Arbeitsumgebungen • Der Aufbau eines Pascal-Programms • Fehlerquellen Eine informelle Einführung Individueller Programmname Eingabe-/Ausgabeparameter program ; Programmkopf Deklarationen begin Programmblock Anweisungen Prozedur-/ Funktionsaufrufe end. Programmieren und Problemlösen 10/16 © Departement Informatik, ETH Zürich Eine informelle Einführung program quadratwurzel (input, output); var x: real; Prozedur für die Dateneingabe begin read (x); write (sqrt (x)) end. Standardfunktion von Pascal Prozedur für die Datenausgabe Programmieren und Problemlösen 11/16 © Departement Informatik, ETH Zürich Deklarationsabschnitt: Definition von Variablen und Konstanten const c = 22; meldung = 'sind Sie sicher?'; Konstantenbezeichner Wert (Literal) var x: real; temp: integer; Variablenbezeichner Programmieren und Problemlösen Datentyp 12/16 © Departement Informatik, ETH Zürich Eine informelle Einführung Pascal setzt standardmässig (input, output) program fahrenheit; {Autor: Peter Hacker, Juni, 2008} Kommentar var x, y: real; begin read (x); y:= (x - 32) * 5 / 9; Zuweisungsanweisung write (y:5:2) end. Programmieren und Problemlösen 13/16 © Departement Informatik, ETH Zürich Zuweisungsanweisung Variablenbezeichner Arithmetischer Ausdruck y := (x - 32) * 5 / 9; Zuweisungssymbol Ein arithmetischer Ausdruck erzeugt einen einzigen Wert. Dieser Wert ist von einem bestimmten Datentyp. Die Resultate der arithmetischen Operationen bestimmen den Datentyp. Programmieren und Problemlösen 14/16 © Departement Informatik, ETH Zürich • Begrüssung • Ziele und Struktur der Lehrveranstaltung, Leistungskontrolle • Grundlagen der Programmierung • Die Arbeitsumgebungen • Der Aufbau eines Pascal-Programms • Fehlerquellen Fehlerquellen Syntaxfehler xyz.pas Laufzeitfehler Quellprogramm Computer Pascalcompiler xyz.exe Objektprogramm Computer Eingabedaten Syntax-Fehler werden während der Übersetzung des Programms entdeckt. Laufzeitfehler entstehen während der Programmausführung Programmieren und Problemlösen 15/16 Ausgabedaten © Departement Informatik, ETH Zürich Fehlerquellen Illegale Instruktion (z.B. Division durch 0) Laufzeit-Fehler Fehlerhafte Eingabe (z.B. Zeichen statt Zahl) Falsche Programmlogik (z.B. falsche Arithmetik) (semantische Fehler) Programmieren und Problemlösen 16/16 © Departement Informatik, ETH Zürich