2. Programmierung in C

Ähnliche Dokumente
Anweisungen und Kontrollstrukturen

Operatoren (1) Operatoren (2)

2. Programmierung in C

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

2. Programmierung in C

3. Anweisungen und Kontrollstrukturen

Einstieg in die Informatik mit Java

Arbeitsblätter für Algorithmierung und Strukturierung

einseitige Selektion zweiseitige Selektion

2. Programmierung in C

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

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

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

Arbeitsblätter für Algorithmierung und Strukturierung C #

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

2. Programmierung in C

Grundlagen der Programmierung

Steuerfluss-Konstrukte (1)

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

Objektorientierte Programmierung

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

Webbasierte Programmierung

Grundlagen der Programmierung

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

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

2. Programmierung in C

Grundlagen der C++ und der Java-Programmierung

Einstieg in die Informatik mit Java

Javakurs für Anfänger

Grundlagen der Programmierung

BKTM - Programmieren leicht gemacht.

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

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

Labor Software-Entwicklung 1

2.5 Programmstrukturen Entscheidung / Alternative

4. Ablaufsteuerung (Kontrollstrukturen)

Schleifen in C/C++/Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

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

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

2. Programmierung in C

Wiederholungen / Schleifen

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Javakurs für Anfänger

Flussdiagramm / Programmablaufplan (PAP)

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Einführung in die Programmierung Wintersemester 2011/12

Kompaktkurs Einführung in die Programmierung. 4. Kontrollstrukturen

Java Anweisungen und Ablaufsteuerung

Programmieren in C/C++ und MATLAB

Vorlesung Programmieren

Javakurs für Anfänger

2. Programmierung in C

2. Programmierung in C

Grundlagen der Programmierung

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

Welche Informatik-Kenntnisse bringen Sie mit?

Einfache Bedingte Ausführung

Einführung in die Programmierung II. 3. Kontrollstrukturen

2. Programmierung in C

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Dr. Monika Meiler. Inhalt

Vorlesung Programmieren

4.2 Programmiersprache C

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

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Kontrollstrukturen -- Schleifen und Wiederholungen

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

2. Programmierung in C

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

Schleifenanweisungen

Einführung in die Programmierung

Transkript:

2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss) Funktionen Felder (Arrays) Zeiger, Zeigerarithmetik, Zeiger-Dereferenzierung Zeichenketten (Strings) Benutzerdefinierte Datentypen Speicherverwaltung und Datenstrukturen Dateiarbeit Bitlevel-Verarbeitung Peter Sobe 1

Anweisungen und Kontrollstrukturen Anweisungen werden im Programm nacheinander als Sequenz abgearbeitet, wenn nichts anderes angegeben ist. Eine Anweisung kann Ausdrücke enthalten. Eine typische Anweisung ist eine Zuweisung, die auf der linken Seite eine Variable enthält, den Operator = und rechts einen Ausdruck aufweist. Der Ausdruck rechts wird zur Laufzeit des Programms ausgerechnet und sein Wert wird der Variablen links zugewiesen. Beispiel: sekunden_gesamt = 60*minuten+sekunden; Eine Anweisung ist auch der Aufruf einer Funktion, zum Beispiel: printf( Der Erdumfang betraegt %lf km\n, 2.0*3.14159*erdradius); Peter Sobe 2

Anweisungen und Kontrollstrukturen Verbundanweisungen (auch als Blöcke bezeichnet) mit lokalen Variablen: { int x, y, z; x=1; y=5; z=2*x+4*y; printf("%d %d %d\n", x,y,z); Peter Sobe 3

Kontrollstrukturen Beeinflussung des Kontrollflusses, d.h. der Reihenfolge, wie die Anweisungen abgearbeitet werden. 1. Sequenz 2. Selektion (auch Alternative) zwingend notwendig zur Formulierung von Algorithmen 3. Zyklus 4. Funktionsaufruf (spezielle Form der Unterprogramme) und Varianten von 2,3,4 Peter Sobe 4

Selektion: if Die if-anweisung ist das Ausdrucksmittel für die Selektion in C. if ( Bedingung) Anweisung; if (Bedingung) Verbundanweisung Beispiel: int monat; printf("bitte Monat Ihres Geburtsdatums eingeben:"); scanf("%d",&monat); if (monat<1 monat>12) { printf( falscher Wert für Monat eingegeben!\n"); exit(exit_failure); Peter Sobe 5

Selektion: if if ( Bedingung ) Anweisung1; else Anweisung2; if (Bedingung) Verbundanweisung1 else Verbundanweisung2 Beispiel: char kuehlen = 0, heizen = 0; if (temperatur-zielwert > 2) { printf("zu warm -> kuehlen\n"); kuehlen = 1; else { if (zielwert temperatur > 2 ) { printf( zu kalt -> heizen\n"); heizen = 1; Peter Sobe 6

Mehrfachselektion: switch-case Zur Selektion unter mehreren alternativen Zweigen switch(fallausdruck) { case Wert1: Anweisung1; break; case Wert2: Anweisung2; break; case Wert_n: Anweisung_n; break; default: // kann entfallen Anweisung0; Peter Sobe 7

Mehrfachselektion: switch-case Beispiel unsigned int tag, monat, jahr; // Eingabe des Datums switch(monat) { case 1: printf("januar"); break; case 2: printf("februar"); break; case 3: printf("maerz"); break; default: printf("-undefiniert-"); In einen Fall (case) wird bei entsprechendem Wert (Konstante) des Fallausdrucks gesprungen. Nach case folgten eine oder mehrere Anweisungen. Die Abarbeitung wird fortgestezt bis das erste break erreicht wird. Achtung keine Verbundanweisung mit { notwendig. Die break-anweisung ist erforderlich, damit nicht zusätzlich der jeweils folgende Fall auch abgehandelt wird! Peter Sobe 8

Zyklus: while Allgemeine Formen: while ( Bedingung ) Anweisung; while ( Bedingung ) Verbundanweisung Die Anweisung oder Verbundanweisung wird solange wiederholt ausgeführt, wie die Bedingung zutrifft. Durch Änderungen der Variablenwerte wird die Bedingung i.d.r. nach endlich vielen Durchläufen irgendwann nicht mehr zutreffen und die Wiederholung endet. Trifft die Bedingung bei Eintritt in die Schleife nicht zu, wird die Anweisung nicht (auch nicht ein einziges mal) ausgeführt. Peter Sobe 9

Zyklus: while Beispiel: int summe = 0; int i = 10; while (i >= 1) { // entspricht while (i>0), entspricht while (i) summe = summe + i; i = i-1; printf( Die Summe der Zahlen von 1 bis 10 ist %d \n, summe);. Peter Sobe 10

Zyklus: do-while Allgemeine Formen: do Anweisung; while ( Bedingung ); do Verbundanweisung while (Bedingung); Die do-while-schleife wird mindestens einmal durchlaufen. Die Anweisung oder Verbundanweisung wird solange noch einmal ausgeführt, wie die Bedingung nach der Ausführung zutrifft. Typischerweise ändert die Anweisung oder Verbundanweisung den Inhalt der Variablen, die für die Bedingung benutzt werden. Damit wird erreicht, dass die Wiederholung irgendwann endet. Peter Sobe 11

Zyklus: do-while Beispiel: int summe = 0; int i = 10; do { summe = summe + i; i = i - 1; while (i >= 1); printf( Die Summe der Zahlen von 1 bis 10 ist %d \n,summe); Peter Sobe 12

Zähl-Zyklus: for Spezielle Form für einen Zyklus, die alle zur Zyklensteuerung benutzten Anweisungen und Ausdrücke zusammenfasst: for (Lv=anfangswert ; Lv<=endwert ; Lv=Lv+schrittwert) Anweisung; Lv dient hier als Zählvariable Allgemeine Formen: for ( Init-Anweisung ; Bedingungs-Ausdruck ; Schritt-Anweisung) Anweisung; for ( Init-Anweisung ; Bedingungs-Ausdruck ; Schritt-Anweisung ) Verbundanweisung Solange die Bedingung erfüllt ist, wird die Anweisung wiederholt. Die Ausdrücke in der for-schleife können auch leer sein. Peter Sobe 13

Zähl-Zyklus: for Beispiel 1: int i; int summe = 0; for (i = 10; i > 0; i=i-1) summe = summe + i; printf( Summe: %d \n,summe); Beispiel 2: int i; int summe = 0, produkt=1; for (i = 10; i > 0; i=i-1) { summe = summe + i; produkt = produkt * i; printf( Summe: %d \n,summe); printf( Produkt: %d \n,produkt); Peter Sobe 14

Zähl-Zyklus: for Wirkungsweise einer for-schleife als Programmablaufplan: for ( Init-Anweisung ; Bedingungs-Ausdruck ; Schritt-Anweisung ) Anweisung Init-Anweisung Bedingungs -Ausdruck ja nein Anweisung Schritt-Anweisung Peter Sobe 15

break-anweisung Die break-anweisung kann in allen Schleifen verwendet werden, um die Iteration vorzeitig zu beenden, d.h. vor Erreichen der normalen Ende-Bedingung. Es wird danach aus der Schleife herausgegangen. Anwendung für while-, do-while- und for-schleifen Beispiel: for (i=0; i<imax; i++) { if (bedingung1) { break;... if (bedingung2) { break;... if (bedingung3) { break;... Peter Sobe 16

continue-anweisung Die continue-anweisung kann in allen Schleifen verwendet werden, um die aktuelle Ausführung des Schleifenkörpers vorzeitig zu beenden, d.h. vor Erreichen der normalen Ende-Bedingung. Es wird dann mit der folgenden Iteration fortgesetzt. Anwendung für while-, do-while- und for-schleifen Beispiel: for (i=0; i<imax; i++) { // do something... if (bedingung) { continue;... // do somethinge else... Peter Sobe 17

Nutzung der verschiedenen Zyklen Die drei verschiedenen Varianten für den Zyklus while, do-while und for können alternativ verwendet werden. Aspekte für eine sinnvolle Auswahl: Verwendung der while-anweisung, wenn die Anzahl der Iterationen n unbekannt ist, mit n >= 0 (auch null Durchläufe möglich!) Verwendung der do-while-anweisung, wenn im Gegensatz dazu n>=1 (mindestens ein Durchlauf!) und Bevorzugung des for-zyklus dann, wenn die Anzahl der Iterationen schon bekannt ist. Peter Sobe 18