Entscheidungen und Wertkonstanten

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Entscheidungen und Wertkonstanten"

Transkript

1 Entscheidungen und Wertkonstanten Die Entscheidungen, die ein Programm fällen kann, basieren immer auf einer einfachen Ja/Nein- Aussage. Unabhänig davon wieviel künstliche Intelligenz ein Programm besitzt, bleibt die Grundlage jeder Entscheidung die Statusbits in der CPU. Und die liefern immer nur Ja oder Nein. Boole sche Ausdrücke und relationale Operatoren Die Grundlage einer Entscheidung bildet ein boole scher Ausdruck. Der Name soll an George Boole ( ) erinnern, der als Begründer der mathematischen Logik angesehen wird. So ein Ausdruck liefert entweder das Ergebnis wahr oder falsch. Dieses Ergebnis könnte in einem einzigen Bit gespeichert werden. Als Lieferant eines Entscheidungswertes dienen die vergleichenden Operatoren. Ein anderer Ausdruck dafür ist relationale Operatoren. Abbildung 1 Tabelle der relationalen Operatoren Beachten Sie bei den vergleichenden Operatoren besonders den Test auf Gleichheit. In C unterscheiden wir zwischen einer Zuweisung mit = und einem Test mit ==. Am Anfang übersieht man den Unterschied gerne. Das! -Zeichen bedeutet nicht (not). Damit wird auch der Operator!= leicht verständlich. Er bedeutet nicht gleich (not equal) oder auch ungleich. Es gibt in C keinen eigenen Datentyp, der eine Ja/Nein-Entscheidung speichern könnte. Pascal hätte hierfür boolean. Wir verwenden zum Ablegen eines booleschen Ergebnisses eine Variable, die einen ganzzahligen Datentyp haben muss. Üblich sind char - oder int -Variablen. Die Ausdrücke mit vergleichenden Operatoren liefern einen ganzzahligen Wert. Ist der Ausdruck falsch, wird eine 0" zurückgegeben. Jeder andere Wert ungleich 0" wird als wahr verstanden. Dieser Wert kann entweder in einer entsprechenden Anweisung ausgewertet oder in einer Variablen gespeichert werden. Entscheidungen und Konstante

2 int boole; int var1; var1 = 17; boole = 5 > var1; /* ergibt falsch - also 0 */ boole = (var1 == 17); /* ergibt wahr - also ein anderer Wert als 0 */ Abbildung 2 Zuweisung eines boole schen Wertes In der letzen Zeile sollte man ein Klammernpaar schreiben. Dies ist in C nicht notwendig, aber die Lesbarkeit steigt deutlich. Bei Zuweisungen wird die rechte Seite zuerst ausgewertet. Außerdem hat der Vergleich eine höhere Priorität als die Zuweisung. Auswertung eines boole schen Ergebnisses Entscheidungen werden in vielen Programmkonstrukten benötigt. In C gibt es: die bedingte Anweisung, die Ja/Nein-Entscheidung, die Fallunterscheidung, die Schleifen und den bedingten Ausdruck. Die bedingte Anweisung Die Ausführung einer einzelnen syntaktischen Anweisung kann mit Hilfe von if von einer Bedingung abhängig gemacht werden. if selbst ist keine Anweisung, sondern ein Schlüsselwort, das eine Steuerstruktur einleitet. Die Steuerstruktur setzt sich hier aus dem Schlüsselwort if, einem boole schen Ausdruck in runden Klammern und einer Anweisung zusammen. Eine Steuerstruktur ist eine Zusammenfassung von Programmelementen mit einem festgelegten Aufbau. Die bedingte Anweisung ist ein Sonderfall der Entscheidung. Sie kann in einem Struktogramm dargestellt werden. Bei der bedingten Anweisung bleibt der Nein -Zweig leer, bei der vollständigen Ja/Nein -Entscheidung werden in jedem Zweig die Anweisungen eingetragen. Schauen wir uns zwei Beispiele an. Das erste Beispiel wertet innerhalb von if einen Ausdruck aus, das zweite eine Variable. Beispiel mit booleschem Ausdruck (Bild 6-4) Abbildung 3 Entscheidung Beginnen wir bei main(). Eine Variable soll das Ergebnis der Ausgabefunktion puts() speichern. puts() liefert bei Gelingen das zuletzt ausgegebene Zeichen oder bei einem Fehlschlag EOF. Nach der Ausgabe steht in var entweder ein \n oder EOF, da puts() an den String eine Zeilenschaltung anhängt. Für einzelnezeichen nimmt man in C zumeist eine int -Variable. Entscheidungen und Konstante

3 1 /* Bedingte Anweisung */ 2 /* bedanw.c */ 3 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 int main () 8 { 9 int var; /* lokale Variable */ var = puts ("Hier bin ich!"); /* Abfrage mit boole'schem Ausdruck */ 14 if (var == EOF) 15 exit (1); /* Abbruch bei Fehler */ 16 return 0; 17 } Abbildung 4 Die bedingte Anweisung In der if -Steuerstruktur bilden wir zuerst einen boole schen Ausdruck. Die einzelne Anweisung, die der Abfrage folgt, wird nur dann ausgeführt, wenn die Abfrage wahr ergibt. Wie in den weiteren Steuerstrukturen auch fasst man in C alle Teile, die den Ablauf beeinflussen, in runden Klammern zusammen. Beispiel mit boole scher Variablen (Bild 6-5) Unser Beispiel läßt sich im Bild 6-5 ein wenig umformulieren, um die Verwendung einer Variablen bei if zu zeigen. if bewertet einen Zahlenwert. Ist der Zahlenwert 0", wird die Anweisung nicht durchgeführt. Alle anderen Werte bedeuten wahr" und damit wird die Anweisung abgearbeitet. Als Lieferant des Wertes diente im ersten Fall ein vergleichender Ausdruck; im zweiten Fall war der Wert bereits in einer Variablen gespeichert. Zu erwähnen bleibt noch exit(). Die Funktion exit() wird an einer beliebigen Stelle gerufen, wenn man das Programm abbrechen will. Der Wert, den man an exit() übergibt, ist der Endestatus des Programms. Die andere Möglichkeit einen Endestatus zurückzugeben, war die return Anweisung in main(). Entscheidungen und Konstante

4 1 /* Bedingte Anweisung */ 2 /* bedanw2.c */ 3 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 int main () 8 { 9 int var; /* lokale Variable */ var = (puts ("Hier bin ich!") == EOF); /* Abfrage mit boole'scher Variablen */ 14 if (var) 15 exit (1); /* Abbruch bei Fehler */ 16 return 0; 17 } Abbildung 5 Benutzung einer boole schen Variablen Die vollständige if -Anweisung Die vollständige Ja/Nein-Entscheidung verlangt für jeden der beiden Wahrheitswerte eine Anweisung. Es gibt daher je einen Zweig für den Ja-Fall und den Nein-Fall. if (Bedingung) Ja_Anweisung; else Nein_Anweisung; Jeder der beiden Zweige für den Ja-Fall und den Nein-Fall darf nur aus einer einzigen Anweisung bestehen. Der Compiler kann nur so das Ende eines Zweiges erkennen. Möchten Sie in einem Zweig mehrere Anweisungen ausführen lassen, bietet sich ein Block an. An jeder Stelle, an der eine Anweisung stehen kann, darf auch ein Block benutzt werden. Leser, die Pascal kennen, sollten darauf achten, dass vor else ein Semikolon steht. Im Gegensatz zu Pascal besteht jeder Zweig aus einer eigenen Anweisung. Beispiel zur Ja/Nein-Entscheidung Im Beispiel können wir neben der if -Anweisung noch andere Grundlagen sehen. Die erste Anweisung gibt einen besonderen Text aus: einen ANSI-Steuerstring zum Löschen des Bildschirms. Nach einer Textausgabe wartet das Programm auf eine Eingabe. Mit getc(stdin) lesen Sie ein Zeichen von der Standardeingabe (standard input). Normalerweise ist das die Tastatur. Die Eingabe wird u. U. erst nach einem Zeilenabschluss (Enter/Return/Wagenrücklauf) wirksam. Entscheidungen und Konstante

5 1 /* Ja/Nein- Entscheidung */ 2 /* if.c */ 3 #include <stdio.h> 4 5 int main () 6 { 7 puts ("\x1b[2j"); /* ANSI Steuerung */ 8 puts ("Drücke beliebige Taste\n"); 9 if (getc(stdin) >> 0x60 ) 10 { 11 puts ("kleiner "); 12 puts ("Buchstabe"); 13 } 14 else 15 puts ("groáer Buchstabe"); 16 return 0; 17 } Abbildung 6 Vollständige Ja/Nein-Entscheidung Beim eingelesenen Zeichen testen wir, ob es als Zahl größer als 60" in Hex ist. Abhängig vom Test haben wir dann herausgefunden, ob Sie einen kleinen oder großen Buchstaben gedrückt haben (sofern es überhaupt ein Buchstabe war). Im Ja-Zweig wurde ein Block benutzt, um in einem Zweig mehrere Anweisungen abarbeiten zu lassen. Da puts() einen Zeilenvorschub einfügt, finden Sie beim Ablauf des Programms die beiden Worte jeweils in einer eigenen Zeile. Verschachtelung von if -Anweisungen So einfach im Grunde die if -Steuerstruktur ist, so kann es doch dann zu Problemen kommen, wenn wir mehrere if hintereinander schreiben. Man spricht dann vom Verschachteln der Abfragen. Mit Hilfe der Verschachtelung kann man nacheinander mehrere Bedingungen testen, um schließlich eine Anweisung auszuführen. Verschachtelte if -Abfragen sind, zumindest aus meiner Sicht, kein schönes Programmkonstrukt und sollten nach Möglichkeit vermieden werden. Je tiefer die Verschachtelung wird, desto schwerer ist sie lesbar. Als bessere Lösung bietet sich die folgende Fallunterscheidung an: Im Bild 6-7 folgt eine if -Anweisung unmittelbar einer anderen. Die Anweisungen hängen damit von zwei Bedingungen ab. Die Frage stellt sich, zu welchem if gehört das einzelne else? Wie allgemein üblich wird das else zum unmittelbar davor stehenden if gezählt. Im zugehörigen Struktogramm ist zu sehen, dass der else -Zweig der ersten if -Anweisung leer bleibt. Für den Fall, dass die erste Bedingung falsch ergibt, wird keine Anweisung ausgeführt. Wollen wir das else für die erste if -Anweisung anwenden, dann hilft nur ein kleiner Trick. Wir müssen hier dem Compiler mitteilen, das die Anweisung im wahr -Zweig der ersten if - Anweisung nur aus einer einzigen bedingten Anweisung besteht. Dazu verpacken wir die zweite if -Anweisung in einen Block. Ein Block, der keine eigenen Variablen definiert, kostet keinen zusätzlichen Code und damit auch keine Laufzeit. Entscheidungen und Konstante

6 Verknüpfen Wahrheitswerten von Abbildung 7 Verschachtelte if-anweisung Fall 1 Abbildung 8 Verschachtelte if-anweisungen Fall 2 Einzelne Wahrheitswerte oder Variablen mit Wahrheitswerten können mit Hilfe der logischen Operatoren entweder negiert oder verknüpft werden. In C gibt es die drei logischen Operatoren Negation sowie und und oder. Damit lassen sich die üblichen booleschen Rechnungen ausführen. Beachten Sie bitte, dass es sich hier um zwei & - Zeichen für den und - Operator und zwei für den oder -Operator handelt. Schauen wir uns noch kurz ein Beispiel an (Bild 6-10). Wir nehmen uns ein Detail aus einem grösseren Programm. Ein Programm soll dann abgebrochen werden, wenn der Benutzer ein q für quit tippt. Dabei soll sowohl ein kleines wie ein grosses q erkannt werden. Mit getchar() lesen wir ein Zeichen ein. Im boole schen Ausdruck bei if testen wir das Zeichen zweimal. Zuerst prüfen wir ob es ein kleines q ist. Falls das Ergebnis wahr ist, wurde die Bedingung für das logische Oder ( ) bereits erfüllt und der vom Compiler erzeugte Programmcode würde die zweite Abfrage nicht durchführen. War es nicht das kleine q dann testen wir beim zweiten Mal, ob es ein großes Q war. Die Priorität der logischen Verknüpfungen ist niedriger als die der relationalen Operatoren. Daher wird der Ausdruck in der Zeile 13 ohne weitere Klammern richtig bearbeitet. Abbildung 9 Logische Operatoren Entscheidungen und Konstante

7 Die Fallunterscheidung Es gibt viele Fälle, in denen eine einfache Ja/Nein-Entscheidung nicht ausreicht. Ein Programm, das Sie mit Funktionstasten steuern können, muss bei jedem Tastendruck erkennen, ob es sich um eine normale Taste oder eine Funktionstaste handelt. Diese Entscheidung kann man mit if programmieren. Ist es eine Funktionstaste, dann muss das Programm nun zwischen den zehn oder mehr Funktionstasten auswählen und das zugehörige Programmstück starten. Hier brauchen wir 1 /* Beispiel für logische Verknüpfung */ 2 /* logoder.c */ 3 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 int main () 8 { 9 int c; c = getchar(); if (c == 'q' c == 'Q') 14 exit (1); return 0; 17 } 18 Abbildung 10 Logische Operationen: ODER die Fallunterscheidung Möglichkeiten der Realisierung Für die Fallunterscheidung gibt es in den Computersprachen zwei unterschiedliche Realisierungen. Die einen legen eine Liste der möglichen Programmstücke an und numerieren sie fortlaufend. Das Programm berechnet dann eine Zahl und wählt damit das gewünschte Programmstück aus. Daher nennt man dieses Verfahren auch die berechnete Verzweigung. Die andere Möglichkeit wird mit Vergleichen realisiert. Für unser Eingangsbeispiel würde man einen Tastendruck als Vergleichswert einlesen, jedem möglichen Programmstück eine Konstante zuordnen und dann nacheinander den Vergleichwert mit den unterschiedlichen Konstanten vergleichen. Bei Gleichheit haben wir dann das gewünschte Programmstück gefunden. Diese Möglichkeit verwendet C. Fallunterscheidung und strukturierte Programmierung Werfen wir noch einen Blick auf die Theorie der strukturierten Programmierung. Entscheidungen und Konstante

8 Im Bild 6-11 sehen wir, dass die Fallunterscheidung an einem Punkt betreten wird. Danach folgt die Auswahl aus den möglichen Fällen. Neben den Einzelfällen brauchen wir noch den Sammelfall sonstige. Wenn nicht immer alle Fälle zu 100% abgefragt werden, dann haben wir eine mögliche Fehlerquelle geschaffen, die z. B. bei Abbildung 11 Die Fallunterscheidung Programmänderungen zu unvorhersehbaren Reaktionen führen kann. Nachdem ein Fall bearbeitet wurde, verlassen wir die Fallunterscheidung wieder an einer einzigen Stelle. Realisierung in C Wie oft in C zwingt die Syntax dem Programmierer nicht ein bestimmtes Vorgehen auf. Sie unterstützt ihn jedoch, gut zu programmieren. Die Fallunterscheidung besteht aus dem Schlüsselwort switch, einem Ausdruck in runden Klammern, der einen ganzzahligen Wert liefert und einem Block, der alle möglichen Fälle enthält. Ein einzelner Fall besteht aus einer speziellen Marke, die aus dem Schlüsselwort case, einer Konstanten und einem Doppelpunkt gebildet wird. Solche Marken können nur innerhalb einer Fallunterscheidung auftreten. Einen typischen Aufbau zeigt das Bild Als Vergleichswert benötigen wir einen ganzzahligen Wert. Dies kann auch ein beliebiges Zeichen sein, das man mit getchar() einlesen kann. Der eingelesene Wert wird dann nacheinander mit den Konstanten verglichen. Bei Gleichheit werden die zugehörigen Anweisungen ausgeführt. Wird keine Gleichheit gefunden, dann wird der Fall sonstige (engl. default ) angesprungen. switch ( ganzzahliger_wert ) { case konstante1 : Anweisungen zu 1; break; case konstante2 : Anweisungen zu 2; break; default: Sonstige_Anweisungen; } Abbildung 12 Fallunterscheidung in C Das Ende eines Falles ist in C nicht automatisch erkennbar. Der Programmierer muss selbst dafür sorgen, dass ein Fall beendet wird. Dazu gibt es einen speziellen Sprungbefehl für den Sprung an den Ausgang der Steuerstruktur: break. Möchten Sie in C gemäß dem Struktogramm programmieren, dann muss jeder Fall mit einem break abgeschlossen werden, sonst fällt man durch die einzelnen Fälle durch bis zu einem break oder der schliessenden Klammer des Blockes. Entscheidungen und Konstante

9 Jeder Fall kann mehrere Marken bekommen. Zahlen- und Zeichenkonstanten in C In der Fallunterscheidung müssen wir jedes Programmstück mit einer Marke versehen, die mit Hilfe einer Konstanten gebildet wird. Es ist daher hier sinnvoll, die möglichen Konstanten in C näher zu betrachten. C kennt fünf Arten von Konstanten: Integer-Konstanten Zeichen-Konstanten Fliesskomma-Konstanten Aufzählungs-Konstanten String-Konstanten Zahlenkonstanten Ganzzahlige Konstanten können in verschiedenen Größen, mit oder ohne Vorzeichen und in drei Darstellungen benutzt werden. Der kleinste Typ ist int. Beginnt eine Zahl mit einer Ziffer zwischen 1 und 9 handelt es sich um eine dezimale Zahl. Beginnt die Zahl mit einer 0", so ist die Darstellung oktal und mit 0x" oder 0X ist sie hexadezimal. Im Bild 6-13 wurden entsprechende Beispiele in den Zeilen 21, 23 und 25 verwendet. Überschreitet der Wertebereich int, dann wird automatisch long angenommen. An eine Konstante kann man auch einen Buchstaben u oder U für unsigned (ohne Vorzeichen) anhängen und damit ausdrücken, dass diese Konstanten ohne Vorzeichen gelten soll. Die zweite mögliche Kennung ist ein l oder L für long. Entdeckt der Compiler eine Konstante, versucht er, einen dazu passenden Typ zu finden. Der Typ ergibt sich aus der verwendeten Zahlenbasis, der Größe der Zahl und eventuellen Kennungen. Eine dezimale Konstante erhält den ersten Typ, der in der Lage ist, die Zahl aufzunehmen aus der folgenden Liste: int, long int, unsigned long int. Beispiele: 5 ist int ist long int ist unsigned long int Für oktale oder hexadezimale Angaben sucht der Compiler in der folgenden Liste: int, unsigned int, long int, unsigned long int. Beispiel: Entscheidungen und Konstante

10 40000U ist unsigned int 1 /* Arbeiten mit Konstanten */ 2 /* Konst1.c */ 3 #include <<stdio.h>> 4 5 int main () 6 { 7 char c; 8 puts ("\x1b[2j"); 9 puts ("\nzeichen tippen und RETURN\n"); 10 switch (c = getchar() ) 11 { 12 case 'C' : puts ("\ngroßes C entdeckt."); 13 break; 14 case '\n': puts ("\nneue Zeile"); 15 break; 16 case '\x42': puts ("\ngroßes B"); 17 break; 18 case 7 : puts ("\nklingelzeichen"); 19 break; 20 case 0x41: puts ("\ngroßes A"); 21 break; 22 case 011: puts ("\ncode octal 011 (Tab)"); 23 break; 24 default: puts ("\nbeliebige Taste"); 25 break; 26 } 27 return 0; 28 } Abbildung 13 Zahlen- und Zeichenkonstante 1 /* Arbeiten mit Konstanten */ 2 /* Konst2.c */ 3 4 #include <stdio.h> 5 6 int main () 7 { 8 puts("\x1b[2j"); 9 printf("\n40000 mit VZ %d",sizeof(40000)); 10 printf("\n40000 ohne VZ %d",sizeof(40000u)); 11 printf("\n40000 in Hex: %d",sizeof(0x9c40)); 12 return 0; 13 } Abbildung 14 Konstante und ihre Größen Im Bild 6-14 wurde die Grösse einer Konstanten mit Hilfe des Schlüsselwortes sizeof ermittelt. sizeof liefert die Grösse einer Konstanten, eines Typs oder einer Variablen in Bytes. C Entscheidungen und Konstante

11 versteht unter einem Byte die grundlegende Speichereinheit der Maschine, die groß genug ist, ein Zeichen aufzunehmen. Daher ist size of char immer eins. In den allermeisten Fällen wird ein Byte heute 8 Bit groß sein. Ausnahmen bilden nur die asiatischen Sprachen, die wesentlich mehr Schriftzeichen haben als wir. Fließkommakonstanten Fließkommakonstanten erkennt der Compiler an einem Dezimalpunkt oder an einem Exponenten. Zeichenkonstanten Buchstaben oder Zeichen aus dem benutzten Zeichensatz können mit Hilfe einer Zeichenkonstante dargestellt werden. Handelt es sich um ein druckbares Zeichen, ist die Darstellung einfach. In C wird das gewünschte Zeichen in einfachen Hochkommas eingeschlossen. Für eine Reihe von häufig benutzten Sonderzeichen sind Ersatzdarstellungen definiert. Ein umgekehrter Schrägstrich dient als Fluchtsymbol. (Ein Fluchtsymbol gibt dem nachfolgenden Zeichen eine andere Bedeutung.) Die Ersatzdarstellung für Zeichen, die nicht druckbar, sondern nur ausführbar sind, besteht zumeist aus dem Fluchtsymbol und einem Buchstaben. Wie bei anderen Fluchtsymbolen auch, muss man es verdoppeln, wenn man es ohne Sonderbedeutung benutzen will. Abbildung 15 Ersatzdarstellung Wichtig und oft verwendet sind die Angaben des Codes in oktaler und hexadezimaler Form. Folgt dem umgekehrten Schrägstrich eine ein- bis dreistellige Zahl, wird sie als oktale Angabe eines Zeichens betrachtet. Ein x leitet eine ein- oder zweistellige hexadezimale Zahl ein. Im Bild 6-16 sehen Sie in der Zeile 14 eine einfache Zeichenkonstante, in der Zeile 12 eine vordefinierte Ersatzdarstellung und in der Zeile 16 die Angabe des Zeichencodes. Automatische Typanpassung char auf int An Hand des letzten Beispieles lässt sich eine typische Eigenschaft von C zeigen. Für Zeichen- Konstanten gelten die gleichen Typregeln wie für ganzzahlige Konstanten. (Ein Zeichen wird intern in einem ganzzahligen Code des Zeichensatzes darstellt.) Der kleinste Typ ist int. Nun muss der Compiler eine Typanpassung vornehmen. Die Typanpassung geschieht gemäss den Regeln der vorzeichenbehafteten Mathematik. (Bei den Schiebeoperationen schauen wir das noch genauer an.) Ein Zeichencode kleiner als 128 wird als positiv angesehen und mit Nullen zu 16-Bit ergänzt ein Zeichencode größer als 127 wird als negativ angesehen und daher mit zwei f erweitert. Entscheidend ist dabei das Vorzeichenbit, das jeweils an der höchsten Bitposition steht. Im Bild 6-16 wurde ganz bewusst eine char -Variable verwendet, um möglichen Problemen aus dem Weg zu gehen. Bei Vergleich werden (bei unseren Testmaschinen) nur die unteren 8 Bit der Konstanten mit dem Inhalt der char -Variablen verglichen. Entscheidungen und Konstante

12 1 /* Fallunterscheidung und Konstante */ 2 /* swiblok.c */ 3 4 #include <<stdio.h>> 5 int main () 6 { 7 char c; 8 puts ("\x1b[2j"); /* Bildschirm löschen */ 9 printf ("Tippen Sie Buchstaben oder Tab\n"); 10 switch (c = getchar() ) 11 { 12 case '\t': printf ("\ntabulator.\n"); 13 break; 14 case 'A': printf ("\ngroßes A\n"); 15 break; 16 case '\x61': printf ("\nkleines a\n"); 17 break; 18 default: 19 printf("\nwert %04x\n",c); 20 break; 21 } 22 return 0; 23 } 24 Abbildung 16 Fallunterscheidung mit Zeichenkonstanten Aufgabe: Abbildung 17 Interne Darstellung eines int- Zeichens Erweiterung des Vorzeichens? Ändern Sie im Bild 6-16 in der Zeile 5 den Typ der Variablen auf int. Was passiert bei einem Umlaut (hier: ü )? Wie liefert getchar() ein Ergebnis? Mit oder ohne In C werden alle Operationen wie Addition oder Vergleiche mindestens mit int durchgeführt. Diese Regel stammt aus der Zeit, zu der man Register innerhalb eines Prozessors nicht teilen konnte. Eine heutige CPU kann sowohl mit Bytes als auch mit 16-Bit-Worten umgehen. Und noch eine Eigenart lässt sich hier feststellen. Ältere Compiler erlauben oft im gesamten Quelltext nur Zeichen des ASCII-Zeichensatzes. Ein ü als Konstante ist dort nicht möglich. ANSI-Compiler sollen den Zeichensatz der Maschine unterstützen. Hier sind dann auch Umlaute als Zeichen-Konstanten erlaubt. Notfalls geben Sie eben statt des Zeichens seinen Code an, wie dies im Bild 6-16 geschehen ist. In ANSI-C werden neben den westlichen Zeichensätzen wie ASCII, ISO oder ANSI auch asiatische Zeichensätze unterstützt, die pro Zeichen mehr als 8 Bits benötigen. Auf die Darstellung dieser Zeichensätze wurde hier verzichtet. Entscheidungen und Konstante

13 Konstante Ausdrücke Die Marken in einer Fallunterscheidung können auch aus konstanten Ausdrücken gebildet werden. Diese Ausdrücke können zur Übersetzungszeit vom Compiler ausgewertet werden. Im Programm taucht dann nur das Ergebnis als Konstante auf. Im Bild 6-18 wurden die konstanten Ausdrücke benutzt, um auf eine lesbare Art ASCII- Steuerzeichen anzugeben. Steuerzeichen sind von den Grossbuchstaben durch ein Bit unterschieden. Man kann daher von einem Grossbuchstaben 0x40 abziehen, um das zugehörigen Steuerzeichen zu erhalten. Textkonstante Eine Textkonstante wird durch einen Text in doppelten Anführungszeichen definiert. Wir werden Textkonstanten bei Feldern näher besprechen. Aufzählungskonstanten In ANSI-C und neueren K&R-Compilern wurden Aufzählungskonstanten mit enum eingeführt. Im Beispiel wird in der Zeile 5 eine Aufzählung von Konstanten definiert. Die Aufzählung heißt: enum afarbe. Der Compiler vergibt automatisch eine 0" für rot, eine 1" für gelb usw. Dabei definieren wir einen eigenen Datentyp, mit dem wir auch die Variable ampel anlegen. Die Konstanten werden dann in Vergleichen benutzt. Den einzelnen Konstanten kann man auch selbst Werte zuweisen. gruen wird mit dem Wert 8" definiert. Leider gibt es keine Mengenoperationen. So bleibt die Verwendung der enum- Konstanten" eher eine Seltenheit. Im nächsten Kapitel In C gibt es eine Vielzahl von Operatoren. Im folgenden Kapitel werden wir uns die Operatoren und die Ausdrücke näher ansehen. Entscheidungen und Konstante

25 kann ohne Rest durch 5 geteilt werden! ist wahr

25 kann ohne Rest durch 5 geteilt werden! ist wahr Lehrbrief 2: Lektion 8 - C -Praxis 4-1 - 5.2 Einfache Entscheidungen mit if und die Vergleichsoperatoren Nun tauchen wir immer tiefer in die Geheimnisse von C ein und beschäftigen uns mit einem sehr wichtigen

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

Mehr

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff Programmieren in C C Syntax Datentypen, Operatoren und Kontrollstrukturen Prof. Dr. Nikolaus Wulff Elementare Typen Imperative und objektorientierte Programmiersprachen bieten i.d.r. einen Satz elementarer

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for

Mehr

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende. PROGRAMMIEREN IN C - EIN KURZÜBERBLICK 1 Programmieren in C -- ALLE Programmiersprachen sind HÄSSLICH -- Die einfachste Programmstruktur: main () -- was zu tun ist --- Vorgeordnete Definitionen: # include

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.

[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z. Literatur [E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage, 2009 http://download2.galileo-press.de/openbook/galileocomputing_c_von_a_bis_z.zip [E-2] M.K. Johnson, E.W. Troan: Anwendungen

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Kontrollstrukturen, Strukturierte Programmierung

Kontrollstrukturen, Strukturierte Programmierung , Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort

Mehr

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 16. Mai 2009 Inhaltsverzeichnis

Mehr

C-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de

C-Vorrangregeln. Version 1.3 6.7.2009. email: tb@ostc.de Web: www.ostc.de C-Vorrangregeln Version 1.3 6.7.2009 email: tb@ostc.de Web: www.ostc.de Die Informationen in diesem Skript wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig ausgeschlossen

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

C Überlebenstraining

C Überlebenstraining C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else

Kontrollstrukturen. Bedingter Ablauf: if. Bedingter Ablauf: if-else Kontrollstrukturen 1. Bedingter Ablauf: if, if-else 2. Blöcke von Code 3. Wiederholungsschleife: for mit Inkrement und Dekrement Operatoren 4. erweiterte Eigenschaften von printf() 5. Die relationalen

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Gliederung Programmiersprachen. Programmiersprachen Einführung in C. Kontrollstrukturen. Verzweigung mit IF. Beispiel: Zahlenklassifizieren

Gliederung Programmiersprachen. Programmiersprachen Einführung in C. Kontrollstrukturen. Verzweigung mit IF. Beispiel: Zahlenklassifizieren Programmiersprachen Einführung in C Teil 5: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen

Mehr

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54

PHP 5.4 ISBN 978-3-86249-327-2. Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012. Grundlagen zur Erstellung dynamischer Webseiten GPHP54 PHP 5.4 Stephan Heller, Andreas Dittfurth 1. Ausgabe, September 2012 Grundlagen zur Erstellung dynamischer Webseiten ISBN 978-3-86249-327-2 GPHP54 5 PHP 5.4 - Grundlagen zur Erstellung dynamischer Webseiten

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Einfache Rechenstrukturen und Kontrollfluss II

Einfache Rechenstrukturen und Kontrollfluss II Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,

Mehr

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK BIT MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 Datendefinitionen b) Unterteilung nach Typen: (Teil 2) void leer Pointer 2/4 Bytes Adresse von Objekten Arrays bei allen Datentypen

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

P r o g r a m m a b l a u f s t e u e r u n g

P r o g r a m m a b l a u f s t e u e r u n g Jede Programmiersprache braucht Konstrukte zur Steuerung des Programmablaufs. Grundsätzlich unterscheiden wir Verzweigungen und Schleifen. Schleifen dienen dazu, bestimmte Anweisungen wiederholt auszuführen,

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

Kapitel 5. Datentypen und Operatoren

Kapitel 5. Datentypen und Operatoren Kapitel 5 Datentypen und Operatoren 1 Gliederung Kapitel 5 Datentypen und Operatoren 5.1 Elementare Datentypen 5.2 Symbolische Konstanten 5.3 Typumwandlungen 5.4 Operatoren 2 5.1. Elementare Datentypen

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung in C. Grundlagen. Stefan Kallerhoff Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/

Mehr

Programmieren in C Einführung

Programmieren in C Einführung Programmieren in C Einführung Aufbau eines Programms Einfache Programme Datentypen und Vereinbarungen Das Entwicklungswerkzeug Seite Einfache Programme Kugeltank-Berechnung #include void main

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32

Steueranweisungen. Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 2 32 Steueranweisungen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder Programmblöcken)

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

Einführung in die Programmierung II. 2. Fundamentale Datentypen, Ausdrücke

Einführung in die Programmierung II. 2. Fundamentale Datentypen, Ausdrücke Einführung in die Programmierung II 2. Fundamentale Datentypen, Ausdrücke Stefan Zimmer 3. 5. 2006-1- Objekte im Speicher Ein Objekt ist für uns zunächst einfach ein fester Bereich im Speicher unseres

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Vorname: Nachname: Matrikelnummer: Legen Sie zu Beginn Ihren Studentenausweis

Mehr

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B. C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

620.900 Propädeutikum zur Programmierung

620.900 Propädeutikum zur Programmierung 620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

Prinzipieller Grundaufbau eines einfachen C-Programmes

Prinzipieller Grundaufbau eines einfachen C-Programmes Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 15. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de DYNAMISCHE SEITEN Warum Scriptsprachen? Stand: 11.04.2005 CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de I N H A L T 1 Warum dynamische Seiten?... 3 1.1 Einführung... 3 1.2 HTML Seiten...

Mehr

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)

C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Schleifen und eindimensionale Felder

Schleifen und eindimensionale Felder Schleifen und eindimensionale Felder Die Grundelemente der strukturierten Programmierung sind Aktionen und die Zusammenfassung von Aktionen (unsere Blöcke), Entscheidungen (aus dem letzten Kapitel) und

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Steuern des GSR-Interface mit QBasic

Steuern des GSR-Interface mit QBasic Steuern des GSR-Interface mit QBasic Erstellt von Jochen Sendler, Geschwister-Scholl-Realschule Mannheim Inhaltsverzeichnis 1. Die Programmiersprache QBasic 3 2. Starten von QBasic 3 3. Ansteuern einzelner

Mehr

3 Die Grundrechenarten

3 Die Grundrechenarten 3 Die Grundrechenarten In diesem Kapitel wollen wir uns unter anderem mit folgenden Themen beschäftigen: Operatoren für die Addition, Subtraktion, Multiplikation und Division Modulooperator, auch Restoperator

Mehr

Workshop: ASURO-Programmieren in C

Workshop: ASURO-Programmieren in C Workshop: ASURO-Programmieren in C / Teil 1: Theorie Workshop: ASURO-Programmieren in C Teil 1: Theorie Markus Becker http://mbecker-tech.de Bürgernetz Ingolstadt e. V. / ByteWerk Stand: 1. Mai 2010 Copyright:

Mehr

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek Proseminar C-Programmierung Strukturen Von Marcel Lebek Index 1. Was sind Strukturen?...3 2. Padding 5 3. Vor- und Nachteile von Padding..8 4. Padding gering halten 9 5. Anwendungsgebiete von Strukturen.11

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten)

Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Name: «Vorname» «Name» Klausur in 12.1 Themen: Zahlsysteme, Grundlagen von Delphi (Bearbeitungszeit: 90 Minuten) Informatik 12 2 VP je 2 VP 6 VP 0 Notieren Sie alle Antworten in einer Word-Datei Klausur1_«Name».doc

Mehr