PMG/Kurs 11/Wdhlg Alg Prog I

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Pascal</language>
== Arbeit mit den Eingabefeldern im PWiki==

PWiki steht für ProgrammingWiki - also für ein Wiki, in dem programmiert werden kann. Dies erfolgt in Boxen (Eingabefeldern).<br>
Um uns etwas mit der Schreibweise im PWiki vertraut zu machen, wenden wir einfache Grundrechenoperatoren auf ganze und reelle Zahlen an. Es folgt ein interaktives Feld zum Experimentieren. <br>
Im oberen Feld bitte den angegebenen Term (3*5-5*3) beliebig verändern. Mit einem Klick auf ''speichern & ausführen'' wird diese vom Pascal-Interpreter verarbeitet. Im zweiten Kästchen erscheint das Berechnungsergebnis.<br>
<span style="color:#CD661D">Probiere und interpretiere mögliche Fehlermeldungen!</span>


<run id="4f5c9ba917e1d">
writeln(inttostr(3*5-5*3))
</run>



Offensichtlich funktioniert die Ausgabe bei reellen Zahlen nicht. <br>
''inttostr'' bedeutet Konvertierung (Umwandlung) von <u>ganzen</u> Zahlen in eine Zeichenkette.<br>
''floattostr'' wird für die Konvertierung von <u>reellen</u> Zahlen in eine Zeichenkette verwendet.
[[Bild:Thomas_Kreuz.JPG|right|thumb|100px|rotes Kreuz]] 


''Zu beachten ist, dass reelle Zahlen mit Punkt (also 12.5 nicht 12,5) notiert werden.'' <br><br>
'''<span style="color:#cd661d;"> Hinweis: </span>''' <br>
<span style="background-color:#CD661D;"> Wenn Du den Quelltext änderst, siehst Du dies an dem roten Kreuz an dem Eingabefeld. <br>Durch einen Klick darauf lässt sich der ursprüngliche Quelltext wieder herstellen. </span>

<br>


== einfache Datentypen ==

Pascal ist eine streng typisierte Sprache. Das ist eine Sprache, bei der der Programmierer gezwungen wird, einzelne Datentypen zu deklarieren. Diese Typen dürfen dann nur typgerecht verwendet werden. Es kann also keine Operation zwischen verschiedenen Datentypen durchgeführt werden. Unter Umständen müssen Datentypen untereinander konvertiert werden: 
* ''strtofloat'' wandelt Zeichenkette in reelle Zahl um
* ''floattostr'' wandelt relle Zahl in Zeichenkette um
* ''strtoint'' wandelt Zeichenkette in ganze Zahl um
* ''inttostr'' wandelt ganze Zahl in Zeichenkette um


Außerdem gibt es Grenzen wie groß eine Zahl sein darf - diese Grenzen legt auch der verwendete Datentyp fest. 
In nachfolgender Tabelle sind einige dieser Datentypen zusammengefasst dargestellt. Jeder Datentyp besitzt einen genauen Wertebereich. 

<center>
{| style="text-align:center;border:solid grey 1px" cellpadding=3 cellspacing=0
|- style="background:#CD661D;"
! Typ     !! Byte !! Wertebereich  !!	 
|- style="background:#CD661D;"
| ganze Zahlen || || ||
|-
| <span style="color:#CD661D">byte</span>    || 1    || 0 bis 255 
|-
| <span style="color:#CD661D">word</span>   || 2    || 0 bis 65535  
|-
| <span style="color:#CD661D">shortint</span> 	  || 1    || -128 bis 127 
|-
| <span style="color:#CD661D">integer</span> 	  || 4    || -2147483648 bis 2147483647 
|-
| <span style="color:#CD661D">int64</span> 	  || 8   || -2<sup>63</sup> bis 2<sup>63</sup>-1 

|- style="background:#CD661D;"
| Fließkommazahlen (reelle Zahlen)|| || ||
|-
| <span style="color:#CD661D">real</span>   || 4 	  || 1.1*10^-38 .. 3.4*10^38 
|-
| <span style="color:#CD661D">double</span>  || 8 	  || - 1.79769313486231570 *10<sup>308</sup> bis 1.79769313486231570 *10<sup>308</sup>
|-
| <span style="color:#CD661D">extended</span>  || 10 	  || 3.6*10<sup>-4951</sup> bis 1.1*10<sup>4932</sup>

|- style="background:#CD661D"
| Wahrheitswert || || ||
|-
| <span style="color:#CD661D">boolean</span> || 1    || true, false (wahr, falsch)     
|- style="background:#CD661D"
| Zeichenketten || || ||
|-
| <span style="color:#CD661D">char</span>    || 2    ||  Unicode - Zeichen
|- 
|<span style="color:#CD661D">string</span>    || 1    ||  Ansi
|}
</center>  	 	  	 


 Wir werden neben den <u>einfachen</u> Datentypen 
 ''integer'' für ganze Zahlen, 
 ''real'' für reelle Zahlen,
 ''boolean'' für die Wahrheitswerte ''true'' oder ''false'' sowie 
 ''string'' für Zeichenketten 
 auch <u>Strukturierte</u> Datentypen wie ''arrays (Felder)'' thematisieren.


Entspricht die eingegebene Zahl nicht dem vorgegebenen Datentyp, so liefert Pascal eine ''Fehlermeldung'', hier im PWiki sieht das so aus:<br><br>[[Bild:Thomas_Meldung.JPG]]

Geben wir eine für den Typ zu große Zahl an, werden wir auch eine Fehlermeldung erhalten. 

Auch auf Zeichenketten (string) kann der Operator "+" angewendet werden. Im Gegensatz zu arithmetischen Ausdrücken steht Plus hier für die Verkettung - durch Verkettung zweier Zeichenketten entsteht wieder eine neue Zeichenkette. 

<run id="4f5c9ba917e86">
writeln('Hallo' + ' ' + 'Welt' + '!')
</run>