Kurs 6108 Programmierkurs C++ Wintersemester 2001/02. Prof. R. Schrader. Vorlesung freitags 15:15 16:45 Uhr



Ähnliche Dokumente
1 Vorbemerkungen. 1.1 Vorraussetzungen und Ziele. 1.3 Homepage. 1.2 Übungsaufgaben. 1.4 Arbeiten am Computer. Es sind keine Vorkenntnisse nötig

Objektorientiertes Programmieren mit Suse Linux

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

Zwischenablage (Bilder, Texte,...)

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Jederzeit Ordnung halten

Anleitung über den Umgang mit Schildern

Einführung in LINUX Der Editor vi

Wie halte ich Ordnung auf meiner Festplatte?

Windows Explorer Das unbekannte Tool. Compi-Treff vom 19. September 2014 Thomas Sigg

Wie man eigene Programme erstellt

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Computer Algebra Plan der Vorlesung. erstes Drittel: linux, emacs, L A TEX zweites Drittel: Sage als Taschenrechner letztes Drittel: Python für Sage

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Installation LehrerConsole (für Version 6.2)

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

Arbeiten mit UMLed und Delphi

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

Eprog Starthilfe. 5. Oktober Einleitung 2

etax.schwyz: Suche nach Steuerfalldateien

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

CodeSaver. Vorwort. Seite 1 von 6

Erstellen der Barcode-Etiketten:

Verwenden von OnlineUebungen.ch nichts einfacher als das!

Kurzanleitung RACE APP

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Computergestützte Mathematik zur Analysis. Informationen zur Vorlesung

L A TEX, Linux, Python

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Informationen zur Verwendung von Visual Studio und cmake

Dieser Text beschreibt die Neuerungen von DaNiS und die Vorgehensweise beim DaNiS-Update.

2) Geben Sie in der Anmeldemaske Ihren Zugangsnamen und Ihr Passwort ein

GEONET Anleitung für Web-Autoren

Informatik I Tutorial

AutoTexte und AutoKorrektur unter Outlook verwenden

Dieses UPGRADE konvertiert Ihr HOBA-Finanzmanagement 6.2 in die neue Version 6.3. Ein UPGRADE einer DEMO-Version ist nicht möglich.

Einführung in die Programmierung

Programme im Griff Was bringt Ihnen dieses Kapitel?

Der neue persönliche Bereich/die CommSy-Leiste

V o r w o r t. A n l e i t u n g

Tipps und Tricks zu den Updates

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Leichte-Sprache-Bilder

> Soft.ZIV. Maple Mathematisches Software System

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Formular»Fragenkatalog BIM-Server«

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Installationshandbuch zum MF-Treiber

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

II. Daten sichern und wiederherstellen 1. Daten sichern

Übung - Datenmigration in Windows Vista

Installation kitako. Wir nehmen uns gerne Zeit für Sie! Systemanforderungen. Demoversion. Kontakt

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Integration von SATA / RAID / SCSI Treibern in Windows XP Setup

Dateien und Verzeichnisse

Installation OMNIKEY 3121 USB

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Dokumentenverwaltung im Internet

Kennen, können, beherrschen lernen was gebraucht wird

Erste Schritte am Rechner

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

Finder > 'Programme' > 'Dienstprogramme' > 'Terminal'

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Anleitung. Lesezugriff auf die App CHARLY Termine unter Android Stand:

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Hardware - Software - Net zwerke

Anleitung zum GUI Version 2.x

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Bedienung des Web-Portales der Sportbergbetriebe

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Informatik 1 Tutorial

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Achtung! Speichern nicht vergessen

Eigene Dokumente, Fotos, Bilder etc. sichern

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Dienstleistungen Zentrum Medienbildung. Anleitung für das Überspielen von Videomaterial einer SD- und HDD-Kamera via USB

Dazu stellen Sie den Cursor in die Zeile, aus der eine Überschrift werden soll, und klicken auf die gewünschte Überschrift.

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

TR75E002-A FA / Bedienungsanleitung Industrie-Handsender-Verwaltung IHV DEUTSCH

Beispiel(unten ist der Spielfeldrand):

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Dozent: Christian Walter Boese Termin: Samstag, 5. März Uhr / 1 Tag Gebühr: 24,00 Ort: Realschule plus, Lambrecht

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Persona-SVS e-sync GUI/Client Installation

Transkript:

Kurs 6108 Programmierkurs C++ Wintersemester 2001/02 Prof. R. Schrader Nils Eissfeldt eissfeldt@zpr.uni-koeln.de 470-6026 Jürgen Gräfe graefe@zpr.uni-koeln.de 470-6010 Vorlesung freitags 15:15 16:45 Uhr Sprechstunde dienstags 10:00 11:00 Uhr Weyertal 80, 2. Etage links http://www.zaik.uni-koeln.de/afs/teachings/courses/progkurs/ WS 2001/02 Programmierkurs C++ Seite 1

1 Vorbemerkungen 1.1 Vorraussetzungen und Ziele Es sind keine Vorkenntnisse nötig Es gibt keine Scheine Vermittelt werden: Grundkenntnisse der Programmierung in C++ Konzept der objektorientierten Programmierung Verwendung der Standardbibliotheken 1.2 Übungsaufgaben Kursbegleitende Übungsaufgaben werden gestellt Die Aufgaben werden nicht korrigiert Musterlösungen werden in der Vorlesung besprochen Grundsätzlich können wir in diesem Rahmen nur das Handwerkszeug zum Programmieren an die Hand geben. Um programmieren zu lernen muß man programmieren üben. WS 2001/02 Programmierkurs C++ Seite 2

1.3 Homepage http://www.zaik.uni-koeln.de/afs/ teachings/courses/progkurs/ Auf der Internetseite zu diesem Kurs finden sich weitere Informationen Literaturhinweise Mailingliste Beantragen eines Accounts Folien und Beispielprogramme Übungsaufgaben und Musterlösungen WS 2001/02 Programmierkurs C++ Seite 3

1.4 Arbeiten am Computer Die Beispiele, Übungen und Musterlösungen werden systemunabhängig gestaltet und lassen sich mit jedem aktuellen C++ Compiler unabhängig vom verwendeten Betriebssystem übersetzen. Arbeiten in der UNI Für das Arbeiten an der UNI steht der SUN-Pool zur Verfügung: Pohligstraße, 3. Etage Mo. Fr. 9:00 17:00 Uhr (ggf. in der 5. Etage melden) WS 2001/02 Programmierkurs C++ Seite 4

Arbeiten zu Hause Besonders empfehlenswert ist das Arbeiten unter Linux, da dort der Compiler und viele nützliche Tools für das Programmieren bereits vorhanden sind. Außerdem ist Linux kostenlos. CD s mit aktuellen Linux-Distributionen kann man sich im Rechenzentrum kopieren. Auch unter Windows gibt es (neben kommerziellen Compilern wie Visual C++) kostenlose Compiler. Auf unseren WWW-Seiten findet sich ein Link zu Cygwin, welches neben einer UNIX-Artigen Umgebung für Windows auch den unter Linux verbreiteten GNU C++-Compiler enthält. WS 2001/02 Programmierkurs C++ Seite 5

2 Grundlagen 2.1 Allgemeiner Aufbau eines Computers Die wesentlichen Komponenten lassen sich folgendermaßen kategorisieren: CPU Bildschirm Tastatur / Maus Speicher Festplatte Netzwerk CPU Die Central Processing Unit führt die notwendigen Berechnungendurch, macht logische Verknüpfungen, bearbeitet Daten, steuert das Verhalten aller Komponenten des Computers, regelt IO Die CPU liest den Programmcode aus dem Speicher und führt ihn aus. Speicher Dieser enthält die Daten und den Programmcode die von der CPU benötigt werden. Ein- und Ausgabegeräte (I/O) Dienen z.b. als Schnittstelle zum Benutzer, zum Datenaustausch oder als Massenspeicher. WS 2001/02 Programmierkurs C++ Seite 6

2.2 Allgemeiner Softwareaufbau Anwendungsprogramme Benutzer Schnittstelle Bibliotheks- Routinen Betriebssystem Hardware Betriebssystem Das Betriebssystem steuert alle Betriebsabläufe im Computer. Darunter fallen: Laden, Ausführen und Abbrechen von Programmen Organisation des Speichers Zugriff auf Peripheriegeräte Organisation und Verwaltung der Festplattendaten Verwaltung von Zeitscheiben bei gleichzeitiger Ausführung von Programmen (Multitasking) Verwaltung des Benutzerzugangs Verwaltung von Zugriffsrechten auf Daten WS 2001/02 Programmierkurs C++ Seite 7

Benutzerschnittstelle Komanndointerpreter (Shell) bieten die Möglichkeit interaktiv Befehle auszuführen. Fenstersysteme wie XWindows stellen grafische Oberflächen für Programme zur Verfügung. Bibliotheksroutinen Vorgefertigte Unterprogramme, welche in Bibliotheken zusammengefasst werden, können in eigenen Programmen verwendet werden. Anwendungssoftware übrige Software mit den unterschiedlichsten Aufgaben, z.b. Werkzeuge zur Programmerstellung Editoren (XEmacs, vim, pico) Compiler (gcc, g++) Textverarbeitungen (soffice) WWW-Browser (lynx, opera, netscape) E-Mail Programme (pine, mutt) WS 2001/02 Programmierkurs C++ Seite 8

2.3 Dateien und Verzeichnisse (Unix) Dateien sind abstrakte Gebilde zur Speicherung von Daten auf einem Speichermedium wie Festplatte oder Diskette. Jede Datei hat einen Namen Unix verwaltet die Zugriffsrechte Dateien werden in Verzeichnissen abgelegt Verzeichnisse können mehre Dateien und auch weitere Unterverzeichnisse enthalten Es ergibt sich eine Baumförmige Struktur von Dateien und Verzeichnissen: / etc Datei 1... home eissfeldt datei-1 graefe datei-2 tmp usr...... WS 2001/02 Programmierkurs C++ Seite 9

Für Verzeichnisse gelten folgende Regeln: Das Wurzelverzeichnis (root) wird mit einem / (Slash) bezeichnet. Dateien werden durch Aneinanderreihung von Katalognamen eindeutig bestimmt (Pfade). Pfade die mit / beginnen starten im Wurzelverzeichnis, ansonsten im aktuellen Verzeichnis. Mit cd kann man zwischen Verzeichnissen wechseln. Jedes Verzeichnis enthält Verweise auf sich (.) und auf das übergeordnete Verzeichnis (..) Jeder Benutzer hat ein eigenes Verzeichnis /home/<benutzername> (Home) Dieses Verzeichnis heißt auch ~ WS 2001/02 Programmierkurs C++ Seite 10

2.4 Wichtige Befehle und Programme man ls cp mv rm mkdir cd grep cat Zeigt die Hilfe zu einem Befehl oder Programm an. Mit man ls wird z.b. die Benutzung von ls erklärt. zeigt den Inhalt eines Verzeichnisses an; mit ls -l auch etwas ausführlicher. Kopiert den Inhalt einer Datei in eine andere Datei. Verzeichnisse mit cp -r kopieren. Verschiebt eine Datei in ein anderes Verzeichnis oder benennt die Datei um. Löschen einer Datei oder eines Verzeichnisses. Erstellen eines Verzeichnisses. Wechselt in das angegebene Verzeichnis sucht eine Zeichenkette in Dateien. Zeigt eine Datei am Bildschirm an. WS 2001/02 Programmierkurs C++ Seite 11

2.5 Benötigte Werkzeuge zur Programmentwicklung Um Programme zu erstellen werden folgende Werkzeug benötigt: Ein Editor (z.b. Emacs/XEmacs, vim, pico) zum Erstellen der Quelltexte. Der Compiler (g++) wandelt den Quelltext in die für den Computer lesbare Maschinensprache um. Der Linker (ld) verbindet ein oder mehrere Dateien mit Maschinensprache zu einem Programm. Debugger (gdb, dbx) helfen dem Entwickler Fehler im Quelltext zu finden. Zu beachten ist, daß der Linker oft vom Compiler automatisch aufgerufen wird und nicht extra gestartet werden muß. WS 2001/02 Programmierkurs C++ Seite 12

Diese Programme werden von der Shell ausgeführt, welche nach dem Anmelden in einem XTerm-Fenster zur Verfügung steht: Beispiele von Kommandos, welche in der Shell ausgeführt werden schreiben wir innerhalb des Programmierkurses in folgender Form: $ kommando wobei $ den Benutzer- und systemabhängigen Prompt bezeichnet, welcher in einer Shell erscheint und zu einer Eingabe auffordert. WS 2001/02 Programmierkurs C++ Seite 13

Programme werden mit einem Editor erstellt. Durch den Aufruf von $ xemacs first.cc wird der Editor XEmacs gestartet und die Datei first.cc geöffnet. Ist diese nicht vorhanden wird eine leere Datei angelegt. XEmacs kann sowohl über die Menüs mit der Maus, als auch über die Tastatur durch sogenannte Tastenkürzel gesteuert werden. WS 2001/02 Programmierkurs C++ Seite 14

Die wichtigsten Tastenkürzel im XEmacs lauten: ^H t ^H i ^X u ^X^C ^X^F ^X^S ^X^W ^S ^R Startet ein Tutorial Öffnet die Info-Seiten zum XEmacs Änderung zurücknehmen Editor beenden Datei öffnen Datei speichern Speichert die Datei unter einen anderen Namen Suchen innerhalb der geöffneten Datei Sucht rückwärts wobei ^X bedeutet, daß die Taste X zusammen mit der Control- bzw. Steuerungstaste zu betätigen ist. Empfehlenswert ist das durch ^H t aufzurufende Tutorial, welches den ungeübten Benutzer mit XEmacs vertraut macht. WS 2001/02 Programmierkurs C++ Seite 15

Nach dem Bearbeiten der Quelldatei kann sie mit dem Compiler in ein für den Computer ausführbares Format gebracht werden. Dies geschieht mit Eingabe des Befehls $ g++ first.cc nach einer kurzen Wartezeit wurde die Datei a.out erstellt. Will man einen anderen Namen, so kann man diesen mit dem Parameter -o angeben. Mit $ g++ -o first first.cc wird die Datei first anstatt a.out erstellt. Diese kann jetzt aufgerufen werden und liefert eine entsprechende Ausgabe. $./first Dies ist mein erstes C++ Programm Wichtig hierbei ist die Angabe des Pfades./ vor dem Dateinamen. Unix sucht normalerweise keine ausführbaren Programme im aktuellen Verzeichnis, so daß dieses explizit angegeben werden muß. WS 2001/02 Programmierkurs C++ Seite 16

Oft läßt sich das geschriebene Programm aufgrund von Fehlern nicht vom Compiler übersetzten: $ g++ -o first first.cc first.cc: In function int main() : first.cc:9: parse error before return Es werden aber Informationen darüber gegeben wo der Fehler zu finden ist. So hat der Compiler in Zeile 9 ein Problem gemeldet. 1 / / Dies i s t mein e r s t e s Programm i n C++ 2 # i n c l u d e < i o s t r e a m > 3 using namespace s t d ; 4 5 i n t main ( ) 6 { 7 c o u t < < " Dies i s t mein " ; 8 c o u t < < " e r s t e s C++ Programm " << e n d l ; 9 return 0 ; 10 } Zurückzuführen ist dies auf ein vergessenes Semikolon in der vorangehenden Zeile, wodurch der Befehl return nicht erkannt werden konnte. WS 2001/02 Programmierkurs C++ Seite 17

2.6 Programme und Programmiersprachen Was ist ein Programm? Programmieren heißt, einem Computer mitzuteilen, was er tun soll und wie er es zu tun hat. Ein Programm beschreibt einen Algorithmus, dh. eine endliche Folge eindeutiger Anweisungen. Ein Programm ist eine in einer formalisierten Sprache (Programmiersprache) ausgedrückte Folge von Anweisungen, die vom Computer verstanden und nacheinander abgearbeitet wird. WS 2001/02 Programmierkurs C++ Seite 18

Welche Sprache spricht ein Computer? Die Hardware des Computers, insbesondere der Prozessor, besteht aus logischen Bausteinen (UND, ODER, NICHT,...) und arbeitet intern nur mit den Werten 0 (falsch) und 1 (wahr). Grund: Diese Werte lassen sich elektrische einfach realisieren, z.b. Strom fließt bzw. Strom fließt nicht. Der Computer versteht also nur Binärdaten. Befehle für den Prozessor und Daten werden in 0/1-Folgen kodiert ( 00110110 ) ( 01100100 ) ( 11110110 ) Zahlen werden als Dualzahlen dargestellt. WS 2001/02 Programmierkurs C++ Seite 19

Das Schreiben von Binärcode ist viel zu unübersichtlich und unverständlich. Vereinfachung durch symbolische Beschreibung der einzelnen Maschinenbefehle Assembler MOV AX, 0 ADD AX, x00ac JMP x0815 der Assembler-Code ist prozessorabhängig und wird durch geeignete Programme in Maschinencode übersetzt. Für spezielle Anwendungen wird Assembler auch heute noch verwendet (zeitkritische Anwendungen, hardwarenahe Programmierung). Vereinfachung durch Beschreibung des Programms in einer maschinenunabhängigen Sprache, die den Benutzer möglichst gut unterstützt höhere Programmiersprache. Beispiele sind: C/C++, Pascal, Java, Basic, Perl, Python,... Der Programmtext muß von einem Programm, dem Compiler, in Maschinencode übersetzt werden. Nur der Compiler ist maschinenabhängig. WS 2001/02 Programmierkurs C++ Seite 20

Beispiel: Nullstellen eines Polynoms Problem: Wie lauten die Nullstellen der Funktion f : R R mit f(x) = ax 2 + bx + c? Eingabedaten: a, b, c R Algorithmus: 1. berechne Diskriminante D = b 2 4ac 2. Wenn D > 0, weiter mit Schritt 6. 3. Wenn D = 0, weiter mit Schritt 8. 4. f hat keine reellen Nullstellen 5. fertig 6. f hat zwei Nullstellen: b+ D 2a 7. fertig und b D 2a 8. f hat die doppelte reelle Nullstelle b 2a 9. fertig WS 2001/02 Programmierkurs C++ Seite 21

1 / / D i e s e s Programm b e r e c h n e t d i e N u l l s t e l l e n e i n e s 2 / / Polynoms z w e i t e n Grades f ( x ) = ax ^2+ bx+c 3 # i n c l u d e < i o s t r e a m > 4 # i n c l u d e < cmath> 5 using namespace s t d ; 6 7 i n t main ( ) 8 { 9 / / E i n g a b e d a t e n a, b, c 10 f l o a t a, b, c ; 11 12 / / Wert z u r s p e i c h e r u n g d e r D e t e r m i n a n t e 13 f l o a t D; 14 15 / / E i n l e s e n d e r P a r a m e t e r durch den B e n u t z e r 16 c i n > > a > > b > > c ; 17 18 / / Berechnen d e r D e t e r m i n a n t e 19 D = b b 4. 0 a c ; 20 21 i f ( D = = 0 ) / / D o p p e l t e r e e l e N u l l s t e l l e 22 { 23 c o u t < < " D o p p e l t e N u l l s t e l l e : " 24 << b / ( 2. 0 a ) < < e n d l ; 25 } 26 e l s e i f ( D > 0 ) / / Zwei N u l l s t e l l e n 27 { 28 c o u t < < " N u l l s t e l l e 1: " 29 < < ( s q r t ( D) b ) / ( 2. 0 a ) 30 << e n d l ; 31 c o u t < < " N u l l s t e l l e 2: " 32 << ( s q r t ( D) b ) / ( 2. 0 a ) 33 << e n d l ; 34 } 35 e l s e c o u t < < " Keine N u l l s t e l l e n " << e n d l ; 36 } WS 2001/02 Programmierkurs C++ Seite 22