Prüfung C++ Altstudiengang Wiederholer SS 2001 (Prof. Sauer)

Ähnliche Dokumente
Informatik Repetitorium SS Volker Jaedicke

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Objektorientiertes Programmieren für Ingenieure

Ziel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind

Zusammengesetzte Datentypen -- Arrays und Strukturen

Klausur in Programmieren

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Angewandte Mathematik und Programmierung

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Programmieren in C/C++ und MATLAB

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

C++-Zusammenfassung. H. Schaudt. August 18, 2005

Parallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr

Deklarationen in C. Prof. Dr. Margarita Esponda

1 Vom Problem zum Programm

Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder

Propädeutikum. Dipl.-Inf. Frank Güttler

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

FB Informatik. Fehler. Testplan

Einführung in die C-Programmierung

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Kurzeinführung in C++

Grundlagen der Programmiersprache C++

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

Grundlagen. Kapitel 1

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

2. Programmierung in C

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Definition: Die Sprache C++ ist die Menge aller korrekter C++-Programme. Theoretischer Aspekt. // mile2km.cpp: Umwandlung von Meilen in Kilometer

PIWIN 1 Übung Blatt 5

Übungen zu C++ Kapitel 1

Einführung in die Programmiersprache C

Propädeutikum zur Programmierung

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Einführung in die C++ Programmierung für Ingenieure

Folge 18 - Vererbung

Es geht los! 1.1 Historisches

C++ für Spieleprogrammierer

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Blöcke und Grand Central Dispatch

Objektorientierte Programmierung. Kapitel 12: Interfaces

Teil IV. Grundlagen der Programmierung

Compiler und Präprozessor (1) Erstellen eines Projektes

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Die Programmiersprache C

II.1.1. Erste Schritte - 1 -

Klausur in Programmieren

Praktikum Betriebssysteme 1. Aufgabe (1)

2.4 Das erste C++-Programm *

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

C kompakt für Java-Programmierer

Institut fu r Informatik

Computergrundlagen Programmieren in C

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters

Programmierkurs Java

Szenario 3: Service mit erweiterter Schnittstelle

Objektorientierte Programmierung OOP Programmieren mit Java

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Proseminar L A TEX Ausarbeitung zum Vortrag L A TEX in der Informatik

Dr. Monika Meiler. Inhalt

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Einführung in die Programmierung (EPR)

Eine Einführung in C-Funktionen

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Informationsverarbeitung im Bauwesen

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: Organisation des Quellcodes 4. Werte- und Referenzsemantik

1. Der Einstieg in Java. Was heißt Programmieren?

Objektorientierte Programmierung mit C++ Vector und List

Aufbau von Programmen/Dateien

1 Visual Basic for Application mit Excel (VBA)

1. Zeilenendkommentare: // geklammerte Kommentare: /*... */ 3. Dokumentationskommentare: /**... */

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Das erste Programm. 3.1 Hello World

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

1. Grundlagen Sortieren Vertauschen Selektion Einfügen Quicksort Suchen...

1. Der Einstieg in Java

2 Einfache Rechnungen

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Programmiervorkurs. Organisation: Steffen Gebert, Alexander Wolff. Tutoren: Jürgen Zöller, Jonathan Stoll. Wintersemester 2012/2013

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Ein erstes Java-Programm

Einführung in die Programmierung

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Probeklausur: Programmierung WS04/05

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

C++ Programmierung. Uwe Naumann. LuFG Informatik 12, RWTH Aachen University, Germany

Mehr zu Datentypen: Felder, Zeiger und Strukturen

Grundlagen der Informatik - 6. Praktikum

Tutorium Java Ein Überblick. Helge Janicke

Transkript:

Prüfung C++ Altstudiengang Wiederholer SS 2001 (Prof. Sauer) Es soll eine Querverweisliste für ein C++ Programm erstellt werden. Ausgangspunkt ist eine Datei, in der ein C++ Programm gespeichert ist. Diese Datei ist in einem Verzeichnis unter dem Namen pr12203.cpp abgelegt. Die Datei hat folgendes Aussehen: #include<iostream.h> #define PI 3.14159265389793 #define quadrat(a) ((a)*(a)) void main() { int ; //float Kreisflaeche; cout<< Zahl eingeben:\n ; cin>>; /* Blockkommentar kriesflaeche = quadrat()*pi; */ cout<< \n Die Kreisflaeche betraegt: <<quadrat()*pi; } Abb1: Die Programm-Textdatei PR12203.CPP Aus dieser Datei ergeben sich für den Querverweis die folgenden Worte: void main int cout cin cout quadrat PI Abb2:Liste der Wörter aus der Textdatei PR12203.CPP 1

Es sind im wesentlichen C++ Schlüsselwörter und die vom Programmierer angegebenen (Programmierer-) Wörter, die hier ermittelt werden sollen. De Wörter sollen allgemein, unabhängig vom vorliegenden Programmtext ermittelt werden, der hier als Beispiel dient. Mit einem anderen Programmquelltext, der andere Programmiererwörter enthällt, soll das Programm ebenfalls funktionieren. Kommentare (Zeilen-,Block-) sind zu überlesen. Literale (Zeichenketten-,Zeichen-,Konstanten) und Zahlen sollen ebenfalls keine Beachtung finden. Präprozessoranweisungen bleiben unberücksichtigt. Zu jedem Wort sind Zeile und Spalte anzugeben, in denen das Wort im Quelltext vorkommt. Weitere Einzelheiten zur Programmanalyse sind im vorgegebenen Quelltext zu einem C++ Programm (vgl. Abb1) und der zugehörigen Wortliste (Abb.2) zu entnehmen. Jedes ermittelte Wort aus der eingelesenen Textdatei soll auf dem Standartausgabegerät (Bildschirm) protokolliert werden, auch wenn es bereits vorgekommen ist. 1.) Aufgabe Gib das C++ Programm an ( Hauptprogramm), das die Worte nach der vorliegenden Spezifikation ermittelt und auf das Standartausgabegerät ausgibt. 2

2.) Aufgabe Die Ausgabe der einzelnen Wörter auf das Standartausgabegerät soll durch einen Aufruf einer Funktion ersetzt werden, die folgendes bewirkt: - Jedes Wort, das im Funktionsaufruf als Argument (neben zwei weiteren Argumenten: Zeilen- und Spaltennummer unter denen das Wort im Programmquelltext vorkommt) auftritt ist in eine Tabelle (sequentielle Liste auf der Basis Array ) aufzunehmen. De Tabelle ist im dynamischen Speicherbereich anzuordnen. - Jeder Tabelleneintrag enthält drei Spalten zu Aufnahme eines Wortes, eines Zählers und eines Verweises auf Zeilen- und Spaltennummer in der das Wort im Quelltext vorkommt. Die Strucktur des Tabelleneintrages soll unter den Namen daten deklariert bzw. definiert sein. Im Zähler ist die An der Vorkommen gespeichert, die die Wörter im Quelltext besitzen. So wird dreimal aus dem Quelltext ermittelt. Das wirdbeim Einfügen in die Tabelle festgestellt und unter zaehler gespeichert. - Für Zeilen und Spalten, unter denen das Wort im Quelltext gefunden wurde, ist in daten ein Verweis auf eine sequentiell verkettete Liste anzugeben. Jedes Listenelement dieser Liste umfast einen Knoten, der die Zeilen- und Spaltennummer enthätl. Die sequentiell verkettete Liste mit Zeilen- und Spaltennummern ist unter dem Namen *ortliste 1 zu deklarieren bzw. definieren. - Das Aufnehmen eines Wortes in die Tabelle übernimmt die Methode einfuegen() des benutzerdefinierten Datentyps (Klasse) seqliste (Tabelle). Eine Instanz zum Aufruf dieser Methode ist im Hauptprogrammabschnitt einzurichten. Der Aufbau der Tabelle hat damit folgende Gestalt: swort zaehler *ortliste void 1 main 1 int 1 3... 6 4 0 6 9 0 8 6 0 8 94 11 13 16 17 0 Abb.3: Speicherstucktur 3

a) Gib den benutzerdefinierten Datentyp mit dem Namen ort für einen Listenknoten einer einfach geketeten Liste an, dessen Elemente die Zeilen und Spaltennummern aufnehmen, unter denen sich die Worte im Quelltext befinden. Es sind alle zur Lösung nötigen Datenelemente und Methoden (z.b. Konstrucktor) vollständig anzugeben. Auch eine Ausgabefunktion ist vorzusehen. Zeilen- und Spaltennummer sind private Datenelemente, der Verweis auf den Nachfolger eines Listenknotens darf public deklariert sein. b) Die Strucktur daten ist zu deklarieren bzw. definieren. Alle Elemente der Stucktur sind öffentlich zugänglich. Methoden sind außerhalb der Deklaration zu definieren (anzugeben). Nur unbedingt zur Lösung der Aufgabe notwendige Methoden sollen ermittelt werden. Eine Ausgabefunktion ist gefordert. c) Die Deklarationder Klasse (Schnittstellenbeschreibung) seqliste (Tabelle) ist anzugeben. Neben privaten Datenelementen sind nur die Deklarationen der zur Lösung der Aufgabe notwendigen Methoden anzugeben. d) Die Methoden zur seqliste sollen nun angegeben werden. Dazu zählt auch die bereits erwähnte Methode zum Einfügen (einfügen() ). e) Die Tabelle soll im Hauptprogrammabschnitt einschließlich der Querverweise durch folgende Anweisung ausgegeben werden. cout << sl ; sl ist eine Instanz der Tabelle (sequentielle Liste). Die Aufgabe soll in folgendem Format erfolgen <1> void <6,4> <1> main <6,9> <1> int <8,4> <3> <8,9> <11,13> <16,17> Vor jedem Wort steht in spitzen Klammern eine Zahl die angibt, wie häufig das Wort im Programmquelltext vorkommt. Danach folgt in der nächsten Zeile das Paar aus Zeilennummer und Spaltennummer, unter der sich ds Wort im Quelltext befindet. In einer Zeile sollen maximal sechs Querverweise stehen können. 4

3.) Aufgabe Die vorliegende Ausgabe ist nicht nach Worten sortiert. Schreibe eine einfache Sortierroutine, sie soll Methode der Klasse seqliste sein, die das Sortieren der Tabelleneinträge vornimmt. Die Ausgabe würde danach folgende Gestalt annehmen: <1> PI <16,23> <1> cin <11,4> <2> cout <10,5> <15,5> <1> int <8,4> <1> main <6,9> <1> quadrat <16,12> <1> void <6,4> <3> <8,9> <11,13> <16,17> Abb4: Nach Worten sortierte Ausgabe Gib die Sortierroutine an. 5