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

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

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

Übungen zur Systemprogrammierung I Wintersemester 2001/2002

F Zeiger, Felder und Strukturen in C

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

Objektorientierte Programmierung. Objektorientierte Programmierung. Objektorientierte Programmierung. Objektorientierte Programmierung

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Determiniert / indeterminiert. Teil III.

Klausur zur Vorlesung Grundbegriffe der Informatik 10. März 2009 mit Lösungsvorschlägen

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

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 5. Semester ARBEITSBLATT 3 PARAMETERDARSTELLUNG EINER GERADEN

Algorithmen und Datenstrukturen 1 Kapitel 3

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;

Gliederung. Kapitel 1: Endliche Automaten

Programmieren in C/C++ und Matlab

Lineare Gleichungen mit Parametern

Automation-Letter Nr Prof. Dr. S. Zacher

Objektorientierte Programmierung

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Kohls Mathe-Tandem - Partnerrechnen im 10. Schuljahr

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Gleichmächtigkeit von DEA und NDEA

Dank. 1 Determinierte endliche Automaten (DEAs) 2 Indetermnierte endliche Automaten (NDEAs) 3 Automaten mit ε-kanten

Einführung in die Schaltalgebra

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt Semester ARBEITSBLATT 14 MULTIPLIKATION EINES VEKTORS MIT EINEM SKALAR

Brüche gleichnamig machen

Automaten mit dot erstellen

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 16

Automaten und formale Sprachen Notizen zu den Folien

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

4. Lineare Gleichungen mit einer Variablen

Grundlagen der Informatik

Zusatzaufgabe 1 für Informatiker

Potenzen, Wurzeln, Logarithmen Definitionen

Scheinklausur: Theoretische Informatik I

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 12

Zusammenhänge zwischen Sprachen und Automaten:

Zusammenhänge zwischen Sprachen und Automaten:

HARDWARE- BESCHREIBUNGSSPRACHEN

Erstellen einer DLL-Datei zur Verwendung in LabView 8.2 mittels Microsoft Visual C Express Edition

Algorithmen und Datenstrukturen 1 Kapitel 4.2

Universität Heidelberg 13. Oktober 2016 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Nadine Losert

Versuchsvorbereitung: P1-31, 40, 41: Geometrische Optik

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

Aufgabe 1: Diskutieren Sie die Unterschiede bzw. die Vorteile und Nachteile der Mealy- und Moore- Zustandsmaschinen.

Lösungsvorschlag zur Klausur. Compilerbau vom 29. September Aufgabe 1 ( ) Prof. Dr. Michael Jäger. Punkte von 12

13 Rekonfigurierende binäre Suchbäume

Was nicht bewertet werden soll, streichen Sie bitte durch. Werden Täuschungsversuche beobachtet, so wird die Präsenzübung mit 0 Punkten bewertet.

Dreireihige Determinanten

3. Gültigkeit von Definitionen

13-1 Funktionen

Übung Grundbegriffe der Informatik

Reduktion. Seien A Σ und B Γ. Man sagt A ist reduzierbar auf B (A B) gdw. von speziellem Interesse: Polynomialzeitreduktion

1) Gegeben sei ein endlicher, erkennender Automat, definiert durch: f z, definiert durch das Zustandsdiagramm: a,b. z 3

Frank Heitmann 2/71. 1 Betrachten wir Σ für ein Alphabet Σ, so ist Σ die Menge

R(i,j,0) ist also für alle i,j = 1,...,n endlich und somit eine durch einen regulären Ausdruck beschreibbare Sprache!

Relationen: Äquivalenzrelationen, Ordnungsrelationen

Theoretische Informatik und Logik Übungsblatt 2 (2017W) Lösung

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt 5

( ) ( ) 4. Der Hauptsatz der Infinitesimalrechnung. Hauptsatz (1. Form) I. Newton ( ), G.F. Leibniz ( )

Einführung in die Theoretische Informatik

Mitschrift Repetitorium Theoretische Informatik und Logik

Einführung in die Mathematik des Operations Research

Aufgabe 30: Periheldrehung

Kapitel 4. Minimierung. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Vorlesung Theoretische Informatik Sommersemester 2018 Dr. B. Baumgarten

Vorkurs Theoretische Informatik

Formale Sprachen und Automaten. Schriftlicher Test

Problem: Gliederung betrifft nur die Aktivitäten, nicht die Struktur der Daten

Übungen zur Wiederholung quer durch den Stoff Vollständigkeit wird nicht garantiert, und einige sind umfangreicher als klausurtypisch.

Theoretische Informatik und Logik Übungsblatt 2 (2013S) Lösung

Lösungen zum Ergänzungsblatt 4

Flächenberechnung. Aufgabe 1:

Der Kosinussatz. So erhalten wir: und. Um beide Formeln miteinander vereinen zu können, stellen wir die zweite Formel nach h 2 um, und erhalten:

1 3 Z 1. x 3. x a b b. a weil a 0 0. a 1 a weil a 1. a ist nicht erlaubt! 5.1 Einführung Die Gleichung 3 x 9 hat die Lösung 3.

HA-Lösung TA-Lösung Diskrete Strukturen Tutoraufgabenblatt 2. Besprechung in KW44

Theoretische Informatik 1, Blatt 5 Abgabetermin

Quadratische Funktionen

TECHNISCHE UNIVERSITÄT MÜNCHEN

Grundbegriffe der Informatik

Dank. 1 Determinierte endliche Automaten (DEAs) 2 Indeterminierte endliche Automaten (NDEAs) 3 Automaten mit epsilon-kanten

Algorithmen und Datenstrukturen I - Maschinenmodelle -

Algorithmen und Datenstrukturen - Maschinenmodelle -

10: Lineare Abbildungen

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 3

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt Semester ARBEITSBLATT 15 ORTHOGONALITÄT

/LQHDUH*OHLFKXQJVV\VWHPH

ARBEITSBLATT 5L-8 FLÄCHE ZWISCHEN FUNKTION UND X-ACHSE

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

5. Homotopie von Wegen

Beispiel für ein eindimensionales Array

Eine endliche Folge von Operationen und Entscheidungen, die ein Problem in endlich vielen Schritten löst.

Sei G = (V,E) ein gerichteter Graph. Ein geschlossener Pfad, der jede Kante in G genau einmal benutzt, heißt Euler-Tour.

Sind Tokens erst einmal klassifiziert, kann man die Teilwörter vorverarbeiten:

Musterlösungen zum 6. Übungsblatt

3.1 Multiplikation Die Multiplikation von algebraischen Termen kennen Sie von früher. Die wichtigsten Punkte seien hier kurz wiederholt:

ARBEITSBLATT 5L-6 FLÄCHENBERECHNUNG MITTELS INTEGRALRECHNUNG

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Sprachen. Grammatiken (Einführung)

Datum zu speichern und darauf zuzugreifen eine Zahl, einen Text oder einen Wahrheitswert. Was macht man, wenn man

Transkript:

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 eim Aufrufer nicht verändern uch Zeiger werden y-vlue üergeen, d. h. die Funktion erhält lediglich eine Kopie de Adreverweie üer dieen Verwei knn die Funktion jedoch mit Hilfe de *-Opertor uf die zugehörige Vrile zugreifen und ie verändern cll-y-reference Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.1 void wp (doule *, doule *); int min(void) doule, ; wp(&, &); void wp (doule *, doule *) doule ; = *; * = *; * = ; Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.3 1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion 1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion void wp (doule *, doule *); int min(void) doule, ; wp(&, &); void wp (doule *, doule *); int min(void) doule, ; wp(&, &); ➊ ➊ void wp (doule *, doule *) doule ; = *; * = *; * = ; Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.2 Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.4

1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion 1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion void wp (doule *, doule *); int min(void) doule, ; wp(&, &); void wp (doule *, doule *); int min(void) doule, ; wp(&, &); ➊ void wp (doule *, doule *) doule ; = *; * = *; * = ; void wp (doule *, doule *) doule ; = *; * = *; ➌ * = ; * * ➌ Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.5 Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.7 1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion 1 Zeiger l Funktionrgumente U3-1 einfche wp_doule Funktion void wp (doule *, doule *); int min(void) doule, ; wp(&, &); ➊ void wp (doule *, doule *); int min(void) doule, ; wp(&, &); ➊ void wp (doule *, doule *) doule ; = *; ➋ * = *; * = ; * ➋ void wp (doule *, doule *) doule ; = *; ➋ * = *; ➌ * = ; ➍ * ➍ Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.6 Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.8

U3-2 generiche wp-funktion U3-2 generiche wp-funktion U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente Funktion oll Zeiger uf elieigen Dtentyp üergeen ekommen? welchen Typ git mn dem Prmeter Typ = Zeiger uf "irgendetw" Schnitttelle der Funktion void wp_generic(void *, void *, ize_t ) min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof);? wie enutzt mn o einen Zeiger er knn nicht direkt genutzt werden, weil für d Ergeni von * und * der Typ uneknnt it => Progrmm knn nicht dmit umgehen Löung: void-zeiger in einen nderen Zeiger verwndeln => ct-opertor Beipiel: chr *p = (chr *); üer *p knn nun uf d erte Byte de Speicherereich, uf den zeigt, zugegriffen werden Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.9 void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p p U3.11 U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); (doule *) & 8 void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); (ize_t) p Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 U3.10 Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p doule-zeiger &, & werden n void-zeiger, üergeen!!! U3.12

U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p p (ize_t) 8 U3.13 void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p (chr *) zwei Zeiger mit unterchiedlichem Typ zeigen jetzt uf gleiche Speichertelle (Vrile )! p U3.15 U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); void wp_generic(void *, void *, ize_t ); chr *p, *p, ; void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); p (chr *) p = (chr *); = p[1]; p[1] p (chr *) Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p void-zeiger wird in chr-zeiger verwndelt und p zugewieen! U3.14 p wird l chr-arry etrchtet! Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p U3.16

U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); void wp_generic(void *, void *, ize_t ); chr *p, *p, ; void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p p (chr *) U3.17 p = (chr *); p++; = *p; *p Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p p (chr *) zweite Byte der Vrilen wird in zwichengepeichert! U3.19 U3-2 generiche wp-funktion 1 generiche Zeiger l Funktionrgumente min(void) doule, ; void wp_generic(void *, void *, ize_t); wp_generic(&, &, izeof); void wp_generic(void *, void *, ize_t ); chr *p, *p, ; p = (chr *); p++; Jürgen Kleinöder Univerität Erlngen-Nürnerg Informtik 4, 2007 U3.fm 2007-05-21 13.17 p p (chr *) p wird l chr-zeiger etrchtet und inkrementiert - zeigt jetzt uf d zweite Byte von! U3.18