EDITOR | PREPROZESSOR | COMPILER | LINKER | DEBUGGER |
Werkzeuge | Erläuterungen |
Editor | Das zu erzeugende Programm wird wie ein normales Schriftdokument zuerst in einer Textdatei erstellt und gespeichert. Der Quelltext oder Programmcode wird mit einem sogenannten Editor (engl.: to edit = herausgeben) erstellt. Dabei orientieren sich Editor-Programme an den Möglichkeiten moderner Textverarbeitungssoftware. Mit dem Editor erstellt man in Zusammenhang mit der C- und Cpp-Programmierung * Header- und * Quellcode-Dateien. Im Windows-System kann man die unter "Zubehör" bereitgestellten Editoren EDITOR bzw. NOTEPAD verwenden. WORD oder WORDPAD sollte man nicht als Editoren gebrauchen, da sie Textformatierungen hinterlassen und der Quellcode daher nicht korrekt compiliert werden kann. |
Pre(ä)prozessor | Der Pre(ä)prozesor ist ein eigenständiges Programm, das gezielt Textersetzungen vornimmt, die mit dem #-Zeichen (Einleitung einer include oder define-Anweisung; vgl. Headerfiles) am Beginn des Programmcodes stehen. Es handelt sich genau genommen um eine Art Vorübersetzung, wodurch sogenannte Preprozessor-Direktiven veranlassen, bestimmte Systemdateien in das Programm einzubinden, so dass die Direktive # include <...> (z.B # include <iostream.h> => Ein- & Ausgabefunktionen) für den Compiler durch den Inhalt der angesprochenen Systemdatei ersetzt wird. Weiterhin werden symbolische Konstanten mit # define ... als Platzhalter (z.B. # define PI 3.14 oder # define MAX 10) festgelegt. Danach kann der Compiler seine Aufgabe wahrnehmen. |
Compiler | Ein Programm in einer höheren Programmiersprache ist auf einem Rechner nicht automatisch lauffähig, sondern der mit dem Editor erstellte Sourcefile/Quellcode muss in den sogenannten Objektcode übertragen werden, d.h. er wird mit Hilfe eines Compilers (engl.: to compile = zusammenstellen) in die Maschinensprache des Trägersystems übersetzt. Dabei werden verschiedene Prüfungen bezüglich der Korrektheit des übergebenen Quellcodes durchgeführt und eventuelle Verstöße durch festgelegte Fehlermeldungen und Zeilenangabe angezeigt. Einige Compiler mahnen zudem durch Warnungen auch formal korrekte Programmcodes an, wenn problematische Anweisungen existieren (z.B "the variable schnick is not used in the programme"). Insgesamt können * 3 Fehlertypen auftreten, wobei der Compiler allerdings nur zwei erkennt. Bei der Fehlerkorrektur ist es sinnvoll strikt nach der Reihenfolge vorzugehen, die der Compiler gemeldet hat, da Folgefehler aufgrund vorheriger Fehler mitangezeigt werden. War die Analyse erfolgreich wird nun die Objektdatei angelegt. |
Linker | Umfangreiche Projekte bestehen meistens aus verschiedenen bereits compilierten Objektdateien. Die Montage zu einem fertigen Gesamtprogramm übernimmt nun der Linker (engl.: to link = verbinden). Er bindet sogenannte Bibliotheksdateien in den Gesamtcode ein. Zudem prüft er, ob der Quelltext auf eine Funktion oder Datei verweist, die es eventuell gar nicht gibt. War die Analyse erfolgreich wird nun endgültig die fertige und funktionsfähige exe-Datei (Programm) angelegt. |
Debugger | Der Debugger dient zum (schrittweisen) Testen und Ausführen des Programms, wodurch nicht nur semantische Fehler erkannt werden können. So kann man auch Einflussgrößen manuell ändern und die daraus resultierenden Auswirkungen bzw. Veränderungen beobachten und analysieren. Diese Möglichkeit der Interaktion ist auch aus didaktischer Sicht zum Erlernen der Funktionsweise einer Programmiersprache sehr hilfreich. |
Informationen zu Datentypen: Wertebereiche und Speicherplatz
Mit dem Header limits.h können die jeweiligen Wertebreiche der Datentypen (char und int) abgerufen werden. Download: PDF-Datei des Quellcodes und ZIP-Datei des Quellcodes und des Programms. |
Thema | Aufgaben und Problemstellungen | Download (Sourcecode & Programm & Arbeitsblatt mit Lösungen) |
|||||||||||||||||||
Sequenzen |
1.) Flächengeometrie Von einem Rechteck seien die Länge und die Breite gegeben. Erstellen Sie ein Programm, das die Fläche, den Umfang und die Länge der Diagonalen berechnet. Lösung |
Sequenzen (Zip)
Sequenzen (Pdf) |
|||||||||||||||||||
2.) Lohnberechnung Mit Hilfe des Stundenlohns, der Anzahl der Arbeitsstunden und der Überstunden soll für einen Arbeitnehmer der Wochenlohn berechnet werden. Dabei werden die Überstunden mit einem Zuschlag von 25 % bezahlt. Für Steuern und Sozialversicherungen werden 40 % des Betrages abgezogen, der sich ergibt, wenn man den Bruttolohn um einen persönlichen Freibetrag vermindert. Das Computerprogramm soll den Bruttolohn, die Abzüge und den Nettolohn berechnen. Lösung |
|||||||||||||||||||||
3.) Stereometrie Von einem Quader seien die Kantenlängen a, b und c gegeben. Erstellen Sie ein Programm, das die Oberfläche, die Länge des Kantenmodells, das Volumen und die Länge der Raumdiagonalen berechnet. Lösung |
|||||||||||||||||||||
4.) Vertauschen von Variablenwerten Schreiben Sie ein Programm, das folgende Aufgabe löst: Als Variablen x und y sind Zahlenwerte einzugeben. Danach sollen die Inhalte von x und y vertauscht und in dieser Form ausgegeben werden. Lösung |
|||||||||||||||||||||
5.) Satz des Pythagoras Bei einem rechtwinkligen Dreieck sind die Katheten gegeben. Gesucht ist die Hypotenuse. Erstellen Sie dazu ein hilfreiches Programm. Lösung |
|||||||||||||||||||||
6.) Ganzzahldivision mit Rest Dem Computer sollen zwei natürliche Zahlen eingegeben werden. Ausgegeben werden soll, wie oft die zweite Zahl in der ersten enthalten ist und welcher Rest bleibt. Lösung |
|||||||||||||||||||||
Kontrollstrukturen (Teil 1) |
1.) Bestellwert Eine Firma liefert bei einem Bestellwert ab 200 Euro porto- und verpackungsfrei. Für Aufträge unter 200 Euro beträgt die Versandpauschale 5,50 Euro. Erstellen Sie ein Programm, das den Rechnungsbetrag in Abhängigkeit vom Bestellwert ausgibt. Lösung |
Kontrollstrukturen 1 | |||||||||||||||||||
2.) Durchschnittsverbrauch Ein Programm soll nach Eingabe der gefahrenen Kilometer und der Menge des ver-brauchten Benzins den Durchschnittsverbrauch auf 100 km berechnen. Die Berechnung darf allerdings nur erfolgen, wenn überhaupt Kilometer zurückgelegt wurden; ansonsten soll eine sinnvolle Fehlermeldung ausgegeben werden. Lösung |
|||||||||||||||||||||
3.) Dreieckkonstruktion Ein Dreieck lässt sich aus den Seiten a, b und c konstruieren, wenn die Dreiecksungleichungen a + b > c, a + c > b und b + c > a erfüllt sind. Schreiben Sie ein Programm, das bei den einzugebenden Seiten überprüft, ob sich das Dreieck konstruieren lässt. Lösung |
|||||||||||||||||||||
4.) Firma Kleinvieh (macht auch Mist) Die Firma Kleinvieh (macht auch Mist) erhebt bei einem Bestellwert unter 100 Euro einen Porto- und Verpackungsanteil von 5,50 Euro, von 100 bis 200 Euro einen Betrag von 3 Euro. Bei einem Betrag über 200 Euro werden keine Spesen berechnet. Ein Programm soll bei bekannter Auftragssumme den Rechnungsbetrag ausgeben. Lösung |
|||||||||||||||||||||
5.) Familie Knödel & das Kindergeld Die Familie Knödel erhält Kindergeld nach folgender einkommensabhängiger Tabelle.
Es ist ein Programm gesucht, das nach Eingabe der Kinderzahl und des Einkommens das zu zahlende Kindergeld berechnet Lösung |
|||||||||||||||||||||
Kontrollstrukturen (Teil 2) |
1.) Beitragsrückerstattung Eine Versicherung erstattet ihren Mitgliedern einen Teil des Jahresbeitrags zurück, und zwar bei mehr als 5-jähriger Mitgliedschaft 9 %, ansonsten nur 4 %. Die Rückerstattungsbeträge sollen berechnet und vom Beitrag des laufenden Jahres abgezogen werden. Lösung |
Kontrollstrukturen 2 | |||||||||||||||||||
2.) Der automatische Türsteher Vor dem Eintritt in ein Bistro verlangt der automatische Türsteher die Antwort "Ja" oder "Nein" auf die drei folgenden Fragen: 1.) Haben Sie Hunger? 2.) Haben Sie Durst? 3.) Haben Sie Geld? Nur Gästen, die Geld haben und außerdem Hunger oder Durst mitbringen, wird mit "Herzlich willkommen" geöffnet, den anderen wird mit "Kein Zutritt!" der Zugang verwehrt. Lösung |
|||||||||||||||||||||
3.) Das Sontagsproblem Der Computer soll helfen, ein häufig auftretendes Problem zu lösen: Was mache ich am Sonntag Nachmittag? Die Entscheidung soll vom Wetter abhängig gemacht werden und davon, ob die Freundin bzw. der Freund Zeit hat. Das Programm soll folgende Baumstruktur abbilden: ![]() Lösung |
|||||||||||||||||||||
4.) Die Teilerprobe Dem Computer werden zwei natürliche Zahlen a und b eingegeben. Der Rechner soll prüfen, ob b ein Teiler von a ist und einen entsprechenden Text ausgeben. Lösung |
|||||||||||||||||||||
5.) Rechtwinkliges Dreieck Nach Eingabe der drei Seitenlängen a, b und c eines Dreiecks soll ein Programm feststellen, ob es sich um ein rechtwinkliges Dreieck handelt oder nicht. Lösung |
|||||||||||||||||||||
6.) Versicherung mit Selbstbeteiligung Bei einer Schadensversicherung hat der Versicherte bei Schäden über 100 Euro 20 % der Schadenssumme, mindestens jedoch 100 Euro selbst zu tragen. Erstellen Sie ein Programm, das nach Eingabe der Schadenshöhe den Anteil des Versicherten und die Zahlung der Versicherung ausgibt. Lösung |
|||||||||||||||||||||
7.) Verdienst und Prämie Eine Firma bezahlt ihre Verkäufer im Außendienst nach folgender Vereinbarung: Der monatliche Verdienst beträgt 20 % des monatlichen Verkaufsumsatzes. Übersteigt dieser Umsatz 5000 Euro, so erhält der Verkäufer zusätzlich noch 11,5 % des Mehrbetrages als Erfolgsprämie. Schreiben Sie ein Programm, das den Verdienst und gegebenenfalls die Prämie nach Eingabe des Monatsumsatzes ausgibt. Lösung |
|||||||||||||||||||||
8.) Statistik Gesucht ist ein Programm, das nach Eingabe von drei beliebigen reellen Zahlen, die kleinste und die größte eingegebene Zahl sowie den Mittelwert der drei Zahlen ausgibt. Lösung |
|||||||||||||||||||||
9.) Energietarife Ein Elektrizitätswerk bietet drei Tarife an: Tarif A: monatl. Grundgebühr für die ersten beiden Wohnräume zusammen 7,30 Euro, für jeden weiteren Wohnraum 1,85 Euro. Kosten pro kWh: 0,21 Euro. Tarif B: monatl. Grundgebühr für die ersten beiden Wohnräume zusammen 12,80 Euro, für jeden weiteren Wohnraum 2,55 Euro. Kosten pro kWh: 0,17 Euro. Tarif C: keine Grundgebühr; Kosten pro kWh: 0,83 Euro. Nach Eingabe der Anzahl der Wohnräume und dem monatlichen Verbrauch sollen der günstigste Tarif ermittelt werden und die entstehenden Kosten ausgegeben werden. Lösung |
|||||||||||||||||||||
10.) Abschreibungen Abschreibungen mit Excel- und Cpp-Quellcodes im Vergleich Lösung |
|||||||||||||||||||||
Mehrseitige Kontrollstrukturen |
1.) Beitragsrückerstattung Eine Firma erstattet ihre Mitgliedern einen Teil des Jahresbeitrages entsprechend folgender Tabelle zurück:
Die Rückerstattungsbeträge sollen berechnet und vom Beitrag des laufenden Jahres abgezogen werden. Lösung |
Mehrseitige Auswahl | |||||||||||||||||||
2.) Mengenrabatt Ein Großhändler räumt beim Kauf von Taschenrechnern (Stückpreis: 9,95 Euro) Mengenrabatte nach folgender Tabelle ein:
Das Programm soll nach Eingabe der Stückzahl und des Einzelpreises eine Rechnung mit den beiden Angaben, dem Gesamtpreis, dem Mengenrabatt, der Mehrwertsteuer und dem Endpreis ausgeben. Lösung |
|||||||||||||||||||||
3.) Portoberechnung Gesucht ist ein Programm zur Portoberechnung bei Briefen. Nach Eingabe der notwendigen Daten soll die Höhe des Portos ausgegeben werden.
Lösung | |||||||||||||||||||||
4.) Taschenrechner Programmieren Sie einen Taschenrechner mit folgenden Funktionen: Addition, Subtraktion, Multiplikation, Division, Potenzen, Modulo und Umrechnungsfunktion einer Dezimalzahl in das Hexadezimalsystem. Lösung |
|||||||||||||||||||||
Schleifen |
Fragestellungen:
|
Schleifen (Zip-Version) | |||||||||||||||||||
Funktionen |
Themen:
|
Download der Arbeitsaufträge und der Quelltexte | |||||||||||||||||||
Array-Strukturen
(Teil 1: eindimensional) |
Fragestellungen:
|
Download der Arbeitsaufträge und der Quelltexte | |||||||||||||||||||
Array-Strukturen
(Teil 2: mehrdimensional) |
Fragestellungen:
|
Download der Arbeitsaufträge und der Quelltexte | |||||||||||||||||||
Array-Strukturen
(Teil 3: Strings) |
Fragestellungen:
|
Download der Arbeitsaufträge und der Quelltexte | |||||||||||||||||||
Sonderfälle |
Fragestellungen:
|
Download der Arbeitsaufträge und der Quelltexte | |||||||||||||||||||
Klassenprogrammierung (OOP) |
Themen:
|
Download der Arbeitsaufträge und der Quelltexte | |||||||||||||||||||
Zufallszahlengenerator | Themen: | Download der Arbeitsaufträge und der Quelltexte |