Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester 2014 http://c-et.rz.hs-fulda.de.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Hochschule Fulda – FB ET Sommersemester 2010
Forschungszentrum caesar
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Timm Grams Hochschule Fulda Fachbereich Elektrotechnik und Informationstechnik Rekursive Funktionen in C © Timm Grams, Fulda, (korr.: )
Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
Indirekte Adressierung
SWITCH - Anweisung.
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Funktionen.
WHILE - Anweisung.
DO...WHILE Anweisung.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 9 Claudio Moraga; Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Hochschule Fulda – FB ET Sommersemester 2010
Informatik II Grundlagen der Programmierung Programmieren in C Add Ons Hochschule Fulda – FB ET Sommersemester Peter.
Einführung in die Programmiersprache C 1
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Repetitorium PG : Pointer FH-Darmstadt, FB Informatik.
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Programmieren in C Einführung
Informatik II Grundlagen der Programmierung Programmieren in C Programmstrukturen / Kontrollstrukturen Hochschule Fulda – FB ET Sommersemester 2014.
Programmieren in C Einführung
Programmieren in C Dynamische Listen / Bäume
Programmieren in C Grundlagen C 5
3. Lineare Befehle 3.1 Die Ausgabefunktion
Programmieren in C Grundlagen C 3 Hochschule Fulda – FB AI Wintersemester 2013/14 Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
BMEVIEEA100 Grundlagen der Programmierung
Informatik II Grundlagen der Programmierung Programmieren in C printf() mit variabler Feldbreite Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Einführung
Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Ausflug printf() Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Annäherung an C
Programmieren in C Grundlagen C 3
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Dateien
Programmieren in C Grundlagen C 2
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C Sortieren, Suchen
Hochschule Fulda – FB AI Sommersemester 2014
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
1 // Laengste Zeile bestimmen // // Liest die Eingabe Zeichen fuer Zeichen, bis // das erscheint. // Die laengste Zeile wird ausgegeben (bei.
Variablen und Datentypen
Programmieren in C Grundlagen C 1 Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
TRUE und FALSE in C Der Wert 0 steht für FALSE Jeder von 0 verschiedene Wert steht für TRUE FALSE wird als 0 dargestellt TRUE wird als 1 dargestellt.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Inhalte der Übungen 1.Grundlagen, Ein- und Ausgabe 2.Kontrollstrukturen (Projekt 1) 3.Funktionen 4.Zeiger, Felder (Projekt 2) 5.Strings, Strukturen 6.Fileverarbeitung.
Programmieren in C Dateien
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Programmieren in C Grundlagen C 2
Programmieren in C Grundlagen C 1
Programmieren in C Wie speichert C
Programmieren in C Module und Bibliotheken
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
 Präsentation transkript:

Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester 2014 http://c-et.rz.hs-fulda.de Peter Klingebiel, HS Fulda, DVZ

Benutzerinteraktion Oft: Programme interagieren mit Benutzer  Ein- und Ausgaben Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Einzelzeicheneingabe mit getchar() Einzelzeichen lesen mit getchar() int getchar(void); #include <stdio.h> ist erforderlich Was macht getchar() Warten auf Tastendruck Benutzer tippt ein Zeichen Ausgabe des Zeichen auf Konsole (Echo) Benutzer tippt <CR> Liefert int, nicht char als Wert Grund: EOF (End of File) mit -1 definiert Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Einzelzeichenausgabe mit putchar() Einzelzeichen schreiben mit putchar() int putchar(int); #include <stdio.h> ist erforderlich putchar() erwartet int, nicht char als auszugebendes Zeichen Ausgabe des Zeichens an aktueller Stelle auf Konsole / Bildschirm / stdout Liefert geschriebenes Zeichen  OK EOF bei Fehler Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Einzelzeichenein- und -ausgabe Beispiel int c; while((c = getchar()) ! EOF) putchar(c); Problem: Pufferung der Eingabe getchar()liefert Zeichen nicht sofort sondern erst nach Eingabe von <CR> dann liegt <CR> im Eingabepuffer … … und muss überlesen werden: c = getchar(); // Zeichen lesen getchar(); // CR überlesen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Ausgabe mit printf() 1 Wdh: Formatierte Ausgabe mit printf() Aufruf: printf(fmt, arg1, arg2, ...) printf()hat variable Anzahl Parameter printf()konvertiert und gibt die Parameter unter Kontrolle des Formatstring fmt aus Der Formatstring fmt ist eine Zeichenkette Parameter argN können auch fehlen Die Parameter argN müssen den Typ haben, wie er im Formatstring fmt angegeben ist printf()liefert Anzahl ausgegebener Zeichen Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Ausgabe mit printf() 2 Wichtige Umwandlungszeichen für printf Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Ausgabe mit printf() 3 Format erzwingt Anzahl +Typ der Parameter Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Ausgabe mit printf() 4 Umwandlungsbezeichner: bis zu 6 Teile Flags Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 1 scanf()ist Gegenstück zu printf() Aufruf: scanf(fmt, arg1, arg2, ...) scanf()hat variable Anzahl Parameter Aus der scanf()-Eingabe werden den als Parameter angegebenen Variablen neue Werte wie im Formatstring fmt festgelegt zugewiesen scanf()liefert als Ergebnis Anzahl erfolgreich zugewiesener Werte Negativer Fehlercode Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 2 scanf()ist anders als printf() printf()gibt Werte aus Konstante Werte wie 3.141 Werte von Variablen wie x scanf()weist Variablen neuen Wert zu die Variable x liegt an einer Stelle im Speicher das ist die Adresse der Variablen x An dieser Stelle / Adresse ist der Wert von x entsprechend dem Typ von x in Länge und Form abgelegt (= gespeichert) Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 3 scanf()soll den eingelesenen neuen Wert für eine Variable an deren Adresse im Speicher ablegen Der unäre Adress-Operator & liefert die Speicheradresse von Variablen im Speicher Bsp: int i; long l; printf(Variable i an Adresse %p\n, &i); printf(Variable l an Adresse %p\n, &l); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 4 Wichtige Umwandlungszeichen für scanf() Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 5 Modifizierer für scanf()-Format ganz analog zu printf() zwischen Prozentzeichen und Typzeichen h für short l (oder L) für long Asterisk * verhindert die Zuweisung an einen Parameter Zahl zur Bestimmung der Feldbreite Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 6 Beispiel für Benutzung von scanf() int tag, monat, jahr; printf(Datum eingeben: ); scanf(%d %d %d, &tag, &monat, &jahr); weiteres Beispiel int tag, monat, jahr; printf(Datum tt/mm/jjjj eingeben: ); scanf(%d/%d/%d, &tag, &monat, &jahr); und noch ein Beispiel int tag, monat, jahr; printf(Datum eingeben: ); scanf(%d%*c%d%*c%d, &tag, &monat, &jahr); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 7 scanf.c – Beispieleingaben mit scanf Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 8 Gültige Eingabezeichen bei scanf() int key, result; printf(Programm beenden? (J/N) ); result = scanf(%[JNjn], &key); // result = 1 bei JNjn, sonst 0 weiteres Beispiel int key, result; printf(Programm beenden? (Y/N) ); result = scanf(%1[^Yy], &key); // result = 0 bei Yy, sonst 1 Bereichsliste von gültigen Eingaben result = scanf(%[A-Z], &key); Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Eingabe mit scanf() 9 Zusammenfassung scanf() Formatstring kann white spaces (Leerzeichen, Tabulator usw.) enthalten, werden ignoriert Umwandlungsangaben fast wie bei printf() Gewöhnliche Zeichen als Begrenzer zwischen den Werten, die den einzelnen Parametern zugewiesen werden Diese Zeichen müssen eingegeben werden, bevor ein Wert für den nächsten Parameter eingelesen werden kann scanf() ohne Adressoperator  FEHLER Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

Wichtig bei Benutzerinteraktion Letztes Zeichen einer abgeschlossenen Ausgabe: Newline \n Keine zeilenweise Durchmischung von Ausgaben Konvention unterstützt Wiederverwendung von Quelltext Erst printf(), dann scanf() Aussagekräftige Eingabeanforderung Problem: nach getchar() bleibt ein Zeichen im Eingabepuffer Mit weiteren getchar() „weglesen“ Programmieren in C - Peter Klingebiel - HS Fulda - DVZ