Informatik I
Übung 2 : Programmieren in Eclipse
4. März 2015
Daniel Hentzen
dhentzen@student.ethz.ch

Downloads :
Heute
- Nachbesprechung Übung 1
- Theorie
- Vorbesprechung Übung 2
Übung 1 : Linux, Terminal und Kompilieren
Hello World ...
argc, argv
Fehler

im Debugger nur Debugger-Befehle benutzen!

auf Gross -und Kleinschreibung achten !
- falls nicht im korrekten Verzeichnis : ganzen Pfad angeben
- Dateiendung nicht vergessen
- falls [info1@VirtualFedora ~] $ verschwindet : ctrl -c
- Kompilieren :
- g++ -c main.cpp
- g++ -o Programmname main.o
Prüfungsaufgabe
Sommer 2013
"Die Datei test.txt befindet sich im Ordner Info1/2013/Test/ .
Verschieben Sie diese Datei in das Verzeichnis 2013 und benennen Sie sie um in test2.txt "
Lösung :
mv Info1/2013/Test/test.txt Info1/2013/test2.txt
Theorie
- Einführung in Eclipse
- Elemente eines C++ Programmes
- Input / Output (cin / cout)
- Datentypen
- Variablen (Deklaration und Zuweisung)
- Arithmetische Operatoren
- Typenumwandlung
Eclipse
How to get started...
-
"File > New > C++ Project"
-
Projekt Namen eingeben (z.Bsp : Serie2)
-
Linux GCC auswählen
- Finish
- Rechtsklick auf [Projektname] in der linken Spalte
- "New > File"
- Filename.cpp eingeben (z.Bsp : aufgabe1.cpp)
Programm ausführen
- Speichern
- Kompilieren ► "Hammer" (Build Debug)
- Ausführen ► "Grüner Pfeil" (Play)
eigene Argumente :
-
" Run Configurations... > Arguments "
-
Aufruf im Programm mit argv[ ]
Elemente eines C++ Programmes

- Präprozessor #include<iostream>
- using namespace directive
- main () - Funktion
- Eingabe und Ausgabe mit cin und cout Objekten
- Deklaration und Verwendung von Variablen
main() - Funktion
- muss in jedem C++ Programm vorliegen
- hier werden Anweisungen erteilt
main() - Funktion
Funktionskopf :
int main() // Teil vor main gibt Rückgabetyp an (hier: integer)
{
statements; // Anweisungen mit Semikolon enden!
return 0; // Beendet die Funktion und gibt 0 zurück.
}
main() oder main(void) : Funktion ohne Argumente
mean(int a, int b) : Funktion mit Argumenten
Output (cout)
- cout : vordefiniertes Objekt
- gibt einen Zeichenstrom aus (ostream)
- kann viele verschiedene Datentypen ausgeben
-
<<
-
übergibt Daten an cout
-
Konkatenation
cout << "This is Info1"; // zur Ausgabe der Zeichen in Anführungszeichen
cout << "Konka" << "tenation"; // Konkatenation
int var = 3;
cout << "Die Variable beträgt : " << "var";
cout << "Die Variable beträgt : " << var; // Ausgabe von Variablen
-
Achtung :
cout >> "This is Info I"; // invalid
"This is Info I" >> cout; // invalid
Formatieren
cout << "line1" << endl;
cout << "line2";
cout << "line1\n";
cout << "line2";
cout << "line1" << endl << "line 2";
cout << "line1\nline 2;
cout << "line1 endl line2"; // falsch
cout << "line1" << \n << "line2"; // falsch
Input (cin)
- Dateneingabe an das Programm
- cin
- liest Zeichenstrom (istream)
- weist Variablen zu
- aufpassen auf Typen ! (siehe Typenumwandlung)
- >>
- übergibt Daten an cin
- Konkatenation
int i;
cin >> i;
int a;
int b;
cin >> a >> b; // Konkatenation
implizite Typenumwandlung :
int a;
cin >> a;
// falls Benutzer einen String eingibt, a=0
// falls Benutzer eine Kommazahl eingibt, wird die Zahl abgerundet
int a,b;
cin >> a; // Programm wartet auf Input
// Input : 65 73
cin >> b; // b = 73;
Beispiel

Variablen

Deklaration :
<type> <name>;
int fleas;
// macht den Namen "fleas" für ein C++ Programm kenntlich
// deklariert den Namen "fleas" vom Typ Integer und ordnet Speicher zu
- Variablendeklaration an beliebigen Stellen im Programm
- auf Gültigkeitsbereich achten (scope) !
Einige Datentypen :
Erlaubte Variablennamen
- alphabetische Zeichen, Ziffern und underscore (_)
- erstes Zeichen darf keine Ziffer sein !
- Name sollte nicht mit _ beginnen...
- keine C++ Wörter ! (main, int, for,...)
- Case-sensitive ! (Gross-/Kleinschreibung)
int firstname; // ok
int Firstname; // ok, unterscheidet sich von "firstname"
int info2014; // ok
int 2014info; // falsch, erstes Zeichen ist eine Zahl
int what_a_great_name; // ok
int var!; // falsch, enthält Sonderzeichen
int main; // falsch, C++ keyword
int main_test; // ok
int _thisvar; // ok, sollte aber nicht benutzt werden
Zuweisung im Code selbst
int a; // Deklaration
a = 3;
in Serie :
int a,b,c; // Deklaration in Serie
a = b = c = 5;
Arithmetische Operatoren
+ - * / %
% : modulo : gibt den Rest einer Division an
Bsp : 7 % 3 = 1
Klammern > Operatoren
/, *, mod > +, -
sonst : links nach rechts
5 * 4 + 1; //21
5 * (4 + 1); //25
2 * 3 + 3 * 4 / 2; //12
9 % 4 + 1; //2
9 % (4 + 1); //4
5 * 3 % 4 * 2; //6
5 * (3 % 4) * 2; // 30
Typenumwandlung
float a = 3.14
int b = a;
- Die Variable b kann keine reelle Zahl abspeichern.
- Der Wert der b zugewiesen wird, wird umgewandelt.
- Nachkommastellen werden abgeschnitten.
- b = 3
► Wenn ein numerischer Wert einer Variable eines anderen Typs zugewiesen wird, passt sich der Typ des Werts an den Typ der empfangenden Variable an.
Umwandlung in arithmetischen Operationen
5.453f * 3 * 9.86 = float/int/double ??
float * int = float
float * double = double
5.453f (float) * 3 (int) * 9.86 (double) =
16.359 (float) * 9.86 (double) =
161.29974 (double)
Achtung : Integer Division
5 / 2 == 2 // 0.5 wird abgeschnitten
1 / 2 == 0 // hier auch
Mehr Beispiele
13.0f * 4 = ?
7.0 * (3 / 7) = ?
20 / (10 / 6) = ?
20 / (10.0 / 6) = ?
Übung 2 : Programmieren in Eclipse
Aufgabe 1 : Eclipse Starten
Aufgabe 2 : Neues Projekt erstellen
Aufgabe 3 : Temperaturumwandlung
- Achtung auf Integer Division !
- welcher Datentyp wird benötigt ?
- integer ?
- float ?
- double ?
Aufgabe 4 : Erweiterte Temperaturumwandlung
-
Programmargumente sind strings (Zeichenketten)
- falls damit gerechnet werden soll, müssen sie in eine Zahl umgewandelt werden !
► in <stdlib.h> definiert ► im Header "includen"
Übung 2 : Programmieren in Eclipse
By Daniel Hentzen
Übung 2 : Programmieren in Eclipse
- 1,186