Übung 1 BMEVIEEA100 Grundlagen der Programmierung.

Post on 06-Apr-2015

112 views 4 download

Transcript of Übung 1 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;

}

RekurzionFibonacci Zahlen

F(n)=F(n-1)+F(n-2)

F(0)=0; F(1)=1;

int fibo(int n){

if (n==0) return 0;if (n==1) return 1;return fibo(n-1)+fibo(n-2);}

Fibonacci Zahlen

Rekurzion

• Arithmetische Operatorenbinäre +, -, /, *, %unäre +, -

• Vorrang

arithmetische Operatoren werden von links her zusammenfaßt

• Verbindung von arithmetische Operatorenc = a = d+e;von rechts her

+, - (unären)

*, / , %

+, - (binären)

Datentypen

• 4 elementare Datentypenchar 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 UmwandlungenZeichen 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 Schleifewhile (Ausdruck) Anweisungen

• do while Schleifedo Anweisungenwhile (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;

int i,sum;

for(i=10,sum=0;i; sum=sum+i,i=i-1);