C- Kurs 03 Ausdrücke und Operatoren

Ähnliche Dokumente
Dr. Monika Meiler. Inhalt

Vorlesung 6: Operatoren, Logische Ausdrücke

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

C-Programmierung: Ausdrücke und Operatoren#Division.2F

L6. Operatoren und Ausdrücke

PIC16 Programmierung in HITECH-C

Einstieg in die Informatik mit Java

Modellierung und Programmierung 1

Programmieren in C / C++ Grundlagen C 2

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

C- Kurs 04 Anweisungen

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Java Einführung Operatoren Kapitel 2 und 3

3. Java - Sprachkonstrukte I

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren

Grundlagen der Informatik 2. Operatoren

Programmieren I. Operatoren und Ausdrücke Heusch 6.2 Ratz Institut für Angewandte Informatik

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

2. Programmierung in C

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Java I Vorlesung Imperatives Programmieren

C- Kurs 08 Zeiger. Dipl.- Inf. Jörn Hoffmann leipzig.de. Universität Leipzig Ins?tut für Informa?k Technische Informa?

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Operatoren (1) Operatoren (2)

Grundlagen der Informatik 2. Typen

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Die Programmiersprache C Eine Einführung

6. Grundlagen der Programmierung

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

Operatoren und Ausdrücke

Funktionales C++ zum Ersten

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Weitere Operatoren und Datentypen. Speicherklassen. Speicherklassen: static

Übungspaket 9 Logische Ausdrücke

Unterlagen. CPP-Uebungen-08/

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Ganze Zahlen. Die Typen int, unsigned int; Auswertung arithmetischer Ausdrücke, arithmetische Operatoren

Programmiersprachen Einführung in C

Gliederung Programmiersprachen. Programmiersprachen Einführung in C. Ausdrücke in Programmiersprachen ~ Aufbau mathematischer Formeln

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

Schleifenanweisungen

Operatoren und Ausdrücke

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Einstieg in die Informatik mit Java

Zusammenfassung des Handzettels für Programmieren in C

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

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

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

Kapitel 5. Datentypen und Operatoren

Programmiersprachen Einführung in C

Grundlagen von C# - 1

2. Ganze Zahlen. Auswertung arithmetischer Ausdrücke, Assoziativität und Präzedenz, arithmetische Operatoren, Wertebereich der Typen int, unsigned int

Die Programmiersprache C

JAVA-Datentypen und deren Wertebereich

Datentypen und Operatoren

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

2. Ganze Zahlen int unsigned int

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Grundlagen der Programmierung

Einführung in die Programmiersprache C

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

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

Grundlagen der Programmierung

Kapitel 4: Elementare Konzepte von Programmiersprachen. Variablen Referenzen Zuweisungen

C- Kurs 07 Höhere Datentypen

1. Ganze Zahlen. 9 * celsius / Celsius to Fahrenheit. (9 * celsius / 5) + 32

Physische Datenstrukturen

Programmieren in C++ Überladen von Methoden und Operatoren

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 3.Übung bis

Arrays (Felder/Vektoren)

Einstieg in die Informatik mit Java

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

F Zeiger, Felder und Strukturen in C

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

Android-Apps Gegenüberstellung Delphi java

Einfache Rechenstrukturen und Kontrollfluß

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Projekt 3 Variablen und Operatoren

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

9. Bitlevel-Verarbeitung in C

Werkzeuge zur Programmentwicklung

3.4 Struktur von Programmen

Intensivübung zu Algorithmen und Datenstrukturen

String-Konkatenation

Operatoren und Ausdrücke

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

System.out.println("TEXT");

ModProg 15-16, Vorl. 5

Kompaktkurs Einführung in die Programmierung. 3. Fundamentale Datentypen, Ausdrücke

Eine Reihe häufig benötigter Datentypen ist in C vordefiniert

Transkript:

C- Kurs 03 Ausdrücke und Operatoren Dipl.- Inf. Jörn Hoffmann jhoffmann@informadk.uni- leipzig.de Universität Leipzig InsDtut für InformaDk Technische InformaDk

Ausdrücke Institut für Informatik Ausdrücke Verknüpfung von Variablen und Konstanten mittels Operatoren Zuhilfenahme von Klammern Unterscheidung 1. Arithmetische Ausdrücke a + b; 2. Wertzuweisungen a = b; 3. Inkrementieren u. Dekrementieren a++; u. --a; 4. Logische Ausdrücke a && b; 5. Bedingte Ausdrücke var? a : b; 6. Bitausdrücke a & b; 7. Kommaausdrücke a, b; Jörn Hoffmann C-Kurs Folie 2

1. Arithmetische Ausdrücke Institut für Informatik Operatoren unär : + - binär : + - * / % Syntax übliche, durch Klammerung Semantik Operation abhängig vom Operator und Operandentyp Operationsergebnis besitzt selben Typ wie beide Operanden Beispiele 7 / 3 => 2 7.0/ 3.0 => 2.333333 7.0/ 3 => 2.333333 1 / 2*a => 0 Jörn Hoffmann C-Kurs Folie 3

1. Arithmetische Ausdrücke Typkonvertierung Typkonvertierung erfolgt nach festen Regeln char short int unsigned int unsigned char unsigned short long unsigned long float double grundsätzliche Konvertierung bei verschiedenen Operatoren Jörn Hoffmann C-Kurs Folie 4

Explizite Typumwandlung Institut für Informatik Explizite Typumwandlung engl.: type casting Ausdrücken: (Neuer Typ) Ausdruck; Konstanten: Konstante {u U l L f F} u U = unsigned f F = float l L = long int oder long double Beispiele (float)(1 / 2) => 0.0 (float) 1 / 2 => 0.5 1 / 2f => 0.5 1. / 2 => 0.5 Jörn Hoffmann C-Kurs Folie 5

Operatoren binär : = binär : += -= *= /= %= = &= ^= <<= >>= 2. Wertzuweisungen Syntax einfache Wertzuweisung : var = Ausdruck; komplexe Wertzuweisung: var = Ausdruck; Semantik (Variable = Ausdruck) Zuweisung des Ausdruckswerts an Variable Abarbeitung von rechts nach links Semantik (Variable = Ausdruck) Variable = Variable Ausdruck Unterschied : Anzahl der Speicherzugiffe Jörn Hoffmann C-Kurs Folie 6

2. Wertzuweisungen Institut für Informatik Beispiele int a = 1; => a := 1 a += 2; => a := 3 a <<= 1; => a := 6; a &= 3; => a := 2; a *= a; => a := 4; a %= 3; => a := 1; Jörn Hoffmann C-Kurs Folie 7

2. Wertzuweisung Konvertierung Konvertierung Typ der (linken) Variablen bestimmt Typ der Wertzuweisung Stellen können werden abgeschnitten Bsp.: int x; x = 3.9 * 2; => x := 7 Nebeneffekte Vermeiden von zusammengesetzten Wertzw. in einer Wertzuweisung Implementierungsabhängig Bsp.: int x = 1; x = x + (x += 10); => x:= 1 + (11) := 12 => X:= 11 + (11) := 22 Jörn Hoffmann C-Kurs Folie 8

Operatoren unär : ++ -- 3. Inkrementieren und Dekrementieren Syntax Präfix : ++x --y Postfix : x++ y-- Semantik (++x, x++) Inkrement vor bzw. nach Weiterverwendung Äquivalent zu x=x+1; Semantik (--x, x--) Dekrement vor bzw. nach Weiterverwendung Äquivalent zu x=x 1; Jörn Hoffmann C-Kurs Folie 9

3. Inkrementieren und Dekrementieren Beispiele int x, y=5, z=5; x = --y + 5; => y := 4, x := 9 x = z-- + 5; => z := 4, x := 10 Nebeneffekte Inkrementierte bzw. dekrementierte Variablen sollten in Ausdrücken nur einmal verwendet werden Implementierungsabhängig Bsp.: int x, y=1; x = y++ + y; => 1 + 1 => x := 2 => 1 + 2 => x := 3 Jörn Hoffmann C-Kurs Folie 10

4. Logische Ausdrücke Institut für Informatik Operatoren unär : binär : < > <= >= == = && Syntax übliche Syntax Semantik Logische Ausdrücke entsprechen Bedingungen keine Bool scher Datentyp, daher 1 = wahr, 0 = falsch a b a && b (and) a b (or) a (not) 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 1 0 Jörn Hoffmann C-Kurs Folie 11

4. Logische Ausdrücke Auswertung Auswertung Logische Operatoren werden immer optimierend ausgewertet a && b : ist a falsch, wird b nicht ausgewertet a b : ist a wahr, wird b nicht ausgewertet Beispiele // Division durch Null wird vermieden y == 0 x / y > toleranz; // Einlesen falls Anzahl noch nicht erreicht anzahl < MAX_ZAHLEN && scanf( %f, &zahl) = EOF; Jörn Hoffmann C-Kurs Folie 12

5. Bedingte Ausdrücke Institut für Informatik Operatoren tertiär :?: Syntax Bedingung? Ausdruck1 : Ausdruck2; Semantik Bedingung wahr : Ausdruck1 wird ausgewertet Bedingung falsch : Ausdruck2 wird ausgewertet Beispiel float erg, x; erg = x >= 0? sqrt(x) : -1; if (erg < 0) printf( Nicht lösbar\n ); else printf( Die Wurzel von %f ist %f\n, x, erg); Jörn Hoffmann C-Kurs Folie 13

6. Bitausdrücke Institut für Informatik Operatoren unär : ~ binär : >> << & ^ Syntax übliche Syntax von Ganzzahlen Semantik a b a & b (and) a b (or) a ^ b (xor) ab << 1 (shift-left) ab >> 1 (shift-right) ~a (not) 0 0 0 0 0 00 00 0 1 0 1 1 10 00 1 0 0 1 1 00 01 1 1 1 1 0 10 01 1 0 Jörn Hoffmann C-Kurs Folie 14

6. Bitausdrücke Beispiele Bsp.: Und 1 & 3 : 0000 0001 & 0000 0011 => 0000 0001 (1) Bsp.: Oder 1 3 : 0000 0001 0000 0011 => 0000 0011 (3) Bsp.: Exklusiv-Oder 1 ^ 3 : 0000 0001 ^ 0000 0011 => 0000 0010 (2) Bsp.: Verschieben (auffüllen mit Null) 1 << 3 : 0000 0001 << 3 => 0000 1000 (8) 1 >> 3 : 0000 0001 >> 3 => 0000 0000 (0) Bsp.: Negation ~ 1 : ~ 0000 0001 => 1111 1110 (254) Jörn Hoffmann C-Kurs Folie 15

7. Kommaausdrücke Institut für Informatik Operator binär :, Syntax Listentrennung : int a, b; f(a, b); Operator : Ausdruck, Ausdruck Semantik (bei Ausdrücken) Abarbeitung von links nach rechts Wert und Typ des Ausdrucks entspricht Wert und Typ des rechten Ausdrucks Jörn Hoffmann C-Kurs Folie 16

// Programm zum Stringinvertieren # include <stdio.h> # include <string.h> void invertstring(char *str) { // Komma als Trenner int tmp, begin, end; // Komma als Ausdruck for (begin = 0, end = strlen(str) - 1; begin < end; begin++, end--) tmp = str[begin], str[begin] = str[end], str[end] = tmp; } int main() { char str[] = "beispiel"; invertstring(str); printf("%s\n", str); // leipsieb return 0; } Jörn Hoffmann C-Kurs Folie 17