Algorithmen und Datenstrukturen
|
|
|
- Marielies Fürst
- vor 9 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 3.3 Mehrdimensionale Arrays W. Tasin, M.Sc. Fakultät 04
2 Allgemeines (1) Ein Feld (Array) kann seinerseits als Komponente wieder ein Array besitzen. Es wird ein zusammenhängender Speicherbereich reserviert, der als Matrix von n x m Werten betrachtet wird. /* Speicherbereich fuer 5x3 int-werte reservieren */ int vals[5][3]; /* Speicherbereich fuer 2x8 short-werte reservieren */ short aa[2][8]; /* Speicherbereich fuer 3x4 char-werte reservieren oder fuer drei ASCIIZ-Strings mit je max. 3 Zeichen (+ abschliessendem NUL-Character) */ char abbr[3][4]; Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 2
3 Allgemeines (2) Da der Speicher nur eindimensional adressiert wird, wird ein mehrdimensionales Array intern in ein eindimensionales Array umgerechnet. Die Verwendung von mehrdimensionalen Arrays erhöht die Lesbarkeit und Wartbarkeit in mehrdimensionalen Aufgabenstellungen. #define ROWS 5 #define COLS 3 #define ROWS 5 #define COLS 3 /* 15 Werte eindimensional */ short vals [ROWS*COLS]; unsigned i, j; for (i=0; i<rows; i++) for (j=0; j<cols; j++) vals[i*cols+j]=i*10+j+1; /* 5 Zeilen, 3 Spalten*/ short vals [ROWS][COLS]; unsigned i, j; for (i=0; i<rows; i++) for (j=0; j<cols; j++) vals[i][j]=i*10+j+1; Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 3
4 Allgemeines (3) #define ROWS 5 #define COLS 3 /* 5 Zeilen, 3 Spalten*/ short vals[rows][cols]; Logische Anordnung der Variablen Der erste Index gibt die Zeile an, der zweite die Spalte. vals[0]... vals[1]... vals[2]... vals[3]... vals[4]... [0] [1] [2] vals[1][2] vals[4][1] Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 4
5 Allgemeines (4) #define ROWS 5 #define COLS 3 /* 5 Zeilen, 3 Spalten*/ vals[0][0] vals[0][1] vals[0][2] xFF80FF82 0xFF80FF84 0xFF80FF86 1. Zeile short vals[rows][cols]; vals[1][0] vals[1][1] xFF80FF88 0xFF80FF8A 2. Zeile vals[1][2] 13 0xFF80FF8C vals[2][0] 21 0xFF80FF8E Physikalische Anordnung der Variablen im eindimensionalen Speicher. vals[3][2] vals[4][0] vals[4][1] xFF80FF98 0xFF80FF9A 0xFF80FF9C 5. Zeile vals[4][2] 43 0xFF80FF9E Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 5
6 Komponentenzugriff (1) Nur durch Angabe des Variablennamens mit allen Indizes (außerhalb der Arraydefinition) erhält man den Wert der Komponente. Sobald ein Index fehlt, dann stellt der Ausdruck eine Adresse dar. Der Ausdruck ist seinerseits ein rvalue ihm kann nichts zugewiesen werden. short vals[5][3]; printf("%p\n", vals); printf("%p\n", vals[0]); printf("%p\n", vals[3]); Adresse rvalue printf("%d\n", vals[2][1]); vals[2][1] = 5; printf("%p\n", &vals[2][1]); short-komponente lvalue Adresse der Komponente rvalue Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 6
7 Komponentenzugriff (2) Der Zugriff auf die Komponente kann auch über den Dereferenzierungsoperator (*) erfolgen. Jedoch muss im Ausdruck die Anzahl der Dereferenzierungsoperatoren der Anzahl der Dimensionen entsprechen, um auf die Komponente zurückgreifen zu können. short vals[5][3]; printf("%p\n", vals); printf("%p\n", *vals); printf("%p\n", *(vals+3)); Adresse rvalue printf("%d\n", *(*(vals+2)+1)); *(*(vals+2)+1) = 5; printf("%p\n", *(vals+2)+1); short-komponente lvalue Adresse der Komponente rvalue Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 7
8 Arraydefinition und Initialisierung (1) Auch die Größe eines mehrdimensionalen Arrays muss lt. ANSI-89/90 bei der Arraydefinition zur Übersetzungszeit bekannt sein. Die Anzahl der Dimensionen spiegelt sich bei der Initialisierung durch die Anzahl der Klammern ({) am Anfang des Initialisierungsblocks wider. short vals[5][3] = {{1, 2, 3}, {11, 12, 13}, {21}}; Zeile 1 vals[0] Zeile 2 vals[1] Zeile 3 vals[2] Zeile 4 vals[3] Zeile 5 vals[4] Für fehlende Initialisierungswerte wird 0 verwendet. Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 8
9 Arraydefinition und Initialisierung (2) Nur die Größenangabe der 1. Dimension darf entfallen. Die Zeilenanzahl kann vom Compiler durch die Initialisierung ermittelt werden. short vals[][3] = {{1, 2, 3}, {11, 12, 13}, {21}, {31, 32}}; Zeile 1 vals[0] Zeile 2 vals[1] Zeile 3 vals[2] Zeile 4 vals[3] Zeilen wurden initialisiert 4 x 3 Werte Reservierung von 12 short-werten Auch hier gilt, dass die konkrete Größenangabe der 1. Dimension höhere Priorität hat, als die Festlegung durch den Initialisierungsblock. Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 9
10 Arraydefinition und Initialisierung (3) Die ISO-Norm erlaubt auch die Initialisierung von mehrdimensionalen Array mit eindimensionalen Initialisierungswerten. Diese Art der Initialisierung sollte aber vermieden werden, da sie die Mehrdimensionalität des Arrays nicht mehr darstellt. short vals[][3] = {1, 2, 3, 11, 12, 13, 21, 22, 23}; Zeile 1 vals[0] Zeile 2 vals[1] Zeile 3 vals[2] Der GNU-C Compiler liefert in diesem Fall eine Warnung. Deshalb ist hier die folgende Initialisierung zu favorisieren: short vals[][3] = {{1, 2, 3}, {11, 12, 13}, {21, 22, 23}}; Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 10
11 Arraydefinition und Initialisierung (4) Für die Initialisierung von char-arrays als ASCIIZ-Stringarray können auch Stringkonstanten verwendet werden. char praeps[][4] = {{'i', 'c', 'h', ''}, {'d', 'u', ''}, {'e', 'r', ''}, {'s', 'i', 'e', ''}, {'e', 's', ''}}; oder char praeps[][4] = {"ich", "du", "er", "sie", "es"}; Zeile 1 praeps[0] 'i' 'c' 'h' '' Zeile 2 praeps[1] 'd' 'u' '' '' Zeile 3 praeps[2] 'e' 'r' '' '' Zeile 4 praeps[3] 's' 'i' 'e' '' Zeile 5 praeps[4] 'e' 's' '' '' Reservierung von 5x4 char-werten Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 11
12 Arraydefinition und Initialisierung (5) ACHTUNG: Die Arraygrößen können nachträglich nicht verändert werden. char praeps[][4] = {"ich", "du", "er", "sie", "es"}; Es existiert im Beispiel nur eine Speicherreservierung für 5 Strings mit je max. 3 Buchstaben (+ abschließendem NUL-Character). #include <string.h> /*... */ strcpy(praeps[2], "hallo");!!! Der angegebene strcpy()-aufruf kompromittiert den Speicher der 4. Zeile: Zeile 1 praeps[0] 'i' 'c' 'h' '' Zeile 2 praeps[1] 'd' 'u' '' '' Zeile 3 praeps[2] 'h' 'a' 'l' 'l' Zeile 4 praeps[3] 'o' '' 'e' '' Zeile 5 praeps[4] 'e' 's' '' '' Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 12
13 Zweidimensionales char-array vs. eindimensionales Zeigerarray (1) Vorgehensweise der Initialisierung: char praeps[5][4] = {"ich", "du", "er", "sie", "es"}; Zuerst wird ein Speicherbereich für 20 x sizeof(char) reserviert. Danach werden die Initialisierungswerte in diesen Speicherbereich hineinkopiert (evtl. werden zusätzl. Speicherstellen mit 0 initialisiert). {"ich", "du", "er", "sie", "es"} 0x09807F10 0x09807F14 0x09807F17 0x09807F1A 0x09807F1E i c h d u e r s i e e s 0xFFF0A802 0xFFF0A806 0xFFF0A80A 0xFFF0A80E 0xFFF0A812 praeps i c h d u e r s i e e s Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 13
14 Zweidimensionales char-array vs. eindimensionales Zeigerarray (2) Vorgehensweise der Initialisierung von Zeigerarrays: char *ppraep[5] = {"ich", "du", "er", "sie", "es"}; Zuerst wird ein Speicherbereich für 5 x sizeof(char *) reserviert. Danach werden die Startadressen der ASCIIZ-Strings in diesen Speicherbereich hineinkopiert. {"ich", "du", "er", "sie", "es"} 0x09807F10 0x09807F14 0x09807F17 0x09807F1A 0x09807F1E i c h d u e r s i e e s 0xFFF0A802 0xFFF0A806 0xFFF0A80A 0x09807F1A 0x09807F1E ppraep 0x09807F10 0x09807F14 0x09807F17 0x09807F1A 0x09807F1E Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 14
15 Übergabeparameter (1) Wird ein mehrdimensionales Array als Übergabeparameter verwendet, so werden keinerlei Arraykomponenten übergeben, sondern - wie im eindimensionalen Fall - nur die Adresse auf das erste Element der ersten Zeile. Damit der Funktion die logische Aufteilung des Arrays bekannt gemacht wird, ist - wie bei der Initialisierung - die Größenangabe der Spalten (und nachfolgender Dimensionen) nötig. Auf die Größenangabe der Zeile (1. Dimension) kann auch hier verzichtet werden. void outelements(unsigned rows, int a[][cols]) { } unsigned i, j; for (i=0; i<rows; i++) { for (j=0; j<cols; j++) printf("%d ", a[i][j]); } putchar('\n'); Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 15
16 Übergabeparameter (2) Bei dem Parameter handelt es sich - wie im Fall des eindimensionalen Arrays - um einen Zeiger auf die erste Komponente. Jedoch kann die Typangabe des Parameters (int a[][cols]) nicht (wie beim eindimensionalen Array) in einen eindimensionalen Zeiger (int *) geändert werden, da sonst der logische Aufbau der Variablen verloren ginge. Der Komponentenzugriff über den Dereferenzierungsoperator (*) bleibt weiterhin möglich. void outelements(unsigned rows, int a[][cols]) { } unsigned i, j; for (i=0; i<rows; i++) { for (j=0; j<cols; j++) printf("%d ", (*(a+i))[j]); /* oder: *(a[i]+j) */ } putchar('\n'); Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 16
17 Übergabeparameter (3) Da es sich bei Übergabeparameter immer um eine Wertkopie in eine Variable des Namensbereichs der Funktion handelt, wird aus einem rvalue (vals) ein lvalue (a). Somit kann der Wert von a geändert werden. Ein Inkrementieren des Werts in a bedeutet, dass a auf die nächste Zeile zeigt. Wert vals (konstante Adresse) wird in Variable a kopiert #define COLS 6 #define ROWS 5 int vals[rows][cols]; outelements(rows, vals); void outelements(unsigned rows, int a[][cols]) { unsigned i, j; for (i=0; i<rows; i++) { for (j=0; j<cols; j++) printf("%d ", (*a)[j]); a=a+1; /* Springt in die nächste Zeile */ putchar('\n'); } } Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 17
18 n-dimensionale Arrays Die getroffenen Vereinbarungen gelten analog auch für n-dimensionale Arrays. #include <stdio.h> #include <string.h> #define GERMAN 0 #define ITALIAN 1 #define ENGLISH 2 #define LANGUAGES 3 #define MAX_LEN 10 int main() { } char translate[][languages][max_len+1]= {{"ich", "io", "I"}, {"du", "tu", "you"}, {"er", "lui", "he"}, {"sie", "lei", "she"}, {""}}; /*... */ return 0; Algorithmen und Datenstrukturen - W. Tasin, M.Sc. 18
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 3.2 Auswahl an Stringfunktionen W. Tasin, M.Sc. Fakultät 04 [email protected] Allgemeines (1) Die ANSI-Norm definiert auch nützliche Funktionen zur ASCIIZ-Stringbearbeitung.
+ C - Array (Vektoren, Felder)
+ C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein
Übungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
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
Übungspaket 23 Mehrdimensionale Arrays
Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
Felder, Zeiger und Adreßrechnung
Felder, Zeiger und Adreßrechnung Felder bestehen aus Variablen eines einzigen Datentyps. Bisher kennen wir eindimensionale Felder. In C sind Felder mit beliebigen Dimensionen möglich. Unsere räumliche
Felder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung
Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder
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)
C++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
Felder in C. Felder stellen eine Reihung von Elementen gleichen Typs dar. Man spricht auch von Vektoren oder Arrays.
Felder in C Felder stellen eine Reihung von Elementen gleichen Typs dar. Man spricht auch von Vektoren oder Arrays. Durch die Reihung (hintereinander speichern) kann ein Element über seine Nummer (Index)
Programmierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
Tag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Arrays (Reihungen)
Arrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany [email protected] Das C++ Typsystem simple structured integral enum
INE1 Arrays, Zeiger, Datenstrukturen
INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen
Inhalt. Peter Sobe 63. Felder in C
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Streuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern
Elementare Datentypen in C++
Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der
Zeiger: Der Adressoperator &
Zeiger: Der Adressoperator & Variablen werden im Computer im Speicher abgelegt. Nach der Deklaration int a,b,c; double x,y,z; Sieht die Speicherbelegung etwa wie folgt aus: a b c x y z Jede Variable hat
Probeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
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
Zeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.
Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach [email protected] http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
Tag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!
Übungspaket 14 Eindimensionale Arrays
Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
Dynamischer Speicher
Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach [email protected] http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse
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 [email protected] http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/
Zeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
Viel Erfolg bei der Bearbeitung der Aufgaben!
Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen
Sprachkonstrukte Verzweigungen und Array-Strukturen
Sprachkonstrukte Verzweigungen und Array-Strukturen Dr. Beatrice Amrhein Überblick Verzweigungen o if/else o switch/case Array-Strukturen o Vektoren und Matrizen 2 Verzweigungen 3 Verzweigungen: if/else
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18
C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen
1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
1. Referenzdatentypen: Felder und Strings
1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen
Grundlagen der Informatik 6. Arrays I
6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt
Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 9.5.07 Übersicht 1 Was sind? 2 Vereinbarung von n 3 Erzeugen von n 4 Zugriff auf Feldkomponenten 5 Mehrdimensionale 6 als Objekte, Referenzen Kopieren
Programmieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
Zeiger, Arrays und Strings in C und C++
Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für
Java Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
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
Mehrdimensionale Arrays
Mehrdimensionale Arrays Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Eindimensionale Arrays haben wir bereits kennen gelernt. Es gibt aber auch mehrdimensionale Arrays. Die sind auch sehr notwendig, denken
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
Reihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende
Programmierwerkstatt. Arrays, Pointer und Referenzen
Programmierwerkstatt Arrays, Pointer und Referenzen Zum Inhalt Wir wollen Euch: das Wesentliche vermitteln Fehlerquellen verdeutlichen Verständnis ist uns wichtig programming by coincidence vermeiden Themen
Physische Datenstrukturen
Elementare Datentypen Strukturierte Datentypen Zeiger Seite 1 Einfache Datentypen Datentyp char Verwendung: ASCII-Zeichen Wertebereich: alle darstellbaren Zeichen, 8 bit lange Ganzzahlen im Intervall -128
C-Pointer (Zeiger, Adressen) vs. C++ Referenzen
C-Pointer (Zeiger, Adressen) vs. C++ Referenzen Der Pointer (C/C++): In C/C++ ist der Pointer ein eigener Datentyp, der auf Variablen/Objekte zeigen kann. Indem man den Pointer dereferenziert, gewinnt
RO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.
Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
GI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
5.4 Arrays. Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu!
5.4 Arrays Oft müssen viele Werte gleichen Typs gespeichert werden. Idee: Lege sie konsekutiv ab! Greife auf einzelne Werte über ihren Index zu! Feld: Index: 17 3-2 9 0 1 0 1 2 3 4 5 Harald Räcke 114/656
Programmierkurs C++ Variablen und Datentypen
Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in
Intensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik
Intensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik www.ini.rub.de/rtcv 19.09.2017 Intensivkurs C++ 19.09.2017 Marc Tschentscher 1 Themen 1 Gültigkeitsbereiche und Namensräume
Programmierung mit C Felder; Array
Programmierung mit C Felder; Array Arrays (Felder, Vektoren)... sind zusammengesetzte Datenstrukturen.... bestehen aus mehreren Elementen, die vom selben Datentyp sind.... bestehen aus mehreren Elementen,
Informatik. Wiederholung Felder (Arrays), string. Vorlesung
Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include
Übungspaket 20 Zeiger und Zeigervariablen
Übungspaket 20 Zeiger und Zeigervariablen Übungsziele: Skript: 1. Definition von Zeigervariablen 2. Verwendung von Zeigern 3. Arrays und Adressberechnungen Kapitel: 45 und 46 Semester: Wintersemester 2017/18
C++ Teil 5. Sven Groß. 8. Mai IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 8. Mai 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 8. Mai 2015 1 / 16 Themen der letzten Vorlesung Live Programming zu A2 Gleitkommazahlen Rundungsfehler Auswirkung
Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
Funktionen: Rückgabewert
Funktionen: Rückgabewert Jede Funktion in C++ (außer Konstruktoren und Destruktoren siehe später) MUSS einen Rückgabewert-Typ vereinbaren. Gibt sie nichts zurück, muss der Rückgabetyp void sein. Jede return-anweisung
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
Einführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt [email protected] Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
Schleifen Datenfelder (Arrays) Verzweigungen
Schleifen Datenfelder (Arrays) Verzweigungen Vektoren, Matrizen, Tabellen for, while, foreach, if-else und switch-case Dr. Beatrice Amrhein Überblick Schleifen o for, while, foreach Eindimensionale Arrays
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
Wertebereich und Genauigkeit der Zahlendarstellung
Wertebereich und Genauigkeit der Zahlendarstellung Sowohl F als auch C kennen bei ganzen und Floating Point-Zahlen Datentypen verschiedener Genauigkeit. Bei ganzen Zahlen, die stets exakt dargestellt werden
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)
10. Felder (Arrays) Teil 2. Java-Beispiele: Echo.java Primzahlen.java Monate.java. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
10. Felder (Arrays) Teil 2 Java-Beispiele: Echo.java Primzahlen.java Monate.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 18. Nov. 2015 2 Techniken mit Arrays: Boolean-Anzeige-Feld
