PMG/Profil nawi 9 1011/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="4dc8e6c252fe5">
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="4dc8e6c252c66">
function addition(a,b:integer):integer;
begin
result:=a+b;
end;
</code>
<run id="4dc8e6c253082">
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.''
<code id="4dc8e6c252cec">
function addition3
</code>
<run id="4dc8e6c2530ef">
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 wider den Quelltext aus den obigen Eingabeboxen und verändere ihn.''
<code id="4dc8e6c252d72">
function sumPQ
</code>
<run id="4dc8e6c25315a"></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="4df7be2341c5d"></code>
<run id="4df7be2341d8c"></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="4df7be2341ce1" > 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="4df7be2341e0f">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="4dc8e6c252f40">
</code>
<run id="4dc8e6c2533bc">
</run>