Operatoren und Ausdrücke

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

Java Einführung Operatoren Kapitel 2 und 3

L6. Operatoren und Ausdrücke

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

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Primitive Datentypen und Felder (Arrays)

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Erwin Grüner

Modul 122 VBA Scribt.docx

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Diana Lange. Generative Gestaltung Operatoren

Grundstruktur eines C-Programms

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

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

C-Vorrangregeln. Version Web:

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

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Die Programmiersprache C Eine Einführung

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

Einführung in die Programmiersprache C

1. Erläutern Sie die Aufgaben von Datentypen in der imperativen Programmierung.

8 Typwandlungen. 8.1 Automatische Typkonvertierungen

ALP I Einführung in Haskell

Numerische Datentypen. Simon Weidmann

Eine Einführung in die Programmiersprache C ++

Modellierung und Programmierung

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

Einführung in die Programmierung Hello World, Typen & Variablen, Arithmetik. Arvid Terzibaschian

Grundlagen der Programmierung

Datentypen Übersicht. C Datentypen und Operatoren. Deklaration. Übersicht. Um eine Variable zu nutzen, muss sie zunächst deklariert werden

Grundlagen der Programmierung

Algorithmen & Datenstrukturen

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

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

ModProg 15-16, Vorl. 5

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

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

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

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

2 Einfache Rechnungen

Programmiersprachen Einführung in C

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

Primitive Datentypen

4.2 Basisdatentypen und einfache Anweisungen

Teil IV. Grundlagen der Programmierung

Prinzipielle Ausführungsvarianten I

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Propädeutikum zur Programmierung

Das Rechnermodell - Funktion

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmierung mit C Zeiger

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Computergrundkenntnisse und Programmieren, WS 07/08, Übung 12: Numerik der Standardbibliothek

Rechnerarithmetik Ganzzahlen und Gleitkommazahlen Ac 2013

Integrierte Office Anwendungen

Kurven nach Formeln erstellen, Teil 3

Anwendungssoftware III (MATLAB)

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

Die Programmiersprache C

Ein erstes Java-Programm

OO Programmierung in Java

Tutorium für Fortgeschrittene

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

Aufbau von Programmen/Dateien

SWP Prüfungsvorbereitung

Computerarithmetik ( )

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

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

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

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

11. Übung Informatik II - Operatorfunktionen

Einführung in die Java- Programmierung

Themen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren

Einführung in die Java- Programmierung

Compiler: Vom Code zum Maschinen-Code. C Programmierung - Vorlesung 2 Hochschule Regensburg Universitätsstraße 31, Regensburg

Objektorientierte Programmierung

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

Daten und Operationen

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr SS INSTITUT FÜR ELEKTRONIK BIT

A Erste Übungseinheit

7. Textfelder zur Zahleneingabe

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

C Überlebenstraining

[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage,

Informatik für Schüler, Foliensatz 3 Vorhandene Funktionen und Wiederholschleifen

Java-Vorkurs Wintersemester 15/16

Prinzipieller Grundaufbau eines einfachen C-Programmes

C++ Einführung. und Datenanalyse mit ROOT. Jörg Marks, Physikalisches Institut, INF 226

Brückenkurs Mathematik, THM Friedberg,

Funktion Inhalt Erläuterung

3 Rechnen und Schaltnetze

PHP 5.4 ISBN Stephan Heller, Andreas Dittfurth 1. Ausgabe, September Grundlagen zur Erstellung dynamischer Webseiten GPHP54

Webbasierte Programmierung

Grundstrukturen: Speicherorganisation und Zahlenmengen

D A T E N... 1 Daten Micheuz Peter

Transkript:

Operatoren und Ausdrücke Zuweisungsoperator Arithmetische Operatoren Vergleichsoperatoren Logische Operatoren und Ausdrücke Implizite Typ-Umwandlung Rangordnung der Operatoren / Reihenfolge der Auswertung Mathematische Funktionen Seite Zuweisungsoperator Zuweisung: dient zur Festlegung des Wertes von Variablen allgemeine Form: linkswert = ausdruck Beispiele: a=3.7; Dichte = m/vol; x = 6.9 * a + (66.987 +(r + m)); Linkswert: Name einer Variablen Zuweisungsoperator: = auszuführende Operation: Transport des Wertes von ausdruck auf den Speicherplatz von linkswert Seite 2

Arithmetische Operatoren Arithmetische Operatoren: + Addition - Subtraktion * Multiplikation / Division % Divisionsrest (nur für ganze Zahlen) Vorrangregeln: Punktrechnung vor Strichrechnung ; von links nach rechts Besonderheiten: Operanden vom gleichen Datentyp liefern ein Ergebnis vom selben Datentyp, also ergibt a/b bei zwei integer-größen wieder eine integer-größe (Nachkomma-Stellen werden abgeschnitten) bei gemischten Ausdrücken ist das Ergebnis vom "höheren" Datentyp, also ist das Ergebnis bei einer integer- und einer float-größe vom Datentyp float Seite 3 Arithmetische Operatoren Beispiele: int i=5, j=2, k=23; float x=2.0, y=5.5; double d=2.4; liefert: Ausdruck i/j k%i*j k-7%5 x*y-i y/x 4/3*x y%x d/2 das heißt 5/2 23%5*2 3*2 23-7%5 23-2 2.0*5.5-5 -5 5.5/2.0 4/3*2.0 *2.0 unzulässig 2.4/2 Ergebnis 2 6 2 6.0f 2.75f 2.0f unzulässig.2 Seite 4

Vergleichsoperatoren Gleichheitsoperatoren (equality operators): ==!= Vergleichsoperatoren (relational operators): < > <= >= Beispiel: int nmax=20, m=3, n=6, jmax=5; char c='k'; float x=0.0, EPS=E-6; liefert Ausdruck m<4 n>nmax x>=eps (n+jmax)>nmax c>'a' c!='k' x==0.0 nmax>n>jmax das heißt 3<4 6>20 0.0>=E-6 (6+5)>6 2>6 'K'>'A' 75>65 'K'!='k' 75!= 07 0.0==0.0 20>6>5 >5 Ergebnis - bedeutet TRUE 0 - bedeutet FALSE 0 0 Seite 5 Vergleichsoperatoren Häufige Fehler a=<b a < = b x+y =! 44 n+jmax>nmax a>>b a=b x =! 44 if (a=b)... x==0.0 =< ist kein Vergleichsoperator, richtig: <= Zwischenraum < = unzulässig, Operator nicht erkannt äquivalent zu (x+y) = (!44) nicht beabsichtigte Reihenfolge; jmax>nmax wird zuerst berechnet; Ergebnis: n oder n+ Schiebeoperator, nicht Vergleichsoperator Zuweisungsoperator statt Gleichheitsoperator; syntaktisch aber korrekt, also keine Fehlermeldung!!! äquivalent zu x = (!44) statt if (a==b)... Vergleich mit Null häufig fehlerhaft wegen begrenzter Rechengenauigkeit; besser auf EPS testen Seite 6

Logische Operatoren Verneinung Verneinung NOT:! kann auf jeden einfachen Ausdruck angewendet werden liefert für jeden Wert ungleich Null den Wert 0; für Werte exakt gleich Null den Wert Ergebnis ist int Anwendung: wegen Fehlens logischer Variablen int fertig, sortiert;!fertig // nicht fertig!sortiert // nicht sortiert Achtung: normale Logik not(not s) == s gilt nicht;!!5 wird von rechts nach links abgearbeitet:!(!5)=!(0)= Seite 7 Logische Operatoren Konjunktion und Disjunktion Konjunktion UND: && Disjunktion ODER: Anwendung auf logische Ausdrücke Logik-Tabelle: A B!A A && B A B Seite 8

Gemischte Ausdrücke Implizite Typumwandlung sind Operanden unterschiedlichen Datentyps an einer Operation beteiligt, werden vor Ausführung der Operation alle Operanden in den "höheren" Datentyp umgewandelt Wertigkeit der Datentypen Datentyp Wertigkeit long double double float long int short char hoch niedrig bei Konvertierung float int wird abgeschnitten; reicht der Wertebereich nicht, ist das Ergebnis undefiniert Seite 9 Rangordnung der Operatoren Rang Operatoren Bedeutung Richtung () [] ->. Klammern, Strukturen 2! ~ ++ -- + - * & (type) sizeof rechts links 3 * / % Mult, Div, modulo 4 + - Add, Subtr 5 << >> Bit-Verschiebung 6 < <= > >= Vergleich 7 ==!= Gleichheit 8 & UND, Bitoperator 9 ^ exklusiv ODER, Bitoperator 0 inklusiv ODER, Bitoperator && UND 2 ODER 3?: rechts links 4 = += -= *= /= %= &= ^= = <<= >>= rechts links 5, Aufzählung genauere Erklärungen aller Operatoren: siehe z.b. Kernighan / Ritchie Seite 0

Reihenfolge der Auswertung Beispiel: char c='w'; int i=, j=2, k=3; int *pi=&i; float x=6.0,y=5.0; liefert: Ausdruck +2*k (+2)*k 'a'+ < c -i-5*j>=k+ x-y < 0.0 5/2*2 7./2*5 7/2*5. äquival. Ausdruck ('a'+ ) < c ((-i)-(5*j))>=(k+) (x-y) < 0.0 ((5/2)*2) (7./2)*5) (7/2)*5.) Ergebnis 7 9 (TRUE) 0 (FALSE) 0 (FALSE) 4 42.5 40.0 Seite Mathematische Funktionen in der Standardbibliothek math.h verfügbar double sin (double x) double cos (double x) double tan (double x) double asin (double x) double acos (double x) double atan (double x) double atan2 (double x) double cosh (double x) double sinh (double x) double tanh (double x) double exp (double x) double log (double x) double log0 (double x) sin(x); x im Bogenmaß cos(x); x im Bogenmaß tan(x); x im Bogenmaß Arcus-Funktionen arctan (x/y) Hyperbelfunktionen e x ; Exponentialfunktion log(x); natürlicher Logarithmus log 0 (x); dekadischer Logarithmus Seite 2

Mathematische Funktionen double ceil(double x) double floor(double x) double abs(int n) double fabs(double x) double pow(double x,double y) double sqrt(double x) double ldexp(double x,int n) double frexp(double x,int *exp) double fmod(double x,double y) double modf(double x,double *ip) nächsthöhere Ganzzahl als double nächstniedere Ganzzahl als double Absolutbetrag (integer) Absolutbetrag (float) x y für x>0, y ganzzahlig Quadratwurzel aus x, x 0 x*2 n zerlegt x in eine normalisierte Mantisse im Bereich [0.5,], die als Resultat geliefert wird, und eine Potenz von 2, die in *exp abgelegt wird. Ist x Null, sind beide Teile des Ergebnisses Null Gleitkommarest von x/y mit dem gleichen Vorzeichen wie x zerlegt x in einen ganzzahligen Teil und einen Rest, beide mit Vorzeichen von x; Rest ist Ergebnis, ganzzahliger Teil wird in *ip abgelegt Seite 3 Kontrollfragen. In welcher Reihenfolge werden die Operationen in einem arithmetischen Ausdruck ausgeführt? 2. Welchen Datentyp haben die Ergebnisse der einzelnen Operationen? 3. Welche Konsequenzen hat die interne Darstellung der verschiedenen Datentypen auf das Ergebnis der Operationen? 4. Kann man auch mit Zeichen (char-daten) arithmetische Operationen ausführen? 5. Was bewirkt der Modulo-Operator %? Wann wird das %-Zeichen als Modulo-Operator interpretiert? 6. Geben Sie das Ergebnis folgender Ausdrücke an: 5%4*7/5 +.5 5%(4*7/5) +.5 5%4*7.0/5 +.5 5%4*(7.0/5) +.5 5*7%4/5 +.5 (5*7%4)/5 +.5 5*7%4/5.0 +.5 5*(7%4/5.0) +.5 Seite 4