ESP Tutorium. Studienassistent: Ewald Moitzi. E-Mail: prog-tutor-ewald@iicm.edu. Gruppe 9



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

Java Einführung Operatoren Kapitel 2 und 3

Grundlagen der Informatik

ESP Tutorium. Studienassistent: Ewald Moitzi. Gruppe 1

Übung RA, Kapitel 1.2

Diana Lange. Generative Gestaltung Operatoren

Tutorium Rechnerorganisation

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben. Präsenzaufgaben

N Bit binäre Zahlen (signed)

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Zahlensysteme Das 10er-System

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

Grundlagen der Informatik Übungen 1.Termin

Übung 9 - Lösungsvorschlag

Graphic Coding. Klausur. 9. Februar Kurs A

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Erwin Grüner

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

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Professionelle Seminare im Bereich MS-Office

Daten verarbeiten. Binärzahlen

Daten, Informationen, Kodierung. Binärkodierung

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

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

L6. Operatoren und Ausdrücke

BITte ein BIT. Vom Bit zum Binärsystem. A Bit Of Magic. 1. Welche Werte kann ein Bit annehmen? 2. Wie viele Zustände können Sie mit 2 Bit darstellen?

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

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

Wissenswertes über binäre Felder

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

Zahlensysteme Seite -1- Zahlensysteme

Einführung in die Programmierung

FB Informatik. Fehler. Testplan

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

ubasic Port für STM32F4 von Uwe Becker

Um überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:

Version 0.3. Installation von MinGW und Eclipse CDT

Zahlensysteme. Zahl Stellenwert Zahl Zahl =

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

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Tutorium #3. Einführung in die strukturierte Programmierung Gruppe 6 Anja Karl.

Grundlagen der Informatik Übungen 1. Termin Zahlensysteme

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

einfache PIC-Übungsprogramme

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

Übungen Programmieren 1 Felix Rohrer. Übungen

Programmieren Tutorium

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

EiP Übung

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

C-Vorrangregeln. Version Web:

Was meinen die Leute eigentlich mit: Grexit?

Sin-Funktion vgl. Cos-Funktion

Überblick. Lineares Suchen

Das Rechnermodell - Funktion

Klausur in Programmieren

Numerische Datentypen. Simon Weidmann

Beispiel 19. December 4, 2009

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

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

Prozessor HC680 fiktiv

Excel Funktionen durch eigene Funktionen erweitern.

1 Vom Problem zum Programm

Tutorium #2. Einführung in die strukturierte Programmierung Gruppe 6 Anja Karl.

Hello world. Sebastian Dyroff. 21. September 2009

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

Kontrollstrukturen und Funktionen in C

Modul 122 VBA Scribt.docx

1. LPC - Lehmanns Programmier Contest - Lehmanns Logo

Wirtschaftsinformatik I

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

Programmierkurs Java

Programmierung für Mathematik (HS13)

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Binär- und Hexadezimal-Zahl Arithmetik.

Zahlendarstellungen und Rechnerarithmetik*

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

LÖSUNGEN AUFGABEN: EXCEL XP (OHNE DATEIEN)

Simplex-Umformung für Dummies

Datentypen: Enum, Array, Struct, Union

Wirtschaftsinformatik Klausur Fachprüfung (100 Punkte)

Archivieren und Komprimieren, Globs

Archivieren und Komprimieren, Globs

Klausur in Programmieren

3. Auflage. O Reillys Taschenbibliothek. Windows PowerShell 3.0. kurz & gut. Lee Holmes. Deutsche Adaption von Rolf Masuch O REILLY

Von Bits, Bytes und Raid

Einführung in die Programmierung

Binär Codierte Dezimalzahlen (BCD-Code)

Informatik für Schüler, Foliensatz 12 Pseudo-Zufallszahlen

Algorithmen & Datenstrukturen 1. Klausur

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

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

Lösungsvorschlag zum Übungsblatt 1 zur Vorlesung Informatik II / WS2001/02

Angewandte Mathematik und Programmierung

1. Übung zu "Numerik partieller Differentialgleichungen"

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Transkript:

ESP Tutorium Studienassistent: Ewald Moitzi E-Mail: prog-tutor-ewald@iicm.edu Gruppe 9

Plan für Heute Zip am pluto Datentypen? If, Schleifen Debugging Fehlerquellen Compiler-Fehlermeldungen Fehlersuche

Feedback hw1 Spezifikationstreue Zusätzliche Ordner Unvollständige/falsche Abgabe Dateinamen: hw1, hw1.c, hw1.zip oder.tar.gz

Zip am Pluto zip <zipfile> <file1> <file2> Bsp: zip hw1.zip hw1.c hw1 unzip <zipfile>

If / Schleifen Coding...

Debugging Ablauf per printf-ausgaben verfolgen IDE (zb eclipse) gdb (Kommandozeile) Mit -g kompilieren gdb <binary> cgdb wo vorhanden (nicht am pluto) Textgrafikfenster

gdb Befehle break, b run Setzt einen Breakpoint (programm wird angehalten) break <functionname> oder break <line> Startet das Programm step, s nächste Zeile, springt in Unterfunktionen next, n Nächste Zeile, springt über Funktionen

Gdb Befehle print <variable> Gibt den Wert der variable aus backtrace, bt Aufrufliste Durch <Enter> wird der letzte Befehl wiederholt

Fehlerquellen sprechende variablen namen! (nicht h, b, i) Zuweisungsoperator bei Deklaration immer gleich Wert zuweisen int count = 5; //good kein == if (count = 5) Modulo vs. Real-Division vs. Integer-Division 7 % 3 =? 7 / 3 =? 7. / 3 =?

Fehlerquellen Faustregel: bei arithmetischen Operationen bestimmen Operanden den Ergebnistyp (float, int) Pre- und Post-Increment a = count++; // zuweisen, erhöhen a = ++count; // erhöhen, zuweisen (++x == x++) - T/F?!

Fehlerquellen Short Circuit Evaluation: von links nach rechts wird so wenig wie möglich ausgewertet Möglichst keine Werte in If-Konstrukten verändern! int a = 1;... if (a == 1 b++) //b won t get incremented Nicht Bit- Operatoren und Logische-Operatoren verwechseln! && vs. &, vs.,! vs. ~

Fehlerquellen Klammern if (b == 2) { if (a == 3) formathdd(); } else donothing(); Switch/Case/Break switch(a) { case 1: playmusic(); case 2: stopmusic();...

Fehlerquellen Klammern if (b == 2) { if (a == 3) formathdd(); } else donothing(); Switch/Case/Break switch(a) { case 1: playmusic(); break; //very important case 2: stopmusic();...

Fehlerquellen Off-by-one Error int count; int int_array[5] = {1,2,3,4,5}; for (count = 0; count <= 5; count++) { printf(int_array[count]); } //zählt bis int_array[5], //obwohl int_array[4] das letzte Element ist //gibt kein Warning, schwer zu entdeckender //Fehler!

Compiler-Fehlermeldungen BEISPIELE Der Compiler sagt - Was kann das bloß bedeuten?

Links C-Referenz: www.cplusplus.com

Zahlenrepräsentation Zahlensysteme Binär (Basis 2) Octal (Basis 8) (in C z.b. 0123) Dezimal (Basis 10) (in C z.b. 123) Hexadezimal (Basis 16) (in C z.b. 0x123) Hexadezimal 0 9 + Ziffer Wert A 10 B 11 C 12 D 13 E 14 F 15

Zahlenrepräsentation 195948557: Dezimal Hex Durch Zielbasis dividieren, Rest von rechts nach links anschreiben Rest 195948557 / 16 D (13) 12 246 784 / 16 0 765 424 / 16 0 47 839 / 16 F (15) 2 989 / 16 D (13) 186 / 16 A (10) 11 / 16 B (11)

Zahlenrepräsentation 0xBEEF: Hex Dezimal Von rechts nach links: Wert x 16 mit Stelle potenzieren 0xB 0xE 0xE 0xF SUMME 11*16³ 14*16² 14*16¹ 15*16⁰ 48879

Zahlenrepräsentation 101010b: Binär Dezimal Von rechts nach links: Wert x 2 mit Stelle potenzieren 0*2 ⁰ + 1*2¹ + 0*2² +1*2³ + 0*2 ⁴ + 1*2 ⁵ = 42 1100101011111110b: Binär Hex Eine Ziffer Hex entspricht 4 Ziffern Binär In 4er Gruppen zusammenfassen und über Dezimal umrechnen Binär 1100 1010 1111 1110 Dezimal 12 10 15 14 Hex C A F E

Zahlenrepräsentation 0xC0CA: Hex Binär Ziffer für Ziffer direkt übersetzen oder Über Dezimal umrechnen (Dezimal->Binär wie Dezimal->Hex, nur mit Basis 2) Hex C 0 C A Dezimal 12 0 12 10 Binär 1100 0000 1100 1010

Bit-Operationen ~ bitweises NOT bitweises OR & bitweises AND ^ bitweises XOR

Bit-Operationen Einzelne Bits auslesen: 01001011 Information AND 00001000 Bitmaske (1 Bit gesetzt) ------------- = 00001000 Ergebnis (TRUE, also gesetzt) 01000011 Information AND 00001000 Bitmaske (1 Bit gesetzt) ------------- = 00000000 Ergebnis (FALSE, also ungesetzt)

Bit-Operationen Einzelnes Bits setzen: 01000011 Information OR 00001000 Bitmaske ------------- = 01001011 Ergebnis (TRUE, also gesetzt) Einzelnes Bits löschen: NOT 00001000 Bitmaske ------------- = 11110111 invertierte Bitmaske 01001011 Information AND 11110111 invertierte Bitmaske ------------- = 01000011 Ergebnis

Bit-Operationen Bits toggeln (umschalten): 01000111 Information XOR 00001100 Bitmaske ------------- = 01001011 Ergebnis Bitmasken zusammenfassen 00000100 Bitmaske I OR 00001000 Bitmaske II ------------- = 00001100 Ergebnis

Bit-Operationen Bit-Shifts 00000100 Wert (4) << (left) ------------- 00001000 Ergebnis (4 * 2 = 8) 00000100 Wert (4) >> (right) ------------- 00000010 Ergebnis (4 / 2 = 2) => Achtung, Beim verschieben der Bits über die Grenzen des Datentypes gehen diese Informationen verloren