Variablen sind für uns mit bestimmten Namen belegte Speicher, in denen zum Beispiel Zahlen abgelegt werden können, mit denen man später Berechnungen ausführt. In der Mathematik benutzt man Variable um allgemeine mathematische Zusammenhänge darzustellen.
Im folgenden Programm A02_01, werden die Variablen a, b und c definiert. Die Variable a enthält den Wert 25, b den Wert 17 und das Ergebnis der Addition von a und b wird in der Variablen c
abgelegt.
Übung 1
Zwei Zahlen a und b, denen die Werte a = 25 und b = 17 zugeordnet sind, sollen addiert werden. Das Ergebnis wird in der Variablen c abgelegt und auf im Terminal ausgegeben.
Das Programm A02_01.bs2
Wie arbeitet das Programm A02_01.bs2?
Zeile 9
Das Programm deklariert über int a eine ganzzahlige Variable a (int steht für integer) und weist ihr mit dem Zeichen = den Wert 25 zu.
Zeile 10
Der zweiten ganzzahligen Variable b wird über int b = 17 der Wert 17 zugewiesen.
Zeile 11
Der dritten ganzzahligen Variable c wird über die Zuweisung int c = a + b das Ergebnis der Addition von a und b übergeben.
Zeile 12
Mit der print-Anweisung print("c = %d ",c) wird zunächst der Text oder String c = ausgegeben, gefolgt vom Wert von c. Das Steuerzeichen %d ist ein
Formatierungszeichen, das festlegt, wie der Wert der Variablen c angezeigt werden soll; in diesem Fall als Dezimalzahl. Die Zahl 42 wird auf dem Terminal ausgegeben.
Was du wissen solltest!
Das Zeichen + ist ein sogenannter binärer Operator, d.h., er benötigt zwei Eingabegrößen, die er in diesem Fall miteinander additiv verknüpft. Beispiele binärer Operatoren sind: + Addition - Subtraktion * Multiplikation / Division %n Modulo n (es wird der Rest bei einer Division durch n ausgegeben). Beispiel 13%5 ergibt den Wert 3, da 13 geteilt durch 5 den Rest 3 hat. Jede C-Anweisung wird mit einem Strichpunkt (;) abgeschlossen. Beispiel … print(„Hallo\n“); …
Übung 2
Zwei Zahlen a und b werden die Werte 25 und 17 zugewiesen; anschließend werden sie addiert und subtrahiert. Die Variablenwerte sowie die Ergebnisse werden im Terminal ausgegeben.
Beachte, dass beim zweiten Aufruf von c die Variable nicht mehr mit int deklariert werden muss und dass sich im print-Befehl mehr als nur eine Stringausgabe unterbringen lässt; jeder Aufruf wird durch Komma getrennt in Klammern angegeben.
Jetzt kommst du!
Aufgabe A02_03
Erweiter das Programm A02_02 so, dass alle fünf binären Operatoren getestet werden und nenne das neue Programm A02_03. Setze für a den Wert 36 und für b den Wert 7 fest. Überlege vorher welche Rechenergebnisse auf dem Terminal angezeigt werden müssen und starte erst dann das Programm.
Aufgabe A02_04
Deklariere die Variablen x, m und b mit den Werten x = 12, m = -3 und b = 45. Berechne anschließend den Term y = m*x + b und gib den Wert von y auf dem Terminal aus. Speicher das fertige Programm unter A02_04 ab.
Aufgabe A02_05
Schreibe ein Programm, das das Volumen eines Quaders berechnet und im Terminal anzeigt. Die Kantenlängen des Quaders sind: a = 14 cm, b = 12 cm und c = 24 cm. Speicher das fertige Programm unter A02_05 ab.
Mögliche Programmlösungen für die Aufgaben A02_03, A02_04 und A02_05 sind auf den folgenden Seiten mit zugehöriger Terminalausgabe wiedergegeben. Versuche jede Programmzeile in ihrer Wirkung zu erklären.
Programmlösungen
In allen Berechnungen kamen bisher nur ganze Zahlen vor. Wir haben in Aufgabe A02_03 gesehen, dass die einfache Division von 36 geteilt durch 7 als Ergebnis 5, statt wie zu erwarten
5,142… ergab. Die Erklärung liegt in der Definition des Zahltyps begründet. Wenn als Ergebnis eine reelle Zahl herauskommen kann, dann muss die entsprechende Variable auch so deklariert
sein.
Auf den folgenden Seiten werden wir uns die reellen Zahlen, und wie sie in der Sprache C aufgerufen werden, genauer anschauen.
Bisher haben wir uns mit ganzen Zahlen (integer) beschäftigt, die die negativen und positiven Zahlen umfassen. In der Sprache C lassen sich aber auch Fließkomma-Zahlen mit einer endlichen Anzahl von Nachkommastellen ansprechen, ähnlich wie wir es vom Taschenrechner kennen. Die Anzahl der Stellen rechts und links vom Komma sind flexibel, der Dezimalpunkt verschiebt damit dauernd seine Position, er scheint zu "fließen".
Übung 3
Berechne mit Hilfe des Taschenrechners den Kreisumfang eines Kreises mit Radius 1,0 LE.
Gib das unten stehende Programm A03 ein und speicher es anschließend unter dem Namen A03_01 ab.
Um mit Fließkommazahlen arbeiten zu können, muss vor der Eingabe des Programms SimpleIDE voreingestellt werden.
Damit hat SimpleIDE die Math-Bibliotheksfunktionen dem Projekt hinzugefügt.
Wie arbeitet das Programm A03_01?
Das Programm kennt die Zahl PI = 3,1415926..., die bereits in der simpletools-Bibliothek hinterlegt ist.
Es lassen sich in C verschiedene Zahltypen deklarieren, die unterschied- lich große Zahlenbereiche verwalten. signed char -127 to 127 char 0 to 255 int -2,147,483,647 to 2,147,483,647 unsigned int 0 to 4,294,967,295 long Identisch mit "int" unsigned long Identisch mit "unsigned int" float approx 3.4X10-38 bis 3.4X1038 (mit 6-st. Genauigkeit)
Übung 4
Berechne die Fläche eines Kreises. Die Formel lautet: A = PI * r * r
Programm A03_02.bs2
Übung 5
Erweitere das Programm A03_02.c so, dass auch das Volumen und die Oberfläche einer Kugel bestimmt und auf dem Terminal ausgegeben werden. Informiere dich in einer Formelsammlung über die entsprechenden Formeln.
Programm A03_02a.c
Wir haben jetzt verschiedene Variablentypen kennengelernt und wissen, wie man sie in einem C-Programm aufruft. Eine weitere Gruppe von Variablen, die man auch Feldvariablen nennt, werden wir uns jetzt genauer ansehen.
Unter Feldvariablen versteht man eine Gruppe von Variablen, die alle den gleichen Namen tragen und sich nur durch einen Index voneinander unterscheiden. Ein Beispiel soll das verdeutlichen.
Wir haben eine große Kiste mit 100 Fächern. Die Kiste bezeichnen wir mit K. In jedem der 100 Fächer der großen Kiste liegt ein bestimmter Geldbetrag; zum Beispiel im Fach 21 ein Betrag von 150. Alle 100 Fächer der Kiste werden von Null beginnend durchnummeriert.
Dann trägt das erste Fach z. B. die Bezeichnung K[0], das zweite K[1] usw. und das letzte K[99]. Wenn ich mitteilen möchte, dass im Fach 21 der Geldbetrag 150 liegt, schreibe ich kurz: K[21] = 150.
Die folgende Deklaration initialisiert ein Feld mit dem Namen P mit insgesamt 6 Speicherplätzen. Jedes Feldelement ist durch einen Namen (in diesem Beispiel P) und einen Indexwert eindeutig bestimmt. Nummeriert man die Speicherplätze durch, dann trägt der erste Speicherplatz die Feldnummer 0, der letzte die Feldnummer 5. int P[] = {1, 2, 3, 5, 7, 11};
Im Beispiel oben sind sechs Primzahlen im Array enthalten und jede einzelne lässt sich über eine Arrayvariable ansprechen. Der Name des Arrays ist hier P. Die Zahl 3 würde dann als Arrayelement mit P[2] angesprochen werden. P deshalb, weil die Zahl dem Array P per Definition angehört und 2 deshalb, weil die Zahl 3 an der 2. Stelle im Feld steht (bei Null wird angefangen zu zählen). Die Zahl 1 hat also die Position 0, die Zahl 2 die Position 1 usw.
Übung 6
Gib das unten stehende Programm A04_01 in den SimpleIDE Editor ein und speicher es über Save Project As auf der Festplatte ab.
Schau dir das Programm genau an und versuche durch Überlegung herauszufinden, was auf dem SimpleIDE Terminal angezeigt wird.
Programm A04_01.c
Wie arbeitet das Programm A04_01.c?
Zeile 10
int P[] = {1, 2, 3, 5, 7, 11} initialisiert ein Feld mit dem Namen P; den sechs Adressen im Feld wird jeweils ein Zahlenwert zugewiesen. Diese Zahlen stehen, durch Komma getrennt, in der
geschweiften Klammer.
Wir wissen, dass in P[0] die Zahl 1, in P[1] die Zahl 2, in P[2] die Zahl 3, in P[3] die Zahl 5 und so weiter abgelegt sind.
Zeile 11
Der Aufruf print("P[0] = %d\n", P[0]) gibt dann den Inhalt des Speichers P[0] aus und das ist bekanntlich die 1.
Zeile 12
Ebenso wird mit print("P[3] = %d\n", P3]) die Zahl 5 ausgegeben.
Was du wissen solltest!
Ein Feld mit sechs Elementen lässt sich auch ohne Angabe von Zahlenwerten ganz allgemein mit dem Aufruf int [b6] deklarieren.
Der Inhalt eines Feldelementes lässt sich zu jeder Zeit über ein Programm verändern. Die Zuweisung b[4] = 7 überschreibt zum Beispiel den Wert im angegebenen Feldelement mit der Zahl 7.
Versuch mal dies!
Hier wollen wir zeigen, wie man die Inhalte eines Speicherelementes neu belegt. Schau dir die Zeilen nach der Deklaration des Feldes genau an. Am Anfang sind den einzelnen Feldelementen folgende Zahlen zugewiesen:
In Zeile 4 des Hauptprogramms wird p[3] der neue Wert 101 zugewiesen und anschließend auch ausgedruckt.
Hier wollen wir zeigen, wie man die Inhalte eines Speicherelementes neu belegt. Schau dir die Zeilen nach der Deklaration des Feldes genau an. Am Anfang sind den einzelnen Feldelementen folgende
Zahlen zugewiesen:
In Zeile 4 des Hauptprogramms wird p[3] der neue Wert 101 zugewiesen und anschließend auch ausgedruckt.
Übung 7
Programm A04_02.c
Jetzt kommst du!
Speicher mit Save Project As das Programm A04_01 unter dem neuen Namen A04_02 auf der Festplatte ab.
Füge die beiden unten angegebenen Zeilen hinzu.
Starte das Programm mit Run Project with Terminal und bestätige, dass die Feldvariable p[3] zunächst die Zahl 5 und später 101 enthält