Einführung in die Programmiersprache C 2

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Forschungszentrum caesar
Einführung in JavaScript II
SWITCH - Anweisung.
SWITCH - Anweisung.
ARRAY oder FELD oder VEKTOR
Funktionen.
Konstruktoren.
WHILE - Anweisung.
Der Präprozessor. Bevor der Compiler das Programm in Maschinencode übersetzt (nur dieser kann von der CPU, dem Herz des Computers, bearbeitet werden)
DO...WHILE Anweisung.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Robotik mit LEGO Mindstorms
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Imperative Programmierung Funktionen und Parameter
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Zusammenfassung Vorwoche
Das erste Programm (Folie 16)
Der C-Präprozessor EDV1 - 04Präprozessor.
Der C-Präprozessor 08-CPräprozessor.
Schleifen mit der Turtle
Informatik Grundkurse mit Java
Marcus Haller & René Schulze
Struktogramme IF-ELSE FOR – Schleife
Einführung in die Programmiersprache C 1
Informatik 1 Übung 2.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
Einführung in die Programmierung
Einführung in die Programmiersprache C 4
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
Grundkonzepte des Programmierens (mit ActionScript)
Programmierung 1. Einführung Seite 1
Einführung in PHP.
Einführung in PHP 5.
Agenda für heute, 20. April, 2006 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
BMEVIEEA100 Grundlagen der Programmierung
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Programmiervorkurs WS 2014/15 Schleifen
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
MATLAB Control Statements.
Institut für Kartographie und Geoinformation Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit Java 4. Vorlesung WS 2004/2005.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Variablen und Datentypen
Unterprogramme / Methoden
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Verzweigung oder bedingte Anweisung. Aufgabe: Ein Autofahrer tankt sein Auto voll und schreibt den Kilometerstand auf (drei- stelliger Tageszähler).Wenn.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Inhalte der Übungen 1.Grundlagen, Ein- und Ausgabe 2.Kontrollstrukturen (Projekt 1) 3.Funktionen 4.Zeiger, Felder (Projekt 2) 5.Strings, Strukturen 6.Fileverarbeitung.
1 Arrays und Schleifen Özgü & Tim. 2 Inhaltsverzeichnis Arrays Was ist ein Array? Bauanleitung Beispiel Matrix Fehler Schleifen Wofür Schleifen? While-Schleife.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Nksainf.ch/oinf.
Unterschiedliche Kontrollstrukturen
Unterschiedliche Arten von Kontrollstrukturen
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Einführung in die Programmiersprache C 2 Einführung in die Programmiersprache C 2.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig

Vergleichsoperatoren Beschreibung > echt größer >= größer oder gleich < kleiner <= kleiner oder gleich == gleich != ungleich Beispiel: (a >= b) Ist a wirklich größer oder gleich b, so liefert die Klammer den Wert 1 zurück, sonst 0. Institut für Mathematische Optimierung – Technische Universität Braunschweig

Logische Operatoren und Wahrheitstafel || oder ! nicht Geben je nach Wahrheitswert zweier Variablen p und q folgende Wahrheitswerte zurück: p q p&&q p||q !p 1 Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel für Vergleichs- und logische Operatoren #include<stdio.h> int main(void) { int antw1,antw2,antw3; double zahl1=1.1,zahl2=3.3,zahl3=-2.0; antw1 = ( (zahl1 > zahl2) || (zahl2 != 3.3) ); antw2 = ( (zahl2 + zahl3!=0.0) && (zahl1 == 0.0) ); antw3 = ( (!antw2) || (zahl3 > 0.0) ); printf("antw1=%d\tantw2=%d\tantw3=%d\n",antw1,antw2,antw3); return 0; } Welchen Werte haben antw1, antw2 und antw3? Institut für Mathematische Optimierung – Technische Universität Braunschweig

Die for-Schleife Die for-Schleife hat die Form: for(Ausdruck1;Ausdruck2;Ausdruck3) { Anweisungen; } Gibt es nur eine Anweisung, können die geschwungenen Klammern weggelassen werden. Was Wann Ausdruck1 Initialisierung vor 1. Schleifendurchlauf Ausdruck2 Bedingung vor jedem Schleifendurchlauf Ausdruck3 Veränderung nach jedem Schleifendurchlauf Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel einer for-Schleife #include<stdio.h> int main(void) { int i; for( i=0 ; i<10 ; i++ ) printf("%d\n",i); return 0; } Was wird ausgegeben und warum? Institut für Mathematische Optimierung – Technische Universität Braunschweig

2. Beispiel einer for-Schleife #include<stdio.h> int main(void) { int i; for(i=0;i<10;printf("%d\n",i)) i++; return 0; } Unterschied zum letzten Beispiel? Was wird hier ausgegeben? Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel Endlosschleife Vorsicht! Setzt man die Bedingungen für die Schleife schlecht, so können auch Endlosschleifen entstehen. Nachfolgend das erste Beispiel einer for-Schleife, in dem die zweite Bedingung verändert wurde: … int main(void) { int i; for(i=0;i>=0;i++) printf("%d\n",i); return 0; } Ausgabe: 0,1,2,…,10,11,… Abbruch eines Programms mit Strg+c Institut für Mathematische Optimierung – Technische Universität Braunschweig

Aufgabe Schreiben Sie ein Programm, dass die Zahlen 10,…,1 ausgibt. Verwenden Sie hierfür folgendes Grundgerüst: #include<stdio.h> int main(void) { for( ; ; ) printf(); return 0; } Institut für Mathematische Optimierung – Technische Universität Braunschweig

Lösung int main(void) { int i; for(i=10;i>0;i--) printf("%d\n",i); #include<stdio.h> int main(void) { int i; for(i=10;i>0;i--) printf("%d\n",i); return 0; } Institut für Mathematische Optimierung – Technische Universität Braunschweig

Die while-Schleife Ausdruck1; while(Ausdruck2) { Anweisungen; } ist fast gleichwertig mit der for-Schleife (Unterschied bei continue, später) for(Ausdruck1;Ausdruck2;Ausdruck3) Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel für while-Schleife double zahl; int zaehler=0; printf("Bitte geben Sie eine beliebige Zahl ein!\t"); scanf("%lf",&zahl); while(zahl>=1.0) { zaehler++; zahl=zahl/2; } printf("Diese Zahl kann %d-mal halbiert werden und ist dann mit einem Wert von %lf kleiner als 1!",zaehler,zahl); Institut für Mathematische Optimierung – Technische Universität Braunschweig

Die do-while-Schleife Die dritte Schleifen-Variante, die C bietet, ist: do { Anweisungen; }while(Ausdruck); Diese Schleife wird ausgeführt, solange Ausdruck wahr ergibt. Da aber Ausdruck nach dem jeweiligen Durchlaufen der Schleife ausgeführt wird, wird die Schleife mindestens einmal durchlaufen. Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel für do-while-Schleife double zahl; int zaehler=0; printf("Bitte geben Sie eine beliebige Zahl ein!\t"); scanf("%lf",&zahl); do { zaehler++; zahl=zahl/2; }while(zahl>=1.0); printf("Diese Zahl kann %d-mal halbiert werden und ist dann mit einem Wert von %lf kleiner als 1!",zaehler,zahl); Ausgabe: while/do-while-Schleife bei Eingabe einer Zahl <1.0 (>=1.0)? Institut für Mathematische Optimierung – Technische Universität Braunschweig

Aufgabe Schreiben Sie ein Programm, dass solange vom Benutzer die Eingabe einer Zahl verlangt, bis eine 0 eingegeben wird. Das Programm soll ansonsten jeweils die Quadratzahl der eingebeben Zahl ausgeben. Benutzen Sie dafür eine while- oder do-while-Schleife! Institut für Mathematische Optimierung – Technische Universität Braunschweig

Lösung int main(void) { int a; printf("Geben Sie eine Zahl ein:\t"); scanf("%d",&a); while(a!=0) printf("Quadratzahl ist %d\nNoch ne Zahl bitte:\n",a*a); } return 0; Institut für Mathematische Optimierung – Technische Universität Braunschweig

Die if-Bedingung Die bedingten Anweisungen in C haben die Form: if(Ausdruck1) { Anweisungen; } else wobei es keinen else-Block geben muss. Die Anweisungsblöcke können wiederrum if-else-Blöcke enthalten. Institut für Mathematische Optimierung – Technische Universität Braunschweig

Aufgabe Schreiben Sie ein Programm, dass eine Zahl einliest und danach ausgibt, ob diese positiv ist oder negativ. Verwenden Sie dafür die if-else-Anweisung. Institut für Mathematische Optimierung – Technische Universität Braunschweig

Lösung ... double zahl; printf("Bitte geben Sie eine beliebige Zahl ein!\t"); scanf("%lf",&zahl); if(zahl>=0.0) printf("Die Zahl ist positiv!\n"); else printf("Die Zahl ist negativ!\n"); return 0; } Institut für Mathematische Optimierung – Technische Universität Braunschweig

Die Anweisungen continue und break Der Befehl continue dient dazu, Teile einer Schleife zu überspringen. Genauer wird der Teil der Schleife, der nach dem continue steht, übersprungen. Mit dem Befehl break wird die aktuelle Schleife komplett abgebrochen und die nächste Anweisung im Programm ausgeführt. Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel für den continue-Befehl int j=0; while (j < 10) { if (j > 8) j++; continue; } printf("Aktueller Wert von j: %d\n", j); Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel verbessert durch break-Befehl int j=0; while (j < 10) { if (j > 8) break; printf("Aktueller Wert von j: %d\n", j); j++; } Institut für Mathematische Optimierung – Technische Universität Braunschweig

Die switch-Anweisung Die switch-Anweisung ist eine weitere Möglichkeit, bedingte Anweisungen zu geben. Ihre allgemeine Form ist: switch(wert) { case konstante1: Anweisungen; break; case konstante2: Anweisungen; case konstante3: Anweisungen; ... default: Anweisungen; } Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel für die switch-Anweisung char antwort; printf("Verstehen Sie die switch-Anweisung? Antwort mit j oder n.\t"); scanf("%c",&antwort); switch(antwort) { case 'j': printf("Das ist schoen!\n"); break; case 'n' : printf("Dann schauen Sie sich das nochmal an!\n"); default : printf("Das soll eine Antwort sein?\n"); } Institut für Mathematische Optimierung – Technische Universität Braunschweig

Definieren eigener Funktionen Bisher bekannte Funktionen: z.B. printf() und scanf() (durch #include<stdio.h> durch den Präprozessor eingebunden) Jetzt: Definition eigener Funktionen! Beispiel: double quadrat(double zahl) { return zahl*zahl; } Die Funktion quadrat verlangt als Parameter eine Variable vom Typ double und gibt das Quadrat der Zahl, auch vom Typ double zurück (return-Befehl). Institut für Mathematische Optimierung – Technische Universität Braunschweig

Warum eigene Funktionen? Code ist übersichtlicher. Änderungen leicht vornehmbar. Code ohne Probleme schnell wiederverwendbar (Bausteinprinzip) Institut für Mathematische Optimierung – Technische Universität Braunschweig

Funktionen im Quellcode Funktionen können erst verwendet werden, nachdem sie am Anfang des Quellcodes deklariert wurden. Dies geschieht durch einen Funktionsprototyp: double quadrat(double zahl); So „weiß“ der Kompiler, dass es eine solche Funktion gibt. Die Funktiondefinition kann dann später oder in einer anderen Datei erfolgen. Definitionen von Funktionen dürfen nicht geschachtelt werden! Institut für Mathematische Optimierung – Technische Universität Braunschweig

Funktionsaufruf Der Funktion müssen die richtigen Variablen mit dem entsprechendem Datentyp übergeben werden: double zahl1=3.2, zahl2; zahl2=quadrat(zahl1); Der Funktion quadrat wird hier wie gewünscht eine double-Variable übergeben und auch eine Wert vom Datentyp double zurückgegeben. Die Variablenbezeichnungen beim Aufruf der Funktion (hier zahl1) und innerhalb der Funktion (hier zahl) dürfen unterschiedlich sein. Institut für Mathematische Optimierung – Technische Universität Braunschweig

Beispiel (in main wird Funktion quadrat() aufgerufen) #include<stdio.h> double quadrat(double ); int main(void) { double a; printf("Bitte Zahl eingeben:"); scanf("%lf",&a); printf("Quadrat von %.2f: %f\n",a,quadrat(a)); } double quadrat(double zahl) return zahl*zahl; Institut für Mathematische Optimierung – Technische Universität Braunschweig

Kommentare Kommentare sollen das Verstehen und Nachvollziehen eines Programms ermöglichen, sie werden vom Compiler ignoriert. Hierfür existieren zwei Typen: Blockkommentar (der Text wird zwischen /* und */ auskommentiert): /* text */ Zeilenkommentar (der Text wird in der kompletten Zeile hinter // auskommentiert): // text Institut für Mathematische Optimierung – Technische Universität Braunschweig