Karlsruher Institut für Technologie
|
|
- Heiko Hafner
- vor 8 Jahren
- Abrufe
Transkript
1 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 9 Ausgabe: Besprechung: matthias.braun@kit.edu Aufgabe 1: Aufrufkonventionen Beschreiben Sie die Aufraufkonventionen (Calling Conventions) von 2 der folgenden Prozessorarchitekturen auf einem Betriebssystem Ihrer Wahl: 1. IA PowerPC 3. AMD-64/Intel ARM 5. MIPS 6. Sparc (V8) Suchen Sie hierzu im Internet nach den entsprechenden Dokumenten im Internet (z.b. auf den Herstellerseiten). Geben Sie für jede der von Ihnen gewählten Plattformen an, wie die Argumente beim Aufruf folgender C- Funktion übergeben werden. Wie wird der Rückgabewert zurück gegeben? struct test struct { int x; int y; }; int foobar(int i, char c, double d, int j, struct test struct s) { return 42; } 1
2 Lösung: Aufrufkonventionen (auch Application Binary Interface ABI genannt) werden vom Betriebssystem, Übersetzer und der Programmiesprache festgelegt. Sie beschreiben unter anderem: x86 Wie Paramter und Funktionsresultate übergeben werden. Wird der Stack oder Register benutzt; falls Register welche? Wie werden zusammengesetzte Datentypen behandelt? Register die bei einem Funktionsaufruf ihren Wert behalten. Diese nennt man callee-saved Register weil die aufgerufene Funktion diese sichern und wiederherstellen muss, falls sie die Register nutzen will. Gegenteil: caller-saved Vorschriften für die Anordnung der Felder im Activation Record. Registersatz: 8 General Purpose Register: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP Fließkomma ST(0)-ST(7) callee saved: EBX, ESI, EDI, EBP, ESP Spezialregister: ESP Stackpointer EBP Basepointer Parameterübergabe: C Datentyp Parameter Rückgabe Integer, Zeiger Stack Register EAX Fließkomma Stack Register ST(0) struct, union Auf dem Stack wird ein Zeiger auf einen Puffer übergeben, aus dem die Eingabe gelesen wird Als Parameter wird ein Zeiger auf einen Puffer übergeben in den das Ergebnis kopiert wird a Activation Records: Parameter auf dem Stack: von rechts nach links Rücksprungadresse auf dem Stack Gesicherter Frame Pointer ( Base Pointer ) kommt als erstes. Auf Mac OS/X: Stackpointer 16 bytes aligned Basepointer üblicherweise hinter gesichertem alten Basepointer. Erster Parameter damit bei EBP+8. Beispielfunktion: Parameter: Parameter Übergabe s Stack, (bei EBP + 28) j Stack, (bei EBP + 24) d Stack, (bei EBP + 16) c Stack, (bei EBP + 12) i Stack, (bei EBP + 8) Rückgabe in EAX Literatur: Gute Zusammenfassung für x86: a Kleine structs werden aud Mac OS/X in Registern übergeben 2
3 x86-64, AMD 64, Intel 64 Konventionen nach von AMD (von praktisch allen Systemen bis auf kleine Änderungen übernommen). Registersatz: 16 General Purpose Register: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, R8-R15 Fließkomma ST(0)-ST(7) Register, SSE XMM0-XMM15 callee saved: RBX, RBP, R12-R15, RSP Spezialregister: RSP Stackpointer RBP Basepointer R10 static link (falls nötig) Parameterübergabe: C Datentyp Parameter Rückgabe Integer (windows) RCX, RDX, R8, R9, Stack RAX Integer (linux, mac,...) RDI, RSI, RDX, RCX, R8, R9, Stack RAX double XMM0-XMM4, Stack XMM0-XMM1 struct Activation Records: Auf dem Stack wird ein Zeiger auf einen Puffer übergeben, aus dem die Eingabe gelesen wird Parameter auf dem Stack: von rechts nach links Rücksprungadresse auf dem Stack Gesicherter Frame Pointer ( Base Pointer ) kommt als erstes. Stackpointer 16 bytes aligned Als Parameter wird ein Zeiger auf einen Puffer übergeben in den das Ergebnis kopiert wird a 128 Bytes hinter Stackzeiger sind reserviert (ohne Calls müssen diese also nicht durch subtraktion von RSP reserviert werden). Beispielfunktion (Linux): Parameter: Parameter i c d j s Übergabe RDI RSI XMM0 RDX RCX ( test struct passt komplett in ein 64bit Register) Rückgabe in EAX Literatur: a Kleine structs werden zum Teil in Registern übergeben 3
4 ARM Registersatz: 16 General Purpose Register: R0-R15 callee saved: R4-R8, R10-R11, R13, abhängig von Implementierung auch R9 Spezialregister: R12 reserviert für Linker um symbolische Call Adressen aufzubauen, in Programmteilen ohne diese symbolischen Adressen verwendbar R13 Stackpointer R14 Linkregister (Rücksprungadresse) R15 Programcounter (als General Purpose Register zugreifbar) Parameterübergabe: C Datentyp Parameter Rückgabe int R0-R3, Stack R0-R3 double R0-R3, Stack (soft-math) oder S0-S15, R0, R1 (soft-math) oder S0, D0, Q0 struct Activation Records: D0-D7 Auf dem Stack wird ein Zeiger auf einen Puffer übergeben, aus dem die Eingabe gelesen wird Parameter auf dem Stack: von rechts nach links Aligned auf 4 bytes Beispielfunktion: Als Parameter wird ein Zeiger auf einen Puffer übergeben in den das Ergebnis kopiert wird a Parameter: Parameter i c d j s Übergabe R0 R1 R2+R3 Stack Stack Rückgabe in R0 Weiter Infos: aapcs.pdf a Kleine structs werden zum Teil in Registern übergeben Aufgabe 2: Activation Records Gegeben folgendes Programm: int iterations ; int fib (int x) { int r; iterations ++; if (x == 0) { r = 0; } else if (x == 1) { r = 1; 4
5 } } else { r = fib(x 1) + fib(x 2); } return r; int main(void) { int input; scanf( %d, &input); printf ( Result: %d, needed %d iterations\n, fib(input), iterations ); return 0; } Stellen Sie sich einen nicht optimierenden Compiler vor, der alle Variablen auf dem Stack ablegt. Außerdem verlangt die Aufrufkonvention dass alle Argumente auf dem Stack übergeben werden. Der Prozessor selbst legt beim Betreten einer Funktionen die Rücksprungadresse auf den Stack. Stellen Sie die Struktur des Stacks unmittelbar vor dem Aufruf der Funktion fib dar und nach dem 2. Rekursionsschritt der Funktion fib. Lösung: Rücksprung-Adresse (zum Laufzeitsystem) Variable input 3. Parameter für printf ( iterations ) Parameter für fib (input) 5
6 Vor dem 2. Rekursionsschritt: Rücksprung-Adresse (zum Laufzeitsystem) Variable input 3. Parameter für printf ( iterations ) 1. Parameter für fib (input) Rücksprung-Adresse (zu main) Lokale Variablen von fib (r) 1. Paramter für fib (x 1) Rücksprung-Adresse (zu fib) Aufgabe 3: Array-Adressierung Geben Sie für ein 4-dimensionales Array a[ , , , ] von 32-Bit Ganzzahlen den erzeugten Zwischencode (Bytecode oder Tripelcode) zur Adressberechnung gemäß Hornerschema an. Berechnen Sie zuvor die korrekte virtuelle Anfangsadresse adr(a[0, 0, 0, 0]). Sie dürfen annehmen, dass die l µ Compilezeitkonstanten sind. Lösung: Berechnung von adr(a[0, 0, 0, 0]): ( n ( adr(a[0, 0, 0, 0]) = adr(a[i 1, i 2, i 3, i 4 ]) d i ν ν=1 n µ=ν+1 l µ )) = adr(a[i 1, i 2, i 3, i 4 ]) d (i 1 l 2 l 3 l 4 + i 2 l 3 l 4 + i 3 l 4 + i 4 ) = adr(a[i 1, i 2, i 3, i 4 ]) d (((i 1 l 2 + i 2 ) l 3 + i 3 ) l 4 + i 4 ) = adr(a[ 10, 20, 30, 0]) 4 ((( ) ) ) = adr(a[ 10, 20, 30, 0]) Resultierender Tripelcode: mov r, i1 mul r, l2 add r, i2 mul r, l3 add r, i3 mul r, l4 add r, i4 mul r, d add r, adr(a [0,0,0,0]) 6
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015
Technische Informatik 1 Übung 2 Assembler (Rechenübung) Georgia Giannopoulou (ggeorgia@tik.ee.ethz.ch) 22./23. Oktober 2015 Ziele der Übung Aufgabe 1 Aufbau und Aufruf von Funktionen in Assembler Codeanalyse
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrInhaltverzeichnis 1 Einführung... 1 2 Zugang zu den Unifr Servern... 1. 3 Zugang zu den Druckern... 4 4 Nützliche Links... 6
Inhaltverzeichnis 1 Einführung... 1 2 Zugang zu den Unifr Servern... 1 2.1 Version Mac OSX 10.1-10.4, 10.6-10.7... 1 2.2 Version Mac OSX 10.5 (Leopard)... 2 3 Zugang zu den Druckern... 4 4 Nützliche Links...
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrU23 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
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
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
MehrPraktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife
Praktikum Ingenieurinformatik Termin 2 Verzweigungen (if-else), printf und scanf, while-schleife 1 1. Import/Export von Eclipse-Projekten 2. Verzweigungen (if-else-anweisung) 3. printf und scanf 4. Übungsaufgaben
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrBetriebssystembau. 7. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Betriebssystembau 7. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund michael.engel@tu-dortmund.de http://ess.cs.uni-dortmund.de/~me/ 1 Agenda Coroutinen
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.
MehrMikrocomputertechnik. Adressierungsarten
Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrU23 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
Mehretax.schwyz: Suche nach Steuerfalldateien
etax.schwyz: Suche nach Steuerfalldateien Die Steuerfall-Dateien werden standardmässig im Ordner "Steuerfaelle" gespeichert. Für jeden Fall, den Sie angelegt haben, finden Sie dort eine Datei mit der Endung
MehrVorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)
Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme
MehrÜbungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16
MehrAgentur für Werbung & Internet. Schritt für Schritt: E-Mail-Konfiguration mit Apple Mail
Agentur für Werbung & Internet Schritt für Schritt: E-Mail-Konfiguration mit Apple Mail E-Mail-Konfiguration mit Apple Mail Inhalt E-Mail-Konto erstellen 3 Auswahl des Servertyp: POP oder IMAP 4 Konfiguration
MehrEinführung in die technische Informatik
Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen
MehrStellvertretenden Genehmiger verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1. Grundlegende Informationen 3 2.1 Aktivieren eines Stellvertretenden Genehmigers 4 2.2 Deaktivieren eines Stellvertretenden Genehmigers 11 2 1. Grundlegende Informationen
MehrExcel Funktionen durch eigene Funktionen erweitern.
Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrErstellen einer digitalen Signatur für Adobe-Formulare
Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist
Mehr1. das es keiner Ausdrucke mehr für die Formwertrichter bedarf 2. das die Korrekturen vom Richter selbst an seinem PC durchgeführt werden können.
E.T. Anleitung für Formwertrichter Was ist E.T.? E.T. Ist ein Programm mit dem, in Verbindung mit ZiSpro, Ausstellungen so organisiert werden können, das u.a. die Eingabe der Besprechungen des jeweiligen
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
MehrAssembler 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
MehrNeue Steuererklärung 2013 erstellen
Neue Steuererklärung 2013 erstellen Bitte klicken Sie im Startmenü auf die Schaltfläche Steuererklärung 2013 NEU Anschliessend wird der folgende Dialog angezeigt. Wenn Sie die letztjährige Steuererklärung
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
MehrDHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)
DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrInstallation OMNIKEY 3121 USB
Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
MehrClubWebMan Veranstaltungskalender
ClubWebMan Veranstaltungskalender Terminverwaltung geeignet für TYPO3 Version 4. bis 4.7 Die Arbeitsschritte A. Kategorien anlegen B. Veranstaltungsort und Veranstalter anlegen B. Veranstaltungsort anlegen
MehrVerwendung des IDS Backup Systems unter Windows 2000
Verwendung des IDS Backup Systems unter Windows 2000 1. Download der Software Netbackup2000 Unter der Adresse http://www.ids-mannheim.de/zdv/lokal/dienste/backup finden Sie die Software Netbackup2000.
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
MehrLeitfaden Internet-Redaktion kursana.de
Leitfaden Internet-Redaktion kursana.de 1.»Log In«: Der Zugang zum Redaktionssystem 2. Anlegen einer neuen Veranstaltung 3. Anlegen eines neuen Stellenangebots 4.»Log Out«: Aus dem Redaktionssystem ausloggen
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrBuffer Overflow 1c) Angriffsstring: TTTTTTTTTTTTTTTT (16x) Beachte: Padding GCC-Compiler Zusatz: gcc O2 verhindert hier den Angriff (Code Optimierung)
Buffer Overflow 1c) 1 char passok='f'; 2 char password[8]; 3 printf( Passwort: ); 4 gets(password); 5 if(!strcmp(password, daspassw )){passok = 'T';} 6 if(passok=='t'){printf( %s, Willkommen! );} 7 else
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrÜbungsblatt 3: Algorithmen in Java & Grammatiken
Humboldt-Universität zu Berlin Grundlagen der Programmierung (Vorlesung von Prof. Bothe) Institut für Informatik WS 15/16 Übungsblatt 3: Algorithmen in Java & Grammatiken Abgabe: bis 9:00 Uhr am 30.11.2015
MehrMaterialupload. Verwalten von Unterrichtsmaterialien. über das STiNE-Webportal. Universität Hamburg Tor zur Welt der Wissenschaft
SEA IT Applications Materialupload Verwalten von Unterrichtsmaterialien über das STiNE-Webportal Dokumentenversion: Oktober 2013 SEA IT Applications - 2 - Inhalt 1 Einleitung... - 3-2 Materialien einstellen...
MehrKontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrWissenswertes über binäre Felder
Wissenswertes über binäre Felder Inhaltsverzeichnis Genauigkeit des PC-Taschenrechners 2 Genauigkeit des PC-Taschenrechners ab Windows 7 2 Ausgangspunkt 3 Binäres Feld ohne Vorzeichen-Definition 3 Binäres
MehrHorstbox VoIP. Stefan Dahler. 1. HorstBox Konfiguration. 1.1 Einleitung
1. HorstBox Konfiguration 1.1 Einleitung Im Folgenden wird die Voice over IP Konfiguration in der HorstBox beschrieben. Sie werden einen Internet Zugang über DSL zu Ihrem Provider konfigurieren und für
MehrAutomatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)
HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
MehrFelder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
MehrI.1 Die Parrot Assemblersprache
I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen
MehrIn diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.
Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem
MehrComputerarithmetik ( )
Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur
MehrProseminar C-Programmierung. Strukturen. Von Marcel Lebek
Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrProgrammieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler
Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrIngenieurinformatik 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Übungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de marco.duerr [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2018 Übungsblatt 10 (Block C 2) (16 Punkte)
MehrWichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.
Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur
Mehrihren_benutzernamen@beuth-hochschule.de oder ein Account einer teilnehmenden Einrichtung also ihren_benutzernamen@ihrer_einrichtung.
für Android 0. Allgemeines 1. Importieren der Zertifikate der Deutschen Telekom Root CA 2 2. Konfigurieren der Verbindung 3. Anmeldung an der Beuth Hochschule 0. Allgemeines An der Beuth-Hochschule für
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrSUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER
SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER INHALTSVERZEICHNIS Inhaltsverzeichnis... 2 Symbolverzeichnis... 3 Was ist GPP?... 4 Parameternamen... 4 Parameterformat und -größe... 4 Unterstützte
Mehrteamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
MehrDer neue persönliche Bereich/die CommSy-Leiste
Der neue persönliche Bereich/die CommSy-Leiste Mit der neue CommSy-Version wurde auch der persönliche Bereich umstrukturiert. Sie finden all Ihre persönlichen Dokumente jetzt in Ihrer CommSy-Leiste. Ein
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrEinfü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).
MehrSichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der
Sichere E-Mail der Nutzung von Zertifikaten / Schlüsseln zur sicheren Kommunikation per E-Mail mit der Sparkasse Germersheim-Kandel Inhalt: 1. Voraussetzungen... 2 2. Registrierungsprozess... 2 3. Empfang
MehrTutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe
Tutorium Informatik 1 Aufgabe 2: Formatierte Ein- und Ausgabe Fachbereich: Elektrotechnik Inhaltsverzeichnis 1 Aufgabe 1 2 Benötigte Funktionen und Schlüsselwörter 2 Robert Halas / FH Regensburg - 2003
MehrPVL 3 - Roulette. (5 Punkte) Abgabe bis 20.12.2015
PVL 3 - Roulette (5 Punkte) Abgabe bis 20.12.2015 Beim Roulette wird in jeder Runde eine von 37 Zahlen (0-36) ausgespielt. Dabei können Geldbeträge direkt auf eine Zahl zwischen 1 und 36 gesetzt werden
MehrLehrstuhl Informatik VI Grundzüge der Informatik * WS 2008/2009 Prof. Dr. Joachim Biskup
Universität Dortmund Lehrstuhl Informatik VI Grundzüge der Informatik * WS 28/29 Prof. Dr. Joachim Biskup Leitung der Übungen: Arno Pasternak Lösungs-Ideen Übungsblatt 6 A: Grammatiken, Syntaxdiagramme
MehrDas vorliegende Dokument beinhaltet vertrauliche Informationen und darf nicht an Dritte weitergereicht werden.
Konfigurationsanleitung: E-Mail Konfiguration mit Apple Mail Vertraulichkeitsklausel Das vorliegende Dokument beinhaltet vertrauliche Informationen und darf nicht an Dritte weitergereicht werden. SwissWeb
MehrDatentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrStand: 28.11.2012. Adressnummern ändern Modulbeschreibung
Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht
MehrPädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung
Variante 1 Swisscom-Router direkt ans Netzwerk angeschlossen fixe IP-Adressen (kein DHCP) 1. Aufrufen des «Netz- und Freigabecenters». 2. Doppelklick auf «LAN-Verbindung» 3. Klick auf «Eigenschaften» 4.
MehrWürfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
MehrAnleitung. Einrichten Ihres E-Mail Postfaches. Mail (Mac OS X)
Anleitung Einrichten Ihres E-Mail Postfaches in Mail (Mac OS X) POP3 oder IMAP? Zunächst müssen Sie sich für eines der zwei gängigen Verfahren zum E-Mail Abruf entscheiden. Hierfür haben wir Ihnen die
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
MehrGDPdU Export. Modulbeschreibung. GDPdU Export. Software-Lösungen. Stand: 21.02.2012. Seite 1
Seite 1 Inhalt... 3 Allgemeines... 3 Vorteile... 3 Handhabung... 3 Seite 2 Allgemeines Mit der so genannten GDPdU-Schnittstelle (GDPdU steht für Grundsätze zum Datenzugriff und zur Prüfbarkeit digitaler
MehrDOS-Sympas Scope Dateien in Excel einlesen
Einleitung Daten, die mit dem DOS-Sympas Oszilloskop von intelligenten Modulen aufgezeichnet wurden, können einerseits als Bild im Bitmap-Format: oder andererseits als Textdatei gespeichert werden: Diese
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
MehrEine Anwendung mit InstantRails 1.7
Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen
MehrRechnern netze und Organisatio on
Rechnernetze und Organisation Subroutines 1 Übersicht Motivation Bibliotheken Call und Return Stack Parameterübergabe Lokale Variablen Shared Libraries Interrupts und Exceptions 2 Reusability von Code
MehrInstallationsanleitungen
Installationsanleitungen INPA SGBD-Entwicklungsumgebung (EDIABAS) INPA für Entwickler Bevor Sie EDIABAS / INPA installieren können, müssen Sie sich für den Ordner sgref auf smuc0900 freischalten lassen.
MehrÜbungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen
Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:
Mehr