Zentrale Fragestellung. Grundsätzliche Überlegungen über die Struktur eines Programms vor Beginn der Programmierung. Verschiedene Design-Methoden

Größe: px
Ab Seite anzeigen:

Download "Zentrale Fragestellung. Grundsätzliche Überlegungen über die Struktur eines Programms vor Beginn der Programmierung. Verschiedene Design-Methoden"

Transkript

1 7 Progrmmstruktur & Module 7Progrmmstruktur & Module 7.1 Softwredesign 7.1 Softwredesign Grundsätzliche Überlegungen über die Struktur eines Progrmms vor Beginn der Progrmmierung Verschiedene Design-Methoden Top-down Entwurf / Prozedurle Progrmmierung trditionelle Methode bis Mitte der 80er Jhre fst usschließlich verwendet n Progrmmiersprchen wie Fortrn, Cobol, Pscl oder C orientiert Objekt-orientierter Entwurf moderne, sehr ktuelle Methode Ziel: Bewältigung sehr komplexer Probleme uf Progrmmiersprchen wie C++, Smlltlk oder Jv usgerichtet 7.2 Top-down Entwurf Zentrle Frgestellung ws ist zu tun? 7 Progrmmstruktur & Module 7.2 Top-down Entwurf in welche Teilufgben lässt sich die ufgbe untergliedern? Beispiel: Rechnung für Kunden usgeben Rechnungspositionen zusmmenstellen Lieferungsposten einlesen Preis für Produkt ermitteln Mehrwertsteuer ermitteln Rechnungspositionen ddieren Positionen formtiert usdrucken Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 25 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 26 / Progrmmstruktur & Module 7.2 Top-down Entwurf (2) 7.2 Top-down Entwurf 7 Progrmmstruktur & Module 7.2 Top-down Entwurf 7.2 Top-down Entwurf (3) Modul-Bildung Problem: Gliederung betrifft nur die ktivitäten, nicht die Struktur der Dten Gefhr: Sehr viele Funktionen rbeiten "wild" uf einer Unmenge schlecht strukturierter Dten Lösung: Gliederung von Dtenbeständen zusmmen mit Funktionen, die druf operieren Modul Dten Funktion1 Funktion6 Funktion4 Funktion2 Funktion5 Funktion3 Funktion1 Funktion2 Funktion4 Funktion3 Funktion5 Funktion6 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 27 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 28 / 115

2 7 Progrmmstruktur & Module 7.3 Module in C 7 Progrmmstruktur & Module 7.3 Module in C 7.3 Module in C 7.3 Module in C (2) Teile eines C-Progrmms können uf mehrere.c-dteien (C-Quelldteien) verteilt Logisch zusmmengehörende Dten und die druf operierenden Funktionen sollten jeweils zusmmengefsst Modul Jede C-Quelldtei knn seprt übersetzt (Option -c) Zwischenergebnis der Übersetzung wird in einer.o-dtei bgelegt % cc -c prog.c (erzeugt Dtei prog.o ) % cc -c f1.c (erzeugt Dtei f1.o ) % cc -c f2.c f3.c (erzeugt f2.o und f3.o ) Ds Kommndo cc knn mehrere.c Dteien übersetzen und ds Ergebnis zusmmen mit.o Dteien binden:!!!.c Quelldteien uf keinen Fll mit Hilfe der #include nweisung in ndere Quelldteien einkopieren Bevor eine Funktion us einem nderen Modul ufgerufen knn, muss sie deklriert Prmeter und Rückgbewerte müssen beknnt gemcht Mkrodefinitionen und Deklrtionen, die in mehreren Quelldteien eines Progrmms benötigt, zu Heder-Dteien zusmmengefsst Heder-Dteien mit der #include nweisung des Präprozessors in C-Quelldteien einkopiert der Nme einer Heder-Dtei endet immer uf.h % cc -o prog prog.o f1.o f2.o f3.o f4.c f5.c Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 29 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 30 / Progrmmstruktur & Module 7.4 Gültigkeit von Nmen 7 Progrmmstruktur & Module 7.5 Globle Vriblen 7.4 Gültigkeit von Nmen 7.5 Globle Vriblen Gültigkeitsregeln legen fest, welche Nmen (Vriblen und Funktionen) wo im Progrmm beknnt sind Mehrere Stufen 1. Globl im gesmten Progrmm (über Modul- und Funktionsgrenzen hinweg) 2. Globl in einem Modul (uch über Funktionsgrenzen hinweg) 3. Lokl innerhlb einer Funktion 4. Lokl innerhlb eines Blocks Überdeckung bei Nmensgleichheit eine lokle Vrible innerhlb einer Funktion überdeckt gleichnmige globle Vriblen eine lokle Vrible innerhlb eines Blocks überdeckt gleichnmige globle Vriblen und gleichnmige lokle Vriblen in umgebenden Blöcken Gültig im gesmten Progrmm Globle Vriblen ußerhlb von Funktionen definiert Globle Vriblen sind b der Definition in der gesmten Dtei zugreifbr Globle Vriblen, die in nderen Modulen definiert wurden, müssen vor dem ersten Zugriff beknntgemcht ( extern Deklrtion = Typ und Nme beknntmchen) Beispiele: extern Typ Nme extern int, b; extern chr c;, ; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 31 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 32 / 115

3 7 Progrmmstruktur & Module 7.5 Globle Vriblen 7 Progrmmstruktur & Module 7.5 Globle Vriblen 7.5 Globle Vriblen (2) 7.5 Globle Funktionen Probleme mit globlen Vriblen Zusmmenhng zwischen Dten und druf operierendem Progrmmcode geht verloren Funktionen können Vriblen ändern, ohne dss der ufrufer dies erwrtet (Seiteneffekte) Progrmme sind schwer zu pflegen, weil bei Änderungen der Vriblen erst lle Progrmmteile, die sie nutzen gesucht müssen Funktionen sind generell globl (es sei denn, die Erreichbrkeit wird explizit uf ds Modul begrenzt) Funktionen us nderen Modulen müssen ebenflls vor dem ersten ufruf deklriert (= Typ, Nme und Prmetertypen beknntmchen) Ds Schlüsselwort extern ist bei einer Funktionsdeklrtion nicht notwendig globle Vriblen möglichst vermeiden Beispiele: double sinus(double); flot power(flot, int); Globle Funktionen (und soweit vorhnden die globlen Dten) bilden die äußere Schnittstelle eines Moduls "vertrgliche" Zusicherung n den Benutzer des Moduls Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 33 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 34 / Progrmmstruktur & Module 7.6 Einschränkung der Gültigkeit uf ein Modul 7.6 Einschränkung der Gültigkeit uf ein Modul 7 Progrmmstruktur & Module 7.7 Lokle Vriblen 7.7 Lokle Vriblen Zugriff uf eine globle Vrible oder Funktion knn uf ds Modul (= die Dtei) beschränkt, in der sie definiert wurde Schlüsselwort sttic vor die Definition setzen sttic Vriblen-/Funktionsdefinition extern-deklrtionen in nderen Modulen sind nicht möglich Die sttic-vriblen bilden zusmmen den Zustnd eines Moduls, die Funktionen des Moduls operieren uf diesem Zustnd Vriblen, die innerhlb einer Funktion oder eines Blocks definiert, sind lokle Vriblen bei Nmensgleichheit zu globlen Vriblen oder loklen Vriblen eines umgebenden Blocks gilt die jeweils letzte Definition lokle Vriblen sind ußerhlb des Blocks, in dem sie definiert wurden, nicht zugreifbr und hben dort keinen Einfluss uf die Zugreifbrkeit von Vriblen Hilfsfunktionen innerhlb eines Moduls, die nur von den Modulfunktionen benötigt, sollten immer sttic definiert sie ddurch nicht Bestndteil der Modulschnittstelle (= des "Vertrgs" mit den Modulbenutzern)!!! ds Schlüsselwort sttic gibt es uch bei loklen Vriblen (mit nderer Bedeutung! - dort jeweils kursiv geschrieben) Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 35 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 36 / 115

4 7 Progrmmstruktur & Module 7.8 Gültigkeitsbereiche Übersicht Funktion1 Funktion2 Funktion4 Funktion3 7.8 Gültigkeitsbereiche Übersicht Funktion6 Modul1 Modul2 Modul3 Funktion5 globle Vriblen modul-lokle Vriblen =globl sttic funktionslokle Vriblen modullokle Funktion modul-lokle Funktion (= sttic) globle Funktionen 7 Progrmmstruktur & Module 7.9 Lebensduer von Vriblen 7.9 Lebensduer von Vriblen Die Lebensduer einer Vriblen bestimmt, wie lnge der Speicherpltz für die Vrible ufgehoben wird Zwei rten Speicherpltz bleibt für die gesmte Progrmmusführungszeit reserviert sttische (sttic) Vriblen Speicherpltz wird bei Betreten eines Blocks reserviert und dnch wieder freigegeben dynmische (utomtic) Vriblen Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 37 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 38 / Progrmmstruktur & Module 7.9 Lebensduer von Vriblen 7 Progrmmstruktur & Module 7.9 Lebensduer von Vriblen 7.9 Lebensduer von Vriblen (2) 7.9 Lebensduer von Vriblen (3) uto-vriblen sttic-vriblen lle loklen Vriblen sind utomtic-vriblen der Speicher wird bei Betreten des Blocks / der Funktion reserviert und bei Verlssen wieder freigegeben der Wert einer loklen Vriblen ist beim nächsten Betreten des Blocks nicht mehr sicher verfügbr! Lokle uto-vriblen können durch beliebige usdrücke initilisiert die Initilisierung wird bei jedem Eintritt in den Block wiederholt!!! wird eine uto-vrible nicht initilisiert, ist ihr Wert vor der ersten Zuweisung undefiniert (= irgendws) Der Speicher für lle globlen Vriblen ist generell von Progrmmstrt bis Progrmmende reserviert Lokle Vriblen erhlten bei Definition mit dem Schlüsselwort sttic eine Lebensduer über die gesmte Progrmmusführung hinweg der Inhlt bleibt bei Verlssen des Blocks erhlten und ist bei einem erneuten Eintreten in den Block noch verfügbr!!! Ds Schlüsselwort sttic ht bei globlen Vriblen eine völlig ndere Bedeutung (Einschränkung des Zugriffs uf ds Modul) Sttic-Vriblen können durch beliebige konstnte usdrücke initilisiert die Initilisierung wird nur einml beim Progrmmstrt vorgenommen (uch bei loklen Vriblen!) erfolgt keine explizite Initilisierung, wird utomtisch mit 0 vorbelegt Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 39 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 40 / 115

5 8.1 Einordnung 8.2 Überblick 8Zeiger(-Vriblen) 8.2 Überblick ' 8.1 Einordnung Eine Zeigervrible (pointer) enthält ls Wert die dresse einer nderen Vriblen Konstnte: Bezeichnung für einen Wert der Zeiger verweist uf die Vrible Über diese dresse knn mn indirekt uf die Vrible zugreifen Vrible: Bezeichnung eines Dtenobjekts Zeiger-Vrible (Pointer): Bezeichnung einer Referenz uf ein Dtenobjekt chr *p = &; p Drus resultiert die große Bedeutung von Zeigern in C Funktionen können ihre rgumente verändern (cll-by-reference) dynmische Speicherverwltung effizientere Progrmme ber uch Nchteile! Progrmmstruktur wird unübersichtlicher (welche Funktion knn uf welche Vrible zugreifen?) häufigste Fehlerquelle bei C-Progrmmen Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 41 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 42 / Definition von Zeigervriblen 8.4 dressopertoren 8.3 Definition von Zeigervriblen 8.4 dressopertoren Syntx: dressopertor &. Typ *Nme ; &x der unäre dress-opertor liefert eine Referenz uf den Inhlt der Vriblen (des Objekts) x Beispiele int x = 5; int *; int y; = &x; x y 5 5 Verweisopertor *. *x der unäre Verweisopertor * ermöglicht den Zugriff uf den Inhlt der Vriblen (des Objekts), uf die der Zeiger x verweist y = *; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 43 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 44 / 115

6 8.5 Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente ' 8.5 Zeiger ls Funktionsrgumente (2) Prmeter in C by-vlue übergeben die ufgerufene Funktion knn den ktuellen Prmeter beim ufrufer nicht verändern uch Zeiger by-vlue übergeben, d. h. die Funktion erhält lediglich eine Kopie des dressverweises über diesen Verweis knn die Funktion jedoch mit Hilfe des *-Opertors uf die zugehörige Vrible zugreifen und sie verändern cll-by-reference void swp (int *, int *); int min() int, b; swp(&, &b); void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; *py = tmp; b px py tmp Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 45 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 46 / Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente (2) 8.5 Zeiger ls Funktionsrgumente (2) void swp (int *, int *); int min() int, b; swp(&, &b); b void swp (int *, int *); int min() int, b; swp(&, &b); b void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; *py = tmp; px py tmp void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; *py = tmp; px py tmp Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 47 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 48 / 115

7 8.5 Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente (2) 8.5 Zeiger ls Funktionsrgumente (2) void swp (int *, int *); int min() int, b; swp(&, &b); void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; *py = tmp; b *px px py tmp void swp (int *, int *); int min() int, b; swp(&, &b); void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; ➌ *py = tmp; b *px px *py py tmp ➌ Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 49 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 50 / Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente 8.5 Zeiger ls Funktionsrgumente (2) 8.5 Zeiger ls Funktionsrgumente (2) void swp (int *, int *); int min() int, b; swp(&, &b); void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; *py = tmp; ➍ b px *py py tmp ➍ void swp (int *, int *); int min() int, b; swp(&, &b); void swp (int *px, int *py) int tmp; tmp = *px; *px = *py; ➌ *py = tmp; ➍ b px py tmp ➌ ➍ Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 51 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 52 / 115

8 8.6 Zeiger uf Strukturen 8.6 Zeiger uf Strukturen 8.6 Zeiger uf Strukturen 8.6 Zeiger uf Strukturen (2) Konzept nlog zu "Zeiger uf Vriblen" dresse einer Struktur mit &-Opertor zu bestimmen Zeigerrithmetik berücksichtigt Strukturgröße Beispiele struct person stud1; struct person *pstud; pstud = &stud1; /* pstud stud1 */ Zugriff uf Strukturkomponenten über einen Zeiger Beknnte Vorgehensweise *-Opertor liefert die Struktur.-Opertor zum Zugriff uf Komponente Opertorenvorrng bechten (*pstud).best = n ; (*pstud).lter = 21; unleserlich! Besondere Bedeutung zum ufbu verketteter Strukturen Syntktische Verschönerung ->-Opertor (*pstud).best pstud->lter = = 21; n ; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 53 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 54 / Zusmmenfssung Vrible int ; 5 Zeiger int ; *p = &; 5 p 8.7 Zusmmenfssung Struktur struct int ; sint ; chr c;; struct s s1 = 2, ; s1 2 Zeiger uf Struktur int struct ; s *sp = &s1; s1 2 sp 9Felder 9 Felder 9.1 Eindimensionle Felder 9.1 Eindimensionle Felder eine Reihe von Dten desselben Typs knn zu einem Feld zusmmengefsst bei der Definition wird die Größe des Felds ngegeben Größe muss eine Konstnte sein b C99 bei loklen Feldern uch zur Lufzeit berechnete Werte zulässig der Zugriff uf die Elemente erfolgt durch Indizierung, beginnend bei Null Definition eines Feldes Typ Nme [ Größe ] Initilisierung ; Beispiele: int x[5]; double f[20]; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 55 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 56 / 115

9 9 Felder 9.2 Initilisierung eines Feldes 9 Felder 9.3 Initilisierung eines Feldes (2) 9.2 Initilisierung eines Feldes 9.3 Initilisierung eines Feldes (2) =, konstnter usdruck Felder des Typs chr können uch durch String-Konstnten initilisiert chr nme1[5] = "Otto"; chr nme2[] = "Otto"; Ein Feld knn durch eine Liste von konstnten usdrücken, die durch Komm getrennt sind, initilisiert int prim[4] = 2, 3, 5, 7; chr nme[5] = O, t, t, o, \0 ; wird die explizite Felddimensionierung weggelssen, so bestimmt die Zhl der Initilisierungskonstnten die Feldgröße int prim[] = 2, 3, 5, 7; chr nme[] = O, t, t, o, \0 ; zu wenig Initilisierungskonstnten ngegeben, so die restlichen Elemente mit 0 initilisiert Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 57 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 58 / Felder 9.4 Zugriffe uf Feldelemente Indizierung: wobei: Beispiele: Feldnme [ usdruck ] 0 <= Wert(usdruck) < Feldgröße prim[0] == 2 prim[1] == 3 nme[1] == t nme[4] == \0 9.4 Zugriffe uf Feldelemente ' 10Zeiger und Felder ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert es gilt: int rry[5]; int * = rry; rry Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 59 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 60 / 115

10 10Zeiger 2. und Felder 10Zeiger 2. und Felder ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert es gilt: es gilt: int rry[5]; rry int rry[5]; rry int * = rry; int * = rry; int *ep; ep = &rry[0]; int *ep; ep = &rry[0]; ep ep Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 61 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 62 / Zeiger 2. und Felder 10Zeiger 2. und Felder ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert es gilt: es gilt: int rry[5]; rry int rry[5]; rry int * = rry; int *ep; ep = &rry[0]; int * = rry; int *ep; ep = &rry[0]; ep = &rry[2]; ➌ ep = &rry[2]; ➌ ep ➌ ep ➌ Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 63 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 64 / 115

11 10Zeiger 2. und Felder 10Zeiger 2. und Felder ' ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert ein Feldnme ist ein konstnter Zeiger uf ds erste Element des Feldes im Gegenstz zu einer Zeigervriblen knn sein Wert nicht verändert es gilt: es gilt: int rry[5]; rry int rry[5]; rry int * = rry; int *ep; ep = &rry[0]; 1 ➍ int * = rry; int *ep; ep = &rry[0]; 1 ➍ ep = &rry[2]; *ep = 1; ➍ *ep ep ep = &rry[2]; ➌ *ep = 1; ➍ ep ➌ ➌ Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 65 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 66 / rithmetik mit dressen 10.2 Zeigerrithmetik und Felder 10.1rithmetik mit dressen 10.2Zeigerrithmetik und Felder ' ++ -Opertor: Inkrement = nächstes Objekt int rry[3]; int * = rry; ++; ++; ➌ -- -Opertor: Dekrement = vorheriges Objekt +, ddition und Subtrktion von Zeigern und gnzzhligen Werten. Dbei wird immer die Größe des Objekttyps berücksichtigt! rry!!! chtung: ssozitivität der Opertoren bechten ➌ int rry[5]; = rry; = +3; Ein Feldnme ist eine Konstnte für die dresse des Feldnfngs Feldnme ist ein gnz normler Zeiger Opertoren für Zeiger nwendbr ( *, [] ) ber keine Vrible keine Modifiktionen erlubt es gilt: keine Zuweisung, kein ++, --, +=, int rry[5]; /* rry ist Konstnte für den Wert &rry[0] */ int * = rry;/* int * = &rry[0] */ int *ep; /* Folgende Zuweisungen sind äquivlent */ rry[i] = 1; [i] = 1; *(+i) = 1; /* Vorrng! */ *(rry+i) = 1; ep = &rry[i]; *ep = 1; ep = rry+i; *ep = 1; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 67 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 68 / 115

12 10.2 Zeigerrithmetik und Felder 10.2 Zeigerrithmetik und Felder 10.2Zeigerrithmetik und Felder 10.2Zeigerrithmetik und Felder int rry[5]; int *pointer; chr buffer[6]; chr *bptr; rry int rry[5]; int *pointer; chr buffer[6]; chr *bptr; rry ➒ ➑ 700 rry[0] = 10; rry[1] = 920; ➌ strcpy(buffer,"hllo"); ➍ pointer = rry; ➎ bptr = buffer; Fomle Prmeter der Funktion strcpy ziel quelle ➌ ➌ pointer buffer ➍ ➎ bptr ➎ "hllo" h l l o \0 ➍ h l l o \0 ➌ rry[0] = 10; rry[1] = 920; ➌ strcpy(buffer,"hllo"); ➍ pointer = rry; ➎ bptr = buffer; ➏ pointer++; ➐ bptr++; ➑ *pointer = 700; ➒ rry++; pointer buffer bptr ➏ ➏ ➐ ➐ h l l o \0 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 69 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 70 / Mehrdimensionle Felder 10.3 Mehrdimensionle Felder 10.4 Zugriffe uf Feldelemente bei mehrdim. Fel- 10.4Zugriffe uf Feldelemente bei mehrdim. Feldern neben eindimensionlen Felder knn mn uch mehrdimensionle Felder vereinbren Definition eines mehrdimensionlen Feldes Indizierung: Feldnme [ 1 ] [ n ] Typ Nme [ Größe ] Initilisierung ; wobei: 0 <= i < Größe der Dimension i des Feldes n = nzhl der Dimensionen des Feldes int mtrix[4][4]; Relisierung: in der internen Speicherung die Feldelemente zeilenweise hintereinnder im Speicher bgelegt Felddefinition: int f[2][2]; blge der Elemente: f[0][0], f[0][1], f[1][0], f[1][1] f ist ein Zeiger uf f[0][0] int feld[5][8]; feld[2][3] = 10; ist äquivlent zu: int feld[5][8]; int *f1; f1 = (int*)feld; f1[2*8 + 3] = 10; oder *(f1 + (2*8 + 3)) = 10; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 71 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 72 / 115

13 10.5Initilisierung eines mehrdimensionlen Feldes 10.5 Initilisierung eines mehrdimensionlen ein mehrdimensionles Feld knn - wie ein eindimensionles Feld - durch eine Liste von konstnten Werten, die durch Komm getrennt sind, initilisiert wird die explizite Felddimensionierung weggelssen, so bestimmt die Zhl der Initilisierungskonstnten die Größe des Feldes int feld[3][4] = 1, 3, 5, 7, /* feld[0][0-3] */ 2, 4, 6 /* feld[1][0-2] */ ; feld[1][3] und feld[2][0-3] in dem Beispiel mit 0 initilisiert! 11 Dynmische Speicherverwltung 1Dynmische Speicherverwltung Felder können (mit einer usnhme im C99-Stndrd) nur mit sttischer Größe definiert Wird die Größe eines Feldes erst zur Lufzeit des Progrmm beknnt, knn der benötigte Speicherbereich dynmisch vom Betriebssystem ngefordert : Funktion mlloc Ergebnis: Zeiger uf den nfng des Speicherbereichs Zeiger knn dnch wie ein Feld verwendet ( []-Opertor) void *mlloc(size_t size) int *feld; cst-opertor int groesse; feld = (int *) mlloc(groesse * sizeof(int)); if (feld == NULL) perror("mlloc feld"); exit(1); for (i=0; i<groesse; i++) feld[i] = 8; sizeof-opertor Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 73 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 74 / Dynmische Speicherverwltung 1Dynmische 2. Speicherverwltung (2) Dynmisch ngeforderte Speicherbereiche können mit der free- Funktion wieder freigegeben void free(void *ptr) double *dfeld; int groesse; dfeld = (double *) mlloc(groesse * sizeof(double)); free(dfeld); die Schnittstellen der Funktionen sind in in der include-dtei stdlib.h definiert #include <stdlib.h> 12 Explizite Typumwndlung Cst-Opertor 12Explizite Typumwndlung Cst-Opertor C enthält Regeln für eine utomtische Konvertierung unterschiedlicher Typen in einem usdruck Beispiel: In mnchen Fällen wird eine explizite Typumwndlung benötigt (vor llem zur Umwndlung von Zeigern) Syntx: Beispiel: (Typ) Vrible int i = 5; flot f = 0.2; double d; Beispiele: (int) (flot) b feld = (int *) mlloc(groesse * sizeof(int)); d = i * f; (int *) (chr *) flot double mlloc liefert Ergebnis vom Typ (void *) cst-opertor mcht drus den Typ (int *) Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 75 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 76 / 115

14 13sizeof-Opertor 13 sizeof-opertor 14 Eindimensionle Felder ls Funktionsprme- 14Eindimensionle Felder ls Funktionsprmeter In mnchen Fällen ist es notwendig, die Größe (in Byte) einer Vriblen oder Struktur zu ermitteln z. B. zum nfordern von Speicher für ein Feld ( mlloc) Syntx: sizeof x sizeof (Typ) Ds Ergebnis ist vom Typ size_t ( int) (#include <stddef.h>!) liefert die Größe des Objekts x in Bytes liefert die Größe eines Objekts vom Typ Typ in Bytes int ; size_t b; b = sizeof ; /* b = 2 oder b = 4 */ b = sizeof(double) /* b = 8 */ gnze Felder können in C nicht by-vlue übergeben wird einer Funktion ein Feldnme ls Prmeter übergeben, wird dmit der Zeiger uf ds erste Element "by vlue" übergeben die Funktion knn über den formlen Prmeter (=Kopie des Zeigers) in gleicher Weise wie der ufrufer uf die Feldelemente zugreifen (und diese verändern!) bei der Deklrtion des formlen Prmeters wird die Feldgröße weggelssen die Feldgröße ist utomtisch durch den ktuellen Prmeter gegeben die Funktion kennt die Feldgröße dmit nicht ggf. ist die Feldgröße über einen weiteren int-prmeter der Funktion explizit mitzuteilen die Länge von Zeichenketten in chr-feldern knn normlerweise durch Suche nch dem \0-Zeichen bestimmt Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 77 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 78 / Eindimensionle Felder ls Funktionsprme- 14Eindimensionle 2. Felder ls Funktionsprmeter (2) wird ein Feldprmeter ls const deklriert, können die Feldelemente innerhlb der Funktion nicht verändert Funktionsufruf und Deklrtion der formlen Prmeter m Beispiel eines int-feldes: int, b; int feld[20]; func(, feld, b); int func(int p1, int p2[], int p3); oder: int func(int p1, int *p2, int p3); 14 Eindimensionle Felder ls Funktionsprme- 14Eindimensionle 2. Felder ls Funktionsprmeter (3) Beispiel 1: Bestimmung der Länge einer Zeichenkette (String) int strlen(const chr string[]) int i=0; while (string[i]!= \0 ) ++i; return(i); die Prmeter-Deklrtionen int p2[] und int *p2 sind vollkommen äquivlent! im Unterschied zu einer Vriblendefinition int f[] = 1, 2, 3; // initilisiertes Feld mit 3 Elementen int f1[]; // ohne Initilisierung oder Dimension nicht erlubt! int *p; // Zeiger uf einen int Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 79 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 80 / 115

15 14 Eindimensionle Felder ls Funktionsprme- 14Eindimensionle 2. Felder ls Funktionsprmeter (4) Beispiel 2: Konkteniere Strings void strct(chr to[], const chr from[]) int i=0, j=0; while (to[i]!= \0 ) i++; while ( (to[i++] = from[j++])!= \0 ) ; Funktionsufruf mit Feld-Prmetern ls ktueller Prmeter beim Funktionsufruf wird einfch der Feldnme ngegeben chr s1[50] = "text1"; chr s2[] = "text2"; strct(s1, s2);/* s1= "text1text2" */ strct(s1, "text3");/* s1= "text1text2text3" */ ' 15 Zeiger, Felder und Zeichenketten 15Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (chr), die in der internen Drstellung durch ein \0 Zeichen bgeschlossen sind Länge eines Strings ermitteln ufruf strlen(x); /* 1. Version */ int strlen(const chr *s) int n; for (n=0; *s!= \0 ; s++) n++; return(n); /* 2. Version */ int strlen(const chr *s) chr *p = s; while (*p!= \0 ) p++; return(p-s); x s x s n=0 h l s++ h l p l l o \0 n=4 o \0 p++ n=5 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 81 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 82 / Zeiger, Felder und Zeichenketten 15Zeiger, 2. Felder und Zeichenketten (2) wird eine Zeichenkette zur Initilisierung eines chr Feldes verwendet, ist der Feldnme ein konstnter Zeiger uf den nfng der Zeichenkette chr messge[] = "now is the time"; n o w _ i s _ t h e _ t i m e \0 messge 15 Zeiger, Felder und Zeichenketten 15Zeiger, 2. Felder und Zeichenketten (3) wird eine Zeichenkette zur Initilisierung eines chr Zeigers verwendet, ist der Zeiger eine Vrible, die mit der nfngsdresse der Zeichenkette initilisiert wird chr *pmessge = "hello world"; h e l l o _ w o r l d \0 pmessge pmessge++; printf("%s", pmessge); /*gibt "ello world" us*/ wird dieser Zeiger überschrieben, ist die Zeichenkette nicht mehr dressierbr! h e l l o _ w o r l d \0 pmessge h l l o \0 ➌ pmessge = "hllo"; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 83 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 84 / 115

16 15 Zeiger, Felder und Zeichenketten 15Zeiger, 2. Felder und Zeichenketten (4) die Zuweisung eines chr Zeigers oder einer Zeichenkette n einen chr Zeiger bewirkt kein Kopieren von Zeichenketten! pmessge = messge; weist dem Zeiger pmessge lediglich die dresse der Zeichenkette "now is the time" zu n o w _ i s _ t h e _ t i m e \0 messge pmessge wird eine Zeichenkette ls ktueller Prmeter n eine Funktion übergeben, erhält diese eine Kopie des Zeigers 15 Zeiger, Felder und Zeichenketten 15Zeiger, 2. Felder und Zeichenketten (5) Zeichenketten kopieren /* 1. Version */ void strcpy(chr to[], const chr from[]) int i=0; while ( (to[i] = from[i])!= \0 ) i++; /* 2. Version */ void strcpy(chr *to, const chr *from) while ( (*to = *from)!= \0 ) to++, from++; /* 3. Version */ void strcpy(chr *to, const chr *from) while ( *to++ = *from++ ) ; Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 85 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 86 / Zeiger, Felder und Zeichenketten 15Zeiger, 2. Felder und Zeichenketten (6) in NSI-C können Zeichenketten in nicht-modifizierbren Speicherbereichen ngelegt (je nch Compiler) Schreiben in Zeichenketten (Zuweisungen über dereferenzierte Zeiger) knn zu Progrmmbstürzen führen! Beispiel: pmessge ber! strcpy("zu ueberschreiben", "reinschreiben"); chr *pmessge = "hello world"; h e l l o _ w x o r l d \0 pmessge[6] = x ; chr messge[] = "hello world"; messge[6] = x ; ok! ' 16Felder von Zeigern 16 Felder von Zeigern uch von Zeigern können Felder gebildet Deklrtion int *pfeld[5]; int i = 1 int j; Zugriffe uf einen Zeiger des Feldes pfeld[3] = &i; Zugriffe uf ds Objekt, uf ds ein Zeiger des Feldes verweist j = *pfeld[3]; ➍ ➍ ➌ pfeld pfeld[3] ➌ * pfeld[3] i 1 ➍ j Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 87 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 88 / 115

17 16Felder 2. von Zeigern (2) 16 Felder von Zeigern Definition und Initilisierung eines Zeigerfeldes: chr *month_nme(int n) sttic chr *Montsnmen[] = "Unzulessiger Mont", "Jnur", "Dezember" ; return ( (n<0 n>12)? Montsnmen[0] : Montsnmen[n] ); 17 rgumente us der Kommndozeile 17rgumente us der Kommndozeile beim ufruf eines Kommndos können normlerweise rgumente übergeben der Zugriff uf diese rgumente wird der Funktion min( ) durch zwei ufrufprmeter ermöglicht: int min (int rgc, chr *rgv[]) oder int min (int rgc, chr **rgv) Montsnmen U n z u l M o n t \0 J n u r \0 F e b r u r \0 M e r z \0 der Prmeter rgc enthält die nzhl der rgumente, mit denen ds Progrmm ufgerufen wurde der Prmeter rgv ist ein Feld von Zeiger uf die einzelnen rgumente (Zeichenketten) D e z e m b e r \0 der Kommndonme wird ls erstes rgument übergeben (rgv[0]) Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 89 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 90 / rgumente us der Kommndozeile 17.1 Dtenufbu 17 rgumente us der Kommndozeile 17.2 Zugriff Beispiel: usgeben ller rgu- 17.1Dtenufbu 17.2Zugriff Beispiel: usgeben ller rgumente (1) ' Kommndo: rgc 5 rgv cc - -o uf9 uf9.c Dtei cc.c: min(int rgc, chr *rgv[]) rgv[1] NULL 0 c c \0 - \0 - o \0 u f 9 * rgv[1] oder rgv[1][0] \0 u f 9. c \0 rgv[3][1] ds folgende Progrmmstück gibt lle rgumente der Kommndozeile us (ußer dem Kommndonmen) int min (int rgc, chr *rgv[]) int i; for ( i=1; i<rgc; i++) printf("%s%c", rgv[i], (i < rgc-1)? : \n ); rgc 5 rgv rgv[1] rgv[2] rgv[3] rgv[4] rgv[5] NULL 0 c c \0 - \0 - o \0 u f 9 1. Version \0 u f 9. c \0 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 91 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 92 / 115

18 17 rgumente us der Kommndozeile 17.2 Zugriff Beispiel: usgeben ller rgu- 17.2Zugriff Beispiel: usgeben ller rgumente (2) ds folgende Progrmmstück gibt lle rgumente der Kommndozeile us (ußer dem Kommndonmen) int min (int rgc, chr **rgv) while (--rgc > 0) rgv++; linksseitiger Opertor: erst dekrementieren, 2. Version dnn while-bedingung prüfen Schleife läuft für rgc=4,3,2,1 printf("%s%c", *rgv, (rgc>1)? : \n ); 18Zeiger uf Zeiger 18 Zeiger uf Zeiger ein Zeiger knn uf eine Vrible verweisen, die ihrerseits ein Zeiger ist int x = 5; int * = &x; int **p = &; /* ** p = 5 */ x 5 p rgc rgv *rgv nch 1x rgv++ *rgv nch 4x rgv++ NULL 0 c c \0 - \0 - o \0 u f 9 \0 u f 9. c \0 wird vor llem bei der Prmeterübergbe n Funktionen benötigt, wenn ein Zeiger "cll bei reference" übergeben muss (z. B. swp-funktion für Zeiger) Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 93 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 94 / Strukturen Beispiele 19 Strukturen struct student chr nchnme[25]; chr vornme[25]; chr gebdtum[11]; int mtrnr; short gruppe; chr best; ; Initilisierung Strukturen ls Funktionsprmeter Felder von Strukturen Zeiger uf Strukturen struct komplex double re; double im; ; 19 Strukturen 19.1Initilisieren von Strukturen 19.1 Initilisieren von Strukturen Strukturen können wie Vriblen und Felder bei der Definition initilisiert die Zuordnung zu den Komponenten erfolgt entweder ufgrund der Reihenfolge oder ufgrund des ngegebenen Nmens (in C++ nur ufgrund der Reihenfolge möglich!) Beispiele struct student stud1 = "Meier", "Hns", " ", , 5, n ; struct komplex c1 = 1.2, 0.8, c2 =.re=0.5,.im=0.33;!!! Vorsicht bei Zugriffen uf eine Struktur die Komponenten immer durch die Komponentennmen identifiziert, bei der Initilisierung nch Reihenfolge ber nur durch die Postion potentielle Fehlerquelle bei Änderungen der Strukturtyp-Deklrtion Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 95 / 115 Jürgen Kleinöder Univ. Erlngen-Nürnberg Informtik 4, 2010 WS 2010/11 96 / 115

3 Module in C. 4 Gültigkeit von Namen. 5 Globale Variablen (2) Gültig im gesamten Programm

3 Module in C. 4 Gültigkeit von Namen. 5 Globale Variablen (2) Gültig im gesamten Programm 3 Module in C 5 Glole Vrilen!!!.c Quelldteien uf keinen Fll mit Hilfe der #include Anweisung in ndere Quelldteien einkopieren Bevor eine Funktion us einem nderen Modul ufgerufen werden knn, muss sie deklriert

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Feder und Strukturen in C F Zeiger, Feder und Strukturen in C 3 Definition von Zeigervriben F.1 Zeiger(-Vriben) F.1 Zeiger(-Vriben) Syntx: Typ *Nme ; 1 Einordnung Konstnte: Bezeichnung für einen

Mehr

Mechanismus Aufrufer Funktion Funktion Aufrufer Parameter ja mit Hilfe von Zeigern Funktionswert nein ja globale Variablen ja ja

Mechanismus Aufrufer Funktion Funktion Aufrufer Parameter ja mit Hilfe von Zeigern Funktionswert nein ja globale Variablen ja ja 2 Kurzeinführung in die Progrmmiersprche C 2.7 Progrmmstruktur & Module 10 Werteustusch zwischen Funktionen Mechnismus Aufrufer Funktion Funktion Aufrufer Prmeter j mit Hilfe von Zeigern Funktionswert

Mehr

2 Kurzeinführung in die Programmiersprache C 2.7 Programmstruktur & Module. 2 Kurzeinführung in die Programmiersprache C 2.7 Programmstruktur & Module

2 Kurzeinführung in die Programmiersprache C 2.7 Programmstruktur & Module. 2 Kurzeinführung in die Programmiersprache C 2.7 Programmstruktur & Module 2 Kurzeinführung in die Progrmmiersprche C 2.7 Progrmmstruktur & Module 10 Werteustusch zwischen Funktionen Mechnismus Aufrufer Funktion Funktion Aufrufer Prmeter j mit Hilfe von Zeigern Funktionswert

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

c dl SPiC (Teil C, SS 11) 13 Zeiger und Felder 13.1 Zeiger Einführung 13 1 Zeigervariable := Behälter für Verweise ( Adresse) Beispiel int x = 5;

c dl SPiC (Teil C, SS 11) 13 Zeiger und Felder 13.1 Zeiger Einführung 13 1 Zeigervariable := Behälter für Verweise ( Adresse) Beispiel int x = 5; Überblick: Teil C Systemnhe Softwreentwicklung Einordnung: Zeiger (Pointer) Literl: Drstellung eines Wertes 0110 0001 12 Progrmmstruktur und Module Vrible: Bezeichnung chr ; eines Dtenobjekts Behälter

Mehr

Übungen zur Systemprogrammierung I Wintersemester 2001/2002

Übungen zur Systemprogrammierung I Wintersemester 2001/2002 1 Orgnistorisches Orgnistorisches Folien der Üungen im WWW Üungen zur Systemprogrmmierung I Wintersemester 2001/2002 URL zur Üung http://www4.informtik.uni-erlngen.de/lehre/ws01/v_sp1/ueung/ hier findet

Mehr

E Mikrocontroller-Programmierung. E.2 Beispiel: AVR-Mikrocontroller (ATmega-Serie) 1 Mikrocontroller-Umgebung. E.1 Überblick.

E Mikrocontroller-Programmierung. E.2 Beispiel: AVR-Mikrocontroller (ATmega-Serie) 1 Mikrocontroller-Umgebung. E.1 Überblick. E Mikrocontroller-Progrmmierung E Mikrocontroller-Progrmmierung 1 Mikrocontroller-Umgebung E.1 Überblick E.1 Überblick Mikrocontroller-Umgebung Prozessor m Beispiel AVR-Mikrocontroller Speicher Peripherie

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 7. Arrays

Grundlagen der Programmierung Prof. H. Mössenböck. 7. Arrays Grundlgen der Progrmmierung Prof. H. Mössenböck 7. Arrys Eindimensionle Arrys Arry = Tbelle gleichrtiger Elemente [0] [1] [2] [3] Nme bezeichnet ds gesmte Arry Elemente werden über Indizes ngesprochen

Mehr

3. Gültigkeit von Definitionen

3. Gültigkeit von Definitionen 3. Gültigkeit von Definitionen GPS-3-1 Themen dieses Kpitels: Definition und Bindung von Bezeichnern Verdeckungsregeln für die Gültigkeit von Definitionen Gültigkeitsregeln in Progrmmiersprchen 2005 bei

Mehr

Ausdrücke haben einen Wert sin(math.pi) wird zu 1 sin(kreisradius) wird zur Laufzeit ausgewertet. Informatik I Kapitel 6

Ausdrücke haben einen Wert sin(math.pi) wird zu 1 sin(kreisradius) wird zur Laufzeit ausgewertet. Informatik I Kapitel 6 Informtik I Kpitel 6 Ausdrücke hben einen Wert sin(mth.pi) wird zu 1 sin(kreisrdius) wird zur Lufzeit usgewertet Elementre Konzepte von Progrmmiersprchen Zusmmenfssung des Kpitel 6 Küchlin, Weber, Einführung

Mehr

U3 3. Übung U3 3. Übung. Systemnahe Programmierung in C Übungen Moritz Strübe Universität Erlangen-Nürnberg Informatik 4, 2009 U3.fm

U3 3. Übung U3 3. Übung. Systemnahe Programmierung in C Übungen Moritz Strübe Universität Erlangen-Nürnberg Informatik 4, 2009 U3.fm U3 3. Übung U3 3. Übung Besprechung Aufgabe 1 Pointer Register und Ports U3.1 U3-1 Zeiger U3-1 Zeiger 1 Einordnung Konstante: a 0110 0001 Variable: a Zeiger-Variable (Pointer): a char *p = &a; p U3.2 2

Mehr

Programmieren in C/C++ und MATLAB. Programmieren in C/C++ und MATLAB. Sebastian Bauer Sven Willert Sabine Schmidt

Programmieren in C/C++ und MATLAB. Programmieren in C/C++ und MATLAB. Sebastian Bauer Sven Willert Sabine Schmidt Progrmmieren in C/C und MATLAB Sestin Buer Sven Willert Sine Schmidt Institut für Geowissenschften Christin-Alrechts-Universität zu Kiel Sestin Buer Institut für Geowissenschften Progrmmieren in C/C und

Mehr

2 Beispiel Sinusberechnung

2 Beispiel Sinusberechnung 2 Beispiel Sinusberechnung #include #include double sinus (double x) { double summe; double x_quadrat; double rest; int k; main() { double wert; D.8 Funktionen printf("berechnung des

Mehr

FORMALE SYSTEME. 7. Vorlesung: Reguläre Ausdrücke. TU Dresden, 2. November Markus Krötzsch

FORMALE SYSTEME. 7. Vorlesung: Reguläre Ausdrücke. TU Dresden, 2. November Markus Krötzsch FORMALE SYSTEME 7. Vorlesung: Reguläre Ausdrücke Mrkus Krötzsch TU Dresden, 2. November 2017 Rndll Munroe, https://xkcd.com/851_mke_it_better/, CC-BY-NC 2.5 Mrkus Krötzsch, 2. November 2017 Formle Systeme

Mehr

5.2 BASIC MSC (BMSC) BASIC MSC. Kommunikation zwischen Instanzen. Message Sequence Charts

5.2 BASIC MSC (BMSC) BASIC MSC. Kommunikation zwischen Instanzen. Message Sequence Charts BASIC MSC Ein System besteht us Instnzen. Eine Instnz ist eine bstrkte Einheit, deren Interktion mit nderen Instnzen oder mit der Umgebung mn (teilweise) beobchten knn. Instnzen kommunizieren untereinnder

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Ungleichungen. Jan Pöschko. 28. Mai Einführung

Ungleichungen. Jan Pöschko. 28. Mai Einführung Ungleichungen Jn Pöschko 8. Mi 009 Inhltsverzeichnis Einführung. Ws sind Ungleichungen?................................. Äquivlenzumformungen..................................3 Rechnen mit Ungleichungen...............................

Mehr

Satz 6.5 (Mittelwertsatz der Integralrechnung) Sei f : [a, b] R stetig. Dann gibt es ein ξ [a, b], so dass. b a. f dx = (b a)f(ξ) f dx (b a)m.

Satz 6.5 (Mittelwertsatz der Integralrechnung) Sei f : [a, b] R stetig. Dann gibt es ein ξ [a, b], so dass. b a. f dx = (b a)f(ξ) f dx (b a)m. Stz 6.5 (Mittelwertstz der Integrlrechnung) Sei f : [, b] R stetig. Dnn gibt es ein ξ [, b], so dss 9:08.06.2015 gilt. f dx = (b )f(ξ) Lemm 6.6 Sei f : [, b] R stetig und m f(x) M für lle x [, b]. Dnn

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C 3 Definition von Zeigervariablen F.1 Zeiger(-Variablen) F.1 Zeiger(-Variablen) Syntax: Typ *Name ; 1 Einordnung Konstante: Bezeichnung

Mehr

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2) Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/

Mehr

Programmieren in C/C++ und Matlab

Programmieren in C/C++ und Matlab Progrmmieren in C/C und Mtl Sine Schmidt & Sestin Buer Institut für Geowissenschften Christin-Alrechts-Universität zu Kiel Progrmmieren in C/C und Mtl CAU, SS 08 for- / while-schleifen: - numerische Integrlerechnung

Mehr

Das Rechnen mit Logarithmen

Das Rechnen mit Logarithmen Ds Rechnen mit Logrithmen Etw in der 0. Klssenstufe kommt mn in Kontkt mit Logrithmen. Für die, die noch nicht so weit sind oder die, die schon zu weit dvon entfernt sind, hier noch einml ein kleiner Einblick:

Mehr

11. DER HAUPTSATZ DER DIFFERENTIAL- UND INTEGRALRECHNUNG

11. DER HAUPTSATZ DER DIFFERENTIAL- UND INTEGRALRECHNUNG 91 Dieses Skript ist ein Auszug mit Lücken us Einführung in die mthemtische Behndlung der Nturwissenschften I von Hns Heiner Storrer, Birkhäuser Skripten. Als StudentIn sollten Sie ds Buch uch kufen und

Mehr

S 1. Definition: Ein endlicher Automat ist ein 5-Tupel. Das endliche Eingabealphabet

S 1. Definition: Ein endlicher Automat ist ein 5-Tupel. Das endliche Eingabealphabet Der endliche Automt Modell: Eingend rechtsseitig unegrenzt F F F F F F F F F F F F F F Lesekopf S 1 Definition: Ein endlicher Automt ist ein 5-Tupel A = ( Σ;S;F;s 0 ; ϕ ) Dei ist Σ= {e 1;e 2...e n} Ds

Mehr

Mathematik Bruchrechnung Grundwissen und Übungen

Mathematik Bruchrechnung Grundwissen und Übungen Mthemtik Bruchrechnung Grundwissen und Übungen von Stefn Gärtner (Gr) Stefn Gärtner -00 Gr Mthemtik Bruchrechnung Seite Inhlt Inhltsverzeichnis Seite Grundwissen Ws ist ein Bruch? Rtionle Zhlen Q Erweitern

Mehr

Multiplikative Inverse

Multiplikative Inverse Multipliktive Inverse Ein Streifzug durch ds Bruchrechnen in Restklssen von Yimin Ge, Jänner 2006 Viele Leute hben Probleme dbei, Brüche und Restklssen unter einen Hut zu bringen. Dieser kurze Aufstz soll

Mehr

Grundlagen der Informatik II Übungsblatt: 2, WS 17/18 mit Lösungen

Grundlagen der Informatik II Übungsblatt: 2, WS 17/18 mit Lösungen PD. Dr. Prdyumn Shukl Mrlon Brun Micel Wünsche Dr. Friederike Pfeiffer-Bohnen Dr. Luks König Institut für ngewndte Informtik und Formle Beschreibungsverfhren Grundlgen der Informtik II Übungsbltt: 2, WS

Mehr

Falls die Werte von X als Ergebnisse eines Zufallsvorgangs resultieren, wird X zu einer stetigen Zufallsvariable.

Falls die Werte von X als Ergebnisse eines Zufallsvorgangs resultieren, wird X zu einer stetigen Zufallsvariable. Sttistik I für Sttistiker, Mthemtiker und Informtiker Lösungen zu Bltt 11 Gerhrd Tutz, Jn Ulbricht, Jn Gertheiss WS 7/8 Theorie: Stetige Zufllsvriblen Begriff Stetigkeit: Eine Vrible oder ein Merkml X

Mehr

Lineare Algebra und Numerische Mathematik für D-BAUG

Lineare Algebra und Numerische Mathematik für D-BAUG R Käppeli L Herrmnn W Wu Herbstsemester 206 Linere Algebr und Numerische Mthemtik für D-BAUG Beispiellösung für Serie 5 ETH Zürich D-MATH Aufgbe 5 5) Seien u und v Lösungen des LGS Ax = b mit n Unbeknnten

Mehr

Bisher haben wir keine Annahmen bzgl. der Sortierung der gegebenen Werte gemacht, d.h. sie durften in beliebiger Reihenfolge im Array a stehen

Bisher haben wir keine Annahmen bzgl. der Sortierung der gegebenen Werte gemacht, d.h. sie durften in beliebiger Reihenfolge im Array a stehen 4.2.2 Binäre Suche Bisher hben wir keine Annhmen bzgl. der Sortierung der gegebenen Werte gemcht, d.h. sie durften in beliebiger Reihenfolge im Arry stehen Nehmen wir n, dss die Werte im Arry gemäß der

Mehr

FORMALE SYSTEME. Kleene s Theorem. Wiederholung: Reguläre Ausdrücke. 7. Vorlesung: Reguläre Ausdrücke. TU Dresden, 2.

FORMALE SYSTEME. Kleene s Theorem. Wiederholung: Reguläre Ausdrücke. 7. Vorlesung: Reguläre Ausdrücke. TU Dresden, 2. FORMALE SYSTEME 7. Vorlesung: Reguläre Ausdrücke Mrkus Krötzsch Rndll Munroe, https://xkcd.com/851_mke_it_etter/, CC-BY-NC 2.5 TU Dresden, 2. Novemer 2017 Mrkus Krötzsch, 2. Novemer 2017 Formle Systeme

Mehr

Quadratische Funktionen

Quadratische Funktionen Qudrtische Funktionen Die Scheitelpunktform ist eine spezielle Drstellungsform von qudrtischen Funktionen, nhnd der viele geometrische Eigenschften des Funktionsgrphen bgelesen werden können. Abbildung

Mehr

Versuchsplanung. Grundlagen. Extrapolieren unzulässig! Beobachtungsbereich!

Versuchsplanung. Grundlagen. Extrapolieren unzulässig! Beobachtungsbereich! Versuchsplnung 22 CRGRAPH www.crgrph.de Grundlgen Die Aufgbe ist es Versuche so zu kombinieren, dss die Zusmmenhänge einer Funktion oder eines Prozesses bestmöglich durch eine spätere Auswertung wiedergegeben

Mehr

Exportmodul Artikel-Nr.: 20208

Exportmodul Artikel-Nr.: 20208 Seite 1 / 5 V5.32 Exportmodul Artikel-Nr.: 20208 Erweiterungsmodul für ds ELV-TimeMster Komplettsystem Hndbuch und Beschreibungen Ab der Version 5 befinden sich die Kurznleitung und ds gesmte Hndbuch ls

Mehr

1 Zeiger als Funktionsargumente. U3-1 einfache swap_double Funktion. 1 Zeiger als Funktionsargumente. 1 Zeiger als Funktionsargumente.

1 Zeiger als Funktionsargumente. U3-1 einfache swap_double Funktion. 1 Zeiger als Funktionsargumente. 1 Zeiger als Funktionsargumente. U3 3. Üung U3 3. Üung 1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion Aufge 2 U3-1 einfche wp_doule Funktion Prmeter werden in C y-vlue üergeen die ufgerufene Funktion knn den ktuellen Prmeter

Mehr

Formale Systeme, Automaten, Prozesse SS 2010 Musterlösung - Übung 6 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder

Formale Systeme, Automaten, Prozesse SS 2010 Musterlösung - Übung 6 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder Prof Dr J Giesl Formle ysteme, utomten, Prozesse 2010 M rockschmidt, F Emmes, C Fuhs, C Otto, T tröder Hinweise: Die Husufgben sollen in Gruppen von je 2 tudierenden us dem gleichen Tutorium berbeitet

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

a = c d b Matheunterricht: Gesucht ist x. Physikunterricht Gesucht ist t: s = vt + s0 -s0 s - s0 = vt :v = t 3 = 4x = 4x :4 0,5 = x

a = c d b Matheunterricht: Gesucht ist x. Physikunterricht Gesucht ist t: s = vt + s0 -s0 s - s0 = vt :v = t 3 = 4x = 4x :4 0,5 = x Bltt 1: Hilfe zur Umformung von Gleichungen mit vielen Vriblen Im Mthemtikunterricht hben Sie gelernt, wie mn Gleichungen mit einer Vriblen umformt, um diese Vrible uszurechnen. Meistens hieß sie. In Physik

Mehr

- 1 - VB Inhaltsverzeichnis

- 1 - VB Inhaltsverzeichnis - - VB Inhltsverzeichnis Inhltsverzeichnis... Die Inverse einer Mtrix.... Definition der Einheitsmtrix.... Bedingung für die inverse Mtrix.... Berechnung der Inversen Mtrix..... Ds Verfhren nch Guß mit

Mehr

Grundbegriffe der Informatik Aufgabenblatt 6

Grundbegriffe der Informatik Aufgabenblatt 6 Mtr.nr.: Nchnme: Vornme: Grundbegriffe der Informtik Aufgbenbltt 6 Tutorium: Nr. Nme des Tutors: Ausgbe: 2. Dezember 2015 Abgbe: 11. Dezember 2015, 12:30 Uhr im GBI-Briefksten im Untergeschoss von Gebäude

Mehr

Kapitel 6. Funktionen

Kapitel 6. Funktionen Kpitel 6 Funktionen Josef Leydold Mthemtik für VW WS 07/8 6 Funktionen / 49 Reelle Funktion Reelle Funktionen sind Abbildungen, in denen sowohl die Definitionsmenge ls uch die Wertemenge Teilmengen von

Mehr

Funktionen. Kapitel 6. Reelle Funktion. Graph einer Funktion. Beispiel. Beispiel. Zeichnen eines Graphen. Bijektivität

Funktionen. Kapitel 6. Reelle Funktion. Graph einer Funktion. Beispiel. Beispiel. Zeichnen eines Graphen. Bijektivität Reelle Funktion Kpitel 6 Funktionen Reelle Funktionen sind Abbildungen, in denen sowohl die Definitionsmenge ls uch die Wertemenge Teilmengen von R üblicherweise Intervlle) sind. Bei reellen Funktionen

Mehr

6. Quadratische Gleichungen

6. Quadratische Gleichungen 6. Qudrtische Gleichungen 6. Vorbemerkungen Potenzieren und Wurzelziehen, somit uch Qudrieren und Ziehen der Qudrtwurzel, sind entgegengesetzte Opertionen. Sie heben sich gegenseitig uf. qudrieren Qudrtwurzel

Mehr

Endliche Automaten und ihre Verwendung in der morphologischen Verarbeitung. Hans Uszkoreit

Endliche Automaten und ihre Verwendung in der morphologischen Verarbeitung. Hans Uszkoreit Vorlesung CL Endliche Automten und ihre Verwendung in der morphologischen Verrbeitung Hns Uszkoreit WS 00/01 Automten Automten in der weiteren Bedeutung des Wortes sind ein zentrles Konzept ber nicht forml

Mehr

Integrieren. Regeln. Einige Integrale die man auswendig kennen sollte. Partielle Integration

Integrieren. Regeln. Einige Integrale die man auswendig kennen sollte. Partielle Integration Integrieren Regeln (f() + g())d = f()d + g()d c f()d = c f()d b f()d = f()d b Einige Integrle die mn uswendig kennen sollte s d = s + s+ + C (für s ) d = ln + C cos d = sin + C sin d = cos + C sinh d =

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 12

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 12 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérle de Zurich Politecnico federle di Zurigo Federl Institute of Technology t Zurich Institut für Theoretische Informtik 29 Ferur 2012

Mehr

U8 7. Übung U8 7. Übung

U8 7. Übung U8 7. Übung U8 7. Übung U8 7. Übung Dynamische Speicherverwaltung Generisches Sortieren Aufgabe 7 U8.1 U8-1 Dynamische Speicherverwaltung U8-1 Dynamische Speicherverwaltung Erzeugen von Feldern der Länge n: mittels:

Mehr

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier Vektoren 105 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list

Mehr

1 Metrische Räume. Sei X eine nichtleere Menge. Definition 1.1. Eine Abbildung: d : X X R heißt Metrik auf X, falls für alle x, y, z X gilt

1 Metrische Räume. Sei X eine nichtleere Menge. Definition 1.1. Eine Abbildung: d : X X R heißt Metrik auf X, falls für alle x, y, z X gilt Metrische Räume Sei X eine nichtleere Menge. Definition.. Eine Abbildung: d : X X R heißt Metrik uf X, flls für lle x, y, z X gilt (i) d(x, y) 0, (ii) d(x, y) = d(y, x), (iii) d(x, y) d(x, z) + d(z, y)

Mehr

Kurvenintegrale. 17. Juli 2006 (Korrigierte 2. Version) 1 Kurvenintegrale 1. Art (d.h. f ist Zahl, kein Vektor)

Kurvenintegrale. 17. Juli 2006 (Korrigierte 2. Version) 1 Kurvenintegrale 1. Art (d.h. f ist Zahl, kein Vektor) Kurvenintegrle Christin Mosch, Theoretische Chemie, Universität Ulm, christin.mosch@uni-ulm.de 7. Juli 26 (Korrigierte 2. Version Kurvenintegrle. Art (d.h. f ist Zhl, kein Vektor Bei Kurvenintegrlen. Art

Mehr

Grundlagen zu Datenstrukturen und Algorithmen Schmitt, Schömer SS 2001

Grundlagen zu Datenstrukturen und Algorithmen Schmitt, Schömer SS 2001 Grundlgen zu Dtenstrukturen und Algorithmen Schmitt, Schömer SS 001 http://www.mpi-sb.mpg.de/~sschmitt/info5-ss01 U N S A R I V E R S A V I E I T A S N I S S Lösungsvorschläge für ds 4. Übungsbltt Letzte

Mehr

Grundlagen der Integralrechnung

Grundlagen der Integralrechnung Grundlgen der Integrlrechnung Wolfgng Kippels 8. April 018 Inhltsverzeichnis 1 Vorwort Ds unbestimmte Integrl Ds bestimmte Integrl 5 4 Beispielufgben 8 4.1 Beispielufgbe 1...............................

Mehr

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III Nme Vornme Mtrikelnummer Lösungsvorschlg Universität Krlsruhe Institut für Theoretische Informtik o. Prof. Dr. P. Snders 8. März 2006 Klusur: Informtik III Aufgbe 1. Multiple Choice 10 Punkte Aufgbe 2.

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

1KOhm + - y = x LED leuchtet wenn Schalter x gedrückt ist

1KOhm + - y = x LED leuchtet wenn Schalter x gedrückt ist . Ohm = LED leuchtet wenn chlter gedrückt ist 2. Ohm = NICH ( = NO ) LED leuchtet wenn chlter nicht gedrückt ist = ist die Negtion von? Gibt es so einen kleinen chlter (Mikrotster)? 2. Ohm = UND LED leuchtet

Mehr

Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten)

Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten) Institut für Angewndte Informtik und Formle Beschreiungsverfhren 2.7.24 Klusur üer den Stoff der Vorlesung Grundlgen der Informtik II (9 Minuten) Nme: Vornme: Mtr.-Nr.: Semester: (SS 24) Ich estätige,

Mehr

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Typ : void* aktuelle Parameter Pointer von beliebigem Typ 2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben

Mehr

Crashkurs - Integration

Crashkurs - Integration Crshkurs - Integrtion emerkung. Wir setzen hier elementre Kenntnisse des Differenzierens sowie der Produktregel, Quotientenregel und Kettenregel vorus (diese werden später in der VO noch usführlich erklärt).

Mehr

Lösungen Quadratische Gleichungen. x = x x = Also probieren wir es 3 4 = 12. x + + = Lösen Sie die folgenden Gleichungen nach x auf:

Lösungen Quadratische Gleichungen. x = x x = Also probieren wir es 3 4 = 12. x + + = Lösen Sie die folgenden Gleichungen nach x auf: Aufgbe : ) Lösen Sie die folgenden Gleichungen nch uf: = kein Problem einfch die Wurel iehen und ds ± nicht vergessen.. = = ±, b) + 5 = 0 Hier hben wir bei jedem Ausdruck ein, lso können wir usklmmern:

Mehr

Umwandlung von endlichen Automaten in reguläre Ausdrücke

Umwandlung von endlichen Automaten in reguläre Ausdrücke Umwndlung von endlichen Automten in reguläre Ausdrücke Wir werden sehen, wie mn us einem endlichen Automten M einen regulären Ausdruck γ konstruieren knn, der genu die von M kzeptierte Sprche erzeugt.

Mehr

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre Vorlesung Einführung in die mthemtische Sprche und nive Mengenlehre 1 Allgemeines RUD26 Erwin-Schrödinger-Zentrum (ESZ) RUD25 Johnn-von-Neumnn-Hus Fchschft Menge ller Studenten eines Institutes Fchschftsrt

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Übungen zu Wurzeln III

Übungen zu Wurzeln III A.Nenner rtionl mchen: Nenner ist Qudrtwurzel: 5 bc 1.).).).) 5.) 1 15 9 bc.).) 8.) 9.) 10.) 5 5 B.Nenner rtionl mchen: Nenner ist höhere Wurzel: 1 1 9 5 1 1.).).).) 5.).) 5 C.Nenner rtionl mchen: Nenner

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

3 Uneigentliche Integrale

3 Uneigentliche Integrale Mthemtik für Physiker II, SS 2 Freitg 2.5 $Id: uneigentlich.te,v.7 2/5/2 :49:7 hk Ep $ $Id: norm.te,v.3 2/5/2 2:2:45 hk Ep hk $ 3 Uneigentliche Integrle Am Ende der letzten Sitzung htten wir ds Mjorntenkriterium

Mehr

G2 Grundlagen der Vektorrechnung

G2 Grundlagen der Vektorrechnung G Grundlgen der Vektorrechnung G Grundlgen der Vektorrechnung G. Die Vektorräume R und R Vektoren Beispiel: Physiklische Größen wie Krft und Geschwindigkeit werden nicht nur durch ihre Mßzhl und ihre Einheit,

Mehr

Resultat: Hauptsatz der Differential- und Integralrechnung

Resultat: Hauptsatz der Differential- und Integralrechnung 17 Der Huptstz der Differentil- und Integrlrechnung Lernziele: Konzept: Stmmfunktion Resultt: Huptstz der Differentil- und Integrlrechnung Methoden: prtielle Integrtion, Substitutionsregel Kompetenzen:

Mehr

E Mikrocontroller-Programmierung

E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden

Mehr

Kantonale Prüfungen Mathematik I Prüfung für den Übertritt aus der 8. Klasse

Kantonale Prüfungen Mathematik I Prüfung für den Übertritt aus der 8. Klasse Kntonle Prüfungen 0 für die Zulssung zum gymnsilen Unterricht im 9. Schuljhr Mthemtik I Serie H8 Gymnsien des Kntons Bern Mthemtik I Prüfung für den Übertritt us der 8. Klsse Bitte bechten: - Berbeitungsduer:

Mehr

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt:

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 8. Grundlgen der Informtionstheorie 8.1 Informtionsgehlt, Entropie, Redundnz Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* ller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 1.

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern

Mehr

1. Stegreifaufgabe aus der Physik Lösungshinweise

1. Stegreifaufgabe aus der Physik Lösungshinweise . Stegreifufgbe us der Physik Lösungshinweise Gruppe A Aufgbe Ds.Newtonsche Gesetz lässt sich zum Beispiel so formulieren: Wirkt uf einen Körper keine Krft (oder ist die Summe ller Kräfte null) so bleibt

Mehr

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie Effiziente Algorithmen und Komplexitätstheorie Vorlesung Ingo Wegener Vertretung Thoms Jnsen 10042006 1 Ws letzten Donnerstg geschh Linere Optimierung Wiederholung der Grundbegriffe und Aussgen M konvex

Mehr

Grundlagen der Systemnahen Programmierung in C (GSPiC)

Grundlagen der Systemnahen Programmierung in C (GSPiC) Grundlgen der Systemnhen Progrmmierung in C (GSPiC) Überblick: Teil C Systemnhe Softwreentwicklung 12 Progrmmstruktur und Module Teil C Systemnhe Softwreentwicklung 13 Zeiger und Felder Dniel Lohmnn 14

Mehr

Zeiger (engl. Pointer)

Zeiger (engl. Pointer) Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der

Mehr

Arrays 115. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

Arrays 115. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier Arrays 115 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list

Mehr

3 Hyperbolische Geometrie

3 Hyperbolische Geometrie Ausgewählte Kpitel der Geometrie 3 Hperbolische Geometrie [... ] Im Folgenden betrchten wir nun spezielle gebrochen-linere Abbildungen, nämlich solche, für die (mit den Bezeichnungen ϕ,b,c,d wie oben die

Mehr

a Z1 a 1 a 1,2 Diese Matrix hat genau dann Rang 2, ist also genau dann invertierbar, wenn a 2,2 a 1,2a 2,1

a Z1 a 1 a 1,2 Diese Matrix hat genau dann Rang 2, ist also genau dann invertierbar, wenn a 2,2 a 1,2a 2,1 18 Determinnten 207 18 Determinnten Nchdem wir nun schon recht usführlich Mtrizen und linere Gleichungssysteme studiert hben, wollen wir jetzt die sogennnten Determinnten einführen, die beim Rechnen mit

Mehr

7.9A. Nullstellensuche nach Newton

7.9A. Nullstellensuche nach Newton 7.9A. Nullstellensuche nch Newton Wir hben früher bemerkt, dß zur Auffindung von Nullstellen einer gegebenen Funktion oft nur Näherungsverfhren helfen. Eine lte, ber wirkungsvolle Methode ist ds Newton-Verfhren

Mehr

Teil 1: Rechenregeln aus der Mittelstufe. Allgemeine Termumformungen

Teil 1: Rechenregeln aus der Mittelstufe. Allgemeine Termumformungen Teil 1: Rechenregeln us der Mittelstufe Allgemeine Termumformungen Kommuttivgesetz: Bei reinen Produkten oder Summen ist die Reihenfolge egl x y z = z y x = x z y =.. x+y+z = z+y+x = x+z+y =.. Ausklmmern:

Mehr

Algebra-Training. Theorie & Aufgaben. Serie 3. Bruchrechnen. Theorie: Katharina Lapadula. Aufgaben: Bernhard Marugg. VSGYM / Volksschule Gymnasium

Algebra-Training. Theorie & Aufgaben. Serie 3. Bruchrechnen. Theorie: Katharina Lapadula. Aufgaben: Bernhard Marugg. VSGYM / Volksschule Gymnasium Algebr-Trining Theorie & Aufgben Serie Bruchrechnen Theorie: Kthrin Lpdul Aufgben: Bernhrd Mrugg VSGYM / Volksschule Gymnsium Liebe Schülerin, lieber Schüler Der Leitspruch «Übung mcht den Meister» gilt

Mehr

Kapitel 10. Integration. Josef Leydold Mathematik für VW WS 2015/16 10 Integration 1 / 35

Kapitel 10. Integration. Josef Leydold Mathematik für VW WS 2015/16 10 Integration 1 / 35 Kpitel 0 Integrtion Josef Leydold Mthemtik für VW WS 205/6 0 Integrtion / 35 Flächeninhlt Berechnen Sie die Inhlte der ngegebenen Flächen! f (x) = Fläche: A = f (x) = +x 2 Approximtion durch Treppenfunktion

Mehr

5.1 Charakterisierung relativ kompakter und kompakter

5.1 Charakterisierung relativ kompakter und kompakter Kpitel 5 Kompkte Mengen 5.1 Chrkterisierung reltiv kompkter und kompkter Mengen X sei im weiteren ein Bnchrum. Definition 5.1. Eine Menge K X heißt kompkt, wenn us jeder offenen Überdeckung von K eine

Mehr

Verlauf Material LEK Glossar Lösungen. In acht Leveln zum Meister! Exponentialgleichungen lösen. Kerstin Langer, Kiel VORANSICHT

Verlauf Material LEK Glossar Lösungen. In acht Leveln zum Meister! Exponentialgleichungen lösen. Kerstin Langer, Kiel VORANSICHT Eponentilgleichungen lösen Reihe 0 S Verluf Mteril LEK Glossr Lösungen In cht Leveln zum Meister! Eponentilgleichungen lösen Kerstin Lnger, Kiel Klsse: Duer: Inhlt: Ihr Plus: 0 (G8) 5 Stunden Eponentilgleichungen

Mehr

Beispiellösungen zu Blatt 24

Beispiellösungen zu Blatt 24 µthemtischer κorrespondenz- zirkel Mthemtisches Institut Georg-August-Universität Göttingen Aufge Beispiellösungen zu Bltt Mn eweise, dss mn ein Qudrt für jede Zhl n 6 in genu n kleinere Qudrte zerlegen

Mehr

10: Lineare Abbildungen

10: Lineare Abbildungen Chr.Nelius: Linere Alger SS 2008 1 10: Linere Aildungen 10.1 BEISPIEL: Die Vektorräume V 2 und Ê 2 hen diegleiche Struktur. Es git eine ijektive Aildung f : V 2 Ê 2, die durch die Vorschrift definiert

Mehr

Brückenkurs Lineare Gleichungssysteme und Vektoren

Brückenkurs Lineare Gleichungssysteme und Vektoren Brückenkurs Linere Gleichungssysteme und Vektoren Dr Alessndro Cobbe 30 September 06 Linere Gleichungssyteme Ws ist eine linere Gleichung? Es ist eine lgebrische Gleichung, in der lle Vriblen nur mit dem

Mehr

4 Stetigkeit. 4.1 Intervalle

4 Stetigkeit. 4.1 Intervalle 4 Stetigkeit Der Grenzwertbegriff für Zhlenfolgen lässt sich uf Funktionen übertrgen. Funktionen (oder Abbildungen) wren bereits im Kpitel über Mengen ufgetreten. Hier wird nun der Fll betrchtet, dss Definitionsbereich

Mehr

Grundlagen der Integralrechnung

Grundlagen der Integralrechnung Grundlgen der Integrlrechnung W. Kippels 0. April 2014 Inhltsverzeichnis 1 Ds unbestimmte Integrl 2 2 Ds bestimmte Integrl 4 Beispielufgben 7.1 Beispielufgbe 1............................... 7.2 Beispielufgbe

Mehr

12. STAMMFUNKTIONEN UND DAS UNBESTIMMTE INTEGRAL

12. STAMMFUNKTIONEN UND DAS UNBESTIMMTE INTEGRAL 98 Dieses Skript ist ein Auszug mit Lücken us Einführung in die mthemtische Behndlung der Nturwissenschften I von Hns Heiner Storrer, Birkhäuser Skripten. Als StudentIn sollten Sie ds Buch uch kufen und

Mehr

RWTH Aachen Lehrgebiet Theoretische Informatik Rossmanith Dreier Hark Kuinke. SS 2017 Blatt

RWTH Aachen Lehrgebiet Theoretische Informatik Rossmanith Dreier Hark Kuinke. SS 2017 Blatt RWTH Achen Lehrgeiet Theoretische Informtik Rossmnith Dreier Hrk Kuinke SS 2017 Bltt 4 22.5.2017 Lösungsvorschlg zur Vorlesung Formle Sprchen, Automten und Prozesse Aufge T11 1. L, d L, er / L. L, d für

Mehr

2. Funktionen in der Ökonomie

2. Funktionen in der Ökonomie FHW, ZSEBY, ANALYSIS - - Funktionen in der Ökonomie Beispiele: qudrtische Funktionen, Eponentilfunktion Qudrtische Funktionen Einfchste qudrtische Funktion: y = Allgemeine qudrtische Funktion: y = + b

Mehr

14. INTEGRATION VON VEKTORFUNKTIONEN

14. INTEGRATION VON VEKTORFUNKTIONEN 120 Dieses Skript ist ein Auszug mit Lücken us Einführung in die mthemtische Behndlung der Nturwissenschften I von Hns Heiner Storrer, Birkhäuser Skripten. Als StudentIn sollten Sie ds Buch uch kufen und

Mehr

Der Gauß - Algorithmus

Der Gauß - Algorithmus R Brinkmnn http://brinkmnn-du.de Seite 7..9 Der Guß - Algorithmus Der Algorithmus von Guss ist ds universelle Verfhren zur Lösung beliebiger linerer Gleichungssysteme. Einführungsbeispiel: 7x+ x 5x = Drei

Mehr

Dynamische Speicherverwaltung

Dynamische Speicherverwaltung Dynamische Speicherverwaltung INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Bisjetzt Beispiel Ranglistenprogramm für Sportveranstaltungen Besser - genaue Anzahl Teilnehmer

Mehr

Vorkurs Mathematik für Ingenieur Innen WS 2017/2018 Übung 3. (a) Berechnen Sie die fehlenden Strecken und Winkel im folgenden rechtwinkligen Dreieck:

Vorkurs Mathematik für Ingenieur Innen WS 2017/2018 Übung 3. (a) Berechnen Sie die fehlenden Strecken und Winkel im folgenden rechtwinkligen Dreieck: Prof. Dr. J. Pnnek Dynmics in Logistics Vorkurs Mthemtik für Ingenieur Innen WS 207/208 Übung 3 Aufgbe : Trigonometrie () Berechnen Sie die fehlenden Strecken und Winkel im folgenden rechtwinkligen Dreieck:

Mehr

Doppel- und Dreifachintegrale

Doppel- und Dreifachintegrale KAPITEL 6 Doppel- und Dreifchintegrle 6. Doppelintegrle................................... 74 6.. Flächeninhlt ebener ereiche.......................... 74 6..2 Definition und Eigenschften des Doppelintegrls..............

Mehr

2. Das Rechnen mit ganzen Zahlen (Rechnen in )

2. Das Rechnen mit ganzen Zahlen (Rechnen in ) . Ds Rechnen mit gnzen Zhlen (Rechnen in ).1 Addition und Subtrktion 5 + = 7 Summnd Summnd Summe 5 - = 3 Minuend Subtrhend Differenz In Aussgen mit Vriblen lssen sich nur gleiche Vriblen ddieren bzw. subtrhieren.

Mehr