Informatik I (D-MAVT)



Ähnliche Dokumente
Informatik I (D-ITET)

Informatik I (D-ITET)

Einführung in die Programmierung

Grundlagen. Kapitel 1

Objektorientierte Programmierung - Was ist Programmieren?

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

Klausur in Programmieren

Einführung in die Programmierung (EPR)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

DLLs (dynamic loaded libraries) mit MingW erstellen

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

Klausur in Programmieren

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Einführung in die Programmiersprache C

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Installation und Inbetriebnahme von Microsoft Visual C Express

Übungen zu C++ Kapitel 1

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Angewandte Mathematik und Programmierung

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Objektorientiertes Programmieren für Ingenieure

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Grundlagen der Informatik - 6. Praktikum

Kurze Einführung in die Programmiersprache C++ und in Root

2. Semester, 2. Prüfung, Lösung

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

2.4 Das erste C++-Programm *

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Einführung in die C-Programmierung

Klausur in Programmieren

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Kapitel 1: Einführung

Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals

1. Übung zu "Numerik partieller Differentialgleichungen"

Multimedia im Netz Wintersemester 2011/12

Informatik I. Übung 01. Olga Diamanti

Einführung in die Programmierung

Projektverwaltung Problem Lösung: Modulare Programmierung

Nuetzlicher Kleinkram

Informatik I Tutorial

FB Informatik. Fehler. Testplan

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

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

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

Programmieren in Haskell Einführung

Algorithmen zur Datenanalyse in C++

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

Java Kurs für Anfänger Einheit 5 Methoden

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Wirtschaftsinformatik I

Klausur in Programmieren

Programmierung für Mathematik (HS13)

Programmierkurs Java

Modellierung und Programmierung 1

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

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

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

Vorkurs Informatik WiSe 15/16

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

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

1 Vom Problem zum Programm

Grundlagen von C. Ausarbeitung von Jonas Gresens

Praktikum IKT 3. Semester

Computeranwendung und Programmierung (CuP)

Programmentwicklung mit C++ (unter Unix/Linux)

.NET Code schützen. Projekt.NET. Version 1.0

Algorithmen mit Python

Praktikum Betriebssysteme 1. Aufgabe (1)

Deklarationen in C. Prof. Dr. Margarita Esponda

Programmieren mit dem Java-Hamster-Modell. VP Orientierung Informatik WS 2008/09 H.Hagenauer

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

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

Zählen von Objekten einer bestimmten Klasse

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

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

Einführung in die Informatik Tools

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

C A R L V O N O S S I E T Z K Y. Boost C++ Libraries. Johannes Diemke. Department of Computer Science Learning and Cognitive Systems

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

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

Einführung in die Programmierung

Scala kann auch faul sein

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

Objektbasierte Entwicklung

I.1 Die Parrot Assemblersprache

Eine Einführung in C-Funktionen

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

Softwarepraktikum: Einführung in gcc / g++

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

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

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Transkript:

Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich

kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen

This semester s menu... Imperative Programmierung (anhand von C++) Grundlagen: Variablen, Zuweisungen, Anweisungen Hilfreiches: Bedingungen, Schleifen, Prozeduren Konzepte: Pointer, Rekursion Datenstrukturen: Listen, Bäume Algorithmen: Suchen, Sortieren Objektorientierung

Ablauf Administratives Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 1

Administratives Abgabe der Übungen (gern zu zweit) So viel wie moeglich (immer: Programme!) per mail... Wenn nicht moeglich/erstrebenswert (z.b. Uebung 2): Ausdrucke/Handschriftlich Testat = 7.5 Punkte 1 Punkt = Eine sinnvolle Lösung Fragen zum Stoff/Vorlesung/Übungen Folien online: http://people.inf.ethz.ch/mayersi/ -> Teaching Page Fragen: Am besten per email an mich...

Abgabe der Übungen (gern zu zweit) So viel wie moeglich (immer: Programme!) per mail... Wenn nicht moeglich/erstrebenswert (z.b. Uebung 2): Ausdrucke/Handschriftlich Abschreiben verboten. 0 Punkte

Administratives Prüfung 2h schriftlich in Session nach FS11 Erfahrungsgemäss nicht theorielastig Programmierkenntnisse!

Ablauf Administratives Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 1

Besprechung der Vorlesung Scripts/Interpretierte Sprachen Für kleine Projekte/zur schnellen Erstellung von Programmen Langsam, eher fehleranfällig (z.b. kein Type-Checking) Kompilierte Sprachen Compiler übersetzt Sourcecode in Objektdatei Linker verbindet Objektdatei und Bibliotheken zu Programm

Besprechung der Vorlesung Programmbau Basics 1. Compiler: Sourcecode Assembly Analysiert Quellcode (auf Fehler) + generiert Code Optimiert das Programm (bzw. versucht dies...) 2. Assembler: Assembly Machine Code 3. Linker: Machine Code + Bibliotheken 4. Loader: Laden in Hauptspeicher + DLLs Compiletime errors: Waehrend Kompiliervorgang... Runtime errors: Zur Laufzeit des Programms...

Besprechung der Vorlesung Beispiel: Übersetzen eines [sehr einfachen] C-Programmstücks in Maschinencode (von Neumann Architektur und Phantasie-Maschinencode Y86) C++ Assembly Code Maschinencode ( Y86 ) x in Register %eax y in Register %edx addl %edx y = x + y addl %eax,%edx 0110 0000 0000 0010 %edx = %edx + %eax %eax

Besprechung der Vorlesung Das Hello World -Programm Verwenden der Ein/Ausgabebibliothek iostream #include <iostream> using namespace std; int main() { // Bin ein Kommentar... cout << Hello, World! << endl; return 0; } Namensraum std für cout/cin/endl Alternativ: std::cout << Hello, World! << std::endl; Definition der Funktion main vom Typ Integer Ist ein Kommentar... Ausgabe des Texts Hello, World! auf der Konsole main hat Rückgabewert 0

Besprechung der Vorlesung Streams C-Konzept zur Ein/Ausgabe: lesen aus bzw. schreiben in Streams cout ist vom Typ ostream und adressiert Kommandozeile cout << text << variable << mehrtext << endl; cin ist vom Typ istream und adressiert Tastatureingabe cin >> x >> y;

Besprechung der Vorlesung main(int argc, char *argv[])??? argc: *argv[]: Anzahl Argumente, die dem Programm beim Start übergeben werden Liste (genauer: Array ) dieser Argumente Erster Eintrag: Programmname + Demo

Besprechung der Vorlesung Syntax Einhaltung der Regeln ist sinnvoll zur Erhöhung der Lesbarkeit! Strichpunkte notwendig! Gewinner des Obfuscated C Code contest 2004 [www.ioccc.org] #include <stdio.h>#include <stdlib.h>#include <math.h> #define _ ;double #define void x,x #define case(break,default) break[o]:default[o]: #define switch(bool) ;for(;x<bool; #define do(if,else) iniine(else)>int##if? #define true (--void++) #define false (++void--) char*o=" <60>!?\\\n"_ doubie[010]_ int0,int1 _ Iong=0 _ iniine(int eise){int O1O=!O _ l=!o;for(;o1o<010;++o1o)l+=(o1o[doubie]*pow(eise,o1o));return l;}int main(int booi,char*eise[]){int I=1,x=-*O;if(eIse){for(;I<010+1;I++)I[doubIe-1] =booi>i?atof(i[eise]):!o switch(*o)x++)abs(iniine(x))>iong&&(iong=abs(iniine(x )));int1=iong;main(-*o>>1,0);}else{if(booi<*o>>1){int0=int1;int1=int0-2*iong/0 [O]switch(5[O]))putchar(x-*O?(int0>=inIine(x)&&do(1,x)do(0,true)do(0,false) case(2,1)do(1,true)do(0,false)6[o]case(-3,6)do(0,false)6[o]-3[o]:do(1,false) case(5,4)x?booi?0:6[o]:7[o])+*o:8[o]),x++;main(++booi,0);}}}

Ablauf Administratives Besprechung/Vertiefung der Vorlesung Vorbesprechung Übung 1

Vorbesprechung / Übung 1 Aufgabe 1: Hello, World! Aufgabe 2: Abändern von Hello, World!

Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich