PMG/Kurs 1214/kleine mathematische Beispiele
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Pascal</language>
== Addition zweier Zahlen ==
Wir probieren eine '''einfache Addition zweier ganzer Zahlen''' zu "programmieren".
Dazu müssen wir die Werte eingeben, verarbeiten lassen und ausgeben (EVA-Prinzip!).
<br>
:Prinzipiell geht dies ganz einfach, indem im Argument für ''write'' oder ''writeln'' (Unterschied testen) die Rechenoperation angegeben wird.
:Beachte die Datentypen und deren Konvertierung.
<run id="5162616f04fb1" >
writeln(inttostr(5+12));
</run>
<br>
Allerdings wird so nicht programmiert!
* nicht allgemeingültig
* keine variable Zuweisung der zu summierenden Zahlen möglich
* keine erneute Verwendung der programmierten Programmteile möglich
Daher werden (kleine) '''Unterprogramme''' (Bausteine, Module genannt) erzeugt, die mit einem Namen versehen werden und über diesen aufgerufen werden können.
<br>
Beispiel für ein Unterprogramm (eine Funktion) in einer imperativen Programmierumgebung
[[Bild:Thomas_Function_3.JPG]]
''hier ein Beispiel für die Syntax im PWIKI''
<code id="5162616f04bd9">
function addition(a,b:integer):integer;
begin
result:=a+b;
end;
</code>
<run id="5162616f05035">
writeln(inttostr(addition(3,4)));
</run>
<br>
== Addition dreier Zahlen ==
Ergänze die ähnliche Funktion addition3 zur Bildung der Summe dreier reeller Zahlen!<br>
''Tipp: Kopiere den Quelltext aus den obigen Eingabeboxen und verändere ihn geringfügig.''
Nenne die Funktion ''sumPQ'' - damit funtioniert der Check-Button!
<code id="5162616f04c5e">
</code>
<run id="5162616f050a8">
writeln(floattostr(addition3(3,4,5)));
</run>
'''Den Checkbutton betätigen, wenn Du die Eingabeboxen ausgefüllt hast. Der Button gibt Dir eine Rückmeldung, ob dein Programmtext richtig scheint.'''
<check>
result := ((addition3(3,4,5) = 12.0) and (addition3(8,4,15) = 27.0));
</check>
<br>
== Addition einfacher Terme ==
Schreibe eine Funktion zur Berechnung der Summe von Produkt und Quotient zweier Zahlen.<br>
''Tipp: Kopiere wieder den Quelltext aus den obigen Eingabeboxen und verändere ihn.''
<code id="5162616f04cd8">
</code>
<run id="5162616f0511a"></run>
<check>
result := ((sumPQ(3,6) = 18.5) and (sumPQ(8,4) = 34));
</check>
== Berechnung einer Quadratzahl ==
Schreibe eine Funktion zur Berechnung der Quadratzahlen.
<code id="5162616f04d4b"></code>
<run id="5162616f0518d"></run>
<check>
result := ((qua(3) = 9) and (qua(8) = 64));
</check>
== Berechnung mehrerer Quadratzahlen ==
Ergänze Dein Programm so, dass die ersten 5 (10, 20, ...), also <math>n</math> beliebigen Quadratzahlen berechnet und ausgegeben werden.<br>
Es werden also '''mehrere''' Werte ausgegeben. Dies ist mit einer ''function'' '''nicht''' möglich.<br>
Es wird eine ''procedure'' verwendet.
''Analysiere den folgenden Beispielquelltext im Vergleich zur Schreibweise einer Funktion.''
{| border="0"
|-
| <code id="5162616f04dba"> procedure qua2(a:integer);
var zahl, i:integer;
begin
for i:=1 to a do
begin
zahl:=i*i;
writeln(zahl);
end;
end;</code> || || [[Bild:Thomas_N_QZ.jpg|right|thumb|100px|Struktogramm]]
|-
| <run id="5162616f05201">qua2(5);</run> || ||
|}
== Berechnung beliebiger Anzahl ausgewählter Quadratzahlen ==
Verändere Dein Programm nun so, dass die Quadratzahlen von <math>n</math> bis <math>m</math> berechnet und ausgegeben werden.
<code id="5162616f04e2a">
</code>
<run id="5162616f05276">
</run>
== einfaches Beispiel: Volumen- und Oberflächenberechnung ==
Erstelle ein lauffähiges Programm zur Berechnung von Volumen und Oberfläche eines Quaders (Niveau: sehr einfach).
<code id="5162616f04e9c"></code>
<run id="5162616f052ed"></run>
== Berechnung der Nullstellen einer quadratischen Funktion ==
Es soll ein Programm geschrieben werden, das
# entscheidet, ob eine quadratische Funktion keine, genau eine oder genau zwei Nullstellen besitzt
# die Werte dieser Nullstellen ausgibt
<u>vorher</u> Algorithmus formulieren und z.B. Struktogramm entwerfen
<code id="5162616f04f0f"></code>
<run id="5162616f05365"></run>