Ganze Zahlen, Ausdrücke Variablen/Konstanten

Ähnliche Dokumente
Bit Operationen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Fliesskommazahlen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Hello World! Eine Einführung in das Programmieren Variablen

Elementare Konzepte von

Informatik Vorkurs - Vorlesung 2

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Wiederholungen / Schleifen

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

Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.

Variablen, Konstanten und Datentypen

Programmierkurs C++ Variablen und Datentypen

C-Programmierkurs Mathematik

Elementare Datentypen in C++

Datenstrukturen. InE1 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

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

Vorkurs Informatik WiSe 17/18

Informatik I (D-MAVT)

Programmieren in C / C++ Grundlagen C 2

3/4/2009. Schalter: Ein vs. Aus Lochkarten: Loch vs. Kein Loch Boolean/Wahrheitswerte: true vs. false

Grundlagen zu Datenobjekten und Operatoren

2.1 Fundamentale Typen

3. Java - Sprachkonstrukte I

2. Programmierung in C

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

Welche Informatik-Kenntnisse bringen Sie mit?

JAVA-Datentypen und deren Wertebereich

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

Schwerpunkte. 8. Ausdrücke, Operatoren (einfache Typen) Beispiel: Schaltjahr Test. Einführendes Beispiel: Grundprobleme

Martin Unold INFORMATIK. Geoinformatik und Vermessung

2. Programmierung in C

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I

Dr. Monika Meiler. Inhalt

Grundlagen der Informatik 2. Typen

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Einführung in die Programmierung Wintersemester 2008/09

Vorkurs Informatik WiSe 16/17

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

Strings (Zeichenketten)

Algorithmen zur Datenanalyse in C++

Kapitel 3: Variablen

Projekt 3 Variablen und Operatoren

Entscheidungen. INE1, Montag M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

einlesen n > 0? Ausgabe Negative Zahl

Kapitel 5. Datentypen und Operatoren

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

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

Einfache Ein-und Ausgabe

RO-Tutorien 3 / 6 / 12

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Algorithmen und Datenstrukturen

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

Übungspaket 12 Der Datentyp char

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Inhalt. 4.5 Arbeit mit Zeigern (engl. Pointer)

Java I Vorlesung Imperatives Programmieren

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

1 EINFÜHRUNG PROGRAMMAUFBAU IN C++

2. Datentypen und Deklarationen

Viel Erfolg bei der Bearbeitung der Aufgaben!

Dr. Monika Meiler. Inhalt

Kommentare in C. Keine Ahnung was ich vor einem Jahr gemacht habe. Ich verstehe es nicht ich schreibe es nochmal..

3. Datentypen, Ausdrücke und Operatoren

3. Operatoren und Ausdrücke

Wertebereich und Genauigkeit der Zahlendarstellung

Herzlich willkommen!

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme

Grundlagen der Programmierung

Grundlagen der Programmierung

Einführung in die Programmierung mit VBA

Grundlagen der Informatik 2. Operatoren

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einfache Rechenstrukturen und Kontrollfluss

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

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

Die Programmiersprache C

Einfache Rechenstrukturen und Kontrollfluß

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

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

C++ - Einführung in die Programmiersprache Variablen und Konstanten. Leibniz Universität IT Services Anja Aue

Übersicht. Peter Sobe 1

Unterlagen. CPP-Uebungen-08/

Transkript:

Ganze Zahlen, Ausdrücke Variablen/Konstanten InE1 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1

Um was geht es? Programmieren in C ganze Zahlen, Konstanten und Variablen 2

Lernziele Siekönnen Ganzzahlliterale und das Bilden von mathematische Ausdrücken mit Grundoperationen erklären den Datentyp int (Integer) erklären und diskutieren, speziell auch die Darstellung positiver und negativer Zahlen int-variablen vereinbaren und in Programmen einsetzen weitere Ganzzahltypen aufzählen und bei Bedarf einsetzen EBNF und Syntaxdiagramme interpretieren und diskutieren 3

Inhalt Zahlen und Ausdrücke VariablenvomTyp int Weitere Ganzzahltypen EBNF und Syntaxdiagramme 4

Leseempfehlung Kapitel 2.1/2.2/2.3 Variablen Wikibooks, C Programmierung WEB-Page / OLAT oder https://upload.wikimedia.org/wikibooks/de/8/8d/cprogrammierung.pdf 5

Weitere Informationen Kapitel 5.2 Der Datentyp int Jürgen Wolf, "C von A bis Z" (Rheinwerk Openbook) http://openbook.rheinwerk-verlag.de/c_von_a_bis_z 6

Inhalt Zahlen und Ausdrücke VariablenvomTyp int Weitere Ganzzahltypen EBNF und Syntaxdiagramme 7

Zahlen in Programmen Die Zahl21 im Programm als ganze Zahl interpretiert Ganzzahlliteral DerText "21" im Programm als Text interpretiert Zeichenkette bzw. String Die Funktion printnum() gibt einen Zahlenwert aus (ganze Zahl) selbstdefinierte Funktion 8

Ausdrücke Ausdruck Kombination aus Konstanten (Zahlen), Variablen, Rückgabewerten von Funktionen und Operatoren Die Auswertung eines Ausdrucks ergibt einen Wert Wert hier der Variablen mit Namen wert zugewiesen Beispiel Ausdruck wert = 3 * variable + 15 / 32 + square(5 + 1); Ausdruck 9

Ausdrücke mit Zahlen (Konstanten) MitZahlen rechnen ÜblicheOperatoren: + - * / % Ganzzahldivision / Rest wird ignoriert Modulo-Operation % Rest der Ganzzahldivision Punkt- vor Strichrechnung: */% vor +- gleiche Priorität: links rechts Verabeitungsreihenfolge mit Klammern beeinflussbar 1+1 1-3 20+1*2 (20+1)*2 (20+1)*2/3 (20+1)*(2/3) 37/10 37%10 85000*85000 0x64 0100! FehlerbeizugrossenZahlen 10

... Ausdrücke mit Zahlen (Konstanten) Ganzzahlliterale kein Präfix dezimal, z.b. 39 00100111 = 39 10 Präfix 0x hexdezimal, z.b. 0x3F 0011'1111 = 63 10 Präfix 0 octal, z.b. 0127 01'010'111 = 87 10 11

Inhalt Zahlen und Ausdrücke VariablenvomTyp int Weitere Ganzzahltypen EBNF und Syntaxdiagramme 12

Der Datentyp int Standard Datentypin C fürganzezahlen int kurz für Integer Ganzzahlliteral ohne Kennzeichnung Typ int Beispiele: 125, 0x3A, 034 Nichtvorgegebenin C AnzahlBits typische Grösse: 4 Bytes bzw. 32 Bits manchmal auch 16 Bits oder 64 Bits Negative Zahlen Darstellung: 2er-Komplement Format einfache Regel: höchstwertiges Bit = 1 Zahl negativ - Gewicht höchstwertiges Bit: -2 n-1 13

... der Datentyp int Wertebereich für n-bit Zahl -2 n-1... 2 n-1-1 Integer = 4 Bytes -2 31... 2 31-1 -2'147'483'648... 2'147'483'647 Integer = 2 Bytes -2 15... 2 15-1 -32'768... 32'767 14

Übung Was gibt printnum() aus? 0xFFFF 0xFFFFFFFF 48000 * 48000 15

Important! Beim Rechnen mit ganzen Zahlen muss mit einem Überlauf gerechet werden: es gibt weder Compiler- noch Laufzeitfehler 16

Variablen Bisjetzt Ganzzahlliterale verwendet Frage wie z.b. Resultate von Berechnungen weiterverwenden? Benötigen Möglichkeit Resultat aufzuheben "Speicher" Lösung: Variablen stellen Speicherstellen dar haben einen Namen und einen Typ müssen vereinbart werden - Form: Datentyp Variablenname; // Erklaerung int resultat; // Vereinbarung einer Variablen vom Typ int 17

Vereinbarung von Variablen Vereinbarungen stehen am Anfang eines Blocks vor Anweisungen - seit C99 auch innerhalb eines Blocks erlaubt sind nur innerhalb des Blocks gültig mehrere Variablen pro Typ vereinbar reservieren Speicherplatz haben noch "keinen" Wert int main(void) { } int preis; // Preis in Rappen int summe = 0, artikel; // Gesamtbetrag // Artikelnummer preis =... ;... // Anweisungen Block Anfang Variable preis Variable summe, mit 0 initialisiert Block Ende 18

... Vereinbarung von Variablen Zwei Aspekte Deklaration - preis Variable vom Typ int Definition - reserviert Speicherplatz für preis - Initialisierung weist Variablen Wert zu Deklaration und Definition/Initialisierung - meist zusammen int preis; int summe = 0, artikel; - Ausnahme: Deklaration einer Variablen aus anderem Modul (extern-deklaration: mehr dazu später) nicht initialiserte Variablen haben keinen definierten Wert 19

Variablennamen Namen Bezeichner bzw. Identifier können aus Buchstaben, Ziffern und Unterstrichen bestehen Unterscheidung von Gross-/Kleinschreibung Umlaute und andere Sonderzeichen nicht erlaubt dürfen nicht mit Zahl beginnen sollen nicht mit einem Unterstrich beginnen dürfen keine Schlüsselwörter sein richtig saldo ueberlauf grenzwert celsiustofahrenheit falsch 6name char übergabe berechne_a/b 20

... Variablennamen Konventionen Name soll Zweck der Variable beschreiben Name beginnt mit Kleinbuchstaben - bei mehreren Worten Anfangsbuchstaben ab 2. Wort gross - Beispiel: dieerstezahl wird CamelCase-Notation genannt bei klarem Zweck auch kurze Namen erlaubt - Beispiele x für x-koordinate i für Lauf- bzw. Zählvariablen etc. 21

Variablen verwenden Beispiel 22

Zuweisungen Variablen sind Speicherstellen können ausgelesen und/oder verändert werden einer Variablen kann ein Wert zugewiesen werden Zuweisungsoperator in C ist = int anzahl = 250; // Definition und Initialisierung anzahl = 300; // Zuweisung neuer Wert Zuweisung: Variablenname = Ausdruck; Ergebnis der Ausdruck-Berechnung an Variable zugewiesen Ausdruck kann Variable selbst enthalten anzahl = anzahl + 1; summe = preis * anzahl - rabatt; 23

Kombinierte Zuweisungen Variable häufig auch im Ausdruck anzahl = anzahl + 1; summe = summe + i; produkt = produkt * 2; Kurzform anzahl += 1; summe += i; produkt *= 2; MöglicheOperatoren: +=, -=, *=, /=, %= 24

Globale Variablen Variablen ausserhalb von Funktionen definierbar sind funktionsübergreifend verfügbar Beispiel Globale Variablen wenn möglich vermeiden 25

Inhalt Zahlen und Ausdrücke Zahlensysteme VariablenvomTyp int Weitere Ganzzahltypen EBNF und Syntaxdiagramme 26

Weitere Ganzzahltypen long grösserer Wertebereich: oft 8 Bytes Literale mit angehängtem L long int grossezahl; // Typ: long int long auchgrossezahl; // Kurzform grossezahl = 24L; // short kleinerer Wertebereich: oft 2 Bytes short int kleinezahl; // Typ: short int short auchkleinezahl; // Kurzform 27

Weitere Ganzzahltypen unsigned nur positive Zahlen Wertebereich 0.. 2 n -1 Literale mit angehängtem U oder u char unsigned short int kleinepositivezahl; // Typ: unsigned short unsigned positivezahl; // Typ: unsigned int positivezahl = 25u; Grösse: 1 Byte, Ganzzahltyp Zuweisung: Zahl oder Zeichen möglich bei Zeichen Zeichencode gespeichert, i.d.r. ASCII Zeichenliterale in Single Quotes: 'a' char zeichen = 'a'; // speichert 97, ASCII-Code von a char gleicheszeichen = 97; // speichert ebenfalls 97 28

Grössen der Ganzzahltypen Grössen von Ganzzahltypen abhängig von C Umgebung In limits.h Angaben zu Typgrössen definiert Konstanten für Maximal- und Minimalwert: INT_MAX, INT_MIN, LONG_MAX, CHAR_MAX, etc. printf("maximum Typ int: %d\n", MAX_INT); // -> 2147483647 sizeof-operator gibt Speichergrösse von Typen, Variablen und Konstanten in Anzahl Bytes an sizeof(12) // typische Grösse: 4 sizeof('a') // typische Grösse: 1 sizeof(int) // typische Grösse: 4 sizeof(long) // typische Grösse: 8 abhängig von C Umgebung 29

Inhalt Zahlen und Ausdrücke Zahlensysteme VariablenvomTyp int Weitere Ganzzahltypen EBNF und Syntaxdiagramme 30

Syntaxdiagramme und EBNF int preis; int summe = 0, artikel; Darstellungvon Syntax und Grammatik: EBNF EBNF: Erweiterte Backus Nauer Form vollständige, kompakte Darstellung was C-Code ist Vereinbarung ::= Typ ( Bezeichner [ "=" Konst-Ausdr]) { "," Bezeichner [ "=" Konst-Ausdr] } ";" EBNF eher schwierig zu lesen Alternative Syntaxdiagramme Quadrate: Elemente in anderem Diagramm Kreis: Elemente in Code 31

... Syntaxdiagramme und EBNF Korrespondenz EBNF und Syntaxdiagramme Komposition E1 E2 bzw. (E1 E2) E1 E2 Auswahl E1 E2 E1 E2 Option [E1] E1 Wiederholung, 0-N mal {E1} E1 32

Übersicht C++ 33

Zusammenfassung Normalerweise Ganzzahltyp int Wortbreite int nicht vorgegeben, oft 32 Bits Bei guten Gründen auch long, short, unsigned Zeichen immer char 8 Bits Syntaxdiagramme beschreiben die Syntax der Programmiersprache 34