1 Vom Problem zum Programm



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

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

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Klausur in Programmieren

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

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

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Programmierkurs Java

Informatik Repetitorium SS Volker Jaedicke

Anleitung über den Umgang mit Schildern

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Grundlagen der Theoretischen Informatik, SoSe 2008

Java Kurs für Anfänger Einheit 5 Methoden

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Informatik Grundlagen, WS04, Seminar 13

Der Gabelstapler: Wie? Was? Wer? Wo?

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

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

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

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

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

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

5. Übung: PHP-Grundlagen

Ingenieurinformatik Diplom-FA (C-Programmierung)

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Zählen von Objekten einer bestimmten Klasse

Fallunterscheidung: if-statement

Statuten in leichter Sprache

Kontrollstrukturen und Funktionen in C

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

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

Geld Verdienen im Internet leicht gemacht

Hochschule München, FK 03 FA SS Ingenieurinformatik

2A Basistechniken: Weitere Aufgaben

Klausur in Programmieren

Einführung in die Programmierung

Professionelle Seminare im Bereich MS-Office

Studienplatzbeschaffung

Stammdatenanlage über den Einrichtungsassistenten

Einführung in die Programmierung

Einführung in die Java- Programmierung

Erstellen von x-y-diagrammen in OpenOffice.calc

Übung 9 - Lösungsvorschlag

Zm Eingewöhnen Aufgabe 1 Schreiben Sie ein Programm, daß Ihren Namen in einem Fenster ausgibt.

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

5. Tutorium zu Programmieren

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

4.1 Wie bediene ich das Webportal?

Java-Programmierung mit NetBeans

Stand: Adressnummern ändern Modulbeschreibung

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Was ist das Budget für Arbeit?

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Mediator 9 - Lernprogramm

Was man mit dem Computer alles machen kann

Repetitionsaufgaben Wurzelgleichungen

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

EINFACHES HAUSHALT- KASSABUCH

Stundenerfassung Version 1.8

Fakultät Angewandte Informatik Lehrprofessur für Informatik

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Enigmail Konfiguration

Objektorientierte Programmierung

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Prüfung Computation, Programming

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Programmieren Tutorium

Woche 1: Was ist NLP? Die Geschichte des NLP.

Das Persönliche Budget in verständlicher Sprache

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Die Größe von Flächen vergleichen

Was ich als Bürgermeister für Lübbecke tun möchte

Erstellen der Barcode-Etiketten:

Klausur in Programmieren

Erfahrungen mit Hartz IV- Empfängern

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen.

Programmierung in C. Grundlagen. Stefan Kallerhoff

Version 0.3. Installation von MinGW und Eclipse CDT

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und -Adresse für den Fall, dass die Diskette nicht lesbar ist.

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Das Leitbild vom Verein WIR

Vorwissen der SuS erfassen. Positive/Negative Aspekte von Online-Spielen feststellen. Urteilsfähigkeit der SuS trainieren.

Angewandte Mathematik und Programmierung

INNER WHEEL DEUTSCHLAND

Hinweise in Leichter Sprache zum Vertrag über das Betreute Wohnen

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Graphic Coding. Klausur. 9. Februar Kurs A

Transkript:

Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren Gibt es Unklarheiten? Wenn ja, zuerst klären. Verstehe ich die Aufgabenstellung? Wenn nicht, nachfragen! Was sind meine Voraussetzungen? Was ist mein Ziel? Sinnvolle Teilaufgaben einteilen Ist es möglich, die Aufgabe in Teilaufgaben zu zerlegen? Wenn ja, werden diese später Funktionen im Programm. Was geht herein, was kommt heraus? Für jede Teilaufgabe/Funktion: Was bekommt sie als Eingabe, also als Parameter übergeben? Gibt sie ein Ergebnis zurück? Wenn ja, als Rückgabewert oder indem ein (Zeiger-) Parameter überschrieben wird? Welche Typen haben die Parameter und die Rückgabwerte? Wenn Funktionen, ihre Parameter und ihre Rückgabewerte festehen, können die Funktionsköpfe sowie die geschweiften Klammern für den Funktionskörper bereits in C programmiert werden: rückgabetyp funktionsname(parametertyp1 parameter1, parametertyp2 parameter2) Beispiel: unsigned long fakultaet(int zahl) Zu jeder Funktion einen Kommentar schreiben, der angibt, was die Funktion tut (kurze Beschreibung), welche Parameter sie erwartet (Bedeutung der Parameter) und was sie zurückgibt. Außerdem können der Kopf des Hauptprogramms sowie die geschweiften Klammern in das C-Programm geschrieben werden:

Was soll das Hauptprogramm tun? Welche Variablen werden benötigt? Welchen Typ haben die Variablen? Haben die Variablen einen Anfangswert? Müssen Werte mit scanf() vom Benutzer erfragt werden? Müssen Werte ausgegeben werden? In beiden Fällen: <stdio.h> einbinden, d.h. #include <stdio.h> an den Anfang des C- Programms schreiben. Werden Zufallszahlen oder andere Hilfsroutinen wie qsort() oder bsearch() benötigt? Dann die entsprechende Bibliothek, z.b. <stdlib.h> einbinden. In welcher Reihenfolge laufen die einzelnen Programmschritte ab, d.h., in welcher Reihenfolge werden die Funktionen abgearbeitet? So weit wie möglich C-Code für das Hauptprogramm auffüllen, d.h. Variablendeklarationen, Variableninitialisierungen, Einlesen von Werten, Funktionsaufrufe, etc. Wenn man sich noch nicht im klaren darüber ist, wie einzelne Teile der Aufgabenstellung zu realisieren sind, schreibt man an diese Stelle im Programm zunächst einen Kommentar, der beschreibt, was dort ablaufen soll. Generell kann man nie zu viele Kommentare schreiben!!! Nachdem der Grobablauf im Hauptprogramm klar ist, werden die Funktionen ausprogrammiert, d.h. sie werden mit C-Code gefüllt, der ihrer Aufgabe entspricht. Dabei muss genau wie für das Hauptprogramm überlegt werden,was die Funktion tun soll. Werden Hilfsroutinen aus Bibliotheken benötigt, die noch nicht im Programm eingebunden sind, die jeweilige Bibliothek hinzufügen! Kompilieren und Fehler korrigieren, Verbesserungen, etc. Anmerkungen: wenn möglich, bereits nach jeder Funktion testen, ob das Programm funktioniert, d.h. das Programm schrittweise aufbauen nie versuchen, alles auf einmal zu erschlagen immer erst versuchen, eine einfache Lösung zu programmieren und das Programm dann zu erweitern

2 Beispiele 2.1 Fakultaet Aufgabenstellung: Schreibt ein Programm, das die Fakultaet einer Zahl n berechnet. Die Zahl soll vom Benutzer erfragt werden. Aufgabenstellung: klar Voraussetzungen: Zahl n Ergebnis: Fakultaet von n Sinnvolle Teilaufgabe: Berechnung der Fakultaet in einer Funktion (wiederverwendbar!) Parameter: Zahl n, natürliche Zahl, also int Rückgabewert: Fakultaet von n, große natürliche Zahl, am Besten unsigned long Aussehen der Funktion: unsigned long fakultaet(int n) Kommentar hinzufügen: /* fakultaet berechnet die Fakultaet einer Zahl /* Parameter: die Zahl */ /* Rückgabewert: die Fakultaet */ Hauptprogramm zufügen: Ablauf des Hauptprogramm: eine Variable für die Zahl, die eingelesen werden soll, Typ int eine Variable für das Ergebnis, Typ unsigned long Zahl wird mit scanf() eingelesen und nach der Berechnung ausgelesen Hauptprogramm programmieren: #include <stdio.h> int zahl; unsigned long ergebnis; printf( Geben Sie eine Zahl ein: ); scanf( %d, &zahl); ergebnis = fakultaet(zahl); printf( Fakultaet von %d ist %u!\n, zahl, ergebnis);

Funktion ausprogrammieren: unsigned long fakultaet(int zahl) unsigned long ergebnis; if (zahl > 1) ergebnis = zahl * fakultaet(n-1); else ergebnis = 1; return ergebnis; 2.2 Aufgabe 5 Übungszettel 4 Aufgabenstellung: klar Voraussetzung: zwei Arrays und zwei Zeiger auf diese Arrays Ziel: Vergleichen und Einlesen, bis der Benutzer nicht mehr möchte Sinnvolle Teilaufgaben: - Einlesen des neuen Vergleichsarrays - Vergleichen der beiden Arrays - Abfrage, ob noch eine Runde durchgeführt werden soll oder nicht, Zeiger vertauschen 1. Teilaufgabe: Einlesen Parameter: Zeiger auf das Array, Typ Zeiger auf int-array, Laenge des Arrays, Typ int Rückgabewert: keiner 2. Teilaufgabe: Vergleichen Parameter: Zeiger auf die zu vergleichenden Arrays, Typ Zeiger auf int-arrays, Laenge der Arrays, Typ int Rückgabewert: keiner, da die Änderungen nur auf dem Bildschirm dargestellt werden 3. Teilaufgabe: Weitere Runden Parameter: Zeiger auf die zu vergleichenden Arrays, Typ Zeiger auf die int-array Zeiger Rückgabewert: 0 wenn ja, -1 wenn nein, also Typ int Funktionen: void eingeben(int *array, int laenge) void vergleichen(int *array1, int *array2, int laenge) int neuerunde(int **array1, int **array2) Kommentare an jede Funktion schreiben:

/* eingeben dient dazu, Werte in ein Array einzulesen /* die Werte werden vom Benutzer eingegeben und mit scanf() eingelesen*/ /* Parameter: das Array, kein Rückgabewert */... Hauptprogramm zufügen: Ablauf des Hauptprogramms: zwei Arrays vom Typ int anlegen, die Größe des Arrays durch ein #define MAX 10 festlegen (bessere Wiederverwendbarkeit) zwei Zeiger auf Arrays vom Typ int festlegen und mit jeweils einem der Arrays initialisieren das Array, das zuerst zum Vergleichen dient, mit Nullen initialisieren in einer do-while-schleife zunächst die Funktion eingeben() (Einlesen der Vergleichswerte) und dann die Funktion vergleichen() (Vergleichen der Arrays) aufrufen Schleife bricht ab, wenn neuerunde() -1 zurückgibt Hauptprogramm programmieren: s. Lösung zu Übungszettel 5 Ablauf der Funktion eingeben(): Zählervariable deklarieren, Typ int in einer for-schleife die Werte für das Array einlesen Ablauf der Funktion vergleichen(): Zählervariable deklarieren, Typ int in einer for-schleife die Werte für das Array vergleichen und bei Unterschieden die Stelle (d.h. den Index im Array) ausgeben Ablauf der Funktion neuerunde(): eine Variable vom Typ char für die Antwort des Benutzers ( j für neue Runde, sonst nicht) eine Hilfvarible vom Typ Zeiger auf int-array, falls die Zeiger getauscht werden müssen den Benutzter mit printf() fragen, ob er noch eine Runde machen möchte die Antwort mit scanf() einlesen wenn der Benutzer j antwortet, die Zeiger auf die int-arrays tauschen und 0 zurückgeben wenn der Benutzer etwas anderes antwortet, aufhören, d.h. -1 zurückgeben Funktionen ausprogrammieren: s. Lösung zu Übungszettel 5