Grundlagen der Informatik 12. Strukturen
|
|
- Julius Pfeiffer
- vor 6 Jahren
- Abrufe
Transkript
1 12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik (Alex Rempel) 1
2 Strukturen und deren Komponenten Benutzerdefinierte Datentypen Arrays: alle Elemente haben den gleichen Typ Enumerations: lediglich statische Aufzählungen Strukturen: Zusammenfassung beliebiger Datentypen Strukturdeklaration struct [typename] {components [variables]; Beispiel: Struktur 'animal', Objekt 'someanimal' struct animal { string strname; bool bdangerous; someanimal; struct { string strname; bool bdangerous; someanimal; struct animal { string strname; bool bdangerous; ; animal someanimal; Grundlagen der Informatik (Alex Rempel) 2
3 Strukturen und deren Komponenten Zugriff auf Komponenten in der Struktur #include <string> struct animal { string strname; bool bdangerous; ; void printanimal(animal anml) { cout << "Animal '" << anml.strname << "' is "; if (anml.bdangerous) cout << "dangerous!" << endl; else cout << "not dangerous." << endl; void main() { animal anmllion, anmlmouse; anmllion.strname = "Lion"; anmllion.bdangerous = true; anmlmouse.strname = "Mouse"; anmlmouse.bdangerous = false; printanimal(anmllion); printanimal(anmlmouse); Komponentenzugriff über Punktoperator Grundlagen der Informatik (Alex Rempel) 3
4 Strukturen und deren Komponenten Zugriff auf Komponenten in der Struktur #include <string> Animal 'Lion' is dangerous! Animal 'Mouse' is not dangerous. struct animal { string strname; bool bdangerous; ; void printanimal(animal anml) { cout << "Animal '" << anml.strname << "' is "; if (anml.bdangerous) cout << "dangerous!" << endl; else cout << "not dangerous." << endl; void main() { animal anmllion, anmlmouse; anmllion.strname = "Lion"; anmllion.bdangerous = true; anmlmouse.strname = "Mouse"; anmlmouse.bdangerous = false; printanimal(anmllion); printanimal(anmlmouse); Grundlagen der Informatik (Alex Rempel) 4
5 Strukturen und deren Komponenten Deklaration Muss außerhalb von Funktionen sein Ist üblicherweise in eigener Headerdatei Beispiel: Datei 'animal.h' beinhaltet: struct animal { string strname; bool bdangerous; ; Dann muss diese Datei vor der Benutzung der Struktur animal inkludiert werden Grundlagen der Informatik (Alex Rempel) 5
6 Strukturen im Projekt Strukturen im Projekt (Headerdateien) main.cpp #include "animal.h" void printanimal(animal anml) { cout << "Animal '" << anml.strname << "' is "; if (anml.bdangerous) cout << "dangerous!" << endl; else cout << "not dangerous." << endl; animal.h #include <string> struct animal { string strname; bool bdangerous; ; void main() { animal anmllion, anmlmouse; anmllion.strname = "Lion"; anmllion.bdangerous = true; anmlmouse.strname = "Mouse"; anmlmouse.bdangerous = false; printanimal(anmllion); printanimal(anmlmouse); Grundlagen der Informatik (Alex Rempel) 6
7 Strukturen im Projekt Strukturen im Projekt (Mehrfachverwendung) main.cpp #include "dateinfo.h" void printdate(dateinfo& date) { cout << "Date: " << date.iyear << "." << date.imonth << "." << date.iday << " " << date.titime.ihour << ":" << date.titime.iminute << endl; void main() { dateinfo date; date.iyear = 1981; date.imonth = 1; date.iday = 18; date.titime.ihour = 11; date.titime.iminute = 46; printdate(date); Date: :46 timeinfo.h struct timeinfo { int ihour; int iminute; ; dateinfo.h #include "timeinfo.h" struct dateinfo { int iyear; int imonth; int iday; timeinfo titime; ; Grundlagen der Informatik (Alex Rempel) 7
8 Strukturen im Projekt Strukturen im Projekt (Mehrfachverwendung) main.cpp #include "dateinfo.h" #include "timeinfo.h" timeinfo.h struct timeinfo { int ihour; int iminute; ; void printdate(dateinfo& date) { cout << "Date: " << date.iyear << "." << date.imonth << "." << date.iday << " " << date.titime.ihour << ":" << date.titime.iminute << endl; void main() { dateinfo date; date.iyear = 1981; date.imonth = 1; date.iday = 18; date.titime.ihour = 11; date.titime.iminute = 46; printdate(date);... error C2011: 'timeinfo': 'struct' Typneudefinition dateinfo.h #include "timeinfo.h" struct dateinfo { int iyear; int imonth; int iday; timeinfo titime; ; Grundlagen der Informatik (Alex Rempel) 8
9 Strukturen im Projekt Strukturen im Projekt (Mehrfachverwendung) main.cpp #include "dateinfo.h" #include "timeinfo.h" void printdate(dateinfo& date) { cout << "Date: " << date.iyear << "." << date.imonth << "." << date.iday << " " << date.titime.ihour << ":" << date.titime.iminute << endl; void main() { dateinfo date; date.iyear = 1981; date.imonth = 1; date.iday = 18; date.titime.ihour = 11; date.titime.iminute = 46; printdate(date); Date: :46 Datei wird mehrfach inkludiert, der Code aber nur einmal timeinfo.h #ifndef _TIMEINFO_ #define _TIMEINFO_ struct timeinfo { int ihour; int iminute; ; #endif dateinfo.h #include "timeinfo.h" struct dateinfo { int iyear; int imonth; int iday; timeinfo titime; ; Grundlagen der Informatik (Alex Rempel) 9
10 Strukturen im Projekt Strukturen im Projekt (Mehrfachverwendung) Beim mehrfachen Inkludieren werden die gleichen Typen immer wieder deklariert Compile Error Abhilfe durch Präprozessordirektiven in Headerdateien: #ifndef _SOMETEXT_ - 'if not defined' führe Code aus #define _SOMETEXT_ - definiere ab jetzt _SOMETEXT_... Code... #endif bis hier gilt der letzte #if... Grundlagen der Informatik (Alex Rempel) 10
11 Dynamisch erstellte Strukturen Zugriff auf dynamische Strukturenobjekte main.cpp animal.h #include "animal.h" void printanimal(animal anml) { cout << "Animal '" << anml.strname << "' is "; if (anml.bdangerous) cout << "dangerous!" << endl; else cout << "not dangerous." << endl; void main() { animal* panimal = new animal; (*panimal).strname = "Mouse"; (*panimal).bdangerous = false; printanimal(*panimal); delete panimal; Animal 'Mouse' is not dangerous. #include <string> struct animal { string strname; bool bdangerous; ; Erst Dereferenzieren, dann zugreifen! (*p). ist nicht gleich *p. siehe Vorrangregeln für Operatoren Grundlagen der Informatik (Alex Rempel) 11
12 Dynamisch erstellte Strukturen Zugriff auf dynamische Strukturenobjekte main.cpp #include "animal.h" void printanimal(animal anml) { cout << "Animal '" << anml.strname << "' is "; if (anml.bdangerous) cout << "dangerous!" << endl; else cout << "not dangerous." << endl; animal.h #include <string> struct animal { string strname; bool bdangerous; ; void main() { animal* panimal = new animal; panimal->strname = "Mouse"; panimal->bdangerous = false; printanimal(*panimal); delete panimal; Animal 'Mouse' is not dangerous. Normalerweise wird der Pfeiloperator verwendet (keine Klammern nötig) Aber nur wenn es sich um einen Zeiger handelt! Grundlagen der Informatik (Alex Rempel) 12
13 Strukturen und Operatoren Für einfache Datentypen sind Operatoren bereits implementiert Beispiel: 'int a,b;' und dann 'a+b' Für Strukturen funktioniert (eingeschränkt) der Zuweisungsoperator, die anderen müssen eigenständig als Operatorfunktionen implementiert werden Beispiel: 'animal a,b;' und dann 'a=b' OK Beispiel: 'animal a,b;' und dann 'a==b' nicht OK Grundlagen der Informatik (Alex Rempel) 13
14 Strukturen und Operatoren Strukturen und Operatoren (Zuweisung) struct vector2d { double x; double y; ; void main() { vector2d v1,v2; v1.x = 0.5; v1.y = -4.8; v2 = v1; cout << "v2 ( " << v2.x << " ; " << v2.y << " )" << endl; v2 = ( 0.5 ; -4.8 ) Grundlagen der Informatik (Alex Rempel) 14
15 Strukturen und Operatoren Strukturen und Operatoren (nicht Zuweisung) struct vector2d { double x; double y; ; void main() { vector2d v1,v2; v1.x = 0.5; v1.y = -4.8; v2.x = 0.5; v2.y = -4.8; if (v1 == v2) cout << "v1 and v2 are equal!" << endl; error C2784: "bool std::operator ==(const std::istreambuf_iterator<_elem,_traits> &,const std::istreambuf_iterator<_elem,_traits> &)": template-argument für "const std::istreambuf_iterator<_elem,_traits> &" konnte nicht von "vector2d" hergeleitet werden. Grundlagen der Informatik (Alex Rempel) 15
16 Strukturen und Funktionen Strukturen können Parameter und Rückgaben sein #include "animal.h" animal makemouse() { animal mouse; mouse.strname = "Mouse"; mouse.bdangerous = false; return mouse; void makeanimalangry(animal& anml) { anml.bdangerous = true; void printanimal(animal anml) { cout << anml.strname << " is "; cout << (anml.bdangerous? "dangerous " : "not dangerous") << endl; void main() { animal anml = makemouse(); printanimal(anml); makeanimalangry(anml); printanimal(anml); animal.h #include <string> struct animal { string strname; bool bdangerous; ; Mouse is not dangerous Mouse is dangerous Grundlagen der Informatik (Alex Rempel) 16
17 Strukturen und Funktionen Strukturen können Funktionen enthalten (.h und.cpp) #include "animal.h" animal makemouse() { animal mouse; mouse.strname = "Mouse"; mouse.bdangerous = false; return mouse; void main() { animal anml = makemouse(); anml.print(); anml.makeangry(); anml.print(); #ifndef _ANIMAL_H_ #define _ANIMAL_H_ #include <string> struct animal { string strname; bool bdangerous; ; #endif animal.h void makeangry(); void print(); Mouse is not dangerous Mouse is dangerous animal.cpp #include "animal.h" void animal::makeangry() { bdangerous = true; void animal::print() { cout << strname << " is "; if (bdangerous) cout << "dangerous"; else cout << "not dangerous" cout << endl; Grundlagen der Informatik (Alex Rempel) 17
18 Einfach verkettete Liste Für Lösungen bestimmter Aufgaben werden... Daten zu Datenobjekten zusammengefasst Datenobjekte zu Datenstrukturen zusammengefasst Beispiele für Datenstrukturen: Listen (Array, Stack, Queue) Tabellen (mehrdimensionale Arrays) Graphen (unidirektional, bidirektional etc.) Bäume u.s.w. Grundlagen der Informatik (Alex Rempel) 18
19 Einfach verkettete Liste Sequentielle Datenstrukturen Bis jetzt: Arrays, Strings Eigenschaft: Elemente zusammen im Speicher Verkettete Listen Einfach verkettete Listen Mehrfach verkettete Listen Eigenschaft: Elemente nicht zusammen im Speicher, ein Element gibt stattdessen den Weg zum nächsten Element vor Grundlagen der Informatik (Alex Rempel) 19
20 Einfach verkettete Liste Einfach verkettete Listen Jeder Knoten zeigt auf den nächsten Knoten So wird nur der erste Knoten gebraucht Folgende Funktionen sind nötig: insert, remove, search, destroy, print Grundlagen der Informatik (Alex Rempel) 20
21 Einfach verkettete Liste Einfach verkettete Listen Jeder Knoten zeigt auf den nächsten Knoten So wird nur der erste Knoten gebraucht Folgende Funktionen sind nötig: insert, remove, search, destroy, print struct node { int data; node* ; ; data data data NULL Listenstruktur Knotenelement Grundlagen der Informatik (Alex Rempel) 21
22 Einfach verkettete Liste Funktion: insert (Einfügen) #include "node.h" void insert(node*& plist, int idata) { if (!plist) { // empty list, first node plist = new node; plist->data = idata; plist-> = NULL; else { // append after last element node* pnode = plist; while (pnode->!= NULL) pnode = pnode->; pnode-> = new node; pnode->-> = NULL; pnode->->data = idata; void main() { node* plist = NULL; insert(plist,4); insert(plist,-35); plist plist plist node.h struct node { int data; node* ; ; Grundlagen der Informatik (Alex Rempel) NULL NULL NULL
23 Einfach verkettete Liste Funktion: print (Ausgeben) #include "node.h" void insert(node*& plist, int idata); // other file plist node.h struct node { int data; node* ; ; NULL void print(node* plist) { while(plist!= NULL) { cout << plist->data << " "; plist = plist->; cout << endl; void main() { node* plist = NULL; insert(plist,4); insert(plist,-35); insert(plist,99); print(plist); Grundlagen der Informatik (Alex Rempel)
24 Einfach verkettete Liste Funktion: destroy (Liste freigeben) #include "node.h" void insert(node*& plist, int idata); // other file void print(node* plist); // other file plist node.h struct node { int data; node* ; ; NULL void destroy(node*& plist) { while (plist!= NULL) { node* p = plist; plist = plist->; delete p; plist = NULL; void main() { node* plist = NULL; insert(plist,4); insert(plist,-35); insert(plist,99); destroy(plist); plist Grundlagen der Informatik (Alex Rempel) NULL 99
25 Einfach verkettete Liste Funktion: search (Suchen) #include "node.h" void insert(node*& plist, int idata); // other file void print(node* plist); // other file void destroy(node*& plist); // other file plist node.h struct node { int data; node* ; ; NULL node* search(node* plist, int idata) { while(plist!= NULL && plist->data!= idata) plist = plist->; return plist; void main() { node* plist = NULL; insert(plist,4); insert(plist,-35); insert(plist,99); node* pnode = search(plist,-35); cout << "Found " << pnode->data << endl; destroy(plist); pnode Grundlagen der Informatik (Alex Rempel) 25
26 Einfach verkettete Liste Funktion: remove (Knoten freigeben)...includes, function prototypes... void remove(node*& plist, int idata) { if (plist == NULL) return; else if (plist->data == idata) { node* premove = plist; plist = plist->; delete premove; else if (plist->!= NULL) { node* p = plist; do { if (p->->data == idata) { node* premove = p->; p-> = p->->; delete premove; return; p = p->; while (p->!= NULL);...main... remove(plist,-35); plist node.h struct node { int data; node* ; ; Grundlagen der Informatik (Alex Rempel) 26 4 plist NULL 99 NULL 99
Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrZeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrGrundlagen der Informatik 11. Zeiger
11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große
MehrNachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.
Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
MehrC++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14
C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung
MehrProgrammierung 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
MehrC- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
MehrC++ 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
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
MehrAbgeleitete Datentypen
Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-MAVT (FS 2014) Felder (Arrays) Zeichenketten (Strings) Strukturen (Structs) union, enum & typedef Arrays Ein Array ist ein Datentyp, der
Mehr8. 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
MehrBeispiel für eine rekursive Funktion
Rekursive Funktionen Werden verwendet, wenn ein Problem in Teilprobleme aufgespalten werden kann, von denen eines sofort lösbar ist und die weiteren eine etwas vereinfachte Form des Originalproblems sind.
MehrProgrammieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Strukturen Prof. Dr. Nikolaus Wulff Rekursive Strukturen Häufig müssen effizient Mengen von Daten oder Objekten im Speicher verwaltet werden. Meist werden für diese Mengen
MehrData Structures. Christian Schumacher, Info1 D-MAVT Linked Lists Queues Stacks Exercise
Data Structures Christian Schumacher, chschuma@inf.ethz.ch Info1 D-MAVT 2013 Linked Lists Queues Stacks Exercise Slides: http://graphics.ethz.ch/~chschuma/info1_13/ Motivation Want to represent lists of
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrDAP2 Praktikum Blatt 1
Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Arne Nägel, Andreas Vogel, Gabriel Wittum Lehrstuhl Modellierung und Simulation Goethe-Center for Scientific Computing
MehrName: Klausur Informatik III WS 2003/04
1 : Methodenimplementierung ca. 42 Punkte Gegeben ist die Klasse Mitarbeiter. Listing 1: (./Code1/Mitarbeiter.h) using namespace std; // globale Variable fuer Ausgabedatei // kann entsprechend
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrProgrammieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.
Vorbemerkungen Zur Erinnerung aktueller Standpunkt: Entwickler von (bibliotheken) jetzt sind wichtig interne Repräsentation der Daten Realisierung der gewünschten Funktionalität Bereitstellung geeigneter
MehrObjektorientierung Grundlagen
Prof. Dr.-Ing. Andreas Simon Telefon +49 (0)5331 939 42630 Telefax +49 (0)5331 939 43634 E-Mail a.simon@ostfalia.de Objektorientierung Grundlagen Probeklausur 18. Mai 2015 Name: Mat.-Nr.: Vorname: Login:
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
Mehr5. Abgeleitete Datentypen
5. Abgeleitete Datentypen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Felder (Arrays)!Zeichenketten (Strings)!Strukturen (Structs) Copyright: M. Gross, ETHZ, 2003 2 Arrays! Ein Array ist
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrAlgorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
Mehr! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
MehrProgrammiersprache 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
MehrCodingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008
I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium
MehrC++ 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
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrZusammengesetzte Datentypen -- Arrays und Strukturen
Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrStrukturen & Math. Strukturen und Vektoren. Allokieren eines Vektors. Zugriff auf Strukturen. Freigeben eines Vektors
Strukturen & Math Strukturen für mathematische Objekte: allgemeine Vektoren Matrizen Strukturen und Vektoren 1 #ifndef _STRUCT_VECTOR_ 2 #define _STRUCT_VECTOR_ 3 4 #include 5 #include
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrÜbung HP Musterlösung zu Aufgabe 9:
Musterlösung zu Aufgabe 9: 1. Aufteilung in Cpp und H: CPP: Enthält die Klassenimplementation und die Hauptmethode /*Autor: Nicola Greth * Uebung 8 * Klasse Cis_wstring */ #include #include
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrÜbersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions)
Übersicht 9.1 Strukturen (Verwendung) 9.2 Strukturen (Typdeklaration) 9.3 Strukturen (Variablendeklaration) 9.4 Felder aus Strukturen 9.5 Zugriff auf Strukturkomponenten 9.6 Zugriff auf Strukturkomponenten
MehrÜbungen zur Vorlesung EidP (WS 2015/16) Blatt 6
Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
MehrWas Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache:
Kapitel 8 Operatoren Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Operatoren definieren Es ist in C++ möglich, Operatoren wie +, oder für
MehrFunktionen und Parameter
Funktionen in C++ Funktionen und Parameter Wie in Java: Parameter sind lokale Variablen Argumente werden bei Aufruf zugewiesen Extras: Zeiger-Parameter für alle Typen: als Rückgabewerte um große Kopien
MehrC++ 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
MehrInformatik II Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrKurzeinführung in C/C++ Elementare Datentypen in C++
Elementare Datentypen in C++ Anders als in Java sind in C++ die Größen der Elementaren Datentypen maschinenabhängig Die Größe der Datentypen lässt sich mit sizeof ermitteln: int n=sizeof(int) In C++ gilt
MehrBeispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen
Beispiele elementarer Datentypen Ganze Zahlen (integer) - Werte sind ganze Zahlen in vorgegebenen Bereich (z. B. -2 31 bis 2 31-1) - Übliche Operationen: Arithmetik (z. B. +,-,*, Division mit Rest, Rest
MehrListen. Arrays. Deklaration. Einfach verkettete Listen
Arrays Bisher Listen von Daten in Arrays gespeichert type* array = malloc(n*sizeof(type)); dyn. Verlängern und Kürzen am Ende möglich array = realloc(array,nnew); Zugriff auf j-ten Eintrag (Lesen/Schreiben)
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
Mehr10 Die Programmiersprache C99: Zusammenfassung
10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 008/09 Zusammengesetzte Datentypen - Feld (array) - Verbund (struct) - Aufzählung (enum) Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering
MehrBerichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrZeiger, 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
MehrIn diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. 1. Bäume Grundlagen...
Bäume und Graphen In diesem Kapitel behandeln wir erste Algorithmen mit dynamischen Strukturen, wie Bäume und Graphen. Inhalt 1. Bäume... 1.1. Grundlagen... 1.. Repräsentation von Binärbäumen... 9 1..1.
MehrTHE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic
THE GO PROGRAMMING LANGUAGE Part 1: Michael Karnutsch & Marko Sulejic Gliederung Geschichte / Motivation Compiler Formatierung, Semikolons Variablen, eigene Typen Kontrollstrukturen Funktionen, Methoden
MehrC für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im
MehrÜberladen von Operatoren
- Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen
Mehr11. Übung Informatik II - Operatorfunktionen
Stand: 26. Juni 2015 Inhalt 1 2 3 Übersicht 1 2 3 Warum Operatoren überladen? Großteil der Operatoren (Arithmetik, Logik, Vergleiche) nur für Standarddatentypen (Zahlen, Zeiger) implementiert vergleichbare
MehrZeiger: 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
MehrC programmieren. Jürgen Wolf
C programmieren Jürgen Wolf Vorwort 11 Kapitel 1: Schnelleinstieg 13 Was sollten Sie bereits können? 14 Was lernen Sie mit diesem Buch? 14 Was benötigen Sie noch? 14 Überblick zu den einzelnen Kapiteln
MehrMethoden (fortgeschritten) in C# - 1
Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich
MehrGrundlagen 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 zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum
Mehr7. Grundlagen von Funktionen
7. Grundlagen von Funktionen Funktionen in C++ Bestandteile eines C++ - Programms C++ Kern Standardbibliothek Anwender Sonstiges vordefinierte Datentypen, Operatoren, Befehle vordefinierte Funktionen (und
MehrDer Datentyp String. Stringvariable und -vergleiche
Informatik 12 mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da
MehrEs ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.
Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe
MehrKap 9. Bitoperationen und -strukturen
Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)
MehrString s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:
Informatik mit Java: Gierhardt Zeichenketten bzw. Strings Der Datentyp String Zeichenketten bzw. Strings sind eine häufig benutzte Datenstruktur. Man könnte auch mit Arrays aus Zeichen arbeiten. Da aber
MehrDer C++ Crashkurs v1.0
Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der
MehrC++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.
C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale
MehrBäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
Mehr5.6 Spezielle Liste: Stack
5.6 Spezielle Liste: Stack Ein Stack (auch Keller, Stapel, Kellerstapel) ist eine sequenzielle Struktur von Objekten gleichen Typs, bei der die Operationen Einfügen und Löschen nur an einem Ende möglich
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrAlgorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in
Mehr1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20
Inhaltsverzeichnis Liebe Leserin, lieber Leser!...13 1Schnelleinstieg 14 Welche Vorkenntnisse benötigen Sie für dieses Buch?...16 An wen richtet sich dieses Buch?...16 Was benötigen Sie, um die Programmiersprache
Mehr1.4. Funktionen. Objektorientierte Programmierung mit C++
mehrfache Deklarationen sind erlaubt für jede Funktion muss es (GENAU) eine Definition geben, ansonsten linker error [the one definition rule ODR] Deklarationen in *.h - Files, Definitionen in *.cpp -
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
MehrFH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)
MehrStack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);
D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrProgrammieren - C++ Funktions-Templates
Programmieren - C++ Funktions-Templates Reiner Nitsch 8471 r.nitsch@fbi.h-da.de Was sind Templates? C++ Templates ermöglichen generische Programmierung. Das ist Programmierung unabhängig vom speziellen
Mehr6. Verkettete Strukturen: Listen
6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten
MehrNeue Features in C# 2.0
Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
Mehr