Programmieren in C++
|
|
|
- Victoria Franziska Maier
- vor 8 Jahren
- Abrufe
Transkript
1 Programmieren in C++ SS 2016 Vorlesung 8, Dienstag 14. Juni 2016 (Templates, Templates, Templates) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik Universität Freiburg
2 Blick über die Vorlesung heute Organisatorisches Inhalt Erfahrungen mit dem Ü7 Input/Output Referenzen und Zeiger Kurze Wiederholung Templates Prinzip + Beispiel Templates Instanziierung Templates Spezialisierung Bitweise Operatoren & ^ ~ << >> Übungsblatt 8: Eine templatisierte Klasse Set<T>, mit einer effizienteren Implementierung für den Typ char 2
3 Erfahrungen mit dem Ü7 1/3 Zusammenfassung / Auszüge Für die meisten gut machbar und relativ wenig Aufwand Man konnte schnell sehr viele doofe Fehler machen Probleme durch fehlende 0-Terminierung bei Verwendung von C-Funktionen wie strlen oder printf Bitte Zeiger und Referenzen nochmal erklären "Neben dem Programmieren Fußball zu schauen war keine gute Idee, ohne Fußball ging es wesentlich schneller" 3
4 Erfahrungen mit dem Ü7 2/3 Die Zahl ist die natürliche Zahl nach 136 und vor 138 Zahl mit dem am schlauesten klingenden Wikipedia-Artikel 137? Da ist doch die Anzahl der Semester bis zum Bachelor! Dazu sage ich nichts ohne meinen Anwalt auf den ich laut 137 Strafprozessordnung ein Anrecht habe Die Zahl 137 ist super: sie ist eine Primzahl, und die Quersumme (11) und deren Quersumme (2) auch 137 ist kein Palindrom 4
5 Erfahrungen mit dem Ü7 3/3 Die Zahl 137 und Wolfgang Pauli 1 / 137 ist der Wert der Feinstrukturkonstanten α ~ elektromagnetische Kraft zw. zwei Elementarladungen Pauli (und auch andere Physiker) hat tief beschäftigt, warum genau 1 durch eine natürliche Zahl, und warum gerade 137 Pauli hatte sich viel mit der Kabbala beschäftigt In der jüdischen Numerologie ist Kabbala 137 Die Tora hat Buchstaben, = 137 Pauli starb im Raum 137 im Rotkreuz Krankenhaus in Zürich Jahre später fand man heraus, dass α = 1 /
6 Fragen auf dem Forum Wiederholung der Wiederholung Wir helfen Ihnen gerne, aber Sie müssen uns auch helfen, damit wir Ihnen helfen können Hilfe zur Selbsthilfe! Sie lernen nichts, wenn wir einfach die Fehler in Ihrem Code finden und fixen Versuchen Sie: den Fehler einzugrenzen (gdb nicht vergessen) den dazugehörigen Code zu posten (aber nicht alles) eine möglichst konkrete Frage zu stellen Wenn Ihnen das schwer fällt, bauen Sie ein minimales Beispiel, bei dem der Fehler auftritt Dazu nach und nach Code entfernen bzw. vereinfachen 6
7 Referenzen und Zeiger 1/2 Wiederholung * Mit * bei einer Deklaration deklariert man eine Zeigervariable = die Adresse von einem Stück Speicher int* p = new int; // Pointer to 4 bytes in memory. Mit * vor einer Zeigervariablen bekommt man den Inhalt des Speichers, der unter dieser Adresse steht *p = 42; // Set value to 42. printf("%d\n", *p); // Prints 42. Es kann ohne Probleme mehrere Zeiger geben, die auf dasselbe Stück Speicher zeigen int* q = p; // *q ist now also 42. 7
8 Referenzen und Zeiger 2/2 Wiederholung & Mit & vor einer normalen Variablen bekommt man die Adresse dieser Variablen int* p = &x; // p is now the address of x. Mit & bei einer Deklaration erhält man eine Variable, die auf denselben Speicher zeigt wie eine andere int& y = x; // Make y an alias for x. y = 42; // Assign the value 42 to y. printf("%d\n", x); // Prints 42. Es kann ohne Probleme mehrere solcher Aliase für einund dasselbe Stück Speicher geben int& z = y; // Value of z is now also 42. 8
9 Templates 1/8 Motivation Manchmal hat man Klassen, die man fast genauso auch für einen anderen Typ braucht, zum Beispiel class ArrayInt {... methods int* _elements; }; class ArrayFloat {... methods float* _elements; }; Der Code ist fast identisch, außer dass an diversen Stellen in der einen Klasse int und in der anderen float steht Solche "code duplication" ist immer schlechter Stil Wenn man in der einen Klasse was ändert, ist die Gefahr groß, dass man es in der anderen vergisst Außerdem ist es unnötige (nicht ganz) doppelte Arbeit 9
10 Templates 2/8 Motivation Mit Templates kann man einen oder mehrere Typen bei der Implementierung "offen lassen" template<class T> class Array { methods T* _elements; } Erst bei der Deklaration gibt man dann den Typ an Array<int> a1; Array<float> a2; Array<char> a3; // Array of ints. // Array of floats. // Array of chars. Das < > ist dabei Teil des Klassennamens Der Compiler erzeugt in der Tat für jedes T anderen Code 10
11 Templates 3/8 Instanziierung Bei Template-Klassen wird durch die Implem. in der.cpp Datei noch kein Code erzeugt siehe nm C Array.o Um Code zu erzeugen, muss man sagen für welche Typen T man die Klasse gerne hätte Dafür gibt es zwei Alternativen Alternative 1: Implementierung in der.h Datei Alternative 2: Explizite Instanziierung in der.cpp Datei Beide Alternativen haben Vor- und Nachteile Wir bevorzugen in dieser Veranstaltung Alternative 2 11
12 Templates 4/8 Instanziierung, Alternative 1 Die Deklaration wie gehabt in der.h Datei Man schreibt die Implementierung, die normalerweise in der.cpp Datei steht, AUCH in die.h Datei Vorteil: Klasse wird erzeugt wenn sie gebraucht wird #include "./Array.h"... Array<int> arrayint; // Here Array<int> gets compiled. Nachteil: Wenn in 10 verschiedenen Dateien Array<int> benutzt wird, wird der Code dafür 10 mal kompiliert Aber ok, wenn der Code schnell zu kompilieren ist 12
13 Templates 5/8 Instanziierung, Alternative 2 Explizite Code-Erzeugung am Ende der.cpp Datei template class Array<int>; // Compile Array<int> here. template class Array<float>; // Compile Array<float> here. Vorteil: Code für Array<int> und Array<float> wird jetzt nur einmal erzeugt und steht in der entspr..o Datei Nachteil: Man muss sich entscheiden, für welche T man den Code haben will und für welche nicht Insbesondere ist das unmöglich für Bibliotheken, wo man gar nicht wissen kann, für welchen Typ T jemand die Template-Klasse später mal benutzen will 13
14 Templates 6/8 Template-Funktionen Man kann auch nur einzelne Funktionen "templatisieren" template<class T> T cube(t x) { return multiply(multiply(x, x), x); }... int n = 3; printf("n^3 = %d\n", cube<int>(n)); // Prints 27. Erst beim Aufruf wird die Funktion für diesen Typ kompiliert Und auch dann erst dann gibt es ggf. Fehlermeldungen Man kann beim Aufruf statt cube<int> auch cube schreiben... der Compiler findet den Typ dann selber heraus 14
15 Templates 7/8 Fehlermeldungen Sind oft sehr lang und verwirrend FileX:123: instantiated from [some function] FileY:456: instantiated from [some other function]... FileZ:789: instantiated from [yet another function] SomeFile.cpp:666: instantiated from here SomeFile.h:555: error: [some error message] 15 Am wichtigsten sind dabei meistens die letzten Zeilen Die Zeile mit "instantiated from here" sagt, wo das das Template zum ersten Mal konkret benutzt wird Die Zeile mit "error" sagt, wo beim Kompilieren im Template Code der Fehler aufgetreten ist
16 Templates 8/8 Spezialisierung Für einzelne Typen möchte man die Klasse vielleicht ganz anders implementieren, oft aus Effizienzgründen Die Deklaration in der.h Datei schreibt man dann so template<> Array<bool> { // Different implementation, packing 8 Bits in 1 Byte. } Die Implementierung in der.cpp Datei dann ohne template Array<bool>::get {... } Bemerkung: die spezialisierte Klasse kann auch ganz andere Memberfunktionen- und variablen haben 16
17 Bitweise Operatoren 1/2 Beispiele char x = 7; char y = 18; // in binary // in binary. Oder, Und, Exklusiv-Oder, Negation x y // in binary = 23. x & y // in binary = 2. x ^ y // in binary = 21. ~x // in binary = 248. Bits nach rechts oder links schieben x << 2 // in binary = 28. y >> 3 // in binary = 2. 17
18 Bitweise Operatoren 2/2 Fortsetzung Das geht genauso mit anderen Typen, z.b. int Es werden dann entsprechend mehr Bits auf einmal manipuliert, beim int z.b. typischerweise 32 Bits Moderne Rechner haben auch 256-Bit oder sogar 512-Bit Register Mit Bit-Operationen darauf (oft in Hardware gegossen) kann man einiges an Performance herausholen 18
19 Hinweise zum Übungsblatt 1/2 Der Typ char In C/C++ steht der Typ char für den Inhalt von einem einzigen Byte also 256 verschiedene Werte Es gibt eine Variante mit und eine ohne Vorzeichen: signed char: Werte im Bereich unsigned char: Werte im Bereich Wichtig: char ohne Angabe ist ein signed char Wenn man den Wert eines char als Index für ein Feld benutzen will, sollte man ihn als unsigned char casten char c = ; unsigned char i = static_cast<unsigned char>(c); 19
20 Hinweise zum Übungsblatt 2/2 Unit Tests Die Unit Tests sind für dieses Übungsblatt vorgegeben Das sollte Ihnen erstens Arbeit sparen Und dient zweitens automatisch auch als Spezifikation dafür, was Ihre Klasse machen soll Deshalb diesmal keine gesonderte TIP Datei 20
21 Literatur / Links Alles zu Templates Bitweise Operatoren 21
Programmieren in C++
Programmieren in C++ SS 2012 Vorlesung 5, Dienstag 5. Juni 2012 (Klassen, Objekte, Methoden, new & delete) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik Universität
DAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
Verschlü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
Angewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
Dynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
Programmieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
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,
Grundlagen der Informatik 2. Operatoren
2. Operatoren Referenzen Typumwandlungen Vorrangregeln Kommentare Grundlagen der Informatik (Alex Rempel) 1 Ausdruck (z.b. "x = 34 + y;") Folge von Operatoren und Operanden Operatoren Arithmetische Operatoren
Praxis der Programmierung
Liste, Ausnahmefehler, Template-Funktionen und -Klassen Institut für Informatik und Computational Science Henning Bordihn 1 Stack als einfach verkettete Liste 2 Aufgabe 1 1. Kopieren Sie aus /home/rlehre/w13
Crashkurs C++ - Teil 1
Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik
Dynamische Datentypen
Dynamische Datentypen Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel Tupel und Folgen o Wertebereich eines Structs / einer Klasse: T1 T2... Tk Werte sind k-tupel
Informatik II: Algorithmen und Datenstrukturen SS 2013
Informatik II: Algorithmen und Datenstrukturen SS 2013 Vorlesung 1a, Dienstag, 16. April 2013 (Organisatorisches, Programmierumgebung, Sortieren) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen
Repetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
C-Programmierkurs Mathematik
Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der
Algorithmen 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
Übungsblatt 1. Java Vorkurs (WS 2017)
Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die
Informatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener ([email protected]) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs
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
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
Programmierkurs. Steffen Müthing. January 18, Interdisciplinary Center for Scientific Computing, Heidelberg University
Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University January 18, 2019 Konzepte Standard-Konzepte für Code Reuse: Polymorphie/Vererbung Funktionalität
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
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 3, Donnerstag 6. November 2014 (O-Notation, Theta, Omega) Junior-Prof. Dr. Olaf Ronneberger
Unterlagen. 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
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
Überblick. R.Grossmann / P. Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
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
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 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im
Informatik I (D-ITET)
Ablauf Informatik I (D-ITET) Übungsstunde 5, 26.10.2009 [email protected] ETH Zürich Nachbesprechung Übung 3 Besprechung/Vertiefung der Vorlesung [21.10.2009] Vorbesprechung Übung 5 2.c) Test
Repetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case
INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap
INE1 Bit-Operationen Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap 1 Displays and I/O Binary Display & Input Output 2 von 39 Operationen für Bitmanipulation Bit - Operatoren Die
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
Informationsverarbeitung im Bauwesen
1/24 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 7
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,
Programmierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
Programmieren in C++
Programmieren in C++ (ESE) SS 2013 Vorlesung 1, Dienstag 24. April 2012 (Ein erstes Programm + das ganze Drumherum) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik
Programmiervorkurs Einführung in Java Tag 1
Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,
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
Überblick. 5. Objekt und Klasse, Elementfunktionen
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
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
Repetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 24. September 2012 Agenda 1 Funktionen Aufbau und Anwendung Call by Value Call by Reference Überladen von Funktionen Default
Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Teil I Debuggen mit gdb
Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out
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
Praxis 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
Kurze Einführung in die Benutzung des Dokumentationswerkzeugs Doxygen
Kurze Einführung in die Benutzung des Dokumentationswerkzeugs 2008 Gliederung 1 Zweck 2 Gliederung Zweck 1 Zweck 2 Zweck Zweck Erstellen einer übersichtlichen, zentralen Dokumentation im HTML-Format Überblick
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
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
Informatik für Mathematiker und Physiker Woche 7. David Sommer
Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen
Grundlagen 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
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
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
5. 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
Übungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: [email protected] Daniel Bogado Duffner 21.03.2018 1 Ablauf Quiz und Recap Floating Point
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
Anregungen zu Übung 2
Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist
C++ Templates. Wozu Templates? Definition von Templates. Gebrauch von Templates. Instanziierung und Organisation
C++ Templates Wozu Templates? Definition von Templates Gebrauch von Templates Instanziierung und Organisation Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik Martin-Luther-Universität
Hello World! Eine Einführung in das Programmieren Variablen
Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?
Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
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
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch
darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten
Einführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 [email protected] (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
Herzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: [email protected] Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
Zusammenfassung des Handzettels für Programmieren in C
Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.
Einführung in die Programmiersprache C
Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden
Einfü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
4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
