Praktikum Ingenieurinformatik -...

29
1 Praktikum Ingenieurinformatik Termin 2 „Mein erstes C-Programm“

Transcript of Praktikum Ingenieurinformatik -...

Page 1: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

1

Praktikum Ingenieurinformatik

Termin 2

„Mein erstes C-Programm“

Page 2: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

2

1. Einleitung2. Erstes C-Programm3. Fehler ins Programm einbauen4. Zweites und drittes C-Programm5. Installation der Visual C++ 2010 Express Ed.

Page 3: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

3

1.1. Laufwerke im EDV-Labor

C: Lokales Laufwerk• Befindet sich auf der Festplatte des Rechners, an dem man arbeitet (lokaler

Rechner). Enthält das Betriebssystem und Anwendungsprogramme, hier istu. a. die Programmierumgebung „Microsoft Visual Studio“ installiert.

• Auf diesem Laufwerk keine Daten speichern – Daten nur lokal (d. h. an diesemRechner) verfügbar, andere Benutzer können diese Dateien löschen/ändern.

U: Userverzeichnis• U-Verzeichnis ist ein Netzlaufwerk, es liegt auf einem Server und nicht auf

dem lokalen Rechner; von jedem Rechner in der FK03 ist ein Zugriff auf dasU-Laufwerk möglich

• Für jeden Studenten wurde ein eigenes U-Laufwerk eingerichtet• Eigene Dateien im Userverzeichnis speichern• Daten werden regelmäßig gesichert

X: Transferlaufwerk• Dient zum Austausch von Dateien zwischen

Dozent und Student oder zwischen Studenten• Daten werden nicht regelmäßig gesichert

Page 4: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

4

1.2. „Visual C++ 2010 Express Edition“ öffnen

Visual C++ 2010 Express Edition:

Diese Programmierumgebung ist ein Hilfsmittel, um Quelltexte (C und C++ Programme) einzugeben, zu testen und in Maschinensprache zu übersetzen.

Das „fertige Programm“ kann aus der Programmierumgebung heraus gestartet werden (oder natürlich auch über den Windows Explorer).

Programmierumgebung öffnen: B

A1

Microsoft Visual C++ 2010 Express EditionMicrosoft Visual C++ 2010 Expr.

Microsoft Visual C++ 2010

A2

A3

Page 5: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

5

1. Einleitung2. Erstes C-Programm3. Fehler ins Programm einbauen4. Zweites und drittes C-Programm5. Installation der Visual C++ 2010 Express Ed.

Page 6: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

6

2. Erstes C-Programm

Ziel: Um die Programmierumgebung kennenzulernen, wird das erste Programm aus der Vorlesung "addition.c" eingegeben, übersetzt und gestartet. Dazu müssen folgende Schritte durchgeführt werden:

1. Neues Projekt anlegen

2. Projektnamen und Projektverzeichnis wählen

3. Projektmappen-Explorer öffnen

4. Quelldatei zum Projekt hinzufügen

5. Eigenschaften der Quelldatei festlegen

6. Quelltext (C-Programm) eingeben

7. Quelltext in Maschinensprache übersetzen

8. Fehler im Programm beseitigen

9. Programm ausführen

10. Fehlermeldungen beim Programmstart

11. Bildschirmausgabe betrachten

12. Konsolenfenster nach Programmende nicht schließen

13. Programm direkt ausführen

14. Projekt schließen

Page 7: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

7

2.1. Neues Projekt erzeugen

Im Hauptmenü der Programmierumgebung „Visual Studio“ den Menüpunkt „Datei Neu Projekt…“ wählen:

Ein neues Projekt wird angelegt. Für jedes „Programm“, das mit Visual Studio erstellt und ausgeführt wird, muss ein Projekt an-gelegt werden. Im Hintergrund wird dabei ein Verzeichnis (Projektordner) erzeugt, das eine Reihe von Dateien enthält, die zusammen das Projekt definieren. Einige dieser Dateien kann der Entwickler direkt über die Programmierumgebung verändern (z. B. C-Programme), andere werden von der Programmierumgebung automatisch erzeugt, z. B. beim Übersetzen.

Neu

Wenn ein Projekt geöffnet ist, wird hier der Projektname angezeigt.

Projekt21

Page 8: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

8

2.2. Projektname und -verzeichnis eingeben

Vorlage : „Allgemein“

„Leeres Projekt“ wählen

Projektname: „Addition“ (oder ein beliebiger anderer Name)

Falls die Markierung gesetzt ist, werden automatisch zusätzliche Unterverzeichnisse erstellt – nicht schlimm aber möglicherweise verwirrend… ;-)

Speicherort: „u:\info2“ eingeben

1

2

4

5

3

6

Page 9: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

9

2.3. Projektmappen-Explorer öffnen

Der Projektname wird nun in der Titelzeile angezeigt

Der „Projektmappen-Explorer“ stellt die Projekt-struktur grafisch dar. Eine Projektmappe kann ein oder mehrere Projekte enthalten.

Falls der „Projektmappen-Explorer“ nicht sichtbar ist, kann er über den Menüpunkt „Ansicht Projekt-mappen-Explorer“ geöffnet werden.

Addition

Projektmappen-Explorer

Page 10: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

10

2.4. Quelldatei zum Projekt hinzufügen

Mit rechter Maustaste auf „Quelldateien“ klicken, dann: „Hinzufügen Neues Element…“

Neues ElementHinzufügen12

3

Page 11: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

11

2.5. Eigenschaften der Quelldatei festlegen

Vorlagen: „C++ Datei“

Name: „addition.c“ eingeben,ganz wichtig ist die Endung des Dateinamens: „.c“

Speicherort: „u:\info2\Addition“ eingeben – nicht „Durch-suchen“ wählen, da das U-Laufwerk nicht gefunden wird.

C++-Datei (.cpp)

3

2

1

4

Page 12: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

12

2.6. Quelltext (C-Programm) eingeben

* bedeutet, dass die Datei noch nicht gespeichert wurde

#include <stdio.h>

int main(void)

{

int z1, z2, sum;

z1 = 3;

z2 = 4;

/* Summe berechnen */

sum = z1 + z2;

printf("z1=%d z2=%d\n",

z1, z2);

printf("Summe=%d\n", sum);

return 0;

}

Quelldateien

Page 13: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

13

2.7. Quelltext in Maschinensprache übersetzen

Um das C-Programm zu starten, muss es zunächst in Maschinensprache übersetzt werden, d. h. in die Sprache, die der Prozessor versteht. Die Übersetzung erfolgt mit Hilfe eines Compilers (engl. Übersetzer). Das C-Programm addition.c ist eine ASCII-Datei, das Maschinenprogramm addition.exe eine sogenannte Binärdatei. Diese Binärdatei wird beim Übersetzen des C-Programms erzeugt. Zum Übersetzen am einfachsten den Menüpunkt „Debuggen Starten ohne Debugging“ wählen.

Startet das Programm.

Falls das Programm zuvor geändert worden ist, wird vor dem Start der C-Compiler aufgerufen und das Pro-gramm übersetzt. Das Programm wird dann nur gestartet, falls es beim Übersetzen keine Fehler gegeben hat.

Page 14: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

14

2.8. Fehler im Programm beseitigen

Treten beim Übersetzen des C-Programms Fehler auf, dann werden diese vom Compiler angezeigt. Nach der Korrektur muss das C-Programm erneut übersetzt werden. Nur wenn keine Fehler mehr gefunden werden, wird ein (neues) ausführ-bares Programm erzeugt, das danach gestartet werden kann.

Hier fehlt ein Semikolon!

Nach einem Doppelklick mit der linken Maustaste auf die Fehlermeldung wird der (vom Compiler vermutete) Ort des Fehlers im Quelltext gezeigt.

Page 15: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

15

2.9. Programm ausführen

Ist das Programm übersetzt worden, kann es gestartet werden - Menü: „Debuggen Starten ohne Debugging“ oder Tastenkombination „Strg + F5“. Das Programm kann nur gestartet werden, nachdem es (ohne Fehlermeldung) übersetzt wurde.

Das aktuelle Programm ist erfolgreich übersetzt worden und kann gestartet werden.

Page 16: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

16

2.10. Fehlermeldungen beim Programmstart

Erscheint beim Starten eines Programms ein Fenster mit einer Fehlermeldung „MSVCR100.dll konnte nicht gefunden werden“, dann muss die Projektkonfigu-ration geändert werden. Der Fehler tritt bei Netzlaufwerken auf, wenn in den Projekteinstellungen „Inkrementelles Verknüpfen aktivieren“ auf „Ja“ (Default) gesetzt ist. Einfach die Einstellung auf „Nein“ setzen.

1

Die Eigenschaften eines Projekts werden über den Menüpunkt „Projekt -> Eigenschaften“ geändert oder über das Kontextmenu des Projektverzeichnisses(rechte Maustaste auf das Projekt im Projektmappen-Explorer).

2

3

Page 17: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

17

2.11. Bildschirmausgabe betrachten

Ein Kommandofenster (Konsole, DOS-Box) zeigt die Bildschirmausgabe desProgramms an, also die Ausgaben, die durch die printf-Anweisungen des Programms erzeugt werden.

Zeilenumbruch wegen \n in der ersten printf-Anweisung

Nach beliebigem Tastendruck wird die Konsole geschlossen und das Fenster verschwindet.

Page 18: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

18

2.12. Konsolenfenster nach Programmende nicht schließen

Damit das Konsolen-Fenster nach dem Programmende offen bleibt, muss das Projekt entsprechend konfiguriert werden:

1: Kontextmenu Projekt Addition öffnen2: Eigenschaften wählen3: Linker -> System wählen4: Subsystem 5: Konsole /SUBSYSTEM:CONSOLE wählen

SubSystem

Page 19: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

19

2.13. Programm direkt ausführen

Das übersetzte Programm kann auch ohne die Programmierumgebung ausgeführt werden, entweder durch einen Doppelklick auf die Datei addition.exe oder durch die Eingabe von addition.exe in einer DOS-Box. Die Datei addition.exe wird meist innerhalb des Projektverzeichnisses auf der Festplatte abgelegt.

1.) Suchen Sie die Datei addition.exe mit dem Windows-Explorer .

2.) Starten Sie dann dasProgramm mit einem Doppelklick.

3.) Öffnen Sie eine DOS-Box und wechseln sie in das Verzeichnis, das die Datei addition.exe enthält. Führen Sie das Programm in der DOS-Box aus.

Page 20: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

20

2.14. Projekt schließen

Bevor ein neues Projekt erzeugt oder ein bestehendes geöffnet werden kann, muss das aktuelle Projekt geschlossen werden. Dabei verschwinden der Editor mit demC-Quelltext und der Projektname in der Titelzeile des Fensters.

Projektname in der Titelzeile des Fensters

Menüpunkt zum Schließen des aktuellen Projekts

Page 21: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

21

1. Einleitung2. Erstes C-Programm3. Fehler ins Programm einbauen4. Zweites und drittes C-Programm5. Installation der Visual C++ 2010 Express Ed.

Page 22: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

22

3.1. Aufgabe: Fehler ins Programm einbauen

• z3 oder Z1 statt z1 schreiben

• ; weglassen

• Kommentar /* ... */ nicht oder falsch abschließen

• " bei printf weglassen oder "" statt " schreiben

• Klammern weglassen oder hinzufügen

• %d durch %f ersetzen – Wie ändert sich die Ausgabe?

• studio.h statt stdio.h schreiben

• printf durch print ersetzen, Printf anstelle von printf schreiben

• Subtraktion, Multiplikation und Division ausprobieren

Nach jedem Fehler das Programm speichern und übersetzen.

Versuchen Sie die Fehlermeldungen zu verstehen!

Zeigt der Compiler den tatsächlichen Fehler an?

Page 23: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

23

1. Einleitung2. Erstes C-Programm3. Fehler ins Programm einbauen4. Zweites und drittes C-Programm5. Installation der Visual C++ 2010 Express Ed.

Page 24: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

24

4.1. Zweites C-Programm

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)

{

int z1, z2, sum;

printf("Erste Zahl eingeben:\n");

scanf("%d", &z1);

printf("Zweite Zahl eingeben:\n");

scanf("%d", &z2);

/* berechne die Summe */

sum = z1 + z2;

printf("Z1=%d Z2=%d\n", z1, z2);

printf("Summe=%d", sum);

return 0;

}

Optional: Mit dieser Zeile können die Warnungen des

Compilers bezgl. der beiden scanf-Aufrufe

beseitigt werden.

Page 25: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

25

Übungsaufgaben:

1. Ändern Sie das erste Programm so ab, dass zwei Zahlen eingelesen und die beiden Zahlen zur Kontrolle wieder ausgegeben werden. Danach soll die Summe der beiden Zahlen angezeigt werden.

2. Testen Sie Ihr Programm für kleine und für große Zahlen.

3. Verwenden Sie anstelle von %d das Formatelements %f. Wie äußert sichdieser Fehler bei der Ausführung des Programms?

4. Ändern Sie Ihr Programm so ab,dass auch das Produkt und derQuotient ausgegeben werden.Verwenden Sie auch denModulo-Operator % in IhremProgramm. Wozu dient dieserOperator? Geben Sie dasMinimum und das Maximum derbeiden Zahlen aus. Die Ausgabesoll wie folgt auf dem Bildschirmerscheinen:

Erste Zahl eingeben:

19

Zweite Zahl eingeben:

4

Z1=19 Z2=4

Z1+Z2= 23

Z1*Z2= 76

Z1/Z2= 4

Z1%Z2= 3

Maximum: 19 Minimum: 4

4.2. Zweites C-Programm

Page 26: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

264. Zweites und drittes C-Programm

4.3. Drittes C-Programm

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)

{

float z1, z2, sum;

printf("Erste Zahl eingeben:\n");

scanf("%f", &z1);

printf("Zweite Zahl eingeben:\n");

scanf("%f", &z2);

sum = z1 + z2;

printf("1. Zahl: %f, 2. Zahl: %f\n", z1, z2);

if (sum < 0.0)

{

printf("Ergebnis ist negativ!");

}

else

{

printf("Summe: %f\n", sum);

}

printf("Programmende!");

return 0;

}

Wodurch unterscheiden sich int- und float-Variablen?

Wozu dient diese if-else-Anweisung?

Page 27: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

27

1. Einleitung2. Erstes C-Programm3. Fehler ins Programm einbauen4. Zweites und drittes C-Programm5. Installation der Visual C++ 2010 Express Ed.

Page 28: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

28

5. Installation der Visual C++ 2008 Express Edition

Die Installationsdatei von der

• Homepage von Microsoft herunterladen (siehe nächste Seite) oder

• vom Transferlaufwerk holen:

X:\Dozenten\reichl\download\cppExpress2010\

VS2010ExpressWithSP1DEUx1504730.iso

Anschließend die Datei (ein ISO-Image)auf eine DVD brennen oder ein Programm installieren, mit dem man ISO-Images direkt lesen kann z. B. Alcohol 120 % (www.alcohol-soft.com) .

Installationshinweise :

• SQL ist für uns nicht notwendig,

• MSDN Express Library ebenfalls nicht.

• Visual C++ 2010 bei Microsoft registrieren,nicht registrierte Installationen sind nur für 30 Tage gültig

Page 29: Praktikum Ingenieurinformatik - kuepper.userweb.mwn.dekuepper.userweb.mwn.de/informatik/info2-p2-erstes-programm.pdf · 13 2.7. Quelltext in Maschinensprache übersetzen Um das C-Programm

29