Tutorium Rechnerorganisation



Ähnliche Dokumente
RO-Tutorien 15 und 16

RO-Tutorien 3 / 6 / 12

Übersicht Programmablaufsteuerung

Die Programmiersprache C99: Zusammenfassung

Einführung in die C-Programmierung

Modellierung und Programmierung 1

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Datentypen: Enum, Array, Struct, Union

Multimedia im Netz Wintersemester 2011/12

2. Programmierung in C

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Programmierung in C. Grundlagen. Stefan Kallerhoff

Erwin Grüner

Einführung in die C++ Programmierung für Ingenieure

1. Übung zu "Numerik partieller Differentialgleichungen"

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

5. Tutorium zu Programmieren

Wirtschaftsinformatik I

E-PRIME TUTORIUM Die Programmiersprache BASIC

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Einführung in die Programmierung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Sin-Funktion vgl. Cos-Funktion

Version 0.3. Installation von MinGW und Eclipse CDT

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Zählen von Objekten einer bestimmten Klasse

Graphic Coding. Klausur. 9. Februar Kurs A

IT-Basics 2. DI Gerhard Fließ

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Einfache Rechenstrukturen und Kontrollfluss II

Vorkurs C++ Programmierung

Excel Funktionen durch eigene Funktionen erweitern.

C/C++ Programmierung

Moderne C-Programmierung

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Einführung in die Java- Programmierung

Projektverwaltung Problem Lösung: Modulare Programmierung

Übungen Programmieren 1 Felix Rohrer. Übungen

Dr. Monika Meiler. Inhalt

Einführung in die Java- Programmierung

Einführung in die Programmierung

Algorithmen mit Python

Numerische Datentypen. Simon Weidmann

Modul 122 VBA Scribt.docx

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Kontrollstrukturen und Funktionen in C

Klausur in Programmieren

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Übungen zu C++ Kapitel 1

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Die Programmiersprache C

Fallunterscheidung: if-statement

Zusammenfassung des Handzettels für Programmieren in C

Computerarithmetik ( )

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Einführung in die Programmierung

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Java Einführung Operatoren Kapitel 2 und 3

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Methodische Grundlagen des Software Engineering - Übung 9

Übung 9 - Lösungsvorschlag

DuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 12 AM

C-Programmierung unter TOS ATARI ST

C++ mit Eclipse & GCC unter Windows

Java Kurs für Anfänger Einheit 5 Methoden

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Programmierkurs Java

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Programmieren Tutorium

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Kontrollstrukturen, Strukturierte Programmierung

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Diana Lange. Generative Gestaltung Operatoren

Internet Explorer Version 6

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

1 Vom Problem zum Programm

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Professionelle Seminare im Bereich MS-Office

Native Zeichenketten (C-Strings)

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Algorithmen & Datenstrukturen 1. Klausur

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Kontrollstrukturen - Universität Köln

C# im Vergleich zu Java

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Transkript:

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

Heute C-Buildumgebung Datentypen in C Kontrollstrukturen in C Operatoren in C C-Zeiger 2 Christian A. Mandery:

Einleitung Es wird in Rechnerorganisation wahrscheinlich keine C-Programmieraufgaben geben (Grundsätzliche) C-Kenntnisse sind aber dennoch nötig Um Code ausprobieren zu können, empfiehlt es sich, eine C-Buildumgebung auf seinem Rechner einzurichten 3 Christian A. Mandery:

Notwendige Komponenten Benötigt werden: Compiler (z.b. gcc) Linker (z.b. gcc) C-Standardbibliothek inkl. Header (z.b. glibc) Am besten ein Gesamtpaket installieren: GNU Toolchain unter Linux Cygwin bzw. mingw mit Dev-C++ unter Windows Komplettpaket mit IDE von Microsoft (Visual Studio) 4 Christian A. Mandery:

Ganzzahlige C-Datentypen signed/unsigned char (immer 1 Byte) signed/unsigned short [int] (oft 2 Byte) signed/unsigned int (oft 4 Byte) signed/unsigned long [int] (oft 4 oder 8 Byte) signed/unsigned long long [int] (oft 8 Byte) Die Größe der einzelnen Datentypen ist bis auf Mindestgrößen und die Größe von char nicht vorgeschrieben! Es gilt aber immer: sizeof (short int) sizeof (int) sizeof (long int) 5 Christian A. Mandery:

C-Datentypen für Gleitkommazahlen short ( single precision, 4 Byte) double ( double precision, 8 Byte) Der Aufbau von Gleitkommazahlen ist standardisiert (IEEE 754) und wird später noch behandelt 6 Christian A. Mandery:

Sonstige C-Datentypen Zeiger Arrays (Strings als Spezialfall) Selbstdefinierte Strukturen (struct) Enumerationen (enum) Unions (union) 7 Christian A. Mandery:

Kontrollstrukturen Sollten bereits aus Java (1. Semester) bekannt sein Bedingte Ausführung und Fallunterscheidung: if (<Bedingung>) {...} [else...] switch (<Ausdruck>) {case <Wert>:...; case <Wert>:...; default:...} Schleifen: for (<Initialisierung>; <Bedingung>; <Iteration>) {...} while (<Bedingung>) {...} do {...} while (<Bedingung>); 8 Christian A. Mandery:

Weitere Schlüsselwörter zur Kontrollflusssteuerung break: Innerste Schleife sofort verlassen continue: Nächsten Schleifendurchlauf sofort starten return: Funktion (ggf. mit Rückgabewert) sofort verlassen goto: Spärlich verwenden! 9 Christian A. Mandery:

Operatoren Arithmetische Operatoren: +, -, *, /, %, a++, ++a, a--, --a Logische Operatoren:!, ==,!=, <, >, >=, <=, &&, Bitweise Operatoren: &,, ˆ, <<, >>, Zuweisungsoperatoren: =, += (etc.), <<= (etc.), &= (etc.) Sonstiges: &, *, a?b:c 10 Christian A. Mandery:

Deklaration von Zeigern Zeiger sind wichtiges Konzept in C! Ein Zeiger ist eine Variable, deren Wert eine Speicheradresse ist Werden bei der Deklaration durch einen Stern gekennzeichnet Bei Deklaration angeben, auf welchen Datentyp er zeigen wird (Achtung: Keine Prüfung zur Laufzeit!) oder einen void-zeiger deklarieren Beispiele: int*, char*, char**, void** Häufig: int *a statt int* a int* a, b erzeugt einen Zeiger a und eine int-variable b! int *a, *b bzw. int *a, b sind besser lesbar 11 Christian A. Mandery:

Verwendung von Zeigern Mit dem Adressoperator (&) ermittelt man die Adresse einer Variable Mit dem Dereferenzierungsoperator (*) greift man auf die Speicherzelle zu, deren Adresse ein Zeiger enthält Nicht verwechseln: Stern bei der Deklaration vs. Stern als Dereferenzierungsoperator! Pfeil-Operator ( a->b ): Kurzschreibweise für (*a).b Aber: Wozu braucht man Zeiger überhaupt? 12 Christian A. Mandery:

Weiteres zu Zeigern Zeiger können wie andere C-Datentypen gecastet werden (schlechter Stil!) Im Unterschied zu Java-Referenzen keinerlei Schutzmechanismen: Keine Garantie, dass Zeiger auf deklarierten Typ zeigt Keine Garantie, dass Zeiger-Ziel aligned (ausgerichtet) ist Keine Garantie, dass Zeiger auf gültigen Speicher zeigt (Nullzeiger sind explizit erlaubt und werden gezielt eingesetzt) Was passiert, wenn man (im x86-protected Mode) auf ungültigen Speicher zugreift? 13 Christian A. Mandery:

Fertig! 14 Christian A. Mandery: