Anmeldung HISPOS. Klausur MAI JULI. Prüfungsanmeldung ab sofort möglich Verpflichtend Anmeldung bis zum 19. Mai 2014

Größe: px
Ab Seite anzeigen:

Download "Anmeldung HISPOS. Klausur MAI JULI. Prüfungsanmeldung ab sofort möglich Verpflichtend Anmeldung bis zum 19. Mai 2014"

Transkript

1 I n t e r a k t i v e HA u t o m a t e n _ Programmieren für Ingenieure Sommer 214 Andreas Zeller, Universität des Saarlandes Anmeldung HISPOS Prüfungsanmeldung ab sofort möglich Verpflichtend Anmeldung bis zum 19. Mai 214 MAI 19 Klausur JULI 19

2 leds Felder initialisieren While-Schleifen int leds[7]; void setup() { int leds[] = leds[] = 13; { 13, 12, 11, 1, 9, 8, 7 ; leds[1] = 12; leds[2] = 11; leds[3] = 1; void setup() { leds[4] = 9; // Bereits initialisiert leds[5] = 8; leds[6] = 7; i = 1; while (i < 5) { Serial.println(i); i = i + 1; Serial.println("ENDE"); Ausgeführte Anweisungen i = 1; Serial.println(i); i = i + 1; // 2 Serial.println(i); i = i + 1; // 3 Serial.println(i); i = i + 1; // 4 Serial.println(i); i = i + 1; // 5 Serial.println("ENDE"); s Zeichenkette H a l l o \ char s[] = { 'H', 'a', 'l', 'l', 'o', '', '\'; oder kürzer char s[] = "Hallo"; Was ist s[]? Heartbeat void setup() { Serial.begin(96); char buffer[1]; char secret[2] = Joshua"; // Puffer // Geheime Daten while (1) { // Endlosschleife if (Serial.available() > ) { // Daten verfügbar int n = Serial.parseInt(); // Anzahl Zeichen Serial.readBytes(buffer, n); // Zeichen einlesen for (int i = ; i < n; i++) // Zeichen ausgeben Serial.print(buffer[i]); Serial.println(); Themen heute wiki/file:media-markt-automat.jpg Zeichenketten Interaktion Automaten Ein Kauf Artikel auswählen Münzen einwerfen Artikel ausgeben

3 Artikel auswählen Artikel auswählen Zeige eine Auswahl (Menü) vorhandener Artikel an Der Benutzer soll mit Tasten zwischen Artikeln navigieren Dabei soll jeweils der Preis angezeigt werden Ein Kauf Artikel auswählen Münzen einwerfen Artikel ausgeben Münzen einwerfen Münzen (,1 2, ) erkennen Nach Einwurf vom Betrag abziehen Münzen einwerfen Zu zahlenden Restbetrag anzeigen Wiederholen, bis Restbetrag =,

4 Ein Kauf Artikel auswählen Münzen einwerfen Artikel ausgeben Artikel ausgeben Bei uns etwa: LED leuchten lassen Artikel ausgeben Interaktion Fotos: Wikipedia, Pixabay

5 LCD-Anzeige Für Interaktion mit Käufer: Preis anzeigen Restbetrag anzeigen Plan Wir schließen ein LCD-Display an Wir schließen Taster an für die Auswahl des Artikels als Sensoren für den Münzeinwurf Wir führen den Käufer durch den Kauf LCD anschließen Tutorial/LCD_bb.png steuert Anzeige Potentiometer steuert Kontrast

6 LCD-Bibliothek Eine Bibliothek sammelt Funktionen zu einem bestimmten Zweck Die LiquidCrystal-Bibliothek erlaubt es, ein angeschlossenes LCD anzusprechen Um die Bibliothek zu nutzen, muss sie zunächst eingebunden werden. #include <LiquidCrystal.h> LCD einrichten Dieser Code richtet ein lcd-objekt ein, dessen Funktionen wir dann nutzen können // Anschlüsse der LCD-Anzeige int rspin = 2; int epin = 3; int d4pin = 4; int d5pin = 5; int d6pin = 6; int d7pin = 7; LiquidCrystal lcd(rspin, epin, d4pin, d5pin, d6pin, d7pin); Ausgabe auf LCD lcd.print() gibt einen Text oder einen Wert auf dem LCD aus void setup() { lcd.begin(16, 2); // Breite, Höhe lcd.print("hello, world"); H e l l o, w o r l d 1

7 Texte und Werte eigener Wahl ausgeben Demo Schreibmarke Die Schreibmarke (Cursor) bestimmt, wo der nächste Text ausgegeben wird Zu Beginn links oben; wird mit jeder Ausgabe weiterbewegt Analog: Schreibmarke in Textverarbeitung Schreibmarke bewegen Die Funktion lcd.setcursor(x, y) bewegt die Schreibmarke auf Spalte x, Zeile y Position oben links ist (, )

8 Schreibmarke bewegen void setup() { lcd.clear(); // Bildschirm löschen lcd.print("hello, world"); lcd.setcursor(, 7); lcd.print("class"); Schreibmarke bewegen void setup() { lcd.clear(); // Bildschirm löschen lcd.print("hello, world"); lcd.setcursor(, 7); lcd.print("class"); H e l l o, w o r l d 1 Schreibmarke bewegen void setup() { lcd.clear(); // Bildschirm löschen lcd.print("hello, world"); lcd.setcursor(, 7); lcd.print("class"); H e l l o, c l a s s 1 w

9 Zeit ausgeben void setup() { lcd.begin(16, 2); // Breite, Höhe lcd.print("hello, world"); void loop() { lcd.setcursor(, 1); lcd.print(millis() / 1); H e l l o, w o r l d Schreibmarke bewegen; mit cursor() anzeigen lassen Demo Zeichenketten in C Ein einzelnes Zeichen wird in C in einzelne Hochkomma eingeschlossen: char c = 'a'; lcd.print(c); Die wichtigste Verwendung ist als Feld von Zeichen (Zeichenkette, auch String) Zeichenketten enden mit einem speziellen Null-Zeichen, geschrieben als \

10 s Zeichenkette H a l l o \ char s[] = { 'H', 'a', 'l', 'l', 'o', '', '\'; oder kürzer char s[] = "Hallo"; String-Funktionen Um mit Zeichenketten umzugehen, bietet C zahlreiche Funktionen: strcpy() Zeichenkette kopieren strcat() Zeichenketten verknüpfen strlen() Länge bestimmen strcmp() Zeichenketten vergleichen Zeichenketten kopieren strcpy(ziel, quelle) kopiert quelle nach ziel ziel muss groß genug sein für quelle name char name[2]; strcpy(name, "Test"); T e s t \

11 Zeichenketten verknüpfen strcat(ziel, quelle) hängt quelle an ziel an ziel muss groß genug sein name char name[2]; strcpy(name, "Test"); strcat(name, "en"); T e s t \ Zeichenketten verknüpfen strcat(ziel, quelle) hängt quelle an ziel an ziel muss groß genug sein name char name[2]; strcpy(name, "Test"); strcat(name, "en"); T e s t e n \ Länge bestimmen strlen(s) gibt die Länge von s zurück name char name[2]; strcpy(name, "Test"); n = strlen(name); // n = T e s t \

12 Zeichenketten vergleichen Zeichenketten können nicht mit ==, = usw. verglichen werden strcmp(s, t) vergleicht s und t Rückgabe: bei gleichem Inhalt < wenn s alphabetisch vor t kommt > wenn s alphabetisch nach t kommt int u = strcmp("anton", "Anton"); int v = strcmp("anton", "Berta"); Zeichenketten als Parameter Eine Zeichenkette name als Parameter wird so deklariert: char name[] (oft auch: char *name) void print_ten_times(char text[]) { lcd.print(text); // noch neun Mal ausgeben strcpy() So könnte eine Implementierung von strcpy() (Zeichenkette kopieren) aussehen: void strcpy(char ziel[], char quelle[]) { int i = ; while (quelle[i] = '\') { ziel[i] = quelle[i]; i++; ziel[i] = '\';

13 strcpy() Warum nicht ziel[i++] = quelle[i]? Weil nicht exakt definiert ist, wann i erhöht wird. Alternative Implementierung für Tippfaule void strcpy(char ziel[], char quelle[]) { int i = ; int j = ; while (ziel[i++] = quelle[j++]) { Echte C-Experten können das noch kürzer strcat() So könnte eine Implementierung von strcat() (Zeichenketten verknüpfen) aussehen: void strcat(char ziel[], char quelle[]) { int i = strlen(ziel); int j = ; while (quelle[j] = '\') { ziel[i] = quelle[j]; i++; j++; ziel[i] = '\'; strcat(ziel, en ) void strcat(char ziel[], char quelle[]) { int i = strlen(ziel); int j = ; while (quelle[j] = '\') { ziel[i] = quelle[j]; i++; j++; ziel[i] = '\'; ziel T e s t \

14 strcat(ziel, en ) void strcat(char ziel[], char quelle[]) { int i = strlen(ziel); int j = ; while (quelle[j] = '\') { ziel[i] = quelle[j]; i++; j++; ziel[i] = '\'; ziel T e s t e n \ strlen() So könnte eine Implementierung von strlen() (Länge bestimmen) aussehen: Typ des Rückgabewertes int strlen(char s[]) { int i = ; while (s[i] = '\') { i++; return i; int n = strlen(ziel); Rückgabe Artikel auswählen Artikel auswählen Zeige eine Auswahl (Menü) vorhandener Artikel an Der Benutzer soll mit Tasten zwischen Artikeln navigieren Dabei soll jeweils der Preis angezeigt werden

15 Plan In oberer Zeile Artikel anzeigen Artikel anzeigen int DRINKS = 3; char *drink_name[] = { "Wasser", "Limo", "Bier" ; void print_drinks() { char buffer[2]; strcpy(buffer, ""); for (int i = ; i < DRINKS; i++) { if (i > ) strcat(buffer, " "); strcat(buffer, drink_name[i]); lcd.print(buffer); Getränkemenü a s s e r L i m o B i e r H W 1

16 Schreibmarke bewegen; mit cursor() anzeigen lassen Demo Artikel auswählen Artikel auswählen Zeige eine Auswahl (Menü) vorhandener Artikel an Der Benutzer soll mit Tasten zwischen Artikeln navigieren Dabei soll jeweils der Preis angezeigt werden Plan In unterer Zeile Preise anzeigen Jeweils unter dem Artikelnamen Problem: Preise als Zeichenketten darstellen

17 Zeichen zu Zahlen Die Funktion atoi(s) wandelt den Beginn einer Zeichenkette s in eine ganze Zahl um Führende Leerzeichen werden überlesen s bleibt unverändert Keine Fehlererkennung n = atoi("25"); n = atoi(" 25"); n = atoi(" 25 years"); n = atoi("25years"); Zahlen zu Zeichen Die Funktion sprintf(s, format, werte ) füllt s mit werte, wie in format angegeben: %d Dezimalzahl (decimal) char buf[128]; sprintf(buf, "%d", 25); // buf[] == "25" %s Zeichenkette (string) sprintf(buf, "%s", "Hugo"); // buf[] == "Hugo" %f Fließkommawert (floating point) sprintf(buf, "%f", 3.14); // buf[] == "3.14" Zahlen zu Zeichen Das sprintf()-format kann weiteren Text enthalten, der dann mitkopiert wird: char buf[128]; int n = 25; sprintf(buf, "Kaufen Sie %d Pelze", n); // buf[] == "Kaufen Sie 25 Pelze"

18 Zahlen zu Zeichen Die Ausgabe von mehreren Parametern ist ebenfalls möglich: char buf[128]; int n = 25; int p = 6; sprintf(buf, "%d Bohrer zu %d Euro", n, p); // buf[] == "25 Bohrer zu 6 Euro" Maximale Länge Zahlen vor der Formatangabe bestimmen die maximale Länge char buf[128]; int n = 25; sprintf(buf, "Anzahl:%5d", n); // buf[] == "Anzahl: 25 5 Zeichen sprintf(buf, "Anzahl:%7d", n); // buf[] == "Anzahl: 25" 7 Zeichen Nachkommastellen Punkt und Zahl vor der Formatangabe bestimmen die Nachkommastellen: char buf[128]; double pi = ; sprintf(buf, "pi = %.3f", pi); // buf[] == "pi = 3.142" 3 Stellen sprintf(buf, "pi = %7.2f", pi); // buf[] == "pi = 3.14" 2 Stellen

19 Menü mit Preis int DRINKS = 3; char *drink_name[] = { "Wasser", "Limo", "Bier" ; double drink_price[] = { 1., 1.5, 2.5 ; void print_prices() { int x = ; for (int i = ; i < DRINKS; i++) { char buffer[1]; lcd.setcursor(x, 1); sprintf(buffer, "%.2f", drink_price[i]); lcd.print(buffer); x += strlen(drink_name[i]) + 1; Getränkemenü W a s s e r L i m o B i e r 1 1 H Schreibmarke bewegen; mit cursor() anzeigen lassen Demo

20 Artikel auswählen Artikel auswählen Zeige eine Auswahl (Menü) vorhandener Artikel an Der Benutzer soll mit Tasten zwischen Artikeln navigieren Dabei soll jeweils der Preis angezeigt werden Plan Aktuell ausgewählten Artikel durch Blinken sichtbar machen Auswahl mit Drehimpulsgeber Drehimpulsgeber Quelle: bilder/web/xxl_ws/b4/ STEC12E-VERT.png Beim Drehen kurzer Impuls (= Verbindung zwischen Pin Impuls und Impuls links bzw. Impuls rechts) Beim Drücken wie Taster Impuls links Pin Impuls Pins Taster Impuls rechts

21 Anschluss Drehimpulsgeber // Impulsgeber und Taster verbinden mit GND int turnleftpin = 1; // Impulsgeber int turnrightpin = 11; int selectpin = 12; // Taster void setup() { pinmode(turnleftpin, INPUT_PULLUP); pinmode(turnrightpin, INPUT_PULLUP); pinmode(selectpin, INPUT_PULLUP); // Weitere Initialisierungen Aktiviert eingebauten Pullup-Widerstand Getränkemenü ஏW a s s e r L i m o B i e r 1 1 H Getränkemenü W a s s e r ஏL i m o B i e r 1 1 H

22 Getränkemenü W a s s e r L i m o ஏB i e r 1 1 H Getränkemenü W a s s e r ஏL i m o B i e r 1 1 H Schreibmarke sichtbar machen Mit lcd.cursor() können wir die Schreibmarke als Unterstrich (_) sichtbar machen lcd.blink() lässt sie als Block blinken lcd.nocursor(), lcd.noblink() schaltet dies wieder ab

23 Auswahl anzeigen // Schreibmarke auf Getränkename positionieren // drink = : 1. Getränk, // drink = 1: 2. Getränk, usw. void show_selection(int drink) { int x = ; for (int i = ; i < drink; i++) { x += strlen(drink_name[i]); x += strlen(" "); lcd.setcursor(x, ); lcd.blink(); Getränk wählen // Getränk auswählen und dessen Nummer zurückgeben int choose_drink() { int current_selection = ; unsigned long last_select = millis(); show_selection(current_selection); while (1) { if (millis() - last_select > 2) { // Drehen nach rechts if (digitalread(turnrightpin) == LOW) { if (current_selection < DRINKS - 1) { current_selection++; show_selection(current_selection); last_select = millis(); // Drehen nach links if (digitalread(turnleftpin) == LOW) { if (current_selection > ) { current_selection--; show_selection(current_selection); last_select = millis(); // Drücken if (digitalread(selectpin) == LOW) { lcd.noblink(); return current_selection;

24 // Getränk auswählen und dessen Nummer zurückgeben int choose_drink() { int current_selection = ; unsigned long last_select = millis(); show_selection(current_selection); while (1) { if (millis() - last_select > 2) { // Drehen nach rechts if (digitalread(turnrightpin) == LOW) { if (current_selection < DRINKS - 1) { current_selection++; show_selection(current_selection); last_select = millis(); // Drehen nach links if (digitalread(turnleftpin) == LOW) { if (current_selection > ) { current_selection--; show_selection(current_selection); last_select = millis(); // Drücken if (digitalread(selectpin) == LOW) { lcd.noblink(); return current_selection; Impuls links Pin Impuls Pins Taster Impuls rechts Alles zusammen void loop() { lcd.clear(); print_drinks(); print_prices(); int selection = choose_drink(); // Weitere Funktionen, etwa: // pay_for_drink(selection); // dispense_drink(selection); Schreibmarke bewegen; mit cursor() anzeigen lassen Demo

25 Ein Kauf Fertig siehe Übung siehe Übung Artikel auswählen Münzen einwerfen Artikel ausgeben LCD einrichten // Anschlüsse der LCD-Anzeige int rspin = 2; int epin = 3; int d4pin = 4; H e l l o, w o r l d int d5pin = 5; 1 int d6pin = 6; int d7pin = 7; LiquidCrystal lcd(rspin, epin, d4pin, d5pin, d6pin, d7pin); void setup() { lcd.begin(16, 2); // Breite, Höhe lcd.print("hello, world"); Drehimpulsgeber Beim Drehen kurzer Impuls (= Verbindung zwischen Pin Impuls und Impuls links bzw. Impuls rechts) Beim Drücken wie Taster Impuls links Pin Impuls Pins Taster Impuls rechts Zeichenketten in C Ein einzelnes Zeichen wird in C in einzelne Hochkomma eingeschlossen: char c = 'a'; lcd.print(c); Die wichtigste Verwendung ist als Feld von Zeichen (Zeichenkette, auch String) Zeichenketten enden mit einem speziellen Null-Zeichen, geschrieben als \ Menü mit Preis int DRINKS = 3; char *drink_name[] = { "Wasser", "Limo", "Bier" ; double drink_price[] = { 1., 1.5, 2.5 ; void print_prices() { int x = ; for (int i = ; i < DRINKS; i++) { char buffer[1]; lcd.setcursor(x, 1); sprintf(buffer, "%.2f", drink_price[i]); lcd.print(buffer); x += strlen(drink_name[i]) + 1; Handouts

26 strlen() So könnte eine Implementierung von strlen() (Länge bestimmen) aussehen: Typ des Rückgabewertes int strlen(char s[]) { int i = ; while (s[i] = '\') { i++; return i; int n = strlen(ziel); Rückgabe LCD einrichten // Anschlüsse der LCD-Anzeige int rspin = 2; int epin = 3; int d4pin = 4; H e l l o, w o r l d int d5pin = 5; 1 int d6pin = 6; int d7pin = 7; LiquidCrystal lcd(rspin, epin, d4pin, d5pin, d6pin, d7pin); void setup() { lcd.begin(16, 2); // Breite, Höhe lcd.print("hello, world"); Artikel anzeigen int DRINKS = 3; char *drink_name[] = { "Wasser", "Limo", "Bier" ; void print_drinks() { char buffer[2]; strcpy(buffer, ""); for (int i = ; i < DRINKS; i++) { if (i > ) strcat(buffer, " "); strcat(buffer, drink_name[i]); lcd.print(buffer);

27 Menü mit Preis int DRINKS = 3; char *drink_name[] = { "Wasser", "Limo", "Bier" ; double drink_price[] = { 1., 1.5, 2.5 ; void print_prices() { int x = ; for (int i = ; i < DRINKS; i++) { char buffer[1]; lcd.setcursor(x, 1); sprintf(buffer, "%.2f", drink_price[i]); lcd.print(buffer); x += strlen(drink_name[i]) + 1; Anschluss Drehimpulsgeber // Impulsgeber und Taster verbinden mit GND int turnleftpin = 1; // Impulsgeber int turnrightpin = 11; int selectpin = 12; // Taster void setup() { pinmode(turnleftpin, INPUT_PULLUP); pinmode(turnrightpin, INPUT_PULLUP); pinmode(selectpin, INPUT_PULLUP); // Weitere Initialisierungen Aktiviert eingebauten Pullup-Widerstand Getränk wählen // Getränk auswählen und dessen Nummer zurückgeben int choose_drink() { int current_selection = ; unsigned long last_select = millis(); show_selection(current_selection); while (1) { if (millis() - last_select > 2) { // Drehen nach rechts if (digitalread(turnrightpin) == LOW) { if (current_selection < DRINKS - 1) { current_selection++; show_selection(current_selection); last_select = millis();

28 // Drehen nach links if (digitalread(turnleftpin) == LOW) { if (current_selection > ) { current_selection--; show_selection(current_selection); last_select = millis(); // Drücken if (digitalread(selectpin) == LOW) { lcd.noblink(); return current_selection; Alles zusammen void loop() { lcd.clear(); print_drinks(); print_prices(); int selection = choose_drink(); // Weitere Funktionen, etwa: // pay_for_drink(selection); // dispense_drink(selection);

Anmeldung HISPOS MAI. Prüfungsanmeldung ab sofort möglich Verpflichtend Anmeldung bis zum 27. Mai I n t e r a k t i v e HA u t o m a t e n _

Anmeldung HISPOS MAI. Prüfungsanmeldung ab sofort möglich Verpflichtend Anmeldung bis zum 27. Mai I n t e r a k t i v e HA u t o m a t e n _ I n t e r a k t i v e HA u t o m a t e n _ Programmieren für Ingenieure Sommer 215 Andreas Zeller, Universität des Saarlandes Anmeldung HISPOS Prüfungsanmeldung ab sofort möglich Verpflichtend Anmeldung

Mehr

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4 Programmieren für Ingenieure Abgabe Dieses Übungsblatt ist bis Freitag, 23.05. um 12:00 Uhr per Email an den eigenen Tutoren abzugeben. Benennen Sie die Abgabe bitte eindeutig: Matrikelnummer _Abgabe_Blattnummer.Format.

Mehr

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes Felder und Schleifen Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Sensor abfragen int ledpin = 13; // Die LED int buttonpin = 8; // Der Taster! pinmode(ledpin, OUTPUT);

Mehr

Hinter den Kulissen. Bergfest. Lassen Sie uns die Aussicht genießen und etwas zurückblicken :-)

Hinter den Kulissen. Bergfest. Lassen Sie uns die Aussicht genießen und etwas zurückblicken :-) Hinter den Kulissen ieren für Ingenieure Sommer 2014 Andreas Zeller, Universität des Saarlandes LCD einrichten // Anschlüsse der LCD-Anzeige int rspin = 2; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 int epin

Mehr

Programmieren für Ingenieure Übungs-Klausur

Programmieren für Ingenieure Übungs-Klausur Programmieren für Ingenieure Übungs-Klausur 2014-xx-xx Name: Matrikelnummer: Studiengang: seit Dauer: 120 Minuten (2 Stunden) Zugelassene Hilfsmittel: Schreibgeräte. Zusätzliches Papier erhalten Sie vom

Mehr

Arduino. Inhalt. (mit Arduino UNO)

Arduino. Inhalt. (mit Arduino UNO) Arduino (mit Arduino UNO) Inhalt Inhalt 01-Ampel-Schaltung 02-Buntes Blinklicht 03-Makerdays macht (Zufall) 04-Makerdays Anzeigetafel 05-06-Zufälliges Blinken 07-Laufschrift Seite 1 01-Ampel-Schaltung

Mehr

Zeichenketten. Peter Sobe

Zeichenketten. Peter Sobe Zeichenketten existieren in C nicht als eigener Typ. Es können nur Zeichenkettenkonstante z.b. zur Ausgabe benutzt werden. Beispiel: printf( Guten Tag!\n ); Eine Zeichenkette als Variable kann aber in

Mehr

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach Arduino Kurs Das LC-Display Stephan Laage-Witt FES Lörrach - 2018 Themen LC-Display zur Anzeige von Text Serieller Datenbus Ausgabe von Zeichen, Texten und Zahlen FES Lörrach Juli 2017 2 LC-Display zur

Mehr

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes Eingaben Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Themen heute Eingaben Zuweisungen Zeitmessung Taster Wikipedia Ziel Wenn Taste gedrückt, soll LED leuchten Wir

Mehr

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

6. Bearbeitung von Strings in C Bearbeitung von Strings in C Bearbeitung von Strings in C 6-1 Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char [ ] ; Wie die Daten (Zeichenfolge)

Mehr

Strings (Zeichenketten)

Strings (Zeichenketten) Strings (Zeichenketten) INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 3.2 Auswahl an Stringfunktionen W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu Allgemeines (1) Die ANSI-Norm definiert auch nützliche Funktionen zur ASCIIZ-Stringbearbeitung.

Mehr

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt Zeichenketten (1) Literale Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt "Hallo Welt" Mehrere solcher Literale gelten als eine Zeichenkette, wenn sie nur durch Whitespaces (Leerzeichen,

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen

Mehr

LCD-Display 16x2 QAPASS (AllNet)

LCD-Display 16x2 QAPASS (AllNet) LCD-Display 16x2 QAPASS (AllNet) Ausführliche Beschreibung: https://arduino-info.wikispaces.com/lcd-blue-i2c Library von: https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads Beschreibung der

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 9 Taster-Platine 4x4 Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Überlegungen zur Schaltung und Algorithmus 4. Zuordnung Arduino-Pins

Mehr

Zeichenketten (Strings)

Zeichenketten (Strings) Zeichenketten (Strings) Programme verarbeiten neben numerischen Daten oft auch Daten in Textform. Texte sind Zeichenketten, die auch als Strings bezeichnet werden In C gibt es keinen eigenständigen Datentyp

Mehr

Arduino - Einfacher Teiler

Arduino - Einfacher Teiler Einen Teiler z.b. zur Reduzierung von Stromzählerimpulsen, wie er hier benötigt wird kann man alternativ zu fertigen Lösungen (z.b. industrieller Vorwahlzähler) sehr leicht und kostengünstig auf einem

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 6 analogread() ; map(); analogwrite(); Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Schaltplan LCD in Betrieb nehmen 4. LCD-Funktionen

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Informatik. Wiederholung Felder (Arrays), string. Vorlesung Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum

Mehr

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in  angegeben waren; z.b. als Formatstring in der printf()-funktion: Zeichenketten (Strings) Seite 1 von 11 Zeichenketten(Strings) sind wichtige Bestandteile fast eines jeden Programms. Beispiele sind Eingabe von Namen oder Adressen, Ausgabe von Meldetexten oder Bearbeitung

Mehr

Girls Day 2018 Programmiereinführung

Girls Day 2018 Programmiereinführung Girls Day 2018 Programmiereinführung Gregor Groß-Weege Hardware Hochfrequenztechnik Würselen, 26.04.2018 www.lancom-systems.de Mikrocontroller Hä? Was ist ein Mikrocontroller? Programmierbarer Baustein

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 4: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen

Mehr

Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes Erste Schritte Programmieren für Ingenieure Sommer 2014 Andreas Zeller, Universität des Saarlandes Das Galileo-Board Anschluss 1. Netzteil 2. USB-Kabel Programmierumgebung Download über Vorlesungs-Webseite

Mehr

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

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino & graphische Programmiersprachen Workshop Sensoren aus ALLNET 4Arduino Set (ArdDevKIT1) Schaltung 1: Analoge Pins Schaltung 2: Digitale Pins Schaltung 3: Blinkende LED

Mehr

Girls Day 2017 Programmierung

Girls Day 2017 Programmierung Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der

Mehr

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: Tasten abfragen Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: pinmode(pinnummer, OUTPUT) digitalwrite(pinnummer, HIGH) oder digitalwrite(pinnummer, LOW) Zum Abfragen

Mehr

Inhalt. Zeichen und Zeichenketten (engl. Strings)

Inhalt. Zeichen und Zeichenketten (engl. Strings) Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern

Mehr

Girls Day. Einführung Mikrocontroller,

Girls Day. Einführung Mikrocontroller, Girls Day Einführung Mikrocontroller, 23.04.2015 2015 www.lancom.de Kommentare Kommentare ermöglichen eine Strukturierung und gute Dokumentierung deines Programms void setup() { // Initialisierung der

Mehr

Probeklausur Name: (c)

Probeklausur Name: (c) Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume

Mehr

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Ende SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll im

Mehr

MSP-EXP430G2. LaunchPad Entwicklungskit MSP-EXP430G2. Schnellstart mit dem Texas Instruments. LaunchPad Entwicklungskit

MSP-EXP430G2. LaunchPad Entwicklungskit MSP-EXP430G2. Schnellstart mit dem Texas Instruments. LaunchPad Entwicklungskit 10158-5 U1+U4 14.01.15 12:44 Seite 1 Christian Immler Schnellstart mit dem Texas Instruments MSP-EXP430G2 LaunchPad Entwicklungskit Der schnelle und praxisbezogene Einstieg in die Programmierung der 16-Bit-Mikrocontroller

Mehr

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung

Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder

Mehr

4.12 Datenstrukturen/String-Bibliothek

4.12 Datenstrukturen/String-Bibliothek 4.12 Datenstrukturen/String-Bibliothek 4.12.1 Vergleich von Strings: strcmp() Ein Programm soll zu einem eingegebenen Bauelement die Betriebsmittelkennzeichnung ausgeben. Ein erster Entwurf sieht so aus

Mehr

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Klausur. 2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben. Programmieren bei Dr. Robert Heß TM&M1, IST1 und ET1 Anfang SS 2003 Klausur 1. Aufgabe (2 Punkte) Kodieren Sie folgende Dezimalzahlen in Binärzahlen um. Zeigen Sie den Rechenweg, die negative Zahl soll

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 7 Infrarot-Fernsteuerung mit AX-1838HS Wie gehe ich am besten vor? 1. Was will ich machen? 2. Libraries einrichten 3. Bauteile 4. Schaltplan Versuche 1

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

Erste Java-Programme (Scopes und Rekursion)

Erste Java-Programme (Scopes und Rekursion) Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/

Mehr

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer

Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;

Mehr

Arbeitsblatt Nr.19: RFID Kit

Arbeitsblatt Nr.19: RFID Kit Aufgabe: Mit Hilfe eines Arduino-Mikrocontrollers soll ein RFID-TAG ausgelesen werden. Sofern es sich um den richtigen TAG handelt, soll eine Leuchtdiode für 5 Sekunden leuchten. Material: Arduino-Board

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten

Mehr

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

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

E-/A-Funktionalität nicht Teil der Programmiersprache

E-/A-Funktionalität nicht Teil der Programmiersprache C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. C++ Teil 3 3.3 Schleifen Man kann bestimme en in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen. for-schleife for-schleife while-schleife do-while-schleife for ( Ausdruck1;

Mehr

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5 Zentrum für Angewandte Informatik Köln Arbeitsgruppe Faigle / Schrader Universität zu Köln Lösungen zum Übungsblatt 3 Programmierkurs C++ Nils Eissfeldt und Jürgen Gräfe. November 001 Aufgabe 5 Innerhalb

Mehr

Programmieren in C++

Programmieren in C++ Fakultät Elektronik und Infor matik Studiengang Infor matik Programmieren in C++ Vorlesung im Sommersemester 2018 Prof. Dr. habil. Christian Heinlein 2. Übungsblatt (22. März 2018) Aufgabe 2: Lange vorzeichenlose

Mehr

Praktikum DST (MRT Teil) 2. Termin

Praktikum DST (MRT Teil) 2. Termin Praktikum DST MRT 2.Termin Inhalt Praktikum DST MRT 2.Termin... 1 2.1 LCD Anzeige ( 2_01_LCD und Taster)... 2 2.1b Anhang: ASCII Code Tabelle (LCD-Display: Displaytech 164A)... 3 2.2 V24-Datenschnittstelle

Mehr

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

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes Erste Schritte Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Das Arduino-Board Ihr Fundino-Board Anschluss über USB Anschluss über USB Programmierumgebung Download

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Mit dieser kleinen Adapter-Platine können HD44780 kompatible LCD-Displays am I2C-Bus betrieben werden.

Mit dieser kleinen Adapter-Platine können HD44780 kompatible LCD-Displays am I2C-Bus betrieben werden. I2C-Bus Display Mit dieser kleinen Adapter-Platine können HD44780 kompatible LCD-Displays am I2C-Bus betrieben werden. Infos/Übersicht * Die Spannungsversorgung kommt vom I2C-Bus (kein zusätzliches Netzteil

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme

Hochschule Darmstadt Informatik-Praktikum WS 2016/2017 WIng Bachelor 4. Aufgabenblatt Modularisierung, Funktionen, Unterprogramme Ziele sind das Arbeiten mit Funktionen, sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 4: Diese Aufgabe basiert auf der Aufgabe 3.

Mehr

F Zeiger, Felder und Strukturen in C

F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Übungspaket 24 Zeichenketten

Übungspaket 24 Zeichenketten Übungspaket 24 Zeichenketten Übungsziele: Skript: 1. Verständnis über die interne Repräsentation von Zeichenketten 2. Arbeiten mit Zeichenketten 3. Definition konstanter Zeichenketten 4. Verwendung diverser

Mehr

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

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

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

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

Klausur Programmiersprachen SS 2005

Klausur Programmiersprachen SS 2005 Klausur Programmiersprachen SS 2005 Prüfer: Prof. Dr. Schwenk Prüfungstermin: 30.8.2005 Dauer: - 120 Minuten (Diplom ITS neue DPO, Diplom ETIT neue DPO): Sie müssen nur Aufgaben im Umfang von 100 Punkten

Mehr

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!

Mehr

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Aufzählungen, Zeichenketten Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Aufzählungen enumerations,

Mehr

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

Bei jedem Arduino-Projekt muss man ein Grundgerüst bauen. Das sieht dann so aus: Arduino 1/5 Was ist die Syntax? Die Syntax ist die Rechtschreibung. Ganz wichtig ist, dass (fast) jeder Befehl mit einem Semikolon (;) beendet wird. Bei Codeblöcken müssen immer geschweifte Klamern ({)

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 01 23.10.2013 Inhalt Übungen und Übungsblätter Uniworx und Abgabeformate Plagiarismus Algorithmen und Pseudocode Variablen und Methoden Boolsche Operatoren

Mehr

// Daniel Ettenhuber // Projekt Kameraslider // letzte Änderung: // //

// Daniel Ettenhuber // Projekt Kameraslider // letzte Änderung: // // #include #include #include #include // http://sebastian.setz.name/arduino/my-libraries/multi-camera-ir-control/ #include

Mehr

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und

Mehr

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Variablenarten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 10.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 10.12.07 1 / 15

Mehr

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

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe Informatik Vorlesung 03b Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe 12. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik

Mehr

Hall Magnetfeld Sensor KY-003

Hall Magnetfeld Sensor KY-003 3 KY-003 INHALTSVERZEICHNIS 1. Übersicht 2. Pin-Belegung 3. Codebeispiel Arduino 4. Codebeispiel Raspberry Pi 5. Informations- und Rücknahmepflichten 6. Support Veröffentlicht: 27.08.2018 Copyright by

Mehr

I2C Serial 2.6 LCD Modul

I2C Serial 2.6 LCD Modul Ausgabe 08.09.2017 Copyright by Joy-IT 1 Index 1. Verwendung mit einem Arduino 1.1 Anschließen des Displays 1.2 Installation der Bibliothek 1.3 Beispiel-Code 2. Verwendung mit einem Raspberry Pi 2.1 Installation

Mehr

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach Arduino Kurs Bits und Bytes Stephan Laage-Witt FES Lörrach - 2018 Themen Digitale Eingabe Bit, Byte und Wort Reaktionszeittester FES Lörrach Juli 2017 2 Was ist ein Bit? Ein Bit ist die kleinste Informationseinheit

Mehr

Ulrich Stein

Ulrich Stein Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =

Mehr

H S R R a p p e r s w i l \0

H S R R a p p e r s w i l \0 Modul Info1 Informatik 1 Seite 1/5 Zeitbudget: Aufgabe: Inhalt: 30 Minuten (maximal) Arbeiten Sie alleine diese Lernaufgabe durch. Gehen Sie Zeile für Zeile durch und befolgen Sie alle Anweisungen, d.h.

Mehr

Arduino LCD Shield. Quelle:

Arduino LCD Shield. Quelle: Arduino LCD Shield Quelle: http://www.dfrobot.com/wiki/index.php?title=arduino_lcd_keypad_shield_%28sku:_dfr0009%29 Arduino LCD Shield Codebeispiel /* DFRobot LCD Shield for Arduino Key Grab v0.2 Written

Mehr

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:

Mehr

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung!

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung! Organisatorisches Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Nächste Woche keine Vorlesung! Es

Mehr

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

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

Mehr

9. Vektoren. (auch Felder/array)

9. Vektoren. (auch Felder/array) 9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die

Mehr