Wie entsteht ein Computerprogramm?



Ähnliche Dokumente
Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

Programmieren in C Einführung

Kontrollstrukturen, Strukturierte Programmierung

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

1 Vom Problem zum Programm

Übungen zu C++ Kapitel 1

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

VBA-Programmierung: Zusammenfassung

Version 0.3. Installation von MinGW und Eclipse CDT

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

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

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

Verwendung des IDS Backup Systems unter Windows 2000

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Entwurf von Algorithmen - Kontrollstrukturen

Überblick. Lineares Suchen

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

Kontrollstrukturen - Universität Köln

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Kapitel 3. Mein erstes C-Programm

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Buddy - Algorithmus Handbuch für Endnutzer Stand

Text-Zahlen-Formatieren

Java: Vererbung. Teil 3: super()

Grundlagen der Theoretischen Informatik, SoSe 2008

Informationen zur Bedienung des Anrufbeantworters

Programmieren Formulierung eines Algorithmus in einer Programmiersprache

Installationshinweise BEFU 2014

Gesicherte Prozeduren

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Grundbegriffe der Informatik

Primzahlen und RSA-Verschlüsselung

4D Server v12 64-bit Version BETA VERSION

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Arbeiten mit UMLed und Delphi

Ingenieurinformatik Diplom-FA (C-Programmierung)

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

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

Fax einrichten auf Windows XP-PC

Seriendruck mit der Codex-Software

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

1 topologisches Sortieren

Leichte-Sprache-Bilder

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Java Kurs für Anfänger Einheit 5 Methoden

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

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

3. Stored Procedures und PL/SQL

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Anleitung über den Umgang mit Schildern

Windows 10 > Fragen über Fragen

Lehrer: Einschreibemethoden

Einspielanleitung für das Update DdD Cowis backoffice DdD Cowis pos

Programmierkurs Java

Erfolgreiche Verbindung. 3. Anmeldung: Bitte geben Sie Ihren Benutzernamen und Ihr Kennwort ein.

Dokumentation zur Versendung der Statistik Daten

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Um eine fehlerfreie Installation zu gewährleisten sollte vor der Installation der Virenscanner deaktiviert werden.

Kundenleitfaden Installation

Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Dokumentation Typo3. tt - news - Nachrichtenmodul

Mächtigkeit von WHILE-Programmen

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

6. Programmentwicklung

Firmware-Update, CAPI Update

Erstellen eines Formulars

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

Gruppenrichtlinien und Softwareverteilung

Softwaretechnik (Allgemeine Informatik) Überblick

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

How to do? Projekte - Zeiterfassung

Whitebox-Tests: Allgemeines

Wie Sie mit Mastern arbeiten

Windows Server 2008 (R2): Anwendungsplattform

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Zimmertypen. Zimmertypen anlegen

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

Professionelle Seminare im Bereich MS-Office

In den weiterführenden Vorlesungen

Informatik 12 Datenbanken SQL-Einführung

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Grundlagen. Kapitel 1

Anlegen eines DLRG Accounts

Lernfeld 6: Entwickeln und Bereitstellen von Anwendungssystemen Fallbeispiel Baukredit

i:mobile Installation und Produkt-Aktivierung

FrogSure Installation und Konfiguration

FB Informatik. Fehler. Testplan

2. Programmierung in C

Erster Bug: eine Motte

TechNote: Exchange Journaling aktivieren

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Einführung in PHP. (mit Aufgaben)

7 Rechnen mit Polynomen

Transkript:

Wie entsteht ein Computerprogramm Grundstrukturen von Programmen Programmiersprachen Entwicklungsschritte eines Programms Programmdokumentation Seite 1 Telefonanruf-Algorithmus Start Rufnummer bereitstellen Rufnummer eingeben, wählen Verbindung beenden Rufzeichen Meldung "Entschuldigung" murmeln gewünschter Teilnehmer Gespräch; Verbindung beenden Stopp Seite 2

PC-Kauf Ausstattung, Preis festlegen ersten Laden aufsuchen nächsten Laden aufsuchen Ausstattung ok ja Preis ok ja kaufen Seite 3 Algorithmus Definition nach Horowitz / Sahni Ein Algorithmus ist eine endliche Menge von Anweisungen, die (falls man sie ausführt) eine bestimmte Aufgabe lösen. Eigenschaften von Algorithmen: Input: Es gibt keine, eine oder mehrere (Eingabe-)Größen, die extern bereitgestellt werden. Output: Mindestens eine (Ausgabe-)Größe wird erzeugt. Definiertheit: Jede Anweisung muss für sich allein ausführbar und eindeutig sein. Endlichkeit: Wenn die Anweisungen des Algorithmus ausgeführt werden, muss er in allen Fällen nach einer endlichen Zahl von Schritten enden. Effektivität: Für jede Anweisung muss der Aufwand für ihre Ausführung bestimmbar und vorhersagbar sein. Seite 4

Algorithmus weitere Definitionen Ein Algorithmus liegt genau dann vor, wenn gegebene Größen (Eingabegrößen, Aufgaben) auf Grund eines Systems von Regeln (Umformungsregeln) eindeutig in andere Größen (Ausgabegrößen, Lösungen) umgeformt werden. Ein Algorithmus dient stets zur Lösung einer Klasse von Aufgaben einheitlichen Typs. Ein Algorithmus ist ein eindeutig bestimmtes Verfahren unter Anwendung von Grundoperationen über primitiven (gegebenen) Objekten. Seite 5 Beispiel: Sortieren von Zahlen Ausgangssituation: Unsortierte Werteliste 37 12 69 48 51 24 39 28 Algorithmus: Suche kleinsten Wert und seine Position: 12 auf Platz 2 Setze kleinsten Wert an Stelle 1 und den von Stelle 1 auf den bisherigen Platz des kleinsten: 12 37 69 48 51 24 39 28 Wiederhole diese beiden Schritte jeweils für den unsortierten Teil der Liste: 12 24 69 48 51 37 39 28 insgesamt (n-1)-mal 12 24 28 48 51 37 39 69 12 24 28 37 51 48 39 69 12 24 28 37 39 48 51 69 eigentlich fertig! 12 24 28 37 39 48 51 69 12 24 28 37 39 48 51 69 Seite 6

Darstellung von Algorithmen Programmablaufplan (PAP) Eingabe / Ausgabe Unterprogramm-Aufruf Anweisung ja Verzweigung (Alternative) Seite 7 Grundstrukturen: Darstellung von Algorithmen Struktogramm nach Nassi-Shneiderman Sequenz (Folge) Alternative (Verzweigung) ja Entscheidung Zyklus (Schleife) Zyklus-Spezifikation Seite 8

Algorithmus Sortieren von Zahlen (SelectionSort) LIES (anzahl); für i von 1 bis anzahl LIES (zahl[i]); für j von 1 bis (anzahl-1) min=zahl[j]; pos=j; für i von (j+1) bis anzahl zahl[i]<min ja min=zahl[i]; pos=i; zahl[pos]=zahl[j]; zahl[j]=min; für i von 1 bis anzahl SCHREIBE (zahl[i]); Seite 9 Beispiel: Summieren einer festen Anzahl von Werten z.b.: 5 Werte summieren 27+13+22+11+22 = 95 anzahl wert summe zähler summe = 0; zähler = 0; LIES (anzahl); SOLANGE (zähler<anzahl) LIES (wert); summe neu = summe alt + wert; zähler neu = zähler alt + 1; SCHREIBE (summe); Trockentest: anzahl 5 ENDE zähler 0 1 2 3 4 5 wert 27 13 22 11 22 summe 0 27 40 62 73 95 Offene Fragen: Wann wird anzahl festgelegt Was ist zu tun, wenn anzahl am Beginn der Summierung nicht bekannt ist Seite 10

Beispiel: Zählen von bestimmten Werten in einer festen Anzahl von Werten z.b.: Wie oft kommt der Wert "22" vor in den folgenden 5 Werten vor 27 13 22 11 22 Trockentest: anzahl zähler wert vergl wieoft anzahl wert vergl zähler wieoft 5 0 0 22 zähler = 0; wieoft = 0; LIES (anzahl); LIES (vergl); SOLANGE (zähler<anzahl) LIES (wert); ja wert == vergl ENDE 1 2 3 4 5 27 13 22 11 22 1 2 wieoft neu = wieoft alt + 1; zähler neu = zähler alt + 1; SCHREIBE (wieoft); Seite 11 Programmiersprachen Klassifikation Maschinensprachen prozessorabhängige Verschlüsselung von Befehlen, Adressen und Daten als Bitmuster Maschinenorientierte Programmiersprachen (Assembler-Sprachen) prozessor- / assemblerabhängige Verschlüsselung von Befehlen, Adressen und Daten über Symbole ein Assembler-Befehl ergibt einen Maschinenbefehl Problemorientierte Programmiersprachen den zu bearbeitenden (z.b. numerischen, kommerziellen, technischen,...) Problemen angepasste Formulierung von Programmen eine Anweisung ergibt viele Maschinenbefehle portabel, da prozessorunabhängig Seite 12

Programmiersprachen Beispiele Prozedurale Programmiersprachen: ALGOL (ALGOrithmic Language) FORTRAN (FORmula TRANslator) COBOL (COmmon Business Oriented Language) PL/1 (Programming Language 1) PASCAL C Funktionale Programmiersprachen: PROLOG (PROgramming in LOGic) LISP (LISt Processing Language) Seite 13 Programmiersprachen Beispiele Objektorientierte Programmiersprachen: SMALLTALK EIFFEL C++ Java Echtzeit-Programmiersprachen: PEARL Datenbank-Sprachen: SQL (Structured Query Language) Dokumenten- / Datenbeschreibungssprachen: HTML (HyperText Markup Language) XML (extensible Markup Language) Seite 14

Entwicklungsschritte eines Programms Spezifikation der Aufgabenstellung Entwicklung des Algorithmus Datenentwurf Eingabedaten, Ausgabedaten, Zwischenwerte / Konstanten, Variablen Datentypen (Wertebereiche, Genauigkeit,...) / Datenstrukturen Entwurf der Programmstruktur vom Allgemeinen zum Konkreten Zerlegung in Teilprogramme Eingabe - Verarbeitung - Ausgabe Implementierung Formulierung in einer Programmiersprache Eingabe Übersetzung Test Dokumentation, Übergabe Seite 15 Ein einfaches Programm Kugeltank-Berechnung Aufgabenstellung: Eingabe von Durchmesser und Wandstärke Berechnung von Volumen, Oberfläche und Masse Welches Volumen Welche Oberfläche Masse: Welches Material Berechnungsformeln: V i = 4/3 * π * r 3 i A a = 4 * π * r 2 a m = ( V a - V i ) * ρ Fragen / Probleme: Eingabedaten Maßeinheiten Umrechnungen Konstanten / Variablen Wandstärke Außendurchmesser Seite 16

Daten Konstanten und Variablen Konstante: Wert wird zur Entwicklungszeit eines Algorithmus festgelegt hat bei jeder Benutzung des Algorithmus den gleichen Wert, der beim Programmieren festgelegt wurde Variable: Name der Variablen (Speicherplatz) wird beim Programmieren festgelegt, der Wert aber nicht (ist undefiniert!) Wert wird bei der Benutzung des Algorithmus durch Einlesen oder durch Zuweisung in die Variable übertragen Wert kann sich während der Benutzung ändern Wert muss bei wiederholter Benutzung immer wieder neu in die Variable übertragen werden Seite 17 Kugeltank-Berechnung Das C-Programm #include <stdio.h> void main () { float PI = 3.141592, // Festlegung von Konstanten RHO = 7850.0; // Dichte von Eisen in kg/m^3 int ad, ws; // Aussendurchm., Wandst. in mm float ar,ir, // Aussen-/Innenradius in m avol,ivol, // Aussen-/Innenvolumen in m^3 a, // Oberflaeche in m^2 m; // Masse in t printf("k u g e l t a n k - B e r e c h n u n g\n"); printf("---------------------------------------\n\n\n"); // Parameter-Eingabe printf ("Eingabe der Parameterwerte\n\n"); printf ("Aussendurchmesser in mm: "); scanf ("%d", &ad); printf ("Wandstaerke in mm: "); scanf ("%d", &ws); ar = 0.5*ad/1000; // Berechnungen ir = ar-ws/1000.0; avol = ar*ar*ar*4/3*pi; ivol = ir*ir*ir*4/3*pi; a = ar*ar*4*pi; m = (avol-ivol)*rho/1000; // Ergebnis-Ausgabe printf ("\n\n\nberechnungsergebnisse:\n"); printf (" Innenvolumen = %10.8f m^3\n", ivol); printf (" Oberflaeche = %10.8f m^2\n", a ); printf (" Masse = %10.8f t \n", m ); } Seite 18

Programm-Entwicklung Datenflussplan Quelltext Editor Quellmodul Compiler Systembibliotheken Compilerprotokoll Fehlerliste Objektmodul Linker Linkerprotokoll Fehlerliste Lademodul Seite 19 Programmdokumentation Gliederung Programmkenndaten Programmbezeichnung Autor / -in Aufgabe (Kurzbeschreibung) Gerätebedarf (Rechner,...) Programmbedarf (Betriebssystem,...) Programmiersprache (Compiler,...) Funktion und Aufbau des Programms Aufgabenstellung, Aufgabenlösung, Programmaufbau, Programmablauf, Daten, Anwendungsgrenzen, Datensicherung, Anwendungsbeispiel Installation des Programms Installation, Test Benutzung des Programms Gerätebedarf, Bedienung, Unterbrechungen im Programmablauf, Wiederanlauf, Leistungsmerkmale Seite 20

Fragen zur Überprüfung des Verständnisses 1. Was ist ein Algorithmus 2. Aus welchen Grundstrukturen werden Rechner-Algorithmen konstruiert 3. Worin besteht der Unterschied zwischen einem Algorithmus und einem Rechnerprogramm 4. In welchen Schritten wird ein Rechnerprogramm entwickelt 5. Was wird in einem Rechnerprogramm alles festgelegt 6. Worin besteht der Unterschied zwischen Konstanten und Variablen in einem Rechnerprogramm 7. Welche Arten von Programmiersprachen kennen Sie 8. Welche Programmiersprache(n) "versteht" der Prozessor eines Rechners 9. Warum müssen Rechnerprogramme in aller Regel übersetzt werden 10. Was geschieht beim Test eines Rechnerprogramms Seite 21