C-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi

Ähnliche Dokumente
RO-Tutorien 3 / 6 / 12

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

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

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

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

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

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

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Tutorium Rechnerorganisation

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

Kapitel 3: Variablen

Programmieren I. Kapitel 5. Kontrollfluss

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

2.5 Programmstrukturen Entscheidung / Alternative

Programmieren in C/C++ und MATLAB

VORKURS INFORMATIK EINE EINFÜHRUNG IN JAVASCRIPT

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Modul 122 VBA Scribt.docx

ModProg 15-16, Vorl. 5

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

Die Programmiersprache C Eine Einführung

Einfache Rechenstrukturen und Kontrollfluss II

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

Zusammenfassung des Handzettels für Programmieren in C

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

Vorlesung Programmieren

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

Einführung in die Programmiersprache C und in den C166-Compiler

Erste Schritte der Programmierung in C

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

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Schleifen in C/C++/Java

Die Programmiersprache C99: Zusammenfassung

Einführung in die C-Programmierung

4.Grundsätzliche Programmentwicklungsmethoden

3. Anweisungen und Kontrollstrukturen

Einführung in die Programmierung Wintersemester 2011/12

Kapitel 5. Programmierkurs. Kontrollstrukturen. Arten von Kontrollstrukturen. Kontrollstrukturen Die if-anweisung Die switch-anweisung

Programmieren in C / C++ Grundlagen C 4

JAVA-Datentypen und deren Wertebereich

Webbasierte Programmierung

Programmieren I + II Regeln der Code-Formatierung

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

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

1.8 Kontrollstrukturen 73. default : ziffer = 0; if (ziffer > 0) { cout << "Ziffer = " << ziffer; else { cout << "keine römische Ziffer!

Präzedenz von Operatoren

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

Prinzipieller Grundaufbau eines einfachen C-Programmes

Herzlich Willkommen. Über mich Termine Literatur Über PHP

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

PROGRAMMIERUNG IN JAVA

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

Objektorientierte Programmierung OOP Programmieren mit Java

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

Einstieg in die Informatik mit Java

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

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Fallunterscheidung: if-statement

Dr. Monika Meiler. Inhalt

Grundlagen der Programmierung

+ C - Array (Vektoren, Felder)

BKTM - Programmieren leicht gemacht.

Grundlagen der Programmierung

Objektorientierte Programmierung

Processing Info zu Variablen und Bedingungen

Einführung in Java. Arne Hüffmeier. Angelehnt an Java-Vorkurs der Freitagsrunde. Methoden implementieren. Michelle Liebers, Dennis Hoffmann

Elementare Datentypen in C++

2. Programmierung in C

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

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

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

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Programmierkurs Python I

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

5. Elementare Befehle und Struktogramme

Die Algorithmenbeschreibungssprache Jana

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

Deklarationen in C. Prof. Dr. Margarita Esponda

5. Tutorium zu Programmieren

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

C programmieren. Jürgen Wolf

Einführung in die Programmiersprache C

Modellierung und Programmierung 1

2. Programmierung in C

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

Prozeduren und Funktionen

Advanced Programming in C

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

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

Praxisorientierte Einführung in C++ Lektion: "Kontrollstrukturen"

Übersicht Programmablaufsteuerung

Hochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.

ALGOL 68 im Aspekt einer modernen Programmiersprache???

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

Arbeiten mit JavaKara

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

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

Transkript:

1. Datentypen C-Grundlagen zur Programmierung des MicroControllersystems MiCoWi Die Grafiken und Beispiele wurden dem Buch C von A bis z von Jürgen Wolf entnommen. Es werden hier die ANSI-Festlegungen genannt. Auf anderen Systemen können sie sich durchaus unterscheiden. Typ Größe in Byte Wertebereich char 1-128 127 unsigned char 1 0 255 Int 2 32768 +32767 unsigned int 2 0 65535 long 4 2147483648 +2147483647 Auf Floating-Point-Typen sollte bei der Mikrocontrollerprogrammierung grundsätzlich verzichtet werden. Bei Mikrocontrollern gibt es noch den speziellen Typ sbit, der einem Hardwarebit zugeordnet werden kann. Es ist immer Vorsicht geboten, wenn während einer Berechnung ein Zwischenergebnis auftreten kann, das nicht mehr in den Zieltyp passt. 2. Ganzzahlarithmetik Bei einer Ganzzahldivision ist das Ergebnis eine ganze Zahl, der Divisionsrest entfällt. Der Rest kann mit dem Modulo-Operator (%) ermittelt werden. int x=5; int y=2; x=x%y; // Rest der Division: x=1 3. Kurzform bei arithmetischen Ausdrücken Darstellung Entsprechung += a+=b ist gleichwertig zu a=a+b -= a-=b ist gleichwertig zu a=a-b *= a*=b ist gleichwertig zu a=a*b /= a/=b ist gleichwertig zu a=a/b %= a%=b ist gleichwertig zu a=a%b C-Grundlagen Seite 1

4. Kontrollstrukturen 1: Verzweigungen Einfache if-anweisung if(alter < 18) printf("noch nicht volljährig\n"); Zwischen den geschweiften Klammern können beliebig viele Anweisungen stehen. else if-anweisung if(bedingung1 == wahr) Anweisung1; else if(bedingung2 == wahr) Anweisung2; Verzweigung mit else if(bedingung == wahr) Anweisung1; else Anweisung2; Fallunterscheidung mit switch switch(a) case 1: printf("das war eins \n"); case 2: printf("das war zwei \n"); case 3: printf("das war drei \n"); case 4: printf("das war vier \n"); case 5: printf("das war fünf \n"); default: printf("fehler!); /* Ende switch */ return 0; Bitte nicht das break vergessen! C-Grundlagen Seite 2

5. Kontrollstrukturen 2: Schleifen while-schleife Die Anweisungen werden solange ausgeführt, wie die Bedingung wahr ist. do while Schleife while(bedingung == wahr) /* Abarbeiten von Befehlen, bis Bedingung ungleich wahr */ int zahl=1, tmp=0; while(zahl <= 10) tmp=tmp+zahl; printf(tmp); Im Gegensatz zur While-Schleife wird die Bedingung nicht am Anfang der Schleife überprüft sondern am Ende. do /* Anweisungen */ while(bedingung == wahr); for-schleife for(initialisierung; Bedingung; Reinitialisierung) /* Anweisungen */ int n; for(n = 0; n <= 60; n = n + 10) printf("%d\n",n); C-Grundlagen Seite 3

6. Funktionen Mit Funktionen lässt sich der Quellcode besser lesen. Der Code kann durch Erstellen einer Funktionsbibliothek wiederverwertet werden. Ständig sich wiederholende Routinen können in eine Funktion gepackt werden und müssen nicht immer wieder neu geschrieben werden. Fehler und Veränderungen lassen sich daher auch schneller finden bzw. ausbessern, da der Code nur an einer Stelle bearbeitet werden muss. Definition Rückgabetyp Funktionsname(Parameter) /* Anweisungsblock mit Anweisungen */ int summe(int a, int b) Aufruf Su = summe(23, x); // Addition von 23 und der Variable x Rückgabe Soll eine Funktion einen Wert zurückgeben, wird dieser mit der return- Anweisung zurückgegeben. return(a+b); // Funktionsergebnis: Summe von a und b 7. Variablengültigkeit Der Gültigkeitsbereich einer Variablen hängt von der Stelle deren Deklaration ab. Globale Variablen werden am Anfang des Programms (vor der ersten Funktion) deklariert. Auf sie kann aus allen Funktionen zugegriffen werden. Lokale Variablen, die nur in einer Funktion gelten sollen, werden am Anfang der Funktion (vor der ersten Anweisung) deklariert. Sie gelten nur in dieser Funktion und werden beim Verlassen der Funktion verworfen (Ausnahme: static-variablen). In anderen Funktionen können problemlos Variablen gleichen Namens verwendet werden. Bei Namensgleichheit mit einer globalen Variablen wird die lokale Variable verwendet. Es ist guter Stil, nur diejenigen Variablen global zu deklarieren, die wirklich überall verwendet werden müssen. Übergabevariablen einer Funktion werden bereits in der Funktionsdeklaration deklariert und sind auch nur in dieser Funktion bekannt. Die Änderung einer Übergabevariable ändert hat keinerlei Auswirkungen außerhalb der Funktion. Konstanten: Durch Voranstellung des Schlüsselwortes const wird aus einer Variablendeklaration eine Konstante, die nicht im Programm geändert werden kann. const int wert = 10; C-Grundlagen Seite 4

8. Arrays Mit arrays ist es möglich, mehrere Werte eines Typs systematisch abzulegen und über einen Index auf die einzelnen Elemente zugreifen zu können. Datentyp Arrayname[Anzahl]; int i[5]; Die Größe eines Arrays ist nicht dynamisch, sie muss bei der Compilierung bekannt sein. Achtung: C-Arrays beginnen grundsätzlich mit dem Index 0. D.h. für das obige Beispiel sind Indizes zwischen 0 und 4 zulässig. Die Überschreitung der zulässigen Arraygrenzen kann zur Laufzeit zu großen Problemen bis hin zum Programmabsturz führen. int bigarray[1000]; for(i = 0; i < 1000; i++) bigarray[i] = 0; Es können auch mehrdimensionale Arrays verwendet werden. int Matrix[4][5] = 10,20,30,40,50, 15,25,35,45,55, 20,30,40,50,60, 25,35,45,55,65; Achtung: Denken Sie an die Arbeitsspeicherbeschränkungen des Mikrocontrollers. Bei der Übergabe an Funktionen sollte nicht die übliche Methode des Call-by-Value verwendet werden, sondern ein Call-by-Reference (Pointer auf das Array, siehe Literatur), um einen Stackoverflow zu verhindern. C-Grundlagen Seite 5