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>