Einführung in die Grundlagen der Programmierung

Transcription

Einführung in die Grundlagen der Programmierung
Einführung in die Grundlagen der
Programmierung
Stand:
März 2008
Autor:
Christian Köhler
christian.koehler85@gmx.de
- Einführung in die Grundlagen der Programmierung -
Inhalt
1
Vorwort .............................................................................................................................. 2
2
Entwicklungsumgebung ..................................................................................................... 3
2.1
MinGW - Minimalist GNU for Windows .................................................................. 4
2.1.1
Installation.......................................................................................................... 4
2.1.2
Bedienung........................................................................................................... 7
2.1.3
Makefiles............................................................................................................ 8
2.2
3
4
5
Editor - Notepad++ .................................................................................................. 10
2.2.1
Installation........................................................................................................ 10
2.2.2
Bedienung......................................................................................................... 11
Datentransfer .................................................................................................................... 14
3.1
FTP ........................................................................................................................... 14
3.2
Putty (SSH) .............................................................................................................. 16
Tipps................................................................................................................................. 18
4.1
Unix Vs Windows .................................................................................................... 18
4.2
Tipps zum Praktikum ............................................................................................... 19
Anhang ............................................................................................................................. 20
5.1
Übersicht – Konsolenbefehle ................................................................................... 20
5.1.1
Windows........................................................................................................... 20
5.1.2
Unix.................................................................................................................. 21
5.1.3
Notepad++........................................................................................................ 21
5.2
Beispiel-Programm................................................................................................... 23
5.3
Makefile ................................................................................................................... 23
5.4
Link-Verzeichnis...................................................................................................... 24
Stand März 2008
1
- Einführung in die Grundlagen der Programmierung -
1 Vorwort
Diese Einführung in die Grundlagen der Programmierung ist auf Wunsch der
Studierendenschaft entstanden. Sie soll den Studierenden, besonders denjenigen ohne
Vorkenntnisse in diesem Bereich, den Einstieg in die jeweiligen Praktika erleichtern. Es soll
eine kurze Anleitung zur Installation einer geeigneten Entwicklungsumgebung für die
Programmiersprache C unter Microsoft Windows sowie Möglichkeiten zum Transfer der
entsprechenden Daten in die Rechnerpools des EDVSZ aufzeigen. Damit soll es den
Studierenden erleichtert werden, den Stoff der Vorlesungen zu Hause praktisch
nachzuvollziehen und die Praktika vorzubereiten.
Anmerkung: Zunächst wird nur diese Einführung über die Seite im StudIP der Vorlesung
zur Verfügung gestellt. Die verwendete Software wird in den nächsten Wochen auch im
EDVSZ herunterladbar sein, daher sollte sie über die angegebenen Links im Internet
heruntergeladen werden.
Stand März 2008
2
- Einführung in die Grundlagen der Programmierung -
2 Entwicklungsumgebung
Eine Entwicklungsumgebung stellt die Grundlage zum Entwickeln von Software dar. Eine
solche Umgebung besteht aus den Grundkomponenten Texteditor, Compiler und Linker.
Hierbei unterscheidet man integrierte Entwicklungsumgebungen (IDE, von engl. integrated
development environment), die die genannten Komponenten (mit meist weit größerem
Funktionsumfang) zu einer zusammenhängenden Software verbindet, und separater Software,
die unabhängig von einander arbeitet.
Zu den bekanntesten IDEs für C Programmierung zählen:
-
Microsoft Visual Studio .NET
-
Eclipse
-
DevC++
-
MinGW Developer Studio
-
uvm…
Wie schon erwähnt bilden diese Entwicklungsumgebungen allerdings einen großen
Funktionsumfang ab und benötigen größere Einarbeitungszeit. Um die grundsätzliche
Arbeitsweise nachvollziehen zu können und die Arbeit so einfach wie möglich zu halten,
haben wir uns entschieden, einzelne Komponenten im Praktikum einzusetzen.
Im weiteren Verlauf werden wir nun Notepad ++ als Texteditor nutzen, der einfach gehalten
ist und dennoch einige nützliche Funktionen mit sich bringt. MinGW fasst die Aufgaben des
Compilers und Linkers zusammen. Die Software ist eine Portierung auf Windows des unter
Unix bekannten „gcc“ (welches auch im Praktikum genutzt wird). Um schließlich die Daten
auf die Rechner des EDVSZ zu übertragen und das Programm auch von zu Hause testen zu
können, werden wir den in Notepad++ eingebauten FTP-Client nutzen und uns mit Putty per
SSH-Verbindung ins EDVSZ einwählen.
Stand März 2008
3
- Einführung in die Grundlagen der Programmierung -
2.1 MinGW - Minimalist GNU for Windows
MinGW (Abk. für engl. Minimalist GNU for Windows) ist eine Portierung der
konsolenbasierten Entwickler-Tools auf Microsoft Windows. Es liefert mit GCC (GNU
Compiler Collection) die Grundlage der Entwicklungsumgebung, das die Aufgaben eines
Präprozessors, Compilers, Assemblers und Linkers übernimmt 1 , mit anderen Worten den
Quellcode in für den Computer lesbaren Maschinencode übersetzt und zu einer ausführbaren
Software zusammenbindet.
2.1.1 Installation
MinGW 5.1.3 wird über einen Downloader, der über den im Anhang angegeben Link
heruntergeladen werden kann, ausgeliefert. Nach dem Download starten Sie die „setup.exe“
und
wählen
Sie
die
Option
„Download
and
Install“.
Nach
Bestätigung
der
Lizenzvereinbarung wählen sie die aktuelle Version über den Auswahlpunkt „Current“.
Anschließend wählen Sie die Installationspakete wie folgt aus (es steht Ihnen natürlich frei
auch die anderen Compiler mit zu installieren):
1
Vgl. Vorlesungsskript
Stand März 2008
4
- Einführung in die Grundlagen der Programmierung -
Nun geben Sie noch den Pfad an, in den die Software installiert werden soll und beginnen die
Installation mit „Next“.
Nach Abschluss der Installation können Sie überprüfen, ob diese erfolgreich war, indem Sie
ein Konsolenfenster öffnen (Start -> Ausführen -> „cmd“ eingeben und mit „OK“
bestätigen) und dort in einem beliebigen Verzeichnis „gcc“ eingeben und mit „Enter“
bestätigen. Das Programm sollte Ihnen zurückliefern, dass keine Eingabedateien übergeben
wurden.
Stand März 2008
5
- Einführung in die Grundlagen der Programmierung -
Ist dies nicht der Fall, so müssen Sie den Pfad der ausführbaren Dateien noch den
Umgebungsvariablen von Windows hinzufügen. Hierzu öffnen Sie den System-Dialog über
Start -> Einstellungen -> Systemsteuerung -> System (bzw. Systemsteuerung -> Leistung und
Wartung -> System). Nun wählen Sie den Reiter „Erweitert“ und dort den Button
„Umgebungsvariablen“.
Anschließend
suchen
Sie
noch
in
der
Auswahlliste
„Systemvariablen“ den Eintrag „Path“ und klicken Sie doppelt darauf.
Nun tragen Sie am Ende des Werte-Feldes den Pfad zum Unterordner „bin“ des
Installationsverzeichnisses von MinGW hinzu. Jetzt sollten Sie die Programme von MinGW
von jedem Ort in der Konsole aufrufen können.
Stand März 2008
6
- Einführung in die Grundlagen der Programmierung -
2.1.2 Bedienung
Um nun ein einfaches Programm zu übersetzen, öffnen Sie eine Konsole 2 und wechseln in
den Ordner mit den Quelltextdateien. 3 Eine detailliertere Hilfe über einzelne Compiler
Optionen erhalten sie über den folgenden Befehl oder aus der Compiler Dokumentation 4
gcc --help
Ein einfaches Programm bestehend aus nur einer Quelltextdatei (hier „hello.c“) lässt sich
direkt mit folgendem Befehl zu der ausführbaren Datei (hier „hello.exe“) kompilieren und
zusammenbinden. Dabei ist der Name der ausführbaren Datei frei wählbar.
gcc -o hello.exe hello.c
Alternativ lässt sich zunächst auch der Quelltext zunächst in eine Objekt-Datei (dem
übersetzten Maschinencode) übersetzen und anschließend zu einem ausführbaren Programm
zusammenbinden. Der Name der Objektdatei entspricht dabei dem Namen der Quelldatei mit
der Endung „.o“.
gcc -c hello.c
gcc -o hello.exe hello.o
Sollte das Programm aus mehreren Quelldateien und Headern bestehen (vgl. Vorlesung),
muss zunächst jede Quelldatei mit seinen Headern übersetzt werden und anschließend die
einzelnen Objektdateien zusammengebunden werden.
gcc -c function.c function.h
gcc -c function2.c function2.h
gcc -o prog.exe function.o function2.o
2
Siehe Anhang Konsolenbefehle - Windows
3
Hier wird davon ausgegangen dass Quelltextdateien vorhanden sind. Um eigene zu erstellen siehe N++-Editor
oder übernehmen Sie das Beispielprogramm aus dem Anhang.
4
Siehe Link-Verzeichnis im Anhang
Stand März 2008
7
- Einführung in die Grundlagen der Programmierung -
Um zu einem späteren Zeitpunkt das Programm Debuggen zu können, also den Zustand des
Programms zur Laufzeit verfolgen zu können, muss zusätzlich der Schalter „-g“ aktiviert
werden, damit der Compiler den Objektdateien zusätzliche Debuginformationen hinzufügt
bzw. anlegt (entsprechende Anweisungen gelten für alle oben genannten Befehle).
gcc -g -o hello.exe hello.c
Für spezielle Header wie „math.h“ (für mathematische Operationen wie „sprt“) müssen
entsprechende Schalter am Compiler aufgerufen werden. In diesem Fall muss der „-lm“Schalter dem Compilerbefehl hinzugefügt werden. Für andere Header sind der
entsprechenden Dokumentation oder der Dokumentation des Compilers zu entnehmen. 5
gcc -p hello.exe hello.c -lm
2.1.3 Makefiles
In umfangreicheren Projekten mit vielen Header- und Quelldateien ist es sehr mühselig jeden
einzelnen Quelltext von Hand zu übersetzen, dazu dienen Makefiles. Im Laufe der Vorlesung
werden Sie den Aufbau und die Funktionsweise von Makefiles kennen lernen. Sie
automatisieren den Übersetzungsprozess der einzelnen Quelldateien und stellen deren
Abhängigkeit untereinander dar. Im Anhang finden Sie ein Beispiel Makefile, das leicht
verändert werden kann und dann auf die meisten einfacheren Anwendungen passt. MinGW
bringt auch ein Make-Tool mit, mit dem Sie das erwähnte oder ihre eigenen Makefiles nutzen
können. Ähnlich wie beim „gcc“-Compiler erhalten Sie eine detailliertere Hilfe mit dem
folgenden Befehl oder aus der Compiler Dokumentation5.
mingw32-make --help
Standardmäßig werden Makefiles „Makefile“ genannt und im selben Ordner der Quelldateien
des Projektes abgelegt. Über folgenden Befehl lassen sich nun den Makefiles ausführen.
5
Siehe Link-Verzeichnis im Anhang
Stand März 2008
8
- Einführung in die Grundlagen der Programmierung -
ming32-make
Nun überprüft das Programm ob neuere Versionen des Quelltextes vorliegen (wenn sie neu
erstellt oder geändert wurden) und übersetzt diese. Um ein bestimmtes Tag (wie z.B. clean,
zum löschen der Objektdateien) 6 aufzurufen wird dies einfach hinter den Befehl angehängt.
mingw32-make clean
Sollte das Makefile anders als „Makefile“ benannt sein, um vielleicht eine andere Version
oder ein Testprogramm zu erstellen. So lässt sich dies anhand des „-f“ Schalters unter Angabe
des Pfades zu diesem Makefile bewerkstelligen. Im Folgenden wird zum Beispiel anstatt dem
Standartmakefile „MyMakefile“ aufgerufen.
mingw32-make -f MyMakefile
6
Vgl. hierzu das Vorlesungsskript und das Beispiel Makefile im Anhang
Stand März 2008
9
- Einführung in die Grundlagen der Programmierung -
2.2 Editor - Notepad++
Der Editor Notepad++ eröffnet uns nun die Möglichkeit eigenen Quellcode zu erstellen.
Grundsätzlich ist hierzu jeder Editor geeignet, doch Notepad++ liefert eine Reihe von
Features die Arbeit erleichtert:
-
Syntax-Highlighting
(Farbliche
Hervorhebung
programmiersprachenspezifischer
Schlüsselwörter)
-
Autovervollständigung vorhandener Schlüsselwörter und Funktionen
-
Erstellen von Makros zum automatisieren von Befehlen (z.B. kompilieren), samt
integrierter Ausgabe-Konsole
-
Umwandeln des Quelltext-Dateien vom Windows ins Unix-Format
-
Integrierter FTP-Client zum übertragen der Daten
2.2.1 Installation
Zunächst
muss
nun
die
Software
heruntergeladen 7
und
anschließend
das
Installationsprogramm ausgeführt werden. Zu Beginn wählt man die Sprache aus, später das
gewünschte
Installations-Verzeichnis.
Möchte
man
die
Konfigurationsdateien
im
Programmverzeichnis belassen (um z.B. Notepad++ vom USB-Stick zu starten), so muss man
zusätzlich den ersten Punkt in der Komponentenauswahl markieren. Schließlich startet man
die Installation durch den Button „Installieren“.
7
Siehe Link-Verzeichnis im Anhang
Stand März 2008
10
- Einführung in die Grundlagen der Programmierung -
Nach vollendeter Installation kopieren Sie die dieser Dokumentation beigelegten Datei
„npes_saved.txt“ in den Unterordner „…\plugins\Config\“ und bestätigen Sie falls nötig das
Überschreiben dieser.
2.2.2 Bedienung
Nach vollendeter Installation lässt sich nun Notepad++ via Desktop-Verknüpfung oder
Startmenü-Eintrag starten. Im Folgenden zeigt nun eine Abbildung den Aufbau der Software
und es wird auf die einzelnen Funktionen eingegangen.
3
5
4
6
7
1
2
1. Textfenster, hier wird der Code erstellt und bearbeitet
2. Konsolenfenster, hier können Konsolenbefehlen ausgeführt werden
3. Symbolleiste mit Options-Buttons
4. Sprachen-Menü, zur Auswahl der gewünschten Programmiersprache
5. Options-Button, blendet das Konsolen-Fenster ein oder aus
6. Ausführen-Menü, führt eine erstellte Anwendung aus
7. Options-Button, blendet das FTP-Fenster ein oder aus
Stand März 2008
11
- Einführung in die Grundlagen der Programmierung -
Zu Anfang wählt man über das Sprachen-Menü (4) die Programmiersprache aus in der
programmiert werden soll. Hierbei wird das sog. Syntax-Highlighting aktiviert, welches je
nach Programmiersprache Schlüsselwörter (wie z.B. „if“) entsprechend darstellt (siehe
Abbildung). Jetzt kann mit dem Eintragen des Quellcodes in das Text-Fenster (1) begonnen
werden.
Nach Fertigstellung des Quelltextes speichern sie diesen als C-Quelldatei mit der Endung „.c“
ab. Anschließend muss dieser nun kompiliert werden. Klickt nun auf den Button „Show
Console Dialog“ (5) um den Konsolen-Dialog (2) anzuzeigen. Hier lassen sich alle Konsolen
üblichen Kommandos ausführen. 8
Nach der Installation von MinGW können Sie hier auch den Compiler „gcc“ aufrufen um die
gerade erstellten Dateien zu übersetzen. In dem nachfolgenden Beispiel wird der Quelltext
„hello.c“ in eine ausführbare Datei namens „hello.exe“ übersetzt. 9 Wenn der Compiler keine
Fehler gefunden hat, befindet sich nun in demselben Verzeichnis wie der Quelltext die eben
erstellte „hello.exe“.
Beispiel:
gcc –o hello.exe hello.c
Um das nun erstellte Programm in einer Konsole auszuführen, wählen sie im AusführenMenü (5) „Ausführen…“ (oder das Tastaturkürzel F5) und wählen Sie das erstellte Programm
über den „…“-Button aus. Das Programm wird über „Ausführen“ gestartet.
Bei einer einzelnen Quelldatei, mag es gerade noch akzeptabel sein, diesen Befehl jedes Mal
auszuführen. Allerdings spätestens, wenn es sich um mehrere Quelldateien handelt, möchte
man diesen Prozess automatisieren. 10 Dazu gibt es verschiedene Methoden. Hier betrachten
wie ein Feature von Notepad++, welches uns das Erstellen und Ausführen kleiner
8
Siehe Übersicht der Konsolenbefehle Windows im Anhang
9
Siehe hierzu Kapitel 2.1.2
10
Siehe hierzu auch Kapitel 2.1.3
Stand März 2008
12
- Einführung in die Grundlagen der Programmierung -
Konsolenscripts erlaubt. Dies lässt sich über das Menü Erweiterungen -> NppExec ->
Execute erreichen (siehe Abbildung).
Es öffnet sich der dargestellte Dialog, in dem sich die Konsolenscripte erstellen lassen.
Während der Installation wurde eine Datei mit Beispielscripten hinzugefügt, die sich nun über
die Auswahl-Box am linken unteren Rand auswählen lassen. Neben den bisher kennen
gelernten Kommandozeilenbefehlen stehen hier weitere Variablen und Befehle zur
Verfügung, die Informationen und Operationen zu den geöffneten Dateien bereitstellen. 11 Das
dargestellte Beispiel kompiliert die vorliegende Datei (hier wird davon ausgegangen, dass
eine C-Quelldatei also z.B. „hello.c“ die aktuell geöffnete Datei ist) in ein gleichnamiges
ausführbares Programm. Ein neu erstelltes Script lässt sich über den „Save“-Dialog speichern.
11
Siehe hier zu die Konsolenbefehlsübersicht Windows, N++ Konsolenbefehle sowie Kapitel 2.1.2 / 2.1.3
Stand März 2008
13
- Einführung in die Grundlagen der Programmierung -
3 Datentransfer
Wenn Sie ein Programm fertig gestellt und es ausreichend getestet haben, so bleibt
schlussendlich noch der Transfer ihrer Daten in ihr Home-Verzeichnis des EDVSZ und den
Test unter Unix. Der Datentransfer lässt sich über FTP und das testen in der Unix-Umgebung
via SSH erledigen.
Achtung:
Es gibt einen Unterschied zwischen Quellcode, der im Windows- oder
Unixformat erstellt wurde. Lesen Sie hierzu „Windows vs. Unix“. Des
Weiteren müssen unter Windows erstellte Programme unter Unix neu
kompiliert und erstellt werden!
3.1 FTP
Zum Datentransfer der Daten vom Heimarbeitsplatz in das EDVSZ wird ein FTP-Client
benötigt. Hierzu ein FTP-Client zum Download an. Da allerdings Notepad++ auch einen FTPClient beinhaltet, bietet es sich an diesen zu nutzen. Dazu wählen Sie den „Show FTP
Folders“-Button (7) 12 um den FTP-Dialog anzuzeigen.
2
1
1. Einstellungs-Dialog
2. Connect/Disconnect
3. Verzeichnis/Datei-Fenster
4
3
4. Aktuelle Datei hochladen
5. Aktualisiert die Ansicht
der5
12
Verzeichnisse/Dateien
Siehe hierzu Kapitel 2.2.2
Stand März 2008
14
- Einführung in die Grundlagen der Programmierung -
Um nun eine FTP-Verbindung aufbauen zu können, muss zuerst ein Verbindungsprofil über
den Einstellungs-Dialog (5) erstellt werden. Hierzu legen Sie über „New“ ein neues Profil an.
Über das Textfeld „Profile“ mit dem dazugehörigen Namen können Sie das Profil
umbenennen. Nun müssen Sie die zugehörige Adresse
„ftp.edvsz.fh-osnabrueck.de“
samt den Port „21“ und ihren Zugangsdaten zu den EDVSZ Pools (dieselben wie beim
Anmelden an den Rechnern dort) eingeben und mit „Apply“ bestätigen. Nun schließen Sie
den Dialog wieder mit „Ok“ und wählen Sie über den „Connect“-Button (2) das soeben
angelegte Profil aus, um eine Verbindung aufzubauen. Nun werden die vorhanden Ordner und
Dateien ihres Home-Verzeichnisses im entsprechenden Fenster (3) dargestellt. Schließlich
können Sie nun die aktuell geöffnete Datei mit dem Upload-Button in das ausgewählte
Verzeichnis (im Ordnerfenster (3)) hochladen oder eine ausgewählte Datei aus dem HomeVerzeichnis herunterladen. Möchten Sie eine heruntergelandene Datei lokal weiternutzen so
müssen sie über „Datei -> Speichern unter“ lokal abspeichern.
Stand März 2008
15
- Einführung in die Grundlagen der Programmierung -
3.2 Putty (SSH)
Putty ist ein frei erhältlicher und einfach zu handhabender SSH Client unter Microsoft
Windows. Die Software lässt sich unter dem im Anhang angegebenen Link herunterladen und
direkt ausführen.
Über die Kategorie „Session“ lassen sich neue Verbindungs-Profile anlegen. Dazu geben Sie
unter „Host Name“ die Adresse
„remote.edvsz.fh-osnabrueck.de“
ein und wählen Sie SSH als Verbindungstyp aus. Möchten Sie das Profil speichern so geben
Sie im Textfeld „Saved Sessions“ den Namen des Profils ein und speichern sie mit „Save“ ab.
Möchten Sie das Profil zu einem späteren Zeitpunkt wieder laden, so lässt sich dies über
„Load“ bewerkstelligen.
Haben Sie nun ein Profil erstellt oder ausgewählt, so können Sie nun mithilfe des „Open“Buttons die Verbindung aufbauen. Wenn Sie zum ersten Mal mit Putty eine Verbindung zum
EDVSZ aufbauen, wird Putty Sie darauf hinweisen, dass der übermitteltet Key unbekannt ist,
bestätigen sie dies mit „Ja“ und fahren Sie fort.
Stand März 2008
16
- Einführung in die Grundlagen der Programmierung -
Nun öffnet siche eine Konsole, in der Sie sich zunächst mit ihren Zugangsdaten des EDVSZ
(dieselben wie bei der Anmeldung an den Rechnern des EDVSZ) anmelden müssen. Nach
erfolgreicher Anmeldung haben Sie nun vollen Zugriff auf die Unix-Shell und sie können mit
den bekannten Kommandozeilenbefehlen 13 ihr Programm erneut kompilieren und ausführen.
13
Siehe hierzu Übersicht Konsolenbefehle Unix sowie Kapitel 2.1.2 und 2.1.3
Stand März 2008
17
- Einführung in die Grundlagen der Programmierung -
4 Tipps
4.1 Unix Vs Windows
Wie schon eingangs im Kapitel Datentransfer erwähnt gibt es einen Unterschied zwischen
Quelltext der im Windows- oder Unix-Format erstellt wurden. Der Unterschied besteht darin,
dass Windows einen Zeilenumbruch in den ASCII Zeichen 10 und 13 darstellt oder auch
„Linefeed“ und „Carriage Return“ genannt. Wohingegen Unix lediglich ein „Linefeed“
verwendet. Um dieses Problem zu umgehen, lässt sich innerhalb von Notepad++ das Format
über den Menüpunkt „Format -> Konvertiere in Unix“ bzw. „Format -> „Konvertiere in
Windows“ einstellen.
Alternativ lässt sich dies auch unter der Unix-Shell (via SSH oder direkt im Unix-Pool des
EDVSZ) mit dem Befehl „dos2unix <Datei>“ erledigen, wobei <Datei> für die zu
konvertierende Datei steht.
Dieser Umstand sollte auch beim Erstellen der Programme, die zeichenweise von der Tastatur
oder aus Dateien lesen, denn auch hier werden die Zeilenendzeichen entsprechend gesetzt.
Neben dem Umwandeln der Quelldateien muss auch das Programm neu kompiliert werden,
da der Compiler je nach Betriebsystem die Programme übersetzt und entsprechend
zusammensetzt.
Schlussendlich sollte darauf geachtet werden, dass jede Quelldatei mit einer neuen Zeile
endet, da ansonsten der Compiler jedes Mal eine Warnung herausgibt.
Stand März 2008
18
- Einführung in die Grundlagen der Programmierung -
4.2 Tipps zum Praktikum
Hier sollen ein paar Tipps zur Durchführung der Praktika gegeben werden, um den Einstieg
zu erleichtern.
-
„Teile und Herrsche“: Brechen Sie das Gesamtproblem der Aufgabenstellung in
kleinere Teilprobleme ein wie z.B. Einlesen sowie Verarbeiten von Daten und testen
Sie diese einzeln durch. Fügen Sie anschließend nach und nach die Teile zusammen.
-
Die Praktika bauen kontinuierlich aufeinander auf und greifen auf vorangegangene
Problemstellungen zurück.
-
Probieren Sie soviel wie möglich aus. Wenn Vorlesungen oder in dessen Skript
konkrete Problemlösungen angesprochen werden, probieren Sie diese aus. Je mehr sie
ausprobieren, umso schneller bekommen Sie ein Gefühl dafür, wie Sie an
Problemstellungen herangehen müssen. Dies zieht sich durch jegliche Art von
Programmiersprachen und daher auch durch den kompletten Verlauf ihres Studiums.
-
Machen Sie an kritischen Stellen (nach dem Einlesen von Daten, Übergaben von
Parametern an Funktionen, etc.) Ausgaben der übergebenen Werte auf die Konsole, so
sind Fehler schnell zu erkennen.
-
Tauschen Sie sich untereinander aus! Alle Studierenden haben mit Sicherheit ähnliche
Probleme wie Sie. Tauschen Sie untereinander mögliche Lösungsansätze und
Erfahrungen aus (keine Quelltexte, ansonsten steht man dumm da, wenn man auf sich
gestellt ist!).
-
Nutzen Sie Bücher, Referenzen als Nachschalgewerke. Es gibt zu jeder zahlreiche und
umfangreiche Literatur. Allerdings sollten Sie nicht unbedingt versuchen diese vom
Anfang bis zum Ende zu lesen. Schlagen Sie stattdessen konkrete Probleme nach.
Viele Online-Dokumentationen 14 bieten einen Index oder eine Suchfunktion an, mit
denen Sie diese durchsuchen können ohne viel Zeit zu verlieren.
-
Gestalten Sie ihren Quelltext übersichtlich. Viele Fehler entstehen durch
Unachtsamkeit z.B. durch Vergessen eines Semikolons oder einer zu schließenden
Klammer).
14
Siehe Link-Verzeichnis im Anhang
Stand März 2008
19
- Einführung in die Grundlagen der Programmierung -
5 Anhang
5.1 Übersicht – Konsolenbefehle
5.1.1 Windows
Es folgt ein kurzer Auszug der wichtigsten Konsolenbefehle unter Windows (innerhalb der
Konsole lässt sich dies auch mittels des „Help“-Befehls anzeigen). Grundsätzlich lässt sich
auch zu jedem Konsolenbefehl auch eine detailliertere Hilfe mittels des „/?“-Schalters
anzeigen (z.B. „cd /?“ liefert eine genau Hilfe zum Befehle „cd“). 15 Zum Öffnen einer
Konsole unter Windows starten Sie den Ausführen Dialog (Start -> Ausführen…oder drücken
Sie WindowsTaste + R) und geben Sie „cmd“ ein und bestätigen Sie mit „Ok“.
CD
Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen.
Achtung:
Zum Wechseln des Laufwerkes muss entweder nur der
Laufwerksbuchstabe eingegeben z.B. „d:“ und mit „Enter“
bestätigt werden, oder man muss den „/d“-Schalter des „cd“Befehls benutzen.
Hinweis:
Unter Windows werden Ordner mit „\“ getrennt und darüber
liegende Ordner mit „..“ referenziert.
Beispiele:
„d:“
- Wechselt auf das Laufwerk D:
„cd /d c:\Programme“ - Wechselt auf das Laufwerk C: und in
den Ordner Programme
„cd ..“
- geht einen Ordner zurück
„cd“
- liefert den aktuellen Verzeichnispfad
„cd \“
- wechselt in das Wurzelverzeichnis des
Laufwerks (z.B. „C:\“)
CHDIR
Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen.
Siehe „cd“.
CLS
Löscht den Bildschirminhalt.
COPY
Kopiert eine oder mehrere Dateien an eine andere Stelle.
15
Anführungszeichen „…“ bei Befehlen nicht mit Eintragen.
Stand März 2008
20
- Einführung in die Grundlagen der Programmierung -
DEL
Löscht eine oder mehrere Dateien.
DIR
Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.
ERASE
Löscht eine oder mehrere Dateien.
EXIT
Beendet das Programm CMD.EXE (Befehlsinterpreter).
HELP
Zeigt Hilfeinformationen zu Windows-Befehlen an.
MD
Erstellt ein Verzeichnis.
MKDIR
Erstellt ein Verzeichnis.
MORE
Zeigt Ausgabe auf dem Bildschirm seitenweise an.
MOVE
Verschiebt ein oder mehrere Dateien von einem Verzeichnis in ein anderes.
RD
Entfernt ein Verzeichnis.
REN
Benennt eine Datei bzw. Dateien um.
RENAME
Benennt eine Datei bzw. Dateien um.
REPLACE
Ersetzt Dateien.
RMDIR
Löscht ein Verzeichnis.
TYPE
Zeigt den Inhalt einer Textdatei an.
XCOPY
Kopiert Dateien und Verzeichnisbäume.
5.1.2 Unix
Siehe hierzu die „Unix_Kurzreferenz.pdf“ des Edvsz. 16
5.1.3 Notepad++
cls
Löscht den Inhalt der Konsole
cd
Zeigt den aktuellen Pfad an
cd <Pfad>
Wechselt das aktuelle Verzeichnis (absolut oder relativ)
cd <Laufwerk:\Pfad>
Wechselt das aktuelle Laufwerk und Verzeichnis (absolut oder
relativ) (Achtung! Unterschied zur Windows-Konsole)
dir
Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.
echo <Text>
Gibt einen Text in der Konsole aus
set
Zeigt alle benutzerdefinierten Variablen an
set <var>
Zeigt den Wert der benutzerdefinierten Variable <var> an
set <var> = <Wert>
16
Setzt den Wert der benutzerdefinierten Variable <var>
Siehe Link-Verzeichnis im Anhang und befügtes Dokument
Stand März 2008
21
- Einführung in die Grundlagen der Programmierung -
unset <var>
Löscht den Wert der benutzerdefinierten Variable <var> an
con_load <Datei>
Lädt den Inhalt der Datei <Datei> in die Konsole
con_save <Datei>
Speichert den Inhalt der Konsole in die Datei <Datei>
npp_exec <Datei>
Führt das angegebene Script in der Datei <Datei> aus
npp_open <Datei>
Öffnet die Datei <Datei> in Notepad++
npp_run <Befehl>
Führt den externen Befehl <Befehl> aus (siehe Konsolenbefehle
Windows)
Speichert die aktuelle geöffnete Datei
npp_save
Speichert alle geöffneten und geänderten Dateien
npp_saveall
Zeigt alle Befehle der Konsole an
help
Zusätzliche Befehle
CTRL+C
Beendet den laufenden Prozess
CTRL+BREAK
Beendet den laufenden Prozess
Zusätzliche Umgebungsvariablen
$(FULL_CURRENT_PATH)
E:\my Web\main\welcome.html
$(CURRENT_DIRECTORY)
E:\my Web\main
$(FILE_NAME)
welcome.html
$(NAME_PART)
welcome
$(EXT_PART)
html
$(NPP_DIRECTORY)
der volle Installationspfad von Notepad++
$(CURRENT_WORD)
Selektierter Text in Notepad++
$(#0)
Installationspfad\notepad++
$(#N), N=1,2,3...
der volle Pfad der N-ten geöffneten Datei
$(ARGC)
Anzahl der übergebenen Argumente des NPP_EXEC Befehls
$(ARGV)
Alle übergebenen Argumente des NPP_EXEC Befehls
$(ARGV[0])
Script Name - erster Parameter des NPP_EXEC Befehls
$(ARGV[N])
N-tes Argument (N=1,2,3...)
$(RARGV)
Alle übergebenen Argumente des NPP_EXEC Befehls in
umgekehrter Reihenfolge (außer dem Script-Namen)
$(RARGV[N])
N-tes Argument in umgekehrter Reihenfolge
$(SYS.<var>)
Systemumgebungsvariable, z.B. $(SYS.PATH)
Stand März 2008
22
- Einführung in die Grundlagen der Programmierung -
5.2 Beispiel-Programm
#include <stdlib.h>
#include <stdio.h>
/*include "hello.h"*/
int main(){
int n;
printf("Hello World!\n\n");
printf("Bitte geben sie eine Zahl ein: ");
scanf("%d",&n);
printf("\nDie Zahl lautet: %d",n);
fflush(stdin);
printf("\n\n\nBitte
beenden...");
getchar();
return 0;
}
druecken
Sie
eine
Taste,
um
das
Programm
zu
5.3 Makefile
#Variablen:
CC = gcc
RM = rm
#Erst loeschen und dann festlegen der Suffix-Regeln
.SUFFIXES:
.SUFFIXES: .c .o
#Variablen Deklaration
OBJEKTE = hello.o
PRODUKT = hello.exe
#Regel zum Erzeugen des Produktes und der Objekte ($@ Target-Name;$< Name
der direkt zugehoerigen
#Datei in der Abh.-liste
$(PRODUKT):$(OBJEKTE)
$(CC) -o $@ $(OBJEKTE)
#Abhaengigkeitsbaum
#main.o: main.c header.h
hello.o: hello.c
.c .o:
$(CC) -c $<
#Regeln zum Løschen, PHONY muss benutzt
vorhandener datei clean funktioniert
.PHONY: clean
clean:
$(RM) $(OBJEKTE)
Stand März 2008
werden,
damit
dies
auch
bei
23
- Einführung in die Grundlagen der Programmierung -
5.4 Link-Verzeichnis
CPP Reference – Standard Libary
Sehr gute Übersicht über alle Header der Standard C Libary (engl.).
http://www.cppreference.com/
DDD - Data Display Debugger Dokumentation
Dokumentation zu DDD, dem grafischen Frontend des konsolenbasierten Debuggers GDB
http://www.gnu.org/manual/ddd/html_mono/ddd.html
Eclipse
Sehr gute IDE für viele Programmiersprachen, später auch im Studium für Java ausgiebig
benutzt.
http://www.eclipse.org/downloads/
EDVSZ – Downloads
Gutes Verzeichnis für nützliche Software für das Studium. Link zum MSDNAA-Programm
der FH Osnabrück (kostenfreie Microsoft Software!).
http://www.edvsz.fh-osnabrueck.de/download.html
EDVSZ – Dokumentation
Wichtige Dokumentationen zu der im Rahmen des Studiums genutzten Software.
http://www.edvsz.fh-osnabrueck.de/doku.html
Galileo Open Book - C von A bis Z
Sehr gutes Onlinebuch zur C Programmierung, mit Suchfunktion und Index.
http://www.galileocomputing.de/openbook/c_von_a_bis_z/
GCC – Dokumentation
Dokumentation zur GNU Compiler Collection (in MinGW integeriert).
http://gcc.gnu.org/onlinedocs/
GDB – Dokumentation
Stand März 2008
24
- Einführung in die Grundlagen der Programmierung -
Dokumentation für den GNU Project Debugger, einem konsolenbasierten Debugger für
verschieden Programmiersprachen (Backend des DDD, auch für MinGW verfügbar).
http://sourceware.org/gdb/documentation/
MinGW 5.1.3
Minimalist GNU for Windows ist eine Softwareportierung der GNU Entwicklertools (GCC,
Compiler) auf Microsoft Windows.
http://sourceforge.net/project/downloading.php?group_id=2435&use_mirror=garr&filename=
MinGW-5.1.3.exe&52378417
MinGW – Dokumentation
Dokumentation für MinGW
http://www.mingw.org/docs.shtml
MinGW Developer Studio
Sehr einfache IDE auf Basis von MinGW (Komplettpaket aus Kompatibilitätsgründen laden!)
http://www.parinyasoft.com/download.html
Notepad++ 4.8.2 Installer
Notepad++ ist einfacher, komfortabler Editor mit guter Programmierunterstützung.
http://sourceforge.net/project/downloading.php?group_id=95717&use_mirror=kent&filename
=npp.4.8.2.Installer.exe&59081416
Putty
Einfacher, sehr guter SSH-Client
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Putty – Dokumentation
http://the.earth.li/~sgtatham/putty/0.60/htmldoc/
Stand März 2008
25