Aufgaben zur IA32-Assembler-Programmierung

Größe: px
Ab Seite anzeigen:

Download "Aufgaben zur IA32-Assembler-Programmierung"

Transkript

1 Aufgaben zur IA32-Assembler-Programmierung Prof. Dr. Ralf Möller AG Technische Informatik Technische Fakultät Universität Bielefeld Version 1.15 vom 17. Februar 2011, SS 2011

2

3 SS 2011: Insgesamt müssen 100 Punkte erreicht werden. Die Aufgaben sind von jedem Studenten einzeln zu bearbeiten; Betrugsversuche werden geahndet. Es ist nicht gestattet, Assembler-Programme aus compilierten hochsprachlichen Programmen zu erstellen. Aufgabe: (10 Punkte) Schreiben Sie ein Assembler-Programm add64.asm, welches zwei ganze Zahlen mit jeweils 64 Bit Breite addiert. Der höherwertige Teil der ersten Zahl soll im Register eax, der niederwertige in ebx stehen, die zweite Zahl entsprechend in ecx und edx, das Ergebnis in eax und ebx. Arbeiten Sie das Programm im Debugger gdb schrittweise ab und notieren Sie nach jeder arithmetischen Operation den Zustand der beteiligten Register und des erweiterten Flag-Registers eflags (es muss keine Ausgabefunktion implementiert werden). Erklären Sie die Flagstellungen. Hinweis: Alle Statusflags stehen in den unteren 16 Bit des eflags Registers: OF SF ZF AF PF CF Verwenden Sie folgende Beispiele als Summanden: eax ebx ecx edx 0x x x x x x x xdddddddd 0x x x xddddddde 0x x x xeeeeeeee 0x x xeeeeeeee 0xeeeeeeee Aufgabe: (30 Punkte) Ergänzen Sie das obige Programm add64.asm, so dass die Werte der 4 beteiligten Universalregister und die Statusflags mittels Aufruf zweier Unterprogramme an beliebiger Stelle im Programm ausgegeben werden können. Verwenden Sie bei der Ausgabe der Statusflags jeweils kleine Buchstaben für nicht gesetzte und große Buchstaben für gesetzte Flags. Wiederholen Sie damit Ihre Versuche aus der vorherigen Aufgabe und überprüfen Sie die Resultate. Beachten Sie, dass Operationen, die für die Ausgabe verwendet werden, die Statusflags beeinflussen können (die Stack-Befehle für das erweiterte Flag-Register heißen pushf und popf). Beachten Sie weiterhin, dass es keine bedingten Sprungbefehle gibt, welche das Auxiliary Carry Flag (AF) abfragen (Hinweis: Der Befehl lahf überführt die Statusflags in das Register ah. Mit bt ax, 12 kann das AF-Flag in das Carry-Flag kopiert werden.) Sie müssen davon ausgehen, dass sich die Flags vorher in einem undefinierten Zustand befinden. Beispiel: add ffffffff oszapc ffffffff oszapc ffffffff oszapc Aufgabe: (40 Punkte) Schreiben Sie ein Assembler-Programm sgrep.asm (mit ähnlicher Funktion wie das Unix-Kommando grep), welches in der Standardeingabe nach einer Zeichenkette sucht, die als Kommandozeilenargument angegeben wurde. Wird die Zeichenkette in einer Zeile (Zeilenabschluss 0x0a) gefunden, so wird die gesamte Zeile auf der Standardausgabe ausgegeben. Aufgabe: (40 Punkte) Schreiben Sie ein Assembler-Programm colsel.asm, welches die Standardeingabe durchmustert und nur eine Spalte des Eingabedatenstroms auf der Standardausgabe ausgibt. Die Nummer der Spalte (beginnend mit 1) wird als Kommandozeilenargument angegeben. Spalten werden von Tabulatoren (0x09) getrennt, wobei auch mehrere Tabulatoren hintereinander auftreten können. Zeilen enden mit 0x0a. Aufgabe: (40 Punkte) Schreiben Sie ein Assembler-Programm convert10to16.asm welches eine vorzeichenlose Dezimalzahl in eine Hexadezimalzahl (32 bit) umwandelt. Die Dezimalzahl wird als Kommandozeilen- Argument übergeben, nochmals im Original ausgegeben, umgewandelt und als Hexadezimalzahl (mit führenden 1

4 Nullen) auf der Standardausgabe ausgegeben. Das Programm soll eine Fehlermeldung ausgeben, wenn ein inkorrektes Zeichen eingegeben wurde oder der Wertebereich von 32 bit überschritten wird. Beispiel: convert10to decimal number = hexadecimal number = 0x convert10to decimal number = hexadecimal number = 0xffffffff convert10to decimal number = invalid decimal number convert10to16 12x45 decimal number = 12x45 invalid decimal number Aufgabe: (30 Punkte) Schreiben Sie ein Assembler-Programm convert16to10.asm, welches eine vorzeichenlose Hexadezimalzahl (max. 8 Stellen) in eine Dezimalzahl umwandelt. Die Hexadezimalzahl wird als Kommandozeilen-Argument übergeben, nochmals im Original ausgegeben, umgewandelt und als Dezimalzahl (ohne führende Nullen) auf der Standardausgabe ausgegeben. Das Programm soll eine Fehlermeldung ausgeben, wenn ein inkorrektes Zeichen oder mehr als 8 Stellen eingegeben wurden. Beispiel: convert16to10 3e8 hexadecimal number = 0x3e8 decimal number = 1000 convert16to10 3g8 hexadecimal number = 0x3g8 invalid hexadecimal number Aufgabe: (40 Punkte) Schreiben Sie ein Assembler-Programm wortzaehl.asm, welches die Anzahl der Zeilen, der Worte und der Zeichen in einer Text-Datei zählt und diese Angaben auf der Standardausgabe ausgibt (eine einfache Variante des Unix-Befehls wc, der auch zum Vergleich herangezogen werden sollte). Worte werden von Leerzeichen (0x20), Tabulatoren (0x09) oder Zeilenumbrüchen (0x0a) getrennt, wobei auch mehrere dieser Zeichen hintereinander auftreten können. Der Name der Text-Datei soll als Kommandozeilen-Argument übergeben werden, die Ausgabe der drei Zahlen im Dezimalsystem erfolgt auf der Standardausgabe. Für die Ausgabe wird ähnlicher Code wie in der Aufgabe convert16to10.asm nötig sein (es wird deswegen auch nur eine Aufgabe von beiden gewertet). Aufgabe: (50 Punkte) Schreiben Sie ein Assembler-Programm arabic2roman, welches arabische in römische Zahlen verwandelt und diese ausgibt. Das folgende C-Programm realisiert das gewünschte Verhalten (aus Herold / Arndt: C-Programmierung unter Linux): #include <stdio.h> #include <stdlib.h> void block_ausgabe(long int wert, char einer, char fuenfer, char zehner) { long int i; if (wert == 9) printf("cc", einer, zehner); else if (wert > 4) { printf("c", fuenfer); for (i = wert; i >= 6; i--) printf("c", einer); else if (wert == 4) printf("cc", einer, fuenfer); else for (i = wert; i >= 1; i--) printf("c", einer); 2

5 int main(int argc, char *argv[]) { long int i, zahl; if (argc!= 2) { fprintf(stderr, "arabic2roman <positive Zahl>\n"); return -1; zahl = atol(argv[1]); /* keine Ausgabe fuer 0 oder negative Zahlen */ if (zahl <= 0) return 0; /* Ausgabe Tausender (M) */ for (i = 1; i <= zahl/1000; i++) printf("m"); /* Ausgabe Zahlenbereich , C=100, D=500, M=1000 */ zahl = zahl 1000; block_ausgabe(zahl/100, C, D, M ); /* Ausgabe Zahlenbereich , X=10, L=50, C=100 */ zahl = zahl 100; block_ausgabe(zahl/10, X, L, C ); /* Ausgabe Zahlenbereich 1..9, I=1, V=5, X=10 */ zahl = zahl 10; block_ausgabe(zahl, I, V, X ); printf("\n"); return 0; C-Eigenheiten: Der Operator ist die Modulo-Operation, der Operator / ist in diesem Fall eine ganzzahlige Division. Die Funktion printf() realisiert eine Ausgabe auf der Konsole. Das Ausgabeformat c gibt das ASCII-Zeichen einer Zahl aus. Die Funktion main() wird beim Start des Programms aufgerufen. Ihr werden die Anzahl der auf der Kommandozeile übergebenen Argumente argc und ein Feld von Zeichenketten der Argumente argv übergeben. Die Funktion atol verwandelt eine Zeichenkette in eine ganze Zahl. Beispiele: arabic2roman 2010 MMX arabic2roman 1968 MCMLXVIII Aufgabe: (20 Punkte) Schreiben Sie ein Assembler-Programm bubblesort.asm, welches das Bubblesort- Verfahren verwendet, um mehreren Zeichenketten aufsteigend nach Ihrem ASCII-Code zu sortieren. Die Zeichenketten werden als Kommandozeilenparameter übergeben, die sortierten Zeichenketten werden auf der Standardausgabe ausgegeben. Beispiel: bubblesort Dieses Programm sortiert alle Zeichenketten nach Ihrem ASCII-Code. Deeiss Pagmmorr eiorrstt aell Zceeeehiknntt achn Iehmr -.ACCIISdeo Beim Bubblesort werden nacheinander jeweils zwei aufeinanderfolgende Elemente verglichen (Index i und i + 1). Befinden die beiden Elemente sich nicht in der gewünschten Ordnung, so werden sie vertauscht. Dann wird mit Index i + 1 und i + 2 fortgefahren. Die Sortierung ist beendet, wenn im letzten Durchlauf keine Vertauschung vorgenommen wurde. Aufgabe: (40 Punkte) Implementieren Sie das CRC-Verfahren zur Checksummen-Berechnung nach der Beschreibung auf in einem Assemblerprogramm crc.asm. Das Pro- 3

6 gramm soll die CRC-Checksumme für die Zeichen berechnen, die ihm auf der Standardeingabe übergeben werden (z.b. durch Umlenken einer Datei auf die Standardeingabe). Beispiel: crc < print_args.asm Checksumme: 0xbe9b56fc Gehen Sie von dem modifizierten Algorithmus aus, der auf obiger Webseite als C-Programm angegeben ist: #include <stdio.h> #include <stdlib.h> #include <inttypes.h> #define CRC32POLYREV 0xEDB88320 /* CRC-32 Polynom, umgekehrte Bitfolge */ int datastream[]={1,0,0,0,1,1,0,0; /* ASCII-"1", LSB zuerst */ int databits=8; uint32_t crc32_rev; /* Shiftregister */ void calc_crc32_rev(int bit) { int lbit; lbit=crc32_rev & 1; if (lbit!= bit) crc32_rev=(crc32_rev>>1) ˆ CRC32POLYREV; else crc32_rev=crc32_rev>>1; int main(void) { int i; crc32_rev=0xffffffff; /* Startwert (111...) */ for (i=0; i<databits; ++i) calc_crc32_rev(datastream[i]); printf("0x08x\n",crc32_rev ˆ 0xffffffff); /* inverses Ergebnis, MSB zuerst */ return EXIT_SUCCESS; Aufgabe: (40 Punkte) Schreiben Sie ein Assembler-Programm fixedpoint.asm. Dieses soll auf der Standardeingabe eine Dezimalzahl mit Vor- und Nachkommestellen akzeptieren und auf der Standardausgabe deren Kodierung als Festkommazahl binär ausgeben. Die Festkommazahl hat 32 Bit und soll jeweils 16 Bit als Vor- und Nachkommabereich enthalten. Das Programm soll enden, wenn der Systemruf read den Rückgabewert 0 liefert. fixedpoint Type a number: bit fixed-point number: b Type a number: bit fixed-point number: b Type a number: bit fixed-point number: b ˆD Aufgabe: (10 Punkte) Analysieren Sie den vom C-Compiler erzeugten Code für das folgende C-Programm namens simple.cc: 4 Erzeugen Sie mittels gcc -O0 -S simple.cc intel2gas -g -o simple.asm simple.s 4

7 eine Datei simple.asm im Intel-Assembler-Format und öffnen Sie diese mit einem Text-Editor (z.b. emacs). Vergleichen Sie bei den folgenden Erweiterungen des C-Programms jeweils das Ergebnis des Compiler-Laufes mit der zuletzt entstandenen Assembler-Datei. Geben Sie den Wert -1 von der Funktion main zurück: 4 return -1; 5 Führen Sie zwei lokale Variablen ein: 4 int i, j; 5 return -1; 6 Initialisieren Sie eine der Variablen: 4 int i, j; 5 j = 123; 6 return -1; 7 Fügen Sie eine for Schleife hinzu: 4 int i, j; 5 j = 123; 6 for (i = 1; i < 5; i++); 7 return -1; 8 Lassen Sie innerhalb der Schleife eine Berechnung ausführen: 4 int i, j; 5 j = 123; 6 for (i = 1; i < 5; i++) 7 j += i; 8 return -1; 9 Rufen Sie alternativ ein Unterprogramm auf, welches diese Berechnung ausführt: 2 add(int a, int b) 4 int c; 5 c = a + b; 6 return c; 5

8 7 8 9 int 10 main(int argc, char *argv[]) 11 { 12 int i, j; 13 j = 123; 14 for (i = 1; i < 5; i++) 15 j = add(j, i); 16 return -1; 17 Führen Sie eine globale Variable ein: k = 54321; 2 3 int 4 add(int a, int b) 5 { 6 int c; 7 c = a + b; 8 return c; int i, j; 15 j = k; 16 for (i = 1; i < 5; i++) 17 j = add(j, i); 18 return -1; 19 Fassen Sie die gewonnenen Einsichten zusammen: Wie werden lokale Variablen in Funktionen erzeugt und vernichtet? Wo wird der Speicherplatz für diese Variablen angelegt? Wie erfolgt der Zugriff auf lokale Variablen? Wie werden globale Variablen erzeugt? Wo wird der Speicherplatz für diese Variablen angelegt? Wie erfolgt der Zugriff auf globale Variablen? Wie werden Parameter an Funktionen übergeben? Wie erfolgt der Zugriff auf diese Parameter in der Funktion? Wie werden Rückgabewerte übergeben? Wie werden Stack-Rahmen (stack frames) verwaltet? Was bewirkt die Instruktion leave? Aufgabe: (10 Punkte) Analysieren Sie die Gleitkomma-Instruktionen, die der C-Compiler für folgendes Programm float.cc erzeugt: 1 float a = , b = 9.9, c = 0.5, d = 0.2, e; 2 3 int 4 main() 5 { 6 e = (a + b) * (c - d); 7 Erzeugen Sie dazu zunächst eine Assembler-Datei float.asm im Intel-Format mittels gcc -O0 -S float.cc intel2gas -g -o float.asm float.s 6

9 und öffnen Sie diese mit einem Text-Editor. Testen Sie das Programm mit dem Debugger gdb. Rufen Sie dazu den Assembler auf und erzeugen Sie ein ausführbares Programm float mittels nasm -f elf float.asm gcc -o float float.o Setzen Sie im Debugger einen Unterbrechungspunkt vor den Gleitkomma-Instruktionen und starten Sie das Programm. Arbeiten Sie nach dem Erreichen des Unterbrechungspunktes das Programm schrittweise ab (si) und lassen Sie sich die Gleitkomma-Register st0 bis st7 anzeigen. Es ist hilfreich, sich dafür in der Datei.gdbinit folgendes Kommando zu definieren, welches einmal am Beginn aufgerufen werden muss: 1 define fpu-display 2 display /f $st0 3 display /f $st1 4 display /f $st2 5 display /f $st3 6 display /f $st4 7 display /f $st5 8 display /f $st6 9 display /f $st7 10 display /i $eip 11 end Beschreiben Sie die Veränderungen auf dem Gleitkomma-Stapel. 7

Aufgaben zur IA32-Assembler-Programmierung

Aufgaben zur IA32-Assembler-Programmierung Aufgaben zur IA32-Assembler-Programmierung Prof. Dr. Ralf Möller AG Technische Informatik Technische Fakultät Universität Bielefeld www.ti.uni-bielefeld.de Version 1.22 vom 8. August 2017, WS 2017/18 Insgesamt

Mehr

Aufgaben zur IA32-Assembler-Programmierung

Aufgaben zur IA32-Assembler-Programmierung Aufgaben zur IA32-Assembler-Programmierung Prof Dr Ralf Möller AG Technische Informatik Technische Fakultät Universität Bielefeld wwwtiuni-bielefeldde Version 120 vom 22 September 2015, WS 2015/16 Insgesamt

Mehr

GI Vektoren

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

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

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

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

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

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher Probeklausur: BTI2 / Programmieren I Prüfer Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher 1. Aufgabe Was gibt das im folgenden angegebene Programm bei seiner Ausführung auf den

Mehr

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt Zeichenketten (1) Literale Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt "Hallo Welt" Mehrere solcher Literale gelten als eine Zeichenkette, wenn sie nur durch Whitespaces (Leerzeichen,

Mehr

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung 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

Mehr

Informatik I - Übung 2 Programmieren in Eclipse

Informatik I - Übung 2 Programmieren in Eclipse Informatik I - Übung 2 Programmieren in Eclipse. / Info1 / HelloWorld / HelloWorld Wort1 Wort2 Daniel Hentzen dhentzen@student.ethz.ch 5. März 2014 1.2 Häufigste Fehler im Terminal auf Gross-/Kleinschreibung

Mehr

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 2: Prof. Dr. Unser erstes C-Programm int main (int argc, char *argv[]) int i; int sum = 0; for (i = 0; i

Mehr

C-Crashkurs. Praktikum Systemmanagement und Sicherheit

C-Crashkurs. Praktikum Systemmanagement und Sicherheit C-Crashkurs Praktikum Systemmanagement und Sicherheit ZIELE DIESES KURSES 15.04.2014 Dipl.-Inf. M. Bohr C_Crashkurs 2 Compiler gcc verwenden geläufigste Datentypen in C kennen Fehlerbehandlung (ohne Ausnahmeklassen)

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

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

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009 Einführung Übungen zur Vorlesung Virtuelle Maschinen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SoSe 2009 Übungsaufgaben 1 Entwickeln

Mehr

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 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,

Mehr

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen. INE1 Musteraufgaben für die Semesterendprüfung Hilfsmittel Vier Seiten selbst verfasste Zusammenfassung keine weiteren Hilfsmittel keine elektronischen Hilfsmittel Abgabe Füllen Sie das erste Aufgabenblatt

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 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 ( / 12 Pkt.) Was liefert

Mehr

Programmieren 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 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

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung

Mehr

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC)

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC) Übungen zu Architektur Eingebetteter Systeme Blatt 4 22.05.2009 Teil 1: Grundlagen 1.1: Grundlagen des Cyclic redundancy code (CRC) Im Gegensatz zum Parity-Check, der nur einfache Bit-Fehler erkennen kann,

Mehr

U23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides

U23 - Shellcode. Twix Chaos Computer Club Cologne.  Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 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 ( / 12 Pkt.) Was liefert

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

Übung Augmented Reality

Übung Augmented Reality Ludwig-Maximilians-Universität München LFE Medieninformatik Prof. Dr. Andreas Butz Fabian Hennecke Sommersemester 2009 Übungsblatt 1 28. April 2009 Übung Augmented Reality Abgabetermin: Die Lösung zu diesem

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11

Mehr

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

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

Programmieren 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

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,

Mehr

1. Aufgabe (6 Punkte)

1. Aufgabe (6 Punkte) Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 1.2.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Typ : void* aktuelle Parameter Pointer von beliebigem Typ 2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben

Mehr

Informatik III: Aufgabenblock 1. 1 Datei eintippen, Programmkopf erstellen, kompilieren

Informatik III: Aufgabenblock 1. 1 Datei eintippen, Programmkopf erstellen, kompilieren Informatik III: Aufgabenblock 1 Endgültige Version vom 6. Oktober 2003 Abgabe vor dem 7. Nov. 2003 1 Datei eintippen, Programmkopf erstellen, kompilieren Wenn Sie schon erfahren im Umgang mit UNIX und

Mehr

Assembler Unterprogramme

Assembler Unterprogramme Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme

Mehr

Praktikum Ingenieurinformatik. Termin 6. Matrizen, Zeichenketten, Zeiger

Praktikum Ingenieurinformatik. Termin 6. Matrizen, Zeichenketten, Zeiger Praktikum Ingenieurinformatik Termin 6 Matrizen, Zeichenketten, Zeiger 1 Praktikum Ingenieurinformatik Termin 6 1. Matrizen 2. Zeichenketten 3. Zeiger 4. Zeichenketten/Zeiger 2 Aufgabe: 1.1. Multiplikation

Mehr

float *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses

float *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses Zeiger auf Funktionen 1 Zeiger als Funktionswert... 1 2 "Zeiger als Funktionswert" versus "Zeiger auf eine Funktion"... 2 2.1 Das Beispiel zu Zeiger auf eine Funktion veranschaulicht den Sachverhalt...

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei

Mehr

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten Kapitel 7 Zusammengesetzte Datentypen, Vektoren, Zeichenketten 1 Gliederung Kapitel 7 Zusammengesetzte Datentypen 7.1 Vektoren 7.2 Sortieren eines Vektors 7.3 Mehrdimensionale Felder 7.4 Umgang mit ein-/zweidimensionalen

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

FH 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)

Mehr

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Compiler: Vom Code zum Maschinen-Code C Programmierung - Vorlesung 2 Hochschule Regensburg 19.03.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Zusammenhänge: C und Assembler Hochsprachen

Mehr

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Michael Jugovac Dominik Kopczynski Jan Quadflieg Till Schäfer Stephan Windmüller Dortmund, den 30. Oktober 2014 Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3 Es können 12 (+5

Mehr

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

Mehr

2. Aufgabenblatt Musterlösung

2. Aufgabenblatt Musterlösung 2. Aufgabenblatt Musterlösung Technische Informatik II Sommersemester 2011 Problem 2: Assembler Syntax Register eines 32-bit Intel-Prozessors: 16 bits 8 bits 8 bits general purpose registers EAX Accumulator

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Programmierung mit C Zeiger

Programmierung mit C Zeiger Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Karlsruher Institut für Technologie

Karlsruher Institut für Technologie Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 5. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Übungspaket 8 Datentyp int

Übungspaket 8 Datentyp int Übungspaket 8 Datentyp int Übungsziele: Skript: 1. Umgang mit dem Datentyp int, 2. Deklarationen von int-variablen, 3. int-konstanten 4. und int-rechenoperationen. Kapitel: 21 Semester: Wintersemester

Mehr

Arrays, Zeiger und Funktionen (call by reference)

Arrays, Zeiger und Funktionen (call by reference) Arrays, Zeiger und Funktionen (call by reference) Aufgabe 1: Zeichenketten Gegeben sei das folgende Programm: char text[] = "Informatik\aist toll\n"; printf("%i\n", sizeof(text)/sizeof(char)); printf("%s\n",

Mehr

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 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 ( / 6 Pkt.) a) Geben

Mehr

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

E-/A-Funktionalität nicht Teil der Programmiersprache

E-/A-Funktionalität nicht Teil der Programmiersprache C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Programmieren in C (Übungsblatt 1)

Programmieren in C (Übungsblatt 1) 27.02.2018 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main(void) { printf("c-programmierung

Mehr

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit

Mehr

Vorlesung Objektorientierte Programmierung Klausur

Vorlesung 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

Mehr

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und

Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und 27.5.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine

Mehr

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges

Mehr

6. Zeiger Allgemeines Definition eines Zeigers

6. 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.

Mehr

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

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Hochschule München, FK 03 SS 2014 Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden

Mehr

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1. Praktikum Btib Betriebssysteme t I Hochschule Für Angewandte Wissenschaften FH München Sommersemester 2010 thomas.kolarz@hm.edu Folie 1 Vorbereitung Booten Sie den Rechner unter Linux und melden Sie sich

Mehr

1 UNIX und die Kommandozeile. 2 C++ Tipps. 1.1 wichtige Befehle und Programme. 1.2 Umleiten der Standardein- und Ausgabe. 2.

1 UNIX und die Kommandozeile. 2 C++ Tipps. 1.1 wichtige Befehle und Programme. 1.2 Umleiten der Standardein- und Ausgabe. 2. 1 UNIX und die Kommandozeile 1.1 wichtige Befehle und Programme cd verz wechselt in ein Verzeichnis cd.. verlässt das aktuelle Verzeichnis mkdir verz erstellt ein Verzeichnis rmdir verz löscht ein Verzeichnis

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C 1 Einführung Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Inhalte der Veranstaltung 1 Einführung das Maschinenmodell

Mehr

Linux-Einführung Übung

Linux-Einführung Übung Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.

Mehr

CEN1112 Labor Software-Entwicklung

CEN1112 Labor Software-Entwicklung Dipl.-Ing. (FH) Peter Bitterlich M.Sc. Joachim Storz Fakultät für Technik STUDIENGANG MEDIZINTECHNIK CEN1112 Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 C-Programmierung Vertiefung Wintersemester

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Ü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

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung

Mehr

Einführung Programmierpraktikum C Michael Zwick

Einführung Programmierpraktikum C Michael Zwick Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik

Mehr

Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text;

Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = Sehr geehrte Damen und Herren!; char *tmp=text; Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 26.1.2009 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 8 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 ( / 10 Pkt.) a) Geben

Mehr

Musterprüfung Algorithmen & Datenstrukturen (WS 08/09)

Musterprüfung Algorithmen & Datenstrukturen (WS 08/09) Fachhochschule München Prof. Dr. Irber, Prof. Dr. Rauh, Prof. Dr. Ries Fakultät Elektrotechnik und Informationstechnik Musterprüfung Algorithmen & Datenstrukturen (WS 08/09) Arbeitszeit 90 Minuten 10.

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Ü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

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einfü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)

Mehr

DAP2 Praktikum Blatt 1

DAP2 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

Mehr

Übungspaket 32 Einfach verkettete, sortierte Liste

Übungspaket 32 Einfach verkettete, sortierte Liste Übungspaket 32 Einfach verkettete, sortierte Liste Übungsziele: Skript: 1. Aufbau einer einfach verketteten, sortierten Liste 2. Traversieren von Listen 3. Vereinfachung durch ein Dummy-Element Kapitel:

Mehr

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm K 9. Übung K 9. Übung K-1 Überblick Besprechung 7. Aufgabe (jbuffer) Unix, C und Sicherheit K.1 Mögliche Programmsequenz für eine Passwortabfrage in einem Server- Programm: int main (int argc, char *argv[])

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)

Mehr

Übungspaket 17 Der gcc Compiler

Übungspaket 17 Der gcc Compiler Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2 Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 29.10. Foliensatz 2 Modularisierung (T) Eigene Headerdateien und Bibliotheken (P) Arten der Parameterübergabe (P) Arrays und Strukturen

Mehr

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr