WHILE - Anweisung.

Slides:



Advertisements
Ähnliche Präsentationen
Programme in C++.
Advertisements

Hochschule Fulda – FB ET Sommersemester 2010
Ein- und Ausgabe von Dateien
Funktionen.
Forschungszentrum caesar
Funktionen und Module Einführung anhand des Beispiels Wörter sortieren Timm Grams Fachhochschule Fulda Fachbereich Elektrotechnik und Informationstechnik.
Einführung in die Programmierung Ausführbare Klassen
Verzweigung oder bedingte Anweisung Weiter mit PP.
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Die Mehrwertsteuer Verbrauchssteuer. Dient zur Deckung der Ausgaben des Bundes Dient zur Deckung der Ausgaben des Bundes Die Mehrwertsteuer.
SWITCH - Anweisung.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Funktionen.
Dynamischer Speicher und Struktur
Konstruktoren.
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung.
Felder sortieren. Aufgabe: Die Zahlen eines Feldes sollen der Größe (zuerst die kleinste Zahl) nach sortiert werden.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
DO...WHILE Anweisung.
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
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher bekannt: Einfache Variable Feld Vereinbarung Zuweisung Block while-Schleife Bedingte Anweisung (if) Typ.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Planung einfache Dateibehandlung (externe Dateien, Öffnen, Lesen/Schreiben, Schließen). Diskussion des Problems, die Wörter in einem gegebenen Text.
Schleifen mit der Turtle
Informatik Grundkurse mit Java
Informatikunterricht mit Java
Struktogramme IF-ELSE FOR – Schleife
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
Einführung in die Programmiersprache C 1
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Multiplikation großer Zahlen mit Standard-FFT
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Programmierung
Die Zählschleife int s = 0 for (int k=1; k
Einführung in die Programmiersprache C 4
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Ganze Zahlen Die Typen int, unsigned int; Auswertung arithmetischer Aus-drücke, arithmetische Operatoren.
2.4 Rekursion Klassifikation und Beispiele
Die Grundidee Funktionsaufruf Funktionsname (Kopf) Code der Funktion
Algorithmen und Datenstrukturen SS 2005
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen Übungsmodul 2 Dr. W. Narzt u. Dr. A. Stritzinger.
BMEVIEEA100 Grundlagen der Programmierung
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
Vorlesung 5. #include double fv(double x) { return sin(x); } int main(){ int i,N=10; double a=1,b=2,del,x,sum,f,integral; for(i=1,sum=0.0,del = (b-a)/N;i
Programmiervorkurs WS 2014/15 Schleifen
programmieren des casio FX-7400GII
1 // Laengste Zeile bestimmen // // Liest die Eingabe Zeichen fuer Zeichen, bis // das erscheint. // Die laengste Zeile wird ausgegeben (bei.
© 2004 Pohlig Informatik Kurse © 2004 Pohlig Informatik Kurse Der Tramp tanzt die Rekursion zünderUntersuchen(…) Basisfall Rückmeldung:
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Informatik Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholugnsanweisungen 3. Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholungsanweisungen.
1 // Verkettete Liste 3 // demonstriert verkettete Listen und // Rekursion // (mit Entfernen eines Listenelementes) // #include struct Liste { int Element;
Einführung in die Programmiersprache C 2
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
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.
1 // 9_1_Datei_IO //Elementare Verwendung von Dateien // Vorsicht: nicht robust, #include const int maxLen = 70; void Schreiben(char *, ofstream *); void.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Durchschnitt (verbal)
Grundkurs Informatik mit Java
Schleifen mit der Turtle
 Präsentation transkript:

WHILE - Anweisung

Ausgabe aller ganzen Zahlen von Aufgabe: Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm

Schreibaufwendige Lösung:

int main(){ printf("0 \n"); printf("1 \n"); printf("2 \n"); // usw. // int main(){ printf("0 \n"); printf("1 \n"); printf("2 \n"); // usw. //... printf("100 \n"); return 0; }

Elegantere Lösung:

int main(){ int i; i=0; // wie geht es // weiter ??

while (i<=100){ printf("%d\n",i); i=i+1; } Bedingung while (i<=100){ printf("%d\n",i); i=i+1; } Bedingung wahr printf("Das war es"); return 0; } Die while–Anweisung ist EINE (komplexe) Anweisung, in der Anweisungen vorkommen. Bedingung falsch

Programmverlauf

while (i<=100){ printf("%d\n",i); i=i+1; } printf("Das war es"); return 0; }

des Inhalts der Variablen Dynamische Entwicklung des Inhalts der Variablen i

while (i<=100){ printf("%d\n",i); i=i+1; } printf("Das war es"); i 1

while (i<=100){ printf("%d\n",i); i=i+1; } printf("Das war es"); i 1 2

.... usw. bis i den Wert 100 hat

while (i<=100){ printf("%d\n",i); i=i+1; } printf("Das war es"); i 1 2 ... 100 101

while (i<=100){ printf("%d\n",i); i=i+1; } printf("Das war es"); i 1 2 ... 100 101

C-Syntax für WHILE - Anweisung

while (Ausdruck){ Anweisung(en); } bei einer Anweisung sind Klammern nicht nötig. Trotzdem: Immer Klammern machen. while (Ausdruck){ Anweisung(en); } Blockende kein Semikolon

Warum Endlosschleife ? i=0; { while (i<=3); i = i+1; }

Warum Endlosschleife ? i=0; { while (i<=3); i = i+1; } man braucht keine öffnende { Klammer, da es nur 1 Anweisung gibt i = i+1; } Nach der Bedingung (i<=3) muss eine Anweisung kommen ! Diese Anweisung ist die "leere Anweisung" (die nichts macht bzw. bewirkt), die durch den leeren Ausdruck, der mit einem Semikolon abgeschlossen wird, zu einer Anweisung wird. Diese wird solange ausgeführt, solange i<=3 (in diesem Fall: 0 <=3) ist, also immer.

Diese Schleife ist also eine Endlosschleife. Warum Endlosschleife ? i=0; { while (i<=3); i = i+1; } Diese Schleife ist also eine Endlosschleife.

wird vom Compiler wie folgt interpretiert: Das heißt while (i<=3); wird vom Compiler wie folgt interpretiert: while (i<=3) ;

Aufgabe: Flußdiagramm der WHILE – Anweisung mit einer beliebigen Bedingung B und beliebigen Anweisung(en) A, also der folgenden Anweisung …

while (B) { A; }

falsch B wahr A

WHILE - Anweisung als Struktogramm

Bedingung Anweisung(en)

AUFGABE: Stellen Sie den Programmteil unten als Struktogramm dar i = 0; while (i<=100){ printf("%d\n",i); i=i+1; } printf("Das war es");

i = 0 while(i<=100) Ausgabe(i) i = i+1 Ausgabe("Das war es")

Die WHILE - Anweisung nennt man auch kopfgesteuerte bzw Die WHILE - Anweisung nennt man auch kopfgesteuerte bzw. abweisende Schleife, weil die Bedingung am Kopf der Schleife steht, bzw. die Schleife nicht durchlaufen werden muss (Durchgang wird abgewiesen)

Wie oft wird eine kopfgesteuerte Schleife durchlaufen. Nennen Sie die obere bzw. untere Grenze.

0 ...  Durchgänge

Zum Schluss ein kleiner Ausflug.

Manchmal braucht man Zufallszahlen, um z. B Manchmal braucht man Zufallszahlen, um z.B. die Gewinnchancen beim Lotto zu simulieren. Dies ist für Leute von Vorteil, die keine größeren Kenntnisse in Wahrscheinlichkeitstheorie haben.

Dafür stellt die Entwicklungsumgebung die Funktionen srand( Dafür stellt die Entwicklungsumgebung die Funktionen srand(...) und rand() zur Verfügung.

srand(...) bewirkt, dass bei jedem Programmstart ein anderer Satz von Zufallszahlen gewählt wird. Würde dies nicht gemacht, würde jeder Programmlauf mit dem gleichen Satz von Zufallszahlen arbeiten.

srand(...) soll als erste Anweisung im Programm genau einmal verwendet werden. rand() liefert eine Zufallszahl zwischen 0 und einer (großen) maximalen Zahl (siehe Hilfe)

#include "stdafx. h" #include <stdlib. h> #include <stdio #include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <time.h> int main(){ int i = 0; int zufallszahl; srand((unsigned)time(NULL)); while(i<100){ i=i+1; zufallszahl=rand(); printf("%d\n",zufallszahl); } return 0; } genau ein Mal am Programmanfang verwenden erzeugt eine Zufallszahl

Ist die folgende Schleife eine Endlosschleife?

#include <stdio.h> int main(){ int i; i = 0; while (i>=0){ #include "stdafx.h" #include <stdio.h> int main(){ int i; i = 0; while (i>=0){ i=i+1; } printf("i=%d ", i); return 0; Beachten Sie dazu, dass i eine integer-Variable ist und 4 Byte Speicher benötigt. Der Zahlenbereich geht von: -2147483648 bis 2147483647

#include <stdio.h> int main(){ int i; i = 0; while (i>=0){ #include "stdafx.h" #include <stdio.h> int main(){ int i; i = 0; while (i>=0){ i=i+1; } printf("i=%d ", i); return 0; -2147483648 ... 2147483647 i wird also bis 2147483647 hochgezählt, das ist als Dualzahl: 01111111 11111111 11111111 11111111 dies um 1 hochgezählt ergibt: 10000000 00000000 00000000 00000000 Das ist als Dezimalzahl: -2147483648 (die kleinste negative Zahl) also keine Endlosschleife !! was wird also auf dem Bildschirm ausgegeben? -2147483648