Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else



Ähnliche Dokumente
Übersicht Programmablaufsteuerung

Programmierung in C. Grundlagen. Stefan Kallerhoff

Fallunterscheidung: if-statement

Angewandte Mathematik und Programmierung

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C/C++ Programmierung

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen und Funktionen in C

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Tutorium Rechnerorganisation

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Informatik Repetitorium SS Volker Jaedicke

Dr. Monika Meiler. Inhalt

Erwin Grüner

Sin-Funktion vgl. Cos-Funktion

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

Projektverwaltung Problem Lösung: Modulare Programmierung

Diana Lange. Generative Gestaltung Operatoren

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Einführung in die Programmierung

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

C-Programmierung unter TOS ATARI ST

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Klausur in Programmieren

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Klausur in Programmieren

Einführung in die C-Programmierung

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Übungen zu C++ Kapitel 1

Methodische Grundlagen des Software Engineering - Übung 9

Einführung in die Programmierung

Kurze Einführung in die Programmiersprache C++ und in Root

Klausur in Programmieren

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Übungen Programmieren 1 Felix Rohrer. Übungen

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Programmierkurs Java

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Microcontroller / C-Programmierung Selbststudium Semesterwoche 1

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

"Alles, was einen Wert zurueckliefert, ist ein Ausdruck." Konstanten, Variablen, "Formeln" oder auch Methoden koennen Werte zurueckgeben.

Entwurf von Algorithmen - Kontrollstrukturen

5. Tutorium zu Programmieren

Hochschule München, FK 03 FA SS Ingenieurinformatik

Zählen von Objekten einer bestimmten Klasse

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Die Programmiersprache C99: Zusammenfassung

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Dr. Monika Meiler. Inhalt

25 kann ohne Rest durch 5 geteilt werden! ist wahr

1 Vom Problem zum Programm

Linux Prinzipien und Programmierung

EiP Übung

Die Programmiersprache C

Korrelation (II) Korrelation und Kausalität

Klausur C-Programmierung / / Klingebiel / 60 Minuten / 60 Punkte

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Lua Grundlagen Einführung in die Lua Programmiersprache

Entscheidungen und Wertkonstanten

Informatik Grundlagen, WS04, Seminar 13

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Modul 122 VBA Scribt.docx

Modellierung und Programmierung 1

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Programmiervorkurs WS 2012/2013. Schleifen und Methoden

Um überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Java Einführung Operatoren Kapitel 2 und 3

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Einführung in. Logische Schaltungen

Zur drittletzten Zeile scrollen

Ingenieurinformatik Diplom-FA (C-Programmierung)

Einführung in die Programmierung

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Gegenüberstellung von Assembler- und C-Programmierung

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Multimedia im Netz Wintersemester 2011/12

Datenbanken Microsoft Access 2010

Programmieren in Haskell Einführung

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

Übung 9 - Lösungsvorschlag

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

C Überlebenstraining

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Kontrollstrukturen - Universität Köln

Lehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/

Grundlagen von C. Ausarbeitung von Jonas Gresens

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Delegatesund Ereignisse

Transkript:

Kontrollstrukturen 1. Bedingter Ablauf: if, if-else 2. Blöcke von Code 3. Wiederholungsschleife: for mit Inkrement und Dekrement Operatoren 4. erweiterte Eigenschaften von printf() 5. Die relationalen und logischen Operatoren in C 6. Einlesen von Zeichen 7. verschachtelte if Anweisungen 8. while und do while Schleifen 9. Verschachtelte Schleifen 10. break um eine Schleife zu verlassen und die Arbeitsweise von continue 11. das switch statement 12. Die goto Anweisung Bedingter Ablauf: if if(expression) statement; Bsp.: if(10>9) printf("wahr"); hier Vergleichsoparatoren: > und == kein logischer Typ in C, int verwendet! 0 ist falsch, ungleich O ist wahr, Welche dieser Ausdruecke sind wahr? if( 0 ) printf("wahr"); if( 1 ) printf("wahr"); if( 10*9<90 ) printf("wahr"); if( 1==1 ) printf("wahr"); if( -1 ) printf("wahr"); Bedingter Ablauf: if-else if(expression) statement1; else statement2; Bsp.:if(10>9) printf("wahr"); else printf("falsch"); Bloecke: if(expression) statement1; statement2; /*...*/ else statement1; statement2; /*...*/ 1

Bedingter Ablauf: Beispiel int answer; printf("was ist 10 + 14? "); scanf("%d", &answer); if(answer == 10+14) printf("gut!"); else printf("leider falsch. "); printf("die Antwort ist 24."); Wiederholungsschleife for mit Beispiel for(initialisierung ; teste-bedingung ; inkrementiere) statement; int answer, count; for(count=1; count<11; count=count+1) printf("what is %d + %d? ", count, count); scanf("%d", &answer); if(answer == count+count) printf("right! "); else printf("sorry, you're wrong. "); printf("the answer is %d. ", count+count); /*wie geht das mit inkrement Operator? bekannt!?*/ Ausgabe von printf verbessern Escape Sequenzen (Backslash characters) \b backspace \f form feed \n Newline \r carriage return \t Horizontaler tab \a Alert \" \ \0 \\ \N Oktale Konstante (wobei N oktaler Wert ist) \xn Hexadezimale Konstante (N hexadezmaler Wert) printf("\a"); 2

Vergleichs- und logische Operatoren Vergleichsoperatoren sind zweiwertige Operatoren a op b wobei op aus > >= < <= ==!= logische Operatoren: && AND 2 wertig OR 2 wertig! NOT 1 wertig Praezedenz: hoch! > >= < <= ==!= && nieder Bsp. Vergleichs - und logische Operatoren int i, j; printf("enter first number: "); scanf("%d", &i); printf("enter second number: "); scanf("%d", &j); /* relational operations */ printf("i < j %d\n", i < j); printf("i <= j %d\n", i <= j); printf("i == j %d\n", i == j); printf("i > j %d\n", i > j); printf("i >= j %d\n", i >= j); /* logical operations */ printf("i && j %d\n", i && j); printf("i j %d\n", i j); printf("!i!j %d %d\n",!i,!j); int xor(int a, int b); Bsp. XOR Operation int p, q; printf("enter P (0 or 1): "); scanf("%d", &p); printf("enter Q (0 or 1): "); scanf("%d", &q); printf("p AND Q: %d\n", p && q); printf("p OR Q: %d\n", p q); printf("p XOR Q: %d\n", xor(p, q)); int xor(int a, int b) return (a b) &&!(a && b); 3

Einlesen von Zeichen von der Tastatur char ch; ch = getchar(); /* read a char */ printf(" you typed: %c", ch); Problem: getchar() manchmal zeilengepuffert! -> ein Zeichen gelesen, Rest noch in Puffer nach Eingabe ganze Zeile -> gibt evtl. Durcheinander! (spaeter genauer untersucht!) interaktive Zeicheneingabe: getche(), Header: conio.h (nicht ANSI!) gibt es diese Funktion fuer gcc? Experimentieren! Bsp.: Zeichen einlesen von der Tastatur /* #include <conio.h> dies ist fuer getche() */ char ch; printf("enter a character: "); ch = getchar(); printf("\nits ASCII code is %d", ch); Bsp.: Zeichen einlesen fuer Menueauswahl int a, b; char ch; printf("do you want to:\n"); printf("add, Subtract, Multiply, or Divide?\n"); printf("enter first letter: "); ch = getchar(); printf("\n"); printf("enter first number: "); scanf("%d", &a); printf("enter second number: "); scanf("%d", &b); if(ch=='a') printf("%d", a+b); if(ch=='s') printf("%d", a-b); if(ch=='m') printf("%d", a*b); if(ch=='d' && b!=0) printf("%d", a/b); 4

verschachtelte if Anweisungen if(count > max) /* aeusseres if */ if(error) printf("error, try again."); /* verschachteltes if */ Vorsicht: if(p) if(q) printf("a and b are true"); else printf("to which statement does this else apply?"); else gehoert zum nahesten if (im gleichen Block), das noch kein else hat! die if-else-if Leiter: die if-else-if Leiter: if(ausdruck) Anweisung; if(ausdruck) Anweisung; else else if(ausdruck) Anweisung; if(ausdruck) Anweisung; else if(ausdruck) Anweisung; else... if(ausdruck) Anweisung;... empfohlene Uebung: Verbessern Sie das Beispiel "Zeichen einlesen fuer Menueauswahl" durch Verwendung einer if-else-if Leiter Variationen in for printf("enter an integer: "); scanf("%d", &i); for(; i; i--) printf("%d ",i); for(i=0; i<10; ) printf("%d ", i); i++; int i, j, k; for(i=0; i<3; i++) for(j=0; j<26; j++) for(k=0; k<2; k++) printf("%c", 'A'+j); for( ; ; ) /*besser waere? */... Beliebige Ausdruecke im for Kopf 5

while und do while Schleifen while (ausdruck) anweisung; while (ausdruck) anweisungsblock anweisungsblock ::= anweisung; anweisung;... do anweisungen while (ausdruck); break um eine Schleife zu verlassen und die Arbeitsweise von continue for(i=1; i<100; i++) printf("%d ", i); if(i==10) /* beendet Schleife */ int x; /*was gibt das Programm aus?*/ int i, j; for(i=0; i<5; i++) for(j=0; j<100; j++) printf("%d", j); if(j==5) printf("\n"); for(x=0; x<100; x++) continue; printf("%d ", x); /* das wird nie ausgefuehrt */ switch(wert) case Konstante1: case Konstante1: case Konstante2:... default: die switch Anweisung printf("zahl von 1 bis 4: "); scanf("%d", &i); switch(i) case 1: printf("eins"); case 2: printf("zwei"); case 3: printf("drei"); case 4: printf("vier"); default: printf("falsche Zahl!"); 6

Die goto Anweisung Ein Fossil aus der Zeit von Assembler goto mylabel; /* unbedingte Sprunganweisung */ printf("das wird nicht auusgedruckt"); mylabel: printf("das wird ausgedruckt \n"); i = 1; again: /* ist das leicht zu lesen? */ printf("%d ", i); i++; if(i<10) goto again; Beispiele Klausuraufgaben Geben Sie ein kleines Beispielprogramm, mit dem sie die Verwendung der while Schleife deomistrieren Geben Sie ein kleines Beispielprogramm, mit dem sie die Verwendung der do-while Schleife deomistrieren Schreiben Sie das Beispiel aus der Vorlesung "Zeichen einlesen fuer Menueauswahl" um mit Hilfe der switch Kontrollstruktur. Im ASCII Code ist die Differenz zwischen Kleinbuchstaben und Grossbuchstaben 32 (Bsp.: A : 64, a : 96, dezimal). Um einen Kleinbuchstaben in einen Grossbuchstaben umzuwandeln, kann man also einfach 32 abziehen. Schreiben Sie ein Programm, das zeichen von der Tastatur einliest und Kleinbuschstaben als Grossbuchstaben ausgibt. 7