Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 1 Signatur von Funktionen.

Slides:



Advertisements
Ähnliche Präsentationen
Ein- und Ausgabe von Dateien
Advertisements

Funktionen.
Sortieren I - Bubblesort -
Datenstrukturen Look-Up Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
ARRAY oder FELD oder VEKTOR
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
Imperative Programmierung Funktionen und Parameter
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Schiller-Gymnasium Hof Manuel Friedrich OStR, PHP – Variablen und Formulardaten speichern! © 2010 Manuel Friedrich - Wie.
Struktogramme IF-ELSE FOR – Schleife
Rekursion Richard Göbel.
Das Rettungsschwimmer-Problem Fermat meets Pythagoras
Rekursive Funktionen (Fakultät)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
§3 Allgemeine lineare Gleichungssysteme
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
2.4 Rekursion Klassifikation und Beispiele
Aufruf einer Methode eines Objektes vom Typ „Bruch“
PHP: Operatoren und Kontrollstrukturen
SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen.
SFZ FN Sj. 13/14 Python Grundlagen InfK12 Sj 13/14 GZG FN W.Seyboldt.
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 4. Vorlesung WS 2001/2002.
G. Gröger - Einführung in die Programmierung mit Java - 1. Semester - WS 02/ Übungsaufgabe vom Logische Ausdrücke 1.true & false | true 2.(10>2)
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Sequenzen: Lineare Programme
Variablen und Datentypen
Unterprogramme / Methoden
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Java Programme nur ein bisschen objektorientiert.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
1 Arrays und Schleifen Özgü & Tim. 2 Inhaltsverzeichnis Arrays Was ist ein Array? Bauanleitung Beispiel Matrix Fehler Schleifen Wofür Schleifen? While-Schleife.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
Wiederholte Programmausführung
mаtheguru.one Tipps und Lösungen zu Matheaufgaben aus Schulbüchern
10 Mathematik Lösungen 2011 ZKM.
2.4 Rekursion Klassifikation und Beispiele
10 Mathematik Lösungen 2011 ZKM - MAC.
Aufgaben zu Rückgabewerten
Nksainf.ch/oinf.
Java-Kurs - 2. Übung primitive Datentypen, Konstanten
Wiederholung Größte gemeinsame Teiler Satz von Bezout:
TexPoint fonts used in EMF.
Von Paul Schlecht, Thimon Mehaux, Hannes Klünder
Cäsar-Verschlüsselung
SS 04 Christiane Rauh Christian Hellinger
Die programmierte Lösung
Cäsar-Verschlüsselung
Einführung in die Programmierung
Gib die Lösung in Minuten an:
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
Informatik Kurse
Wahlteil 2009 – Geometrie II 1
Implementieren von Klassen
Datentyp- umwandlung.
 Präsentation transkript:

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 1 Signatur von Funktionen I. Vorstellung einer Maschine Variablen x1, x2, x3 Variabley Maschine (Black Box)

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 1 Signatur von Funktionen II. Signaturenschreibweise Signatur einer Funktion: Addition (int x1, int x2): int Addition2 (float x1, float x2): float Variable mit beliebigem Namen Datentyp Datentyp d. Ergebnisses Beliebiger Bezeichner

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 1 Signatur von Funktionen Aufgaben Gib die Signaturen an: a) Größter gemeinsamer Teiler (ggT) b) Fakultät (5!=120 weil 5*4*3*2*1) c) Lösung x1 einer quadratischen Gleichung d) Wandle einen Buchstaben in den ASCII-Code um e) Abstand zweier Punkte voneinander

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 2 Variablen Variablen Variable Schachtel mit Namen z.B. Name WertzuweisungName="Huber" "Friedrich" "Huber"

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 2 Variablen Variablen Variable Schachtel mit Namen z.B. Alter WertzuweisungAlter=Alter

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 2 Variablen Aufgaben Gib den End-Wert der Variablen an: a) Name="Meier"; Name="Schulze"; Name="Huber"; b) i=17; i=i-7; i=i*10; c) i=5; j=7; k=i+j*k; d) netto=230; artikelanzahl=10; mwst=0.16; ergebnis=netto*artikelanzahl*mwst; e) Strings werden mit einem "+" konkateniert Name="Huber"; Vorname="Herbert"; Gesamt=Vorname+" "+Name;

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 3 Funktionen schon vorhandene Funktionen (sehr kleine Auswahl) Operatoren Neben +,-,/ und * gibt es den Operator % (Modulo), der den Rest einer Ganzahlendivision berechnet! Bsp: x=10 % 3; System.out.println(x);

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 4 Eigene Funktionen Aufbau einer Funktion Aufbau einer Funktion: public int addition(int zahl1, int zahl2){ return zahl1 + zahl2; }

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 4 Eigene Funktionen Aufgaben 1. Schreibe eine Funktion zur Berechnung der Sekunden, die seit Mitternacht vergangen sind getSek(int std, int min): int

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 4 Eigene Funktionen Aufgaben 3. Schreibe eine Funktion zur Berechnung der laufenden Nummer eines Feldes im Schachbrett, wenn nur die Koordinaten in x- und y-Richtung (Werte von 1 bis 8) bekannt sind function GetNr(int x, int y): int

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 5 Algorithmus Definition Def.: Algorithmus: Eine Verarbeitungsvorschrift, die von einer Maschine verstanden wird. Die Anweisung muss eindeutig sein, kann aber Wahlmöglichkeiten oder z.B. auch Zufallszahlen beinhalten. Ein Algorithmus gibt an, wie Eingabedaten schrittweise in Ausgabedaten umgewandelt werden. Euklid hat schon 300 v.Chr. den Algorithmus für die Bestimmung des ggT angegeben!

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 5 Algorithmus Definition ggT(7,12) =ggT(7,5) =ggT(2,5) =ggT(2,3) =ggT(2,1) =ggT(1,1) BREAK -> Ergebnis: 1 Berechne mit diesem Algorithmus den ggT(63,9) Ziehe solange von der größeren Zahl die kleinere ab, bis die beiden Werte gleich sind, dann hast du das Ergebnis!

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 5 Algorithmus Definition ggT(63,9) =ggT(54,9) =ggT(45,9) =ggT(36,9) =ggT(27,9) =ggT(18,9) = ggT(9,9) BREAK -> Ergebnis: 9 ggT(6,12) =ggT(6,6) BREAK -> Ergebnis: 6 Ziehe solange von der größeren Zahl die kleinere ab, bis die beiden Werte gleich sind, dann hast du das Ergebnis!

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 5 Algorithmus Umsetzung in PHP function ggT(int a, int b):int in PHP: function ggT($a,$b){... return $a else... } Schreibe eine Funktion in PHP, die den ggT berechnet! Die if-Anweisung erlaubt in PHP eine Verzweigung der Anweisung: if ($Alter>20) echo "Sie sind ein alter Sack"; else echo "Hi Du!";

Schiller-Gymnasium Hof Manuel Friedrich StR Funktionale Modellierung © 2005 Manuel Friedrich - F 5 Algorithmus Umsetzung in PHP public addition(int a, int b){ return a+b; } Sichtbarkeitsmodifi- kator public oder private Bezeichner beliebig Variablen, die oben in die Maschine eingeworfen werden Ergebnis Anweisungsblöcke { }

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Ein Gesamtproblem ist komplex! Aufteilen des Problems in kleine Einheiten, die übersichtlich sind. (Für jedes kleine Problem eine Funktion.) Zusammensetzen der Teilprobleme zur Gesamtlösung. Bsp.: Autoherstellung Auto(Motor, Türen, Räder,...) Motor(Kühlung, Zylinder,...) Zylinder(Zündkerze, Kolben...) Zündkerze(Spule, Kontakte...)...

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Verbindendes Element der Teillösungen sind die Signaturen. Auf einer höheren Abstraktions-Ebene muss der Programmierer nicht wissen, wie das Problem gelöst wird, er muss es einfach verwenden können (Black-Box- Sicht).

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Beispiel: Ein Hubschrauberpilot benötigt eine Software zur Berechnung von Flugrouten Nach Eingabe von Start- und Zielkoordinaten, der Geschwindigkeit in km/h sowie der Ankunftszeit soll die Software berechnen, wann und in welche Richtung er losfliegen muss, um das Ziel rechtzeitig zu erreichen. Auch der Weg (Luftlinie) soll angegeben werden. Überlege dir, wie sich die Aufgabe in einzelne Teilaufgaben zerlegen lässt! Eine Möglichkeit der Implementierung besteht in folgenden Signaturen:

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Beispiel: Std, Min, x1,y1,x2,y2,v 10:20 Uhr, Start: 5,5 Ziel: 10,5,v=10 km/h Wann, welche Richtung, Länge 9:50 Uhr, 90°, 5 km Maschine (Black Box)

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Funktion 1 // Ermittlung der Sekunden aus der Eingabe von // Stunde und Minute function getSek($h,$m):int

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Funktion 2 // Ermittlung eines Strings der Sekunden in eine Uhrzeit //ausgibt function getUhrzeit($sek):String

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Funktion 3 // Ermitteln des Weges zwischen Start und Ziel // $x1,$y1 sind die Startkoordinaten // $x2,$y2 sind die Zielkoordinaten // Berechnung über den Pythagoras function getWeg($x1,$y1,$x2,$y2):double x2-x1 y2-y1 ???

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Funktion 4 // Ermittlung der Startzeit // Eingegeben wird die Zielzeit und die Flugzeit // beide Werte in Sekunden seit Mitternacht function getStartzeit($zielzeit,$flugzeit):double

Schiller-Gymnasium Hof Manuel Friedrich StR Abstraktion © 2005 Manuel Friedrich - F 6 Abstraktion Abstraktion ist ein wichtiges Prinzip der Informatik Funktion 5 // Ermittlung des Winkels // Koordinaten wie oben, über Arcus-Sinus-Funktion function getWinkel($x1,$y1,$x2,$y2):float