7. Grundlagen von Funktionen

7. Grundlagen von Funktionen Funktionen in C++ Bestandteile eines C++ - Programms C++ Kern Standardbibliothek Anwender Sonstiges Dr. Norbert Spang...
Author: Mina Krause
13 downloads 3 Views 182KB Size
7. Grundlagen von Funktionen

Funktionen in C++

Bestandteile eines C++ - Programms C++ Kern Standardbibliothek Anwender Sonstiges

Dr. Norbert Spangler /Programmieren

vordefinierte Datentypen, Operatoren, Befehle vordefinierte Funktionen (und Klassen) selbsterstellte Funktionen (und Klassen) externe Bibliotheken

20.11.2016

2

Funktionen in C++: Standardbibliothek Mathematische Funktionen mittels #include abs (x*x-a) >=1.0e-10 sqrt(summe) Argument und Wert z.b. double Weitere Funktionen in cmath: exp log log10 pow asin sin cos tan acos atan sinh cosh tanh … rand() ganzzahlige Zufallszahl Argument keines, Funktionswert int strlen(ca) Zeichenzahl eines Character-Arrays Argument Character-Array, Funktionswert int cin.eof() wahr/falsch bei Dateiende Dr. Norbert Spangler /Programmieren

21.11.2015

3

Funktionen in C++: Anwender-Funktionen Eigene Formeln p-q-Formel bei quadratischen Gleichungen Argumente: p und q Funktionswert : eine Lösung loesung = pqFormel(p,q) Suchen eines Elements in einem Array Argumente: Arrayelemente + Anzahl der Elemente + Suchelement Funktionswert : gefundener Index (Stelle) stelle = suche(anzahl,array, suchelement) Sortieren der Elemente einesArrays Argumente: Arrayelemente + Anzahl der Arrayelemente Funktionswert : void Regel: sortiere(anzahl,array) Funktionen machen keineAusgaben Eingabe von Daten am Bildschirm, es sei denn, Argumente: Daten es handelt sich um eine Ausgabefunktion Funktionswert : void oder bool Ausgabe von Daten Argumente: Daten Funktionswert : void Dr. Norbert Spangler /Programmieren

21.11.2015

4

Motivation: wofür? Funktionen lösen spezielle (Teil-)Aufgaben mathematische Formeln spezielle Algorithmen: Suchen, Sortieren, Gleichungen,Auswertungen Ein-/Ausgabe für Tastatur, Bildschirm, Dateien usw. Steuerungen von Geräten,Anlagen,… Funktionen sind Zusammenfassungen von Arbeitspaketen und bieteneine Möglichkeit zur Verteilung des Programmieraufwands auf Teams Voraussetzung Die Schnittstellen (d.h. die Kommunikation) der Funktionen untereinander sind klar festgelegt bzw. beschrieben. -> Welche Daten werden benötigt um die Funktion auszuführen ? -> Welche Daten/Ergebnisse liefert die Funktion? Dr. Norbert Spangler /Programmieren

21.11.2015

5

Motivation: Programmqualität Funktionen sind damit „eigenständige" Programmteile innerhalb einer Anwendung zur -Strukturierung/Beherrschung der Komplexität (Komponenten), - Lösung von Teilaufgaben, - Arbeitsorganisation d.h. Aufteilung auf Teams, - Verbesserung der Übersichtlichkeit und Lesbarkeit, - Verbesserung des Testens, - Wiederverwendung (z. Bsp. Ein-/Ausgabe vonArrays), - Archivierung in Bibliotheken, -Übersetzung: jede Funktion wird durch einen eigenen Compilerlauf bearbeitet. Damit könnten auch unterschiedliche Programmiersprachen verwendet werden. Funktionen erhöhen die Programmqualität

Dr. Norbert Spangler /Programmieren

21.11.2015

6

7.1 Beispiel einer Anwender-Funktion: Musterprogramm Wurzel berechnen

Wurzel berechnen

Eingabe a

Eingabe a

a 0 sein

Ausgabe wurzel(a)

x=a Solangex*x-a ungenau x*x-a x = x - ------2x Ausgabe x

Das "große unübersichtliche" Struktogramm wird ersetzt durch "kleine" übersichtliche" für jede Funktion, sowie das eigentliche Programm: - Eingabe mit Plausibilitätskontrolle->einfach zu testen - „eigentliche“ Aufgabe->keine unzulässigen Daten mehr Dr. Norbert Spangler /Programmieren

Wurzel(a)

x =a S olangex*x-a ungenau x*x-a x = x - ------2x Ergebnis x

21.11.2015

7

main mit Verwendung einer Funktion wurzel // Wurzel berechnen #include using namespace std; void main() { double radikand; double wurzel(double); cout radikand; //Plausibilitaetskontrolle if ( radikand