Softwareentwicklung Allgemeines und prozedurale Konstrukte

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

Primzahlen und RSA-Verschlüsselung

Informationsblatt Induktionsbeweis

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

1 topologisches Sortieren

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Grundlagen der Theoretischen Informatik, SoSe 2008

Java-Programmierung mit NetBeans

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

Kontrollstrukturen, Strukturierte Programmierung

Zeichen bei Zahlen entschlüsseln

Wir machen neue Politik für Baden-Württemberg

Erwin Grüner

Professionelle Seminare im Bereich MS-Office

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Wie Sie mit Mastern arbeiten

Menü auf zwei Module verteilt (Joomla 3.4.0)

Arbeiten mit UMLed und Delphi

Wie halte ich Ordnung auf meiner Festplatte?

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

Mediator 9 - Lernprogramm

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Entwurf von Algorithmen - Kontrollstrukturen

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

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Grundbegriffe der Informatik

Leichte-Sprache-Bilder

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

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Konzepte der Informatik

Arbeitsblätter. Sinnvolle Finanzberichte. Seite 19

Kontrollstrukturen - Universität Köln

Probleme beim Arbeiten mit Variablen, Termen und Gleichungen

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Approximation durch Taylorpolynome

Anleitung über den Umgang mit Schildern

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Objektorientierte Programmierung für Anfänger am Beispiel PHP

AutoCAD Dienstprogramm zur Lizenzübertragung

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

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

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

4 Aufzählungen und Listen erstellen

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Anzeige von eingescannten Rechnungen

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

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Bedienungsanleitung Albumdesigner. Neues Projekt: Bestehendes Projekt öffnen:

Tevalo Handbuch v 1.1 vom

Wir machen uns stark! Parlament der Ausgegrenzten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

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

Modellbildungssysteme: Pädagogische und didaktische Ziele

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Lehrer: Einschreibemethoden

Copyright Sophie Streit / Filzweiber / Fertigung eines Filzringes mit Perlen!

4.1 Wie bediene ich das Webportal?

Repetitionsaufgaben Wurzelgleichungen

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Beweisbar sichere Verschlüsselung

Abwesenheitsnotiz im Exchange Server 2010

IINFO Storyboard

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

Erstellen der Barcode-Etiketten:

GEVITAS Farben-Reaktionstest

50 Fragen, um Dir das Rauchen abzugewöhnen 1/6

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

1 Mathematische Grundlagen

Lineare Gleichungssysteme

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

Pfötchenhoffung e.v. Tier Manager

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

7 Rechnen mit Polynomen

Einführungskurs MOODLE Themen:

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Internet online Update (Mozilla Firefox)

Ein Vorwort, das Sie lesen müssen!

Statuten in leichter Sprache

E-Commerce Recht Organisatorisches

Grundlagen der Künstlichen Intelligenz

Auswertung des Jahresabschlusses Bilanzanalyse 2

Anleitung für Autoren auf sv-bofsheim.de

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

BEDIENUNGSANLEITUNG FÜR LIEFERANTEN AUSSCHREIBUNG

R ist freie Software und kann von der Website.

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Einführung in die Programmierung

Internationales Altkatholisches Laienforum

Dokumentation IBIS Monitor

Erfahrungen mit Hartz IV- Empfängern

GEONET Anleitung für Web-Autoren

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13.

AUSBILDUNG eines OBEDIENCE HUNDES

Transkript:

Mag. iur. Dr. techn. Michael Sonntag Softwareentwicklung Allgemeines und prozedurale Konstrukte E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Institut für Informationsverarbeitung und Mikroprozessortechnik (FIM) Johannes Kepler Universität Linz, Österreich Michael Sonntag 2004

??? Fragen? Bitte gleich stellen!??? Michael Sonntag 2004

Grundlagen Allgemeines Michael Sonntag Prozedurale Konstrukte 3

Algorithmen Algorithmus = Verfahren zur Problemlösung Schrittweise» Einzelne Befehle oder Blöcke Präzise» Genaue Bedeutung, genaue Schreibweise (HAARGENAU!) Statisch endlich» Sie wollen irgendwann mit dem Programmieren fertig sein Dynamisch endlich» Sie wollen die Antwort noch erleben Meist in natürlicher Sprache: Noch nicht ganz präzise niedergeschrieben (auch wenn so gedacht) Befehle/Blöcke sind für Maschinen unverständlich Michael Sonntag Prozedurale Konstrukte 4

Programm (1) Programm = Realisierung eines Algorithmus in einer Programmiersprache Nun wirklich alles haargenau» Sonst gibt es eine Fehlermeldung! Befehle und Blöcke sind fest definiert: Damit muss man auskommen! Vollständigkeit: Alle modernen Programmiersprachen sind vollständig» D. h. alles was man als Algorithmus hinschreiben kann, kann man auch programmieren Auch wenn es oft zu lange (statisch oder dynamisch) dauern würde!!!» Jedes praktische Problem kann (zumindest theoretisch) damit gelöst werden, da für alles ein Algorithmus existiert Was nicht gelöst werden kann: Siehe Gödel! Michael Sonntag Prozedurale Konstrukte 5

Programm (2) Praktische Probleme bei Programmen Manche Probleme sind NP vollständig» Man kann sie programmieren, aber außer bei Trivialbeispielen endet das Universum bevor das Programm fertig ausgeführt ist» Annäherungslösungen müssen gesucht werden Manche Probleme sind schwer : Der Algorithmus ist nicht leicht zu finden» Kreativität, Nachdenken und Abschreiben (z. B. im Internet oder in Literatur nach Lösungen suchen) Manche Probleme sind aufwendig: Der Algorithmus ist da, aber er ist sehr lang und sehr kompliziert» Nachdenken und Arbeiten Michael Sonntag Prozedurale Konstrukte 6

Problem-Probleme??? Praktische Probleme bei Problemen Was ist eigentlich das Problem? Viele Auftraggeber haben nur eine ungenaue Vorstellung dessen, was sie eigentlich wollen:» Soll die Lohnabrechnung machen, aber man sollte vielleicht auch gleich noch den Lagerbestand feststellen können; und überhaupt soll auch die ganze Entwicklungsabteilung damit unterstützt werden Feststellen, was überhaupt genau gemacht werden soll, ist der erste (und oft wichtigste) Schritt! Dies wird hier nicht näher erläutert! Der nächste Schritt ist die Reduktion des Problems Praktische Probleme sind so groß, daß ein Algorithmus für alles auf einmal nicht mehr erstellt werden kann: Überforderung des Gehirns (und der Papierfläche, die man noch ansehen kann!) Michael Sonntag Prozedurale Konstrukte 7

Software Engineering =Unterteilung des Problems in so kleine Teilprobleme, daß diese komplett verstanden und dann auf einmal und einheitlich gelöst werden können Auf einmal: Von einer Person kann ein Algorithmus entwickelt werden Einheitlich: Eine Person kann das zugehörige Programm schreiben Auch wenn es mit mehreren Personen ev. schneller geht Siehe dazu Kapitel 15 (Schrittweise Verfeinerung) im Buch! Dies ist eine Methode; es gibt noch andere» Siehe dazu auch: SE Modelle, OO Design, AOE,... Michael Sonntag Prozedurale Konstrukte 8

Softwareentwicklung Wir gehen davon aus, dass das Problem genau bekannt ist und wir auch eine genaue Beschreibung davon besitzen Übungen: Fragen hierzu an den Übungsleiter/Vortragenden! Umsetzung in einen Algorithmus ist eine kreative Tätigkeit Wenig erforscht, kaum lehrbar Aufgabe der Teilnehmer mit Hinweisen des Vortragenden» Die meisten Probleme sind gar nichts so schwer» Im Grundsatz auch in der Praxis nicht! Die Details haben es meist in sich, sowie wenn später Änderungen oder Erweiterungen gewünscht werden Umsetzung des Algorithmus in ein Programm Hauptaugenmerk der LVA Wir beschäftigen uns hier mit Java Michael Sonntag Prozedurale Konstrukte 9

Einteilung der Programmiersprachen Funktionale: Alles ist ein mathematischer Ausdruck Auch das ist vollständig! Alles lässt sich damit lösen!» Für Benutzerinterfaces oä schlecht geeignet» Sehr gut für komplexe Berechnungen Beispiel: Lisp Prozedurale: Schritt für Schritt ein Befehl an den Computer Direkte 1:1 Umsetzung des Algorithmus Bei weitem die allergrößte Verbreitung Beispiel: Java Sonstige: Verschiedene Misch- oder Sonderformen Eher unbedeutend; am ehesten noch bei künstlicher Intelligenz oder in bestimmten Sondergebieten/Spezialanwendungen Beispiele: Prolog Michael Sonntag Prozedurale Konstrukte 10

Grundlagen Prozedurale Konstrukte Michael Sonntag Prozedurale Konstrukte 11

Daten, Befehle Datum = Bestimmter Wert (Plural: Daten) Beispiele: -2, Java, 3.14159, 14.3.2003, März 2003,... Computer verarbeiten Daten (=Datenverarbeitung; EDV) Befehle = Anweisungen zur Datenmanipulation Beispiele: Addieren, Multiplizieren, Ausgeben, Datei öffnen, Webseite von Server abholen,. Befehle können sehr einfach bis extrem kompliziert sein Praxis: Maschinensprache (=Hardware) = Sehr einfache Befehle Programmiersprache = Mittelschwere Befehle Bibliotheken (=fertige Programme für Teilaufgaben) = Leicht bis extrem kompliziert Michael Sonntag Prozedurale Konstrukte 12

Daten, Befehle Heute: Daten und Befehle konzeptuell streng getrennt Früher: Selbstmodifizierende Programme (=Programm sieht seine Befehle als Daten an und verändert sie) Daten = Variablen (veränderlich), oder Konstanten (invariant) Befehle (Anweisungen) = Vorgegeben von der Programmiersprache Meistens zwischen 50 und 100 gelegen» Je nach Definition, was alles ein getrennter Befehl ist Grundmuster sind jedoch noch viel weniger: Vier Stück» Zuweisung, Sequenz, Verzweigung, Schleife Dies reicht für Vollständigkeit aus! Weniger genügt jedoch nicht! Michael Sonntag Prozedurale Konstrukte 13

Variablen Behälter für Daten mit einem Namen Name ist meist frei wählbar (in bestimmten Grenzen) Besitzen eine bestimmte Form, nur diese Art von Dingen passt hinein (entspricht einem Wertebereich) Moderne Programmiersprachen: Jede Variable ist typisiert, d. h. sie besitzt einen Typ und NUR das kann hinein! Kann jederzeit beliebig verändert werden Besitzt immer einen bestimmten Wert Achtung: Bei Java kann dieser ev. nicht abgefragt werden! Realisierung: Jede Variable besitzt einen Platz im Speicher; darin steht immer irgendetwas, das entsprechend dem Typ der Variable interpretiert wird» Beispiel: 48 kann als Zahl 48 aufgefasst werden (Typ: Ganze Zahl), aber auch als Zahl 0 (Eigentlicher Typ: Zeichen, also 0 )! Michael Sonntag Prozedurale Konstrukte 14

Zuweisung Zuweisung eines neuen Wertes an eine Variable Dies kann auch eine temporäre Variable ohne Namen sein Meist: Berechnung eines Wertes. Beispiele: i=1 ( i : Name der Variablen = : Zuweisung; 1 : neuer Wert) i=1+1 (Berechnung eines neuen Wertes) c= Lehrgang (Zuweisung von Text) c=c+ akademischen Characters ( Berechnung neuen Wertes) x=y+z Zuweisungen sind nur möglich auf Dinge, die eine Speicherstelle repräsentieren (= L-Value ; left-value) Unmöglich ist daher: 1=i (1 ist ein Wert; i repräsentiert eine Speicherstelle) y+z=x (x, y, z sind Speicherstellen; y+z aber nicht, dies ist ein Wert!) Michael Sonntag Prozedurale Konstrukte 15

Sequenz Die Hintereinander-Ausführung von mehreren einzelnen Anweisungen Werden der Reihe nach ausgeführt Jede Anweisung wird komplett beendet bevor die nächste begonnen wird Keine Verzahnung (nächster Befehl beginnt, bevor der vorige komplett beendet wurde)! Reihenfolge wird durch die statische Schreibung festgelegt Was weiter oben steht, wird zuerst ausgeführt! Michael Sonntag Prozedurale Konstrukte 16

Sequenz EBNF x=3 y=4 z=x*y x=3 y=4 z=x*y Michael Sonntag Prozedurale Konstrukte 17

Sequenz Nassi-Shneiderman-Diagramm x=3 y=4 z=x*y x=3 y=4 z=x*y Michael Sonntag Prozedurale Konstrukte 18

Verzweigung Entscheidung zwischen zwei Alternativen Es wird IMMER nur EINE davon ausgeführt, NIE beide! Auch: Selektion, Auswahl Entscheidung erfolgt nach einem Ausdruck Dieser muss einen logischen Wert (Wahr oder Falsch) ergeben Michael Sonntag Prozedurale Konstrukte 19

Verzweigung EBNF Wenn x<y, dann min=x, sonst min=y. min=x min=y Es fehlt die Bedingung (x<y)! EBNF kann nicht alles ausdrücken, was wir programmieren können! Michael Sonntag Prozedurale Konstrukte 20

Verzweigung Nassi-Shneiderman-Diagramm Wenn x<y, dann min=x, sonst min=y. J x<y? N min=x min=y Michael Sonntag Prozedurale Konstrukte 21

Schleife Wiederholte Ausführung einer Anweisung Auch genannt: Iteration, Wiederholung Jede Schleife besitzt eine Bedingung die spezifiziert, wie oft sie ausgeführt wird Abbruchbedingung Dadurch unterscheiden sich die verschiedenen Arten Drei/vier grobe Hauptarten von Schleifen: Prüfung der Bedingung am Anfang vor jedem Durchlauf (=While) Prüfung der Bedingung am Ende nach jedem Durchlauf (=Repeat) Prüfung vor der ersten Ausführung; feste Anzahl (=For) Gar keine Prüfung: Endlosschleife (=Loop)» Nicht verwenden! Michael Sonntag Prozedurale Konstrukte 22

Schleifen EBNF i=1, bis i=10 erhöhe i um 1 und gibt * aus i=1 i=i+1 ausgeben * Auch hier fehlt wieder die Bedingung! Außerdem könnten wir das auch anders zeichnen: i=1 ausgeben * i=i+1 Grund: Text ist nicht genau genug! Michael Sonntag Prozedurale Konstrukte 23

Schleifen Nassi-Shneiderman-Diagramm i=1, bis i=10 erhöhe i um 1 und gibt * aus Als While-Schleife: i=1 while i<=10 i=i+1 ausgeben * AlsRepeat-Schleife: i=1 i=i+1 ausgeben * until i>10 Michael Sonntag Prozedurale Konstrukte 24

Wann welche Schleife? Die Auswahl-Frage! Wir wissen von Anfang an genau, wie oft die Schleife durchgeführt werden soll Oder nur in ganz seltenen Ausnahmefällen einmal anders FOR Schleife verwenden! Schleife muss immer mindestens ein Mal durchlaufen werden REPEAT (do-while) Schleife verwenden! Sonst oder wenn unsicher, was besser geeignet is Schleife wird ev. gar nicht durchlaufen Aussage schwer, wann genau wie oft WHILE Schleife verwenden! Michael Sonntag Prozedurale Konstrukte 25

Kombinationen Zuweisung, Sequenz, Verzweigung, Schleife Dies ist ALLES was sie hier lernen werden» Zumindest im Grundsatz Details folgen noch! Diese Elemente können beliebig kombiniert werden: Schleife in Verzweigung Verzweigung in Schleife Sequenz von Zuweisungen. Michael Sonntag Prozedurale Konstrukte 26

Kombinationen Nassi-Shneiderman-Diagramm Summe der geraden Zahlen von 1 bis 20 berechnen N Summe=0 Zähler=1 Zähler gerade? Summe= Summe+Zähler Zähler=Zähler+1 Until Zähler>20 Summe anzeigen J Michael Sonntag Prozedurale Konstrukte 27