2. Rechnerübung Informatik 1 – Programmieren in C Variablen und Ausdrücke Variablen sind Platzhalter im Hauptspeicher des Computers, in denen verschiedenste Daten abgelegt werden können. Zahl1 27 Zahl2 67.23 PI 3.141 string1 “Hello World!“ daten 16 0a e7 11 05… Jede Speicherzelle besitzt einen Namen, eine Adresse und einen Inhalt. Dabei kann eine Variable auch mehrere Speicherzellen belegen. Die Größe einer Speicherzelle beträgt in der Regel 1 Byte (= 8 Bit). Je nach dem, wie man den Inhalt der Variable interpretiert, ergibt sich der Datentyp. Variablen und Ausdrücke Der Datentyp „Integer“ • In Variablen des Typs „Integer“ können ganze Zahlen mit Vorzeichen gespeichert werden. • Die Länge eines „Integers“ ist 4 Byte (= 32 Bit) Damit ergeben sich 4294967296 verschiedene Zustände im Zahlenbereich von: -2147483648 bis 2147483647 … das ist eine ganze Menge. Variablen und Ausdrücke Definition von Variablen in C int main() { int Variable1, Variable2; ... /* weiterer Programmcode */ } Hier durch werden zwei Variablen vom Typ „Integer“ definiert (in C heißt dieser Typ „int“). Variablen und Ausdrücke Hinweise und Regeln • Variablen werden nach dem Schema <Typ> <Name1>, <Name2>,… ; definiert. • Variablen dürfen nur zu Beginn eines Anweisungsblockes definiert werden. • Variablen-Namen dürfen nur aus Buchstaben, Ziffern (nicht am Anfang) und Unterstrichen (“_“) bestehen. • Variablen dürfen nicht wie reservierte Wörter benannt werden. Variablen und Ausdrücke Ausdrücke Ausdrücke dienen zum Umgang mit Daten und Datenobjekten. Man unterscheidet: - Berechnungen (Addition, Subtraktion, …) - Zuweisungen - Vergleiche (kommen später) Jeder Ausdruck besteht aus Operanden und Operatoren. => Ein Operand ist entweder eine Variable oder eine Konstante. => Der Operator verknüpft ein oder zwei Datenobjekt miteinander. Variablen und Ausdrücke Beispiele für Ausdrücke int main() { int a,b; int c = 7; a = 13; b = a+b; } /* Definition zweier Variablen */ /* Definition + Zuweisung */ /* Zuweisung einer Konstanten /* Zuweisung + Addition */ */ Variablen und Ausdrücke Die wichtigsten Operatoren im Überblick (a) Klammern -a Negation a*b Multiplikation a/b Division a+b Addition a-b Subtraktion a=b Zuweisung Jeder Operator verfügt über eine Priorität, es gilt z.B. „Punkt-“ vor „Strich-Rechung“ Erweiterte Ausgabe mit printf Neben der reinen Textausgabe können mit der Funktion “printf“ auch die Inhalte von Variablen und Ergebnisse von Ausdrücken ausgegeben werden. Dazu werden spezielle Platzhalter (Format-Strings) in die Zeichenkette eingebaut, an deren Stelle die Daten ausgegeben werden. Dabei existiert für jeden Datentyp ein solcher. Für den Typ „Integer“ benutzt man den Format-String „%i“. Beispiel: printf(„Der Wert von a lautet: %i“, a); Ausgabe: Der Wert von a lautet: 7 (falls “a“ den Wert “7“ hat) Erweiterte Ausgabe mit printf Nun im Detail: Zeichenkette Ausdruck printf(“Der Wert von a lautet: %i“, a); Anweisung Format-String Erweiterte Ausgabe mit printf Genauso können Ausdrücke ausgegeben werden: Zeichenkette Ausdruck printf(“Die Summe von a und b lautet: %i“, a+b); Anweisung Format-String Erweiterte Ausgabe mit printf Mehrere Ausdrücke auf einmal: Zeichenkette Ausdrücke printf(“2*%i + %i = %i“, a, b, 2*a+b); Anweisung => Ergibt: 2*7 + 4 = 18 (a = 7, b = 4) Aufgabe 1 Schreibe ein C Programm, welches folgende Bildschirmausgabe realisiert. Verwende dazu die gerade besprochene Theorie!! Lösung zu Aufgabe 1 #include<stdio.h> int main(){ int a,b; a=12; b=3; printf("Addition: %i+%i=%i\n", a,b,a+b); printf("Subtraktion: %i-%i=%i\n", a,b,a-b); printf("Multiplikation: %i*%i=%i\n", a,b,a*b); printf("Division: %i/%i=%i\n", a,b,a/b); return 0; } Dateneingabe mit scanf Die Funktion scanf dient der Eingabe von Daten und verfügt über ähnliche Parameter wie printf. Zuerst kommt eine Zeichenkette mit einem Platzhalter (z.B.: %i) für die einzugebende Variable und dahinter die Variable selbst mit vorangestelltem „&“ („&“=Adresse der Variablen, mehr dazu im 2. Semester). Beispiel: printf(„Bitte x eingeben:“); scanf(„%i“, &x); Aufgabe 2 Schreibe ein C-Programm, das zwei Variablen von der Tastatur einliest und diese addiert und subtrahiert und die Ergebnisse jeweils am Bildschirm ausgibt. Eine mögliche Ausgabe ist: Lösung zu Aufgabe 2 /*Rechenprogramm*/ #include<stdio.h> main () { int x,y; printf("Bitte x eingeben:\t"); scanf("%i", &x); printf("Bitte y eingeben:\t"); scanf("%i",&y); printf("\n%i + %i ist %i", x,y,x+y); printf("\n%i - %i ist %i\n", x,y,x-y); return 0; }