Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

Ähnliche Dokumente
int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben

Die Formel für die Standardabweichung lautet (ohne die Wurzel haben wir die Varianz):

Viel Erfolg bei der Bearbeitung der Aufgaben!

Programmieren in C (Übungsblatt 1)

1.8.5 Wiederholungen. Beispiele Unendliche Schleife: 1.8 Kontrollstrukturen 75. ( Bedingung ) AnweisungOderBlock. ja Anweisung. Bedingung erfüllt?

Programmieren in C (Übungsblatt 1)

Praktikum Ingenieurinformatik. Termin 2a. Schleifen und Verzweigungen in C und mit MATLAB

Programmieren in C (Übungsblatt 1)

Herzlich willkommen!

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

DAP2 Praktikum Blatt 2

Klausur: Informatik, am 11. Juli 2013 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Ausgabe:

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Klausur: Informatik, am 11. Juli 2013 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Elementare Sortierverfahren

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

3. Hausübung Algorithmen und Datenstrukturen

Informatik 1 für Nebenfachstudierende Beispiele für Klausuraufgaben

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

JAVA - Suchen - Sortieren

In diesr Schachtel befindet sich ein Zettel, auf dem ein Wert oder eine Zeichenfolge stehen kann, z.b. 5.

Konstruktor. public Rational(int i) { Zaehler = i; Nenner = 1; }

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert

Pseudo-Programmiersprache

Übung Algorithmen und Datenstrukturen

Datenstrukturen Kurzanleitung

C++ - Einführung in die Programmiersprache Schleifen

Klausur Informatik WS 2012/13

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 9. Sortieren

Programmierung mit C Algorithmen

Grundlagen. Kapitel 1

Einfache Arrays. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Hochschule Darmstadt Informatik-Praktikum SS 2018 EIT Bachelor 3. Aufgabenblatt Funktionen - Unterprogramme

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Elementare Datentypen in C++

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Algorithmen und Datenstrukturen

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Kap 7. Funktionen und Arrays

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

GI Vektoren

Übungspaket 14 Eindimensionale Arrays

Thema der Unterrichtseinheit: Sortieralgorithmus Bubblesort (Sortieren durch Vertauschen)

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Einstieg in die Informatik mit Java

einlesen n > 0? Ausgabe Negative Zahl

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Programmierkurs C++ Datenstrukturen Seite 1

Probeklausur: Programmierung WS04/05

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Interne Sortierverfahren

Schleifen: Immer wieder dasselbe tun

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

Nachname:... Vorname:... MatrNr.:... Klausur PR2

3.2 Datentypen und Methoden

Grundlegende Sortieralgorithmen

C Spickzettel: Was haben wir bisher von C verwendet?

Übung Datenstrukturen. Sortieren

Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test

Klausurvorbereitung Lösung

Informatik 1 ( ) D-MAVT F2010. Pointer, Structs, Sortieren. Yves Brise Übungsstunde 6

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Wiederholungen / Schleifen

10 Die Programmiersprache C99: Zusammenfassung

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

Aufgabe (Schreibtischtest, Algorithmenanalyse)

Kurze Einführung in die Programmiersprache C++ und in Root

Grundlagen der C++ und der Java-Programmierung

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

+ C - Array (Vektoren, Felder)

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Kontrollstrukturen -- Schleifen und Wiederholungen

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

float *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses

printf("%c \n", 'd'); printf("%lx \n", 32L); printf("%o \n", 64); printf("%f \n", 1.0E-2); printf("%d \n", '\r'); printf("%f \n", 1.0/2.

Struktogramme. (6.) Ermitteln Sie den Wert von a und b aus dem Struktogramm: Struktogramme S. 1/3

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Verhalten. Def. und Nutzen von Verhalten. Pseudocode Schreibtischtest. Algorithmen

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Übungspaket 23 Mehrdimensionale Arrays

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Objektorientierte Programmierung

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

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

Grundlegende Sortieralgorithmen

Transkript:

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: 15.01.2007 Klasse: GY 05 c Fach: Informationsverarbeitung (LK) Themen: C++ (Schleifen; Funktionen; ein- & mehrdimensionale Arrays; Zufallszahlen; Sortierverfahren) Aufgabe 1: Verständnisfragen zu Grundlagen Cpp 1.) Geben Sie ein Beispiel einer Funktion, die Anweisungen enthält, aber keinen Return-Wert liefert. Die Funktion main ( ) hat den Returnwert return 0. 2.) Mit welcher Standardfunktion kann durch wiederholte Aufrufe eine Folge von Zufallszahlen erzeugt werden? Wie lautet der dazu notwendige Header? Funktion rand ( ) mit dem Header stdlib.h bzw. time.h. 3.) Beim Aufruf einer Standardfunktion benötigt der Compiler keine weiteren Informationen? den Prototyp der Funktion? die Definition der Funktion? 4.) Welchen Rückgabetyp hat der Ausdruck calc (7, 12.9), wenn er gemäß dem Prototyp der Funktion double calc (int n, float x) deklariert ist? Der Rückgabetyp lautet double. 5.) In welchem Verzeichnis sucht der Compiler folgende Header-Datei: <iostream.h> Der Compiler sucht die Datei im include-verzeichnis des Systemverzeichnisses Cpp, das durch den Adressierungspfad bei der Installation eingerichtet wurde. 6.) Erklären Sie hierzu den Unterschied, wenn die Header-Datei in Hochkommas angegeben würde: iostream.h Hier wird die Datei zuerst im Verzeichnis gesucht, in dem auch das erstellte Programm liegt.

Aufgabe 2: Funktionen I - Fehlersuche bei Funktionen Welche Fehler beinhalten die folgenden Prototypen? 1.) double calculate double x, float y ; Korrektur : Klammern ( ) fehlen double calculate ( double x, float y ) ; 2.) int auswahl(int a, b) ; Korrektur : jede Variable muss eigens mit ihrem Variablemtyp deklariert werden int auswahl ( int a, int b) ; Aufgabe 3: Funktionen II - Erstellen von Funktionen 1.) Die Funktion sum() soll die Summe von drei double-werten als Return-Ergebnis liefern. => Quelltext sum() anzeigen => Programm ausführen => Quelltext Programm anzeigen 2.) Die Funktion ggt() soll den größten gemeinsamen Teiler zweier Ganzzahlen ermitteln und als Return-Wert ausgeben => Quelltext ggt() anzeigen => Programm ausführen => Quelltext Programm anzeigen Aufgabe 4: Freie Syntaxwahl Erstellen Sie ein Programm, das nach Eingabe einer mindestens vierstelligen Sekundenanzahl die Anzahl der Stunden, Minuten und Sekunden ausgibt. => Quelltext anzeigen => Programm ausführen

Aufgabe 5: Schleifen I Wandeln Sie die folgende for-schleife in eine while-schleife um. for (int i = 1 ; i <= n; i++) cout << i*i << ; while (i <= n) cout << i * i << " "; i = i + 1; Aufgabe 6: Quelltextinterpretation Erläutern Sie kurz den Syntaxausschnitt des folgenden Programms: Zeile 31: Zählerschleife; Startvariable versuch mit dem Wert 1 Zeile 33: Erzeugung ganzzahliger Zufallszahlen: 0 oder 1 (Simulation eines Münzwurfs) Zeile 35: Addition der Zufallszahlen Zeile 40: Ermittlung der relativen Häufigkeit der Zahl 1 (z.b. relative Häufigkeit für Wappen)

Aufgabe 7: Sortieralgorithmen Hier ist die Syntax eines Ihnen bekannten Sortieralgorithmus gegeben. a) Wie heißt der Sortieralgorithmus? b) Erklären Sie die Vorgehensweise allgemein und führen Sie das Sortierprinzip anhand folgender 5 Zahlenwerte durch: 12 5 67 23-12 c) Erstellen Sie zu dem gegebenen Sortieralgorithmus das Struktogramm. Quelltext-Auszug: int i,k,t,n; for (i=n-1; i>0; i--) for (k=0; k<i; k++) if (daten[k] > daten[k+1]) t = daten[k]; daten[k] = daten[k+1]; daten[k+1] = t; a) Es handelt sich um den Bubblesort. b) Verfahrensbeschreibung: Idee: Die zu sortierenden Elemente im Array steigen wie Luftblasen im Wasser auf. ❶ Durchlaufe den Array in aufsteigender Reihenfolge und betrachte dabei immer zwei benachbarte Elemente. ❷ Wenn zwei Elemente in falscher Reihenfolge stehen, dann werden sie vertauscht. Nach diesem Durchlauf ist in jedem Fall das größte Element am Ende des Arrays. ❸ Wiederhole den obigen Verfahrensschritt so lange, bis das Array vollständig sortiert ist.

Beispiel: 12 5 67 23 12 (0-1): 12-5 (1-2): 12-67 (2-3): 67-23 (3-4): 67 12 1. Durchlauf beendet: 5 12 23 12 67 (0-1): 5-12 (1-2): 12-23 (2-3): 23 12 2. Durchlauf beendet: 5 12 12 23 67 (0-1): 5-12 (1-2): 12 12 3. Durchlauf beendet: 5 12 12 23 67 (0-1): 5 12 4. Durchlauf beendet: 5 12 12 23 67 c) Sortieren nach BubbleSort: Gegeben: int feld [Max]; int i, k, hilf, n; for i von n-1 bis i > 0; for k von 0 bis k < i; k++ if (feld[k] > feld[k+1]) ja nein feld [k] mit feld [k+1] vertauschen Aufgabe 8: Ein- und mehrdimensionale Arrays 1.) Definieren Sie den Begriff Array Unter einem Array versteht man eine Liste bzw. mehrdimensionale Datenstruktur mit Daten des gleichen Variablentyps. 2.) Wie erfolgt die Erzeugung eines Arrays per Initialisierung? liste[ ] = 12,23,4,6,...

Die folgenden Arbeitsschritte solle alle in einem einzigen Programm erfasst werden. Bitte kommentieren Sie hierzu alle Teilschritte und Einzelsequenzen im Sinne eines guten Programmierstils aus. 3.) Erzeugen Sie ein eindimensionales Array mit 10 Werten aus dem Bereich [1 ; 50] per Zufallsgenerator über eine for-schleife und lassen sie die Werte anzeigen. Hinweis: Initialisierung der ZG: srand((unsigned int)time(null)); 4.) Lassen Sie dieses Array nun in umgekehrter Reihenfolge ausgeben. 5.) Ermitteln Sie das Minimum, das Maximum und den Durchschnittswert des Arrays und lassen Sie die Ergebnisse anzeigen. 6.) Erweitern Sie das eindimensionale Array derart, dass Sie nun zu jedem Zahlenwert die Position vergleichbar folgender Tabelle angezeigt bekommen. Position 0 1 2 3 4... Wert 23 3 12 48 37... 7.) Nun soll eine weitere Ergänzung derart erfolgen, dass alle ungeraden Werte, mit einer 0 und alle geraden Werte mit einer 1 dargestellt werden. Position 0 1 2 3 4... Wert 23 3 12 48 37... Auswertung 0 0 1 1 0... 8.) Abschließend sollen die Array-Elemente um jeweils zwei Positionen nach rechts verschoben werden, und die beiden letzten Elemente demzufolge am Anfang erscheinen. => Quelltext anzeigen => Programm ausführen Aufgabe 9: Quellcodesammlung Übertragen Sie alle Quellcodes der erstellten Programme in eine WORD-Datei geordnet nach den Aufgaben mit jeweiligen Überschriften und Zeilennummern vergleiche die jeweiligen Lösungen => Quelltexte als pdf