Einführung in die Grundlagen der Programmierung Stand: März 2008 Autor: Christian Köhler [email protected] - 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