Einleitung Technische Informatik 2 Rechnerorganisation
|
|
- Helmuth Baumhauer
- vor 5 Jahren
- Abrufe
Transkript
1 Einleitung Tutorium für Technische Informatik 2 (4. Semester, Diplom Studiengänge) und Rechnerorganisation (2. Semester, Bachelor Studiengänge) Termin: Freitags , Seminarraum 108 (Informatikgebäude am Fasanengarten) Erster Tutoriums Termin am letzten Freitag ist ausgefallen, daher (gekürztes) Nachholen des (Wiederholungs )Stoffes der letzten Tutorienwoche heute
2 Vorstellung Mein Name: Christian Mandery Studiengang: Diplom Informatik im 4. Semester (ich höre also im Moment selbst noch Technische Informatik 2) E Mail (bei Fragen und zum Senden von Programmieraufgaben Lösungen): tutorium@chrismandery.de Jabber/XMPP (alternativ): chrism2711@jabber.ccc.de Tutoriums Homepage: tut.chrismandery.de/ Mailing Liste kann bei Bedarf/Interesse eingerichtet werden Wichtig: Wenn ihr Fragen habt, fragt einfach in das Tutorium hinein. Es gibt keine dummen Fragen! => Vorstellungsrunde
3 Übungsblätter Übungsblätter erscheinen freitags und müssen/dürfen am darauf folgenden Freitag abgegeben werden Bezug der Übungsblätter über TI Homepage: Abgabe von mindestens acht der Übungsblätter und Erzielung von 50% der erreichbaren Gesamtpunktzahl ist für Übungsschein erforderlich Aufgaben, die auf einem Übungsblatt gelöst wurden, müssen im Tutorium vorgerechnet bzw. erläutert werden können!
4 Übungsschein Übungsschein gibt einen halben nicht bestehensrelevanten Bonuspunkt für die Klausur, ist aber zum Schreiben der Klausur nicht zwingend erforderlich (Information für Diplom Studiengang, Bachelor: Noch abklären) Voraussetzungen: Bearbeitung von acht der Übungsblätter Erzielung von 50% der Gesamtpunktzahl auf den Übungsblättern Teilnahme am Tutorium und gezeigte Bereitschaft zur Mitarbeit Vorrechnen Können aller gelösten Aufgaben der Übungsblätter im Tutorium (bei zweimaligem Verstoß: Kein Übungsschein) Mehr Information zum Übungsschein: Merkblatt auf TI Homepage Für zusätzliche Bonuspunkte (max. 2) wird eine Probeklausur stattfinden.
5 Themen heute Themen letzter Woche (Tutorium fand nicht statt): Zahlendarstellung in verschiedenen Zahlensystemen Repräsentation vorzeichenbehafteter Zahlen im Rechner Boolsche Algebra/Funktionen (Gleitkommazahlen aus Zeitgründen ausgelassen, werden bei Bedarf in einem folgenden Tutorium nochmals erklärt) Themen dieser Woche: Ein paar Worte zu einer C Buildumgebung für Linux/Windows, grundsätzliche Funktionsweise der einzelnen Programme (Compiler mit Präprozessor, Linker) C Basics (Datentypen, Funktionen, Verzweigungen, Schleifen) kurz wiederholen (an der Tafel) Zeiger/Arrays (Schwerpunkt) Bitweise Operatoren Ternärer Operator Tipps zur C Programmierung
6 Zahlendarstellung in verschiedenen Zahlensystemen Besonders gebräuchlich sind die Zahlensysteme zur Basis 2 (binäre Darstellung), 8 (oktale Darstellung), 10 (dezimale Darstellung) und 16 (hexadezimale Darstellung) Warum ist gerade die hexadezimale Darstellung so gebräuchlich? Zum Umrechnen zwischen den Zahlensystemen gibt es verschiedene Methoden, einige sind generisch, andere erleichtern bestimmte Umrechnung (z.b. wenn eine Basis eine Potenz der anderen Basis ist, Bsp. 2 < > 4/8/16) sehr stark
7 Zahlendarstellung in verschiedenen Zahlensystemen (2) Aufgaben Dezimaler Wert von Wandeln Sie die Zahl 86,22 10 in eine Zahl zur Basis 5 um. Wandeln Sie die Zahl 435, in eine Zahl zur Basis 16 um. Gleiche Zahl ins Binärsystem: Wie hilft einem hier die jetzt ja bekannte Hexadezimaldarstellung? Zahl aus erster Aufgabe in BCD Darstellung
8 Repräsentation vorzeichenbehafteter Zahlen im Rechner Es gibt verschiedene Verfahren zur Darstellung eines Vorzeichens im Rechner Vorzeichenbit Einerkomplement Darstellung Zweierkomplement Darstellung Vor und Nachteile der Darstellungsformen? Welche Darstellung verwendet eine normale x86/x86_64 CPU, wie sie heutzutage verkauft wird?
9 Repräsentation vorzeichenbehafteter Zahlen im Rechner (2) Aufgaben interpretiert als... Betrag Vorzeichen Darstellung Einerkomplement Darstellung Zweierkomplement Darstellung Stellen Sie in der Zweierkomplement Darstellung als 16 Bit Zahl dar.
10 Boolsche Algebra/Funktionen Menge, auf welcher zwei abgeschlossene (!) Verknüpfungen so definiert sind, dass die vier sogenannten Huntingtonschen Axiome erfüllt: Kommutativgesetze Distributivgesetze Existenz neutraler Elemente Existenz inverser Elemente
11 Boolsche Algebra/Funktionen (2) Neben den sicher bekannten Operationen UND/ODER auch noch andere Operationen, bei denen schon eine Operation genügt, um ein vollständige Operatiorensystem zu erhalten, welches also die gleiche Mächtigkeit hat Beispiel: NAND Operatorensystem Warum ist es (v.a. für die industrielle Fertigung) hilfreich, bei Schaltungen ein Operatorensystem mit möglichst wenigen Verknüpfungen zu verwenden?
12 Boolsche Algebra/Funktionen (3) Eine Boolsche Funktion ist eine Funktion, die einem beliebigen Tupel von Werten aus der Menge der unterliegenden Boolschen Algebra wieder einen Wert dieser Menge zuordnet Wir betrachten hier vor allem Funktionen der binären boolschen Algebra. Diese ordnen folglich eine gewissen Anzahl an binären Werten (0/1, bzw. wahr/falsch) einen binären Funktionswert zu. Wenn im folgenden die Menge nicht weiter spezifiziert wurde, ist immer die binäre Menge gemeint! Einfaches Beispiel einer binären boolschen Funktion: f(c, b, a) = c ODER (b UND a) (Vollständige) Funktionstabelle kann auch zur Definition einer boolschen Funktion verwendet werden
13 Boolsche Algebra/Funktionen (4) Aufgaben Gesucht sind alle boolschen Funktionen g(b, a) mit zwei Parameter a und b, die g(b, a) = g(nicht b, NICHT a) erfüllen Mögliche Funktionstabellen bestimmen Zumindest eine der möglichen Funktionen in symbolischer Schreibweise schreiben
14 C Buildumgebung Für Linux: Erstmal nur Compiler (gcc) und libc Header Weitere Buildtools wie autotools, make etc. dürfen in eventuellen Lösungen, die an mich gesendet werden, eingesetzt werden, sind aber keine Pflicht und für uns auch eher Overkill Für Debian/Ubuntu: Einfach build essential Paket installieren (sudo apt get install build essential) Falls noch nicht vorhanden, Entwickler Man Pages installieren (unter Debian/Ubuntu: manpages dev Paket) Texteditor auswählen (vim, emacs, Kate)
15 C Buildumgebung (2) Für Windows: Entweder Cygwin installieren (Linuxumgebung unter Win) Oder MinGW (gcc für Windows) installieren, möglich auch direkt in Kombination mit Dev C++ Oder Visual Studio bzw. Visual C++ kaufen oder über die Microsoft Leute an der Uni als Student beziehen Falls keine IDE, Texteditor auswählen (Notepad reicht für die allerersten Versuche, später dann bei Bedarf einen Besseren wie Notepad++) Eventuelle Lösungsprogramme vor dem Einschicken bitte auf Portabilität prüfen, insbesondere keine WinAPI verwenden (d.h. nirgends windows.h includen!)
16 C Basics An der Tafel: Datentypen Funktionen Verzweigungen Schleifen
17 Zeiger/Arrays Zeigervariable erhält man durch Anhängen eines Sterns an den Typ, der referenziert werden soll. Die Zeigervariable speichert keinen Wert, sondern eine Speicheradresse einer Variable des entsprechenden Typs Beispiele: short* ist ein Zeiger auf eine short Variable void* ist ein Zeiger, der auch ohne Cast eine beliebige Speicheradressen referenzieren kann (sollte im Interesse der Typsicherheit vermieden werden!) int** ist ein Zeiger auf einen Zeiger auf einen Integer Wert (eine mögliche Interpretation: Zweidimensionales int Feld, wobei nicht erzwungen wird, dass alle Zeilen gleich lang sind) char** ist ein Zeiger auf einen Zeiger auf einen Char (Buchstabe, i.d.r. 1 Byte, eine mögliche Interpretation: Liste von C Strings, d.h. Zero Terminated Strings) Häufige Konvention für Deklaration: int *a statt int* a (Stern zum Variablennamen)
18 Zeiger/Arrays (2) Adresse einer Variablen erhält man durch den (unären) Ampersand Operator, der vor den Variablennamen gesetzt wird Dereferenzierung (anschaulich: dem Zeiger folgen ) durch den Stern Operator Beispiel lesen und nachvollziehen: int a = 5, b = 10; int* x = &a; b = *x + 3; /* b ist nun 8 */ a = **(&x) 2; /* a ist nun 3 */ Demonstration am Rechner: Zeiger enthält wirklich eine Speicheradresse (wenn genug Zeit) Wozu sind Zeiger eigentlich gut? Kann ich nicht einfach immer direkt auf die Variable zugreifen? (siehe auch nächste Folie) ( Für Experten: Pfeil Operator a >b als Kurzschreibweise für (*a).b, dies macht Code bei Strukturen sehr viel lesbarer )
19 Zeiger/Arrays (3) Funktionen in C werden standardmäßig Call by value aufrufen, hierbei werden die Parameter einer Funktion auf den neuen Stackabschnitt der aufgerufenen Funktion kopiert, die Originale in der aufrufenden Funktion bleiben also unverändert Beispiel zur praktischen Anwendung von Zeigern: Call by reference: int foo(int* x) { int a = *x; *x *= 2; return a + 3; } int x = 10; foo(&x); /* Was ist der Rückgabewert? */ /* Was steht jetzt in der Variablen x in diesem Scope? */ Was wird hier gemacht? Warum ist es nötig, dies so machen?
20 Zeiger/Arrays (4) Selbstverständlich können Zeiger auch gecastet werden, hierzu verwendet man die normale Castschreibweise: (Neuer Typ)wert ( In C++ kann als bessere C++ Alternative hierfür auch reinterpret_cast<neuer Typ>(wert) verwendet werden, falls ihr es mal irgendwo in einem Code seht. ) Zeigercasts unbedingt vermeiden, wenn sie nicht unbedingt nötig sind (also fast immer!), da sich sehr leicht Fehler einschleichen Zeiger genießen in C zur Laufzeit keinerlei Schutz, sondern sitzen direkt auf der Hardware Ebene Keine Garantie, dass Zeiger auf deklarierten Typ zeigt Keine Garantie, dass Zeiger bei ausgerichteten Datentypen auf eine entsprechend alignte Speicheradresse zeigt Keine Garantie, dass Zeiger überhaupt auf gültigen Speicher, insbesondere Speicher, der der Anwendung gehört, zeigt. Beim Zugriff Schutzverletzung (= Absturz ). Insbesondere sind auch Nullzeiger möglich und werden oft explizit gesetzt, um festzuhalten, dass ein Zeiger momentan kein gültiges Objekt referenziert.
21 Zeiger/Arrays (5) Beispiel für Zeigercast: int a = 1337; int* p = &a; char* q = (char*)p; printf( %x, q[1]); /* Hexadezimale Ausgabe des zweiten Bytes der (i.d.r.!) 32 Bit Zahl a */ Und was wird hier wohl passieren? int* a = 0xdeadbeef; /* beliebige 32 Bit Adresse */ *a = 0; /* Zugriff auf unsere beliebige Adresse */
22 Zeiger/Arrays (6) Arrays sind mit Zeigern stark verwandt, insbesondere lässt sich jede Array Operation auch durch Dereferenzierungen und Addition ausdrücken. Ein Beispiel: int array[10]; array[3] =... /* Zugriff auf 4. Element */ *(array + 3*sizeof(int)) =... /* dito! */ Was wird hier gemacht (letzte Zeile)? Auf welcher Ebene findet die Addition statt bzw. was wird addiert?
23 Bitweise Operatoren &: Bitweises UND : Bitweises ODER ^: Bitweises XOR ( Antivalenz ) <<: Linksshift >>: Rechtsshift Wie kann man einen Shift bei einer vorzeichenlosen Zahl interpretieren? Zum konkreten Ausrechnung von bitweisen Operationen zweier Zahlen auf Papier kann man diese in eine Binärzahl umrechnen, dort dann sehr leicht die Operation ausführen und das Ergebnis zurück in die dezimale Darstellung umwandeln In einigen Fällen kann man das Ergebnis aber einfach sehen, z.b.: 7 & 3 oder 1 5 Merkhilfe für logische (boolsche) Operatoren und &&: Wie binäre Operatoren, nur Zeichen doppelt geschrieben, führt die Operation mit boolschen Werten als Parametern aus
24 Bitweise Operatoren (2) Binäre C Operatoren gibt es auch als Zuweisungsform: a += b <=> a = a + b a &= b <=> a = a & b An dieser Stelle ein Tipp an die Optimierer : Am Anfang lieber den Quellcode einfach halten und keine Shifts statt Multiplikation mit Zweierpotenz o.ä. zur (vermeintlichen) Optimierung einsetzen; der Compiler weiß relativ gut selbst, wo er optimieren kann, ohne den Wert von Berechnungen zu beeinflussen (wenn man es ihm erlaubt) Es macht daher auch in fast allen praktisch denkbaren Fällen keinen Sinn, die register Speicherklasse zu verwenden.
25 Ternärer Operator Schreibweise: a? b : c Der Ausdruck wertet zu b aus, wenn a wahr ist, ansonsten wird der Ausdruck zu c ausgewertet Beispiel: /* int x... */ printf(x % 2? ungerade : gerade ); Am Rande: Warum reicht hier x % 2 statt x % 2 == 1?
26 Tipps zur C Programmierung Compiler auf höchstmöglichem Warnlevel betreiben (für gcc als Parameter angeben: Wall Wextra pedantic ) (Einzelne) Warnungen niemals einfach mit #pragma unterdrücken, zumindest solange man nicht genau versteht, warum die Warnung entsteht und warum man sie ohne Risiko ignorieren darf Im Zweifelsfalle Google und/oder Dokumentation benutzen (Linux: Man Pages, auch im Web verfügbar; Windows: z.b. MSDN) Benutzung mit einem Debugger (z.b. gdb) zumindest in sehr groben Grundzügen erlernen, um Segfaults und ähnliches lokalisieren zu können Ausprobieren und bei Fragen einfach bei mir nachfragen!
27 Fertig! Wir sind fertig! Übungsblattabgabe der letzten Woche bis heute um Uhr am Einwurfkasten im Keller des Informatik Gebäudes am Fasanengarten Nächstes Tutorium: Freitag, , 9.45 Uhr, SR 108
RO-Tutorien 17 und 18
RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
MehrDuE-Tutorien 17 und 18
DuE-Tutorien 17 und 18 Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery TUTORIENWOCHE 1 AM 04.11.2011 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
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
MehrDuE-Tutorien 16 und 17
Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Tutorienwoche 1 am 05.11.2010 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der
MehrRO-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
MehrTutorium Rechnerorganisation
Woche 1 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
MehrRechnerorganisation Tutorium Nr. 1
Rechnerorganisation Tutorium Nr. 1 Tutorium 3 Nicholas Kjär - uadnm@student.kit.edu 20. April 2015 INSTITUT FÜR INFORMATIK KIT University of the State of Baden-Wuerttemberg and National Laboratory of the
Mehr2. Tutorium Digitaltechnik und Entwurfsverfahren
2. Tutorium Digitaltechnik und Entwurfsverfahren Tutorium Nr. 9 Alexis Tobias Bernhard Fakultät für Informatik, KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrGrundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik
Grundlagen der Rechnerarchitektur Binäre Logik und Arithmetik Übersicht Logische Operationen Addition, Subtraktion und negative Zahlen Logische Bausteine Darstellung von Algorithmen Multiplikation Division
MehrC-Programmierung: Ausdrücke und Operatoren#Division.2F
C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF
MehrVariablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15
Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen
MehrDuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 2 AM
DuE-Tutorien 4 und 6 Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery WOCHE 2 AM 30.10.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrOperatoren in C. Gastvorlesung Andreas Textor
Operatoren in C Gastvorlesung - 11.01.10 Andreas Textor andreas.textor@hs-rm.de Terminologie Operand 4 + 2 Operand Operator Unterscheidung nach Anzahl Operanden Unäre, Binäre und Ternäre Operatoren Z.B.:!x;
MehrZahlensysteme und Kodes. Prof. Metzler
Zahlensysteme und Kodes 1 Zahlensysteme und Kodes Alle üblichen Zahlensysteme sind sogenannte Stellenwert-Systeme, bei denen jede Stelle innerhalb einer Zahl ein besonderer Vervielfachungsfaktor in Form
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
Mehr1. Grundlegende Konzepte der Informatik
1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Zahlensysteme
MehrInformatik Vorkurs - Vorlesung 2
Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs
MehrMusterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016
Musterlösung 1 Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016 Hinweis: Die folgenden Aufgaben erheben nicht den Anspruch, eine tiefergehende Kenntnis zu vermitteln; sie sollen lediglich den
MehrZeiger 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,
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-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
Mehr2. 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)
MehrRückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8
Rückblick Zahlendarstellung zu einer beliebigen Basis b (214) 5 = Umwandlung zwischen Zahlendarstellung (278) 10 =(?) 8 25 Rückblick Schnellere Umwandlung zwischen Binärdarstellung und Hexadezimaldarstellung
Mehr1. Tutorium Digitaltechnik und Entwurfsverfahren
1. Tutorium Digitaltechnik und Entwurfsverfahren Tutorium Nr. 25 Alexis Tobias Bernhard Fakultät für Informatik, KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
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
MehrEinführung in die Informatik I
Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik
MehrEine praktische Einführung in die Programmierung mit der Programmiersprache C
Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?
MehrProbeklausur 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
MehrProgrammierkurs 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
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
MehrEinführung in die Informatik I
Einführung in die Informatik I Arithmetische und bitweise Operatoren im Binärsystem Prof. Dr. Nikolaus Wulff Operationen mit Binärzahlen Beim Rechnen mit Binärzahlen gibt es die ganz normalen arithmetischen
MehrZeiger (engl. Pointer)
Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der
Mehr4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
4. Daten K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 19. Okt. 2015 Was ist Informatik? Begriffsbestimmung (Gegenstand): "Informatik ist die Wissenschaft... der maschinellen Verarbeitung,
MehrÜBUNGS-BLOCK 7 LÖSUNGEN
ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i
MehrInhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Zeigern
MehrGrundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
MehrDuE-Tutorien 17 und 18
DuE-Tutorien 17 und 18 Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery TUTORIENWOCHE 3 AM 18.11.2011 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrEinleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
MehrÜbung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 06.03.09 2-1 Heutige große Übung Allgemeines
MehrLDS Arbeitsblatt 2, Version 1.0 Oktober / November
LDS Arbeitsblatt 2, Version 1.0 Oktober / November Aufgabe 1 -- Geben Sie die Zahlen 57 und 129 und 2347 jeweils in Hexadezimaldarstellung (also zur Basis 16, Ziffern 0 bis 9, A, B, C, D, E, F), Oktaldarstellung
MehrZahlen im Computer (Klasse 7 Aufbaukurs Informatik)
Zahlen im Computer (Klasse 7 Aufbaukurs Informatik) Die Bildauswahl erfolgte in Anlehnung an das Alter der Kinder Prof. J. Walter Bitte römische Zahlen im Geschichtsunterricht! Messsystem mit Mikrocontroller
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 5. Vorlesung 06.11.2018 1 Zahlendarstellungen 2 Speicherinhalte: Bits Hardware Spannung Ladung Magnetisierung Codierung 0V ungeladen unmagnetisiert 0 5V geladen magnetisiert
MehrEinführung in die Programmierung II. 5. Zeiger
Einführung in die Programmierung II 5. Zeiger Thomas Huckle, Stefan Zimmer 16. 5. 2007-1- Bezüge als Objekte Bisher kennen wir als Bezüge (Lvalues) nur Variablennamen Jetzt kommt eine neue Sorte dazu,
MehrVorlesung 6: Operatoren, Logische Ausdrücke
Vorlesung 6: Operatoren, Logische Ausdrücke Inhalt Organisatorisches Offene Übungen Operatoren Logische Ausdrücke Dr. J. Raimann 1 Offene Übungen (durch Tutoren betreut) montags 1. und 2. Block (8.15 Uhr
MehrGrundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke
Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii
MehrBasisinformationstechnologie I
Basisinformationstechnologie I Wintersemester 2012/13 24. Oktober 2012 Grundlagen III Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de
MehrLösungsvorschlag zu 1. Übung
Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zu 1. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der Aussagen treffen auf jeden
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 6. März 2013 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr Studiengang:
MehrInformatik. 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
MehrElementare 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
MehrRepetitorium 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
MehrDuE-Tutorien 16 und 17
Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Tutorienwoche 3 am 19.11.2010 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der
MehrAlgorithmen und Datenstrukturen 02
1. November 2011 Inhaltsverzeichnis 1 Organisatorisches Allgemeine Hinweise Texteditoren 2 Besprechung Blatt 1 Erste Eindrücke 3 Vorbereitung Blatt 2 Zahlensysteme, Datentypen und Ausdrücke String-Operationen
MehrProgrammiervorkurs 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,
MehrJava I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
MehrInhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen
3 Zahlendarstellung - Zahlensysteme - b-adische Darstellung natürlicher Zahlen - Komplementbildung - Darstellung ganzer und reeller Zahlen Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen......
MehrTechnische Universität Braunschweig Institut für Programmierung und Reaktive Systeme
Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 17. Februar 2018 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 2 Arrays und Pointer Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät statische Arrays Deklaration (eindimensional): /* 40
MehrJava 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
Mehr3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression) Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (boole'sche)
Mehr1 Organisatorisches. 2 Schleifeninvarianten. 3 Widerspruchsbeweise. 4 Zahlendarstellung in Rechnern. 5 Typanpassungen.
Themen der Übung Schleifeninvarianten, Zahlendarstellung und Typanpassungen CoMa-Übung V TU Berlin 1 Organisatorisches 2 Schleifeninvarianten 3 Widerspruchsbeweise 4 Zahlendarstellung in Rechnern 5 Typanpassungen
MehrOrganisatorisches Einführung Quellen. Einführung. Praktikum C-Programmierung. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar
Einführung Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-22 Michael Kuhn
Mehr2. 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
MehrDie Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen assemblerähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf
MehrVorlesung Objektorientierte Programmierung Klausur
Prof. Dr. Stefan Brass 16. Februar 2007 Dipl.-Inform. Annett Thüring Institut für Informatik MLU Halle-Wittenberg Vorlesung Objektorientierte Programmierung Klausur Name: Matrikelnummer: Studiengang: Aufgabe
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
MehrMehrdimensionale 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
MehrProgrammieren in C / C++ Grundlagen C 2
Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen
MehrEinstieg in die Informatik mit Java
1 / 29 Einstieg in die Informatik mit Java Weitere Ausdrücke Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 29 1 Überblick 2 Kombinierte Zuweisungsoperatoren 3 Vergleichsoperatoren
MehrPraxis der Programmierung
Funktionen, Header-Dateien, Pointer Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Organisatorische Bemerkungen 2 Modul Programmierung Pflichtmodul für BSc INF
Mehr3. Datentypen, Ausdrücke und Operatoren
3. Datentypen, Ausdrücke und Operatoren Programm muß i.a. Daten zwischenspeichern Speicherplatz muß bereitgestellt werden, der ansprechbar, reserviert ist Ablegen & Wiederfinden in höheren Programmiersprachen
MehrPIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
MehrÜbungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 24.03.2018 1 Ablauf Administratives Integer Division
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Mehr6. Zeiger Allgemeines Definition eines Zeigers
6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.
MehrZeiger 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,
MehrPraktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode
MehrZeiger. Zeiger ist eine Variable deren Wert eine Adresse enthält. Zeiger werden im Programm definiert. int *pmyinteger; Type *PointerName ;
Zeiger & Variable ist ein Speicherort im C++ Programm und hat eine Adresse. Variable - Zugriff auf Variable und/oder Adresse * & Operator liefert die Adresse einer Variablen im Speicher Adresse int myvariable
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
MehrTeil 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
MehrTeil 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
MehrAngewandte 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
Mehr3. Operatoren und Ausdrücke
3. Operatoren und Ausdrücke Ausdruck (expression) Verarbeitungsvorschrift zur Ermittlung eines Wertes besteht aus Operanden und Operatoren wichtigste Ausdrücke: arithmetische und logische (boole'sche)
MehrArrays. Einleitung. Deklarieren einer Array Variablen
Arrays Einleitung bisher jede Variable einzeln deklariert: 12 3 14 12 32 32 3 32 5 3 double sum; int count; ÿ Sie können Zweck und Aufbau von Array-Datentypen erklären ÿ Sie können einen Array korrekt
MehrKommentare in C. Keine Ahnung was ich vor einem Jahr gemacht habe. Ich verstehe es nicht ich schreibe es nochmal..
Kommentare in C Kommentare in C Keine Ahnung was ich vor einem Jahr gemacht habe. Ich verstehe es nicht ich schreibe es nochmal.. Vielleicht hil< ja ein gut kommen?erter Quellcode.... nur ein Tipp fürs
MehrVorstellung (Wdh. für die Neuen )
Vorstellung (Wdh. für die Neuen ) Mein Name: Christian Mandery Studiengang: Diplom-Informatik im 4. Semester (ich höre also im Moment selbst noch Technische Informatik 2) E-Mail (bei Fragen und zum Senden
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
MehrProgrammieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrProgrammierwerkstatt. 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
Mehr