Einführung in die Programmierung

Ähnliche Dokumente
2. Programmierung in C

Java Anweisungen und Ablaufsteuerung

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

Einstieg in die Informatik mit Java

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Kontrollfluss. man Verzweigungen und Sprünge. o bisher linear (von oben nach unten) o Für interessante Programme braucht

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

2. Programmierung in C

Einleitung. Literatur. Informatik I. Literatur (2) Informatik allgemein

Einführung in die Programmierung Wintersemester 2011/12

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Grundlagen der Programmierung

Algorithmen und Datenstrukturen (für ET/IT)

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Einführung in die Programmierung

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

2. Programmierung in C

3. Anweisungen und Kontrollstrukturen

Einstieg in die Informatik mit Java

Grundlagen der Programmierung

Schleifenanweisungen

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

GI Vektoren

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Elementare Konzepte von

Angewandte Mathematik und Programmierung

C++ - Einführung in die Programmiersprache Schleifen

Einstieg in die Informatik mit Java

Kurzeinführung in C99

1.6 Programmstrukturen/Abweisende Schleife

6. Grundlagen der Programmierung

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis

Grundlagen der Informatik I (Studiengang Medieninformatik)

Java Ablaufsteuerung (Beispiele)

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

Grundlagen der Programmierung

Grundlagen der Programmierung

Dr. Monika Meiler. Inhalt

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Dr. Monika Meiler. Inhalt

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

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

3. Grundanweisungen in Java

Kapitel 2. Einfache Beispielprogramme

Was ist Informatik? Alexander Lange

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Kapitel 4: Kontrollstrukturen

Informatik I - Einstiegskurs

Programmiervorkurs. Wintersemester 2013/2014

Imperative Programmierung in Java: Kontrollfluß II

Kontrollstrukturen -- Schleifen und Wiederholungen

Die Programmiersprache C Eine Einführung

Informatik Algorithmen und Programme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Grundlagen der Programmentwicklung

2 Programmieren in Java I noch ohne Nachbearbeitung

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

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

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

WS2018/ Oktober 2018

Ingenieurinformatik. Einführung in die Programmiersprache C

Objektorientierte Programmierung

Ausdrücke (1) Grundlegende Eigenschaften

Einführung in die Programmierung mit VBA

2. Algorithmenbegriff

Primzahlen und Programmieren

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Ideen und Konzepte der Informatik

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

2 Eine einfache Programmiersprache

2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen

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

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

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Wiederholungen / Schleifen

Einführung in die Programmierung II. 3. Kontrollstrukturen

Einführung in die Informatik I

4. Wahrheitswerte. Wo wollen wir hin? Boolesche Werte in der Mathematik. Der Typ bool in C++

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Transkript:

Einführung in die Programmierung Brückenkurs Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 2009/10

Einführung in die Programmierung Erste Programme 2 / 38 Übersicht Montag, 14. September 2009 Ein kleines Programm Eingangstest Informatik Was ist Informatik?

Einführung in die Programmierung Erste Programme 3 / 38 Ein erstes kleines Programm Hello, World! # include <stdio.h> void main ( void ) { printf (" Hello,\ nworld!\n"); } Erklärungen: Mittels #include <stdio.h> wird eine Bibliothek bereitgestellt, die Funktionen zur Ein- und Ausgabe enthält. Der Start eines Programms besteht im Ausführen der Funktion main. Alle Anweisungen werden mit einem Semikolon beendet.

Einführung in die Programmierung Erste Programme 4 / 38 Ein erstes kleines Programm Erklärungen: (Fortsetzung) Die Funktion printf() gibt eine Zeichenkette auf dem Bildschirm aus. Solche Standardfunktionen sind übersetzte Funktionen, die zur C-Implementierung gehören. eine Zeichenkette ist durch doppelte Anführungsstriche am Anfang und Ende gekennzeichnet, z.b. "James Bond" Anweisungsfolgen werden mit geschweiften Klammern { und } zusammengefasst, der geklammerte Block gilt als eine Anweisung. das Zeichen \n bedeutet new line, es bewirkt also einen Zeilenvorschub

Einführung in die Programmierung Erste Programme 5 / 38 Ein zweites kleines Programm Variablen: # include <stdio.h> void main ( void ) { int i = 5; printf ("i = %d\n", i); i = i + 2; printf ("i = %d\n", i); } Erklärungen: alle Variablen in C haben einen Typ, im Beispiel definieren wir i vom Typ ganze Zahl Variablen können in Ausdrücken wie i = i + 2 verwendet werden: erhöhe den Wert von i um zwei und weise diesen neuen Wert der Variablen i zu

Einführung in die Programmierung Erste Programme 6 / 38 Ein zweites kleines Programm Hinweis: Variablen in C nehmen zu unterschiedlichen Zeiten unterschiedliche Werte an int i = 1; while (i < 10) { printf (" sqr (%d) = %d\n", i, i * i); i = i + 1; } Variablen in der Mathematik sind Platzhalter für feste Werte also x = 4, y = 2 3x + 4y = 20 2x + 17y = 42

Ein drittes kleines Programm Schleifen: # include <stdio.h> void main ( void ) { int i = 5; while (i < 10) { printf ("i = %d\n", i); i = i + 2; } } Erklärungen: solange der Wert von i kleiner ist als 10, wird der Rumpf der Schleife ausgeführt sobald der Wert von i gleich 10 oder größer ist, wird die Abarbeitung des Schleifenrumpfs abgebrochen (evtl. schon zu Beginn) Einführung in die Programmierung Erste Programme 7 / 38

Ein viertes kleines Programm Zählschleifen: # include <stdio.h> void main ( void ) { int i; for ( i = 1; i < 10; i += 1) { printf ("i = %d\n", i); } } Erklärungen: der erste Ausdruck ist der Initialisierungsausdruck, der vor Beginn der Schleife einmal ausgeführt wird solange der zweite Ausdruck erfüllt ist, wird der Schleifenrumpf durchlaufen nach jedem Schleifendurchlauf wird der dritte Ausdruck bewertet Schleifenvariablen ändern Einführung in die Programmierung Erste Programme 8 / 38

Ein fünftes kleines Programm Leerzeilen: # include <stdio.h> void main ( void ) { int i = 5; } while (i < 10) { printf ("i = %d\n", i); i = i + 2; } Erklärungen: Leerzeilen haben keine syntaktische Bedeutung, aber sie erhöhen die Lesbarkeit des Programms vor Funktionen nach Deklaration von Variablen Einführung in die Programmierung Erste Programme 9 / 38

Einführung in die Programmierung Erste Programme 10 / 38 Ein sechstes kleines Programm # include <stdio.h> void main ( void ) { int i, anf, end ; printf (" Anfangswert? "); scanf ("%d", & anf ); printf (" Endwert? "); scanf ("%d", & end ); } i = anf ; while (i < end ) { printf ("i = %d\n", i); i = i + 1; }

Einführung in die Programmierung Erste Programme 11 / 38 Ein sechstes kleines Programm Erklärung: die Funktion scanf() liest Werte von der Tastatur ein dazu muss zum einen der erwartete Datentyp angegeben werden %d int %f float %c char zum anderen das Ziel, also die Variable, in der der eingelesene Wert gespeichert werden soll

Einführung in die Programmierung Erste Programme 12 / 38 Ein siebtes kleines Programm Verzweigungen: # include <stdio.h> void main ( void ) { int i; printf (" Wert? "); scanf ("%d", &i); } if (i % 2 == 0) printf ("%d ist gerade \n", i); else printf ("%d ist ungerade \n", i);

Einführung in die Programmierung Erste Programme 13 / 38 Ein siebtes kleines Programm Erklärungen: Mittels Auswahlanweisungen kann der Ablauf eines Programms abhängig von Bedingungen geändert werden. Der Modulo-Operator % bestimmt den ganzzahligen Rest bei einer Division. Im Beispiel wird der Ausdruck i % 2 == 0 bewertet. Falls er wahr ist, wird die darauf folgende Anweisung ausgeführt, ansonsten die Anweisung im else-zweig Der else-zweig kann entfallen

Einführung in die Programmierung Eingangstest 14 / 38 Übersicht Montag, 14. September 2009 Ein kleines Programm Eingangstest Informatik Was ist Informatik?

Einführung in die Programmierung Eingangstest 15 / 38 Einstufungstest Addiere folgende Zahlen im Binärsystem 101001 + 010011 Die Summe beträgt 110110 x 111100 110011 111111

Einführung in die Programmierung Eingangstest 16 / 38 Einstufungstest Die Booleschen Operatoren (AND) und (OR) sind folgendermaßen definiert: 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 Wann ist der folgende Ausdruck wahr, d.h. 1? (A ODER B) UND (C ODER D) bzw. (A B) (C D) x A=1, B=0, C=0, D=1 A=0, B=1, C=0, D=0 x A=0, B=1, C=1, D=1 A=0, B=0, C=1, D=1 x A=1, B=0, C=1, D=1

Einführung in die Programmierung Eingangstest 17 / 38 Einstufungstest Was ist eine gültige Internet Adresse laut IPv4? 104.275.94.1 x 194.94.121.248 111.945.76 54.236.51.12.66

Einführung in die Programmierung Eingangstest 18 / 38 Einstufungstest Was ist ein Compiler? x Ein Programm zur Verschlüsselung. Ein Hardware-Bauteil. Ein Programm zur Übersetzung von Programmcode. Ein Computervirus.

Einführung in die Programmierung Eingangstest 19 / 38 Einstufungstest Gegeben sei folgender Algorithmus: a := 1; b := 0; Solange a < 3 tue { wenn a gerade, dann b := b + 1; a := a + 1; } gib b zurück; Welchen Wert haben die Variablen a und b nach jedem Durchlauf der Schleife? Durchlauf Wert von a Wert von b 1 2 0 2 3 1

Einführung in die Programmierung Eingangstest 20 / 38 Einstufungstest Die folgende rekursive Berechnungsvorschrift liefert den größten gemeinsamen Teiler zweier positiver ganzer Zahlen: x falls x = y ggt (x, y) = ggt (x y, y) falls x > y ggt (x, y x) falls x < y Berechnen Sie ggt (16, 6) durch aufeinanderfolgendes Anwenden der Rekursionsvorschrift. ggt (16, 6) = ggt (10, 6) = ggt (4, 6) = ggt (4, 2) = ggt (2, 2) = 2

Einführung in die Programmierung Eingangstest 21 / 38 Einstufungstest C-Programmierung: Was ist der Wert der Variablen x am Ende der Programmzeilen? int i; int x = 0; for ( i = 1; i < 5; i = i + 1) x = x + i; 4 5 8 x 10

Einführung in die Programmierung Eingangstest 22 / 38 Einstufungstest C-Programmierung: Was ist der Wert der Variablen x am Ende der Programmzeilen? int i = 5; int x = 0; while (i < 8) { if (i == 6) x = x - i; else x = x + i; i = i + 1; } 4 x 6 10 18

Einführung in die Programmierung Eingangstest 23 / 38 Einstufungstest C-Programmierung: Welche Ausgabe erzeugt folgendes Programm? # include <stdio.h> int main ( void ) { int a[] = {1, 2, 3, 4}; int sum [5]; int i = 0; } sum [0] = 0; while (i < 4) { sum [i +1] = sum [i] + a[i]; i = i + 1; } for ( i = 0; i <= 4; i ++) printf ("%3d\n", sum [i ]); 0, 1, 2, 3, 4 x 0, 1, 3, 6, 10 1, 2, 4, 7, 10 1, 3, 6, 10, 15

Einführung in die Programmierung Eingangstest 24 / 38 Einstufungstest C-Programmierung: Welche Ausgabe erzeugt folgendes Programm? # include <stdio.h> int fkt ( int n) { if (n == 0) return 1; return n * fkt (n -1); } int main ( void ) { printf ("%d\n", fkt (4)); 1 10 x 24 36 } return 0;

Einführung in die Programmierung Eingangstest 25 / 38 Einstufungstest Schreiben Sie einen logischen Ausdruck in C-Notation für folgende Tabelle: A B C erg 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 (A = B = C) (A && B && C) x!c x C == 0

Einführung in die Programmierung Was ist Informatik? 26 / 38 Übersicht Montag, 14. September 2009 Ein kleines Programm Eingangstest Informatik Was ist Informatik?

Einführung in die Programmierung Was ist Informatik? 27 / 38 Informatik Was ist das? Kunstwort aus Information und Mathematik Informatik ist eng mit Computern verknüpft: solange es keine Computer gab, gab es auch keine Informatik elektronische Rechenmaschine entstand um 1940 Ursprung Rechnen galt bis Anfang der Neuzeit als Kunst heute kann jeder die vier Grundrechenarten ausführen mechanisch ausführbares Verfahren, dass nicht verstanden werden muss, um es anwenden zu können kann einer Maschine übertragen werden kann

Einführung in die Programmierung Was ist Informatik? 28 / 38 Informatik Algorithmus mechanisch ausführbares Rechenverfahren bildet den Kern der Informatik benannt nach dem persischen Mathematiker Abu Ja far Mohammed ibn Mûsâ al-khowârizmî Beispiel: einfacher Primzahltest eine Zahl p N ist eine Primzahl keine Zahl z {2, 3,..., p 1} teilt p

Einführung in die Programmierung Was ist Informatik? 29 / 38 Informatik Algorithmus Primzahltest für die Zahlen z := 2 bis p 1 tue falls z teilt p Teiler gefunden: p ist keine Primzahl falls keine Teiler gefunden p ist Primzahl sonst: p ist keine Primzahl Wie wird dieser Algorithmus in C implementiert?

Einführung in die Programmierung Was ist Informatik? 30 / 38 Informatik Euklidischer Algorithmus berechne größten gemeinsamen Teiler zweier natürlicher Zahlen p und q 1 Man dividiere p ganzzahlig durch q. Dabei erhält man den Rest r, der zwischen 0 und q 1 liegt. 2 Wenn r = 0 ist, dann ist q der ggt. Wenn r 0 ist, dann benenne das bisherige q in p um, das bisherige r in q und wiederhole ab Schritt 1. p q r := p mod q 216 378 216 378 216 162 216 162 54 162 54 0 ggt(216, 378) = 54 Wie wird dieser Algorithmus in C implementiert?

Einführung in die Programmierung Was ist Informatik? 31 / 38 Informatik Algorithmus mechanisches Verfahren, das aus mehreren Schritten besteht Schritte werden sequentiell ausgeführt, bis das Ergebnis gefunden ist (es gibt auch parallele Algorithmen) einzelne Abschnitte des Verfahrens können mehrfach durchlaufen werden (Iteration, Schleife) Entwurf von Algorithmen finde eine Problemlösung formuliere sie in kleinen, elementaren Schritten

Einführung in die Programmierung Was ist Informatik? 32 / 38 Informatik Was ist ein elementarer Schritt? Donald E. Knuth definiert eine Assembler-Sprache für einen fiktiven Computer MIX in der theoretischen Informatik arbeitet man mit Turing- und Register-Maschinen abhängig vom Kontext Es gibt sehr alte, immer noch aktuelle Algorithmen: je zwei natürliche Zahlen haben einen ggt Euklid Lösen linearer Gleichungssysteme Gauß erst der Computer ermöglicht es uns, auch komplizierte Algorithmen mit tausenden von Schritten auszuführen

Einführung in die Programmierung Was ist Informatik? 33 / 38 Technische Informatik Aufbau und Konstruktion von Computern. Rechnerarchitektur Rechnerhardware Mikroprozessortechnik Rechnernetze

Einführung in die Programmierung Was ist Informatik? 34 / 38 Praktische Informatik Entwicklung und Erweiterung der Rechnereigenschaften. Programmierung und Nutzung von Computern. Betriebssysteme Benutzerschnittstellen Informationssysteme (Datenbanken) Programmiersprachen und Übersetzer Softwaretechnologie

Einführung in die Programmierung Was ist Informatik? 35 / 38 Theoretische Informatik Formale mathematische Grundlagen. Formale Sprachen Automatentheorie Berechenbarkeit Komplexitätstheorie Algorithmen & Datenstrukturen

Einführung in die Programmierung Was ist Informatik? 36 / 38 Angewandte Informatik Lösen spezieller Probleme in Anwendungsbereichen mittels Computer. Der Rechner wird als Werkzeug eingesetzt. Computergrafik Digitale Signalverarbeitung (Bild-/Spracherkennung) Simulation und Modellierung Künstliche Intelligenz Textverarbeitung

Einführung in die Programmierung Was ist Informatik? 37 / 38 Anmerkungen Praktische und Angewandte Informatik sind mitunter nur schwer abzugrenzen, weil in beiden die Programmierung im Mittelpunkt steht. praktische Informatik: die Eigenschaften des Rechners sollen erweitert werden, d.h. es soll uns eine bessere Maschine zur Verfügung stehen angewandte Informatik: spezielle Probleme in Anwendungsbereichen außerhalb der Informatik sollen gelöst werden heute wird dies durch eine andere Art der Einteilung ergänzt: Wirtschafts-, Bio-, Geo-Informatik,...

Einführung in die Programmierung Was ist Informatik? 38 / 38 Anmerkungen Informatik ist nicht gleichzusetzen mit Programmierung. Man lernt Informatik nicht aus Büchern wie Word 7.0 für Fortgeschrittene oder Die besten Tipps zum Surfen im Internet oder Programmieren in C++.