BMEVIEEA100 Grundlagen der Programmierung Übung 1 BMEVIEEA100 Grundlagen der Programmierung
Informatik Übung C Sprache Algorithmen Effektivität von Algorithmen Programme specifizieren, Algorithmen zu ausarbeiten, Quelltext generieren, dokumentieren
Algorithmen Numerische Integration Lösungsverfahren für lineare Gleichungssysteme Lösungsverfahren für nichtlineare Gleichungen Interpolation Sortierverfahren Datenkompression
Literatur
Literatur
Vor C: Multics project—General Electric, MIT, und Bell Laboratory (1969) (kein Erfolg) – zu große OP System Bell Laboratory - Ken Thompson, Dennis Ritchie, Brian Kernighan – „UNIX” Ken Thompson – prog. Sprache B
BCPL und B sind typenlose Sprachen C hat eine Reihe von Datentypen Zeichen, ganze Zahlen, Gleitpunktzahlen Es gibt eine Hierarchie von abgeleitete Datentypen (mit Hilfe von Zeigern, Vektoren, Strukturen und Unionen erzeugt) Kontrollstrukturen, die für wohlstrukturierte Programme nötig sind:
Kontrollstrukturen, die für wohlstrukturierte Programme nötig sind: Zusammenfassung von Anweisungen { } Entscheidungen (if-else) Auswahl von einem aus einer Menge von möglichen Fällen (switch) Schleifen mit Test des Abbruchkriteriums am Anfang (while, for) oder am Ende (do) Vorzeitiges Verlassen einer Schleife (break)
Funktionen können Werte der elementare Typen, aber auch von Strukturen, Unionen oder als Zeigern als Resultat liefern. Jede Funktion darf rekursiv aufgerufen werden Die lokalen Variablen einer Funktion sind typischerweise „automatisch”, das heißt, sie werden bei jedem Aufruf der Funtion neu erzeugt werden
Funktionsdefinitionen können nicht verschachtelt werden, Die Funktionen eines C Programms können sich in verschiedenen Quelldateien befinden, die getrennt voneinander übersetzt werden Ein Preprozessor ersetzt Makros im Programmtext, fügt andere Quelldateien ein und ermöglicht bedingte Übersetzung
ANSI C standard 1988 Definition einer Bibliothek, die zu C gehört Funktionen zum Zugriff auf das Betriebsystem (Dateien zu lesen und schreiben) Funktionen für formattierte Ein- und Ausgabe Funktionen für Speicherverwaltung etc.
#include <stdio.h> main() { printf(”hello, world\n”); }
#include <stdio.h> int main() { int a,b,c; int summe; a = 1; b = 2; c = 3; summe = a+b+c; printf(”summe=%d \n”,summe); return 0; }
Rekurzion Fibonacci Zahlen F(n)=F(n-1)+F(n-2) F(0)=0; F(1)=1;
Rekurzion Fibonacci Zahlen int fibo(int n){ if (n==0) return 0; return fibo(n-1)+fibo(n-2); }
Arithmetische Operatoren binäre +, -, /, *, % unäre +, - Vorrang arithmetische Operatoren werden von links her zusammenfaßt Verbindung von arithmetische Operatoren c = a = d+e; von rechts her +, - (unären) *, / , % +, - (binären)
Datentypen 4 elementare Datentypen char ein Byte, ein Zeichen – Grundelement des Speichers int ganzahliger Wert, 16 oder 32 Bits float ein einfach genauer Gleichpunktwert double ein doppelt genauer Gleichpunktwert
Varianten dieser elementaren Typen short int long int das Wort int kann ausgelassen werden short und int haben wenigstens 16 Bits long hat mindestens 32 Bits short ist nicht länger als int int ist nicht länger als long
Varianten dieser elementaren Typen signed unsigned char oder int (sind ≥ 0)
Vorlesung 2
Beispiele Wertebereich int -32768...32767 unsigned int 0...65535 float 3.4e-38...3.4e+38 double 1.7e-308...1.7e+308 long double 3.4e-4932...1.1e+4932
Elementare printf Umwandlungen Zeichen Argument; Ausgabe als d,i int; dezimale Zahl O int; oktale Zahl ohne Vorzeichen x, X int; hexadezimale Zahl ohne Vorzeichen u int; dezimale Zahl ohne Vorzeichen c int; einzelnes Zeichen printf(”summe=%d \n”,summe); printf(”summe=%x \n”,summe);
%d als dezimale ganze Zahl ausgeben %6d als dezimale ganze Zahl ausgeben, mindestens 6 Zeichen breit %f als Gleitpunktzahl ausgeben %6f als Gleitpunktzahl ausgeben, mindestens 6 Zeichen breit %.2f als Gleitpunktzahl ausgeben, 2 Zeichen hinter Dezimalpunkt %6.2f als Gleitpunktzahl ausgeben, 6 Zeichen breit und 2 Zeichen hinter Dezimalpunkt
Vereinbarungen int i,j,k; double a,b; Eine Variable kann bei ihrer Vereinbarung auch initialisiert werden double a = 1.3, b = 2.3; Mit dem Attribut const kann bei der Vereinbarung einer Variablen angegeben werden, daß sich ihr Wert nicht ändert. const int a=3; dann a=a+1; /*ist falsch*/
Das Komma Operator mehrere Zuweisungen kann verbindet werden int i,j,k; i = 3; j = 4; k = i, i = j; die Auswertung geht von links her
Schleifen for Schleife while Schleife while (Ausdruck) Anweisungen do while Schleife do Anweisungen while (Ausdruck);
for Schleife for (init;test;post-expr) statement;
Beispiele int i,sum; for(i=10,sum=0;i;i=i-1) sum=sum+i; for(i=10,sum=0;i; sum=sum+i,i=i-1);