Ein- und Ausgabe von Daten • Datenausgabe • Dateneingabe • Datenformatierung
Informatik 2006 Ein- / Ausgabe Seite 1
Klöditz Hochschule Anhalt (FH)
Ein- / Ausgabe-Anweisungen
Beispiel printf ("SelectionSort sortiert maximal 50 Zahlen !\n"); printf ("Wie viele Zahlen sollen sortiert werden ? "); scanf ("%d",&anz);
• Eingabedialog liefert: SelectionSort sortiert maximal 50 Zahlen ! Wie viele Zahlen sollen sortiert werden ? 5
• Unterprogramme printf und scanf: – printf – scanf
Klöditz Hochschule Anhalt (FH)
"druckt" etwas auf den Bildschirm liest etwas von der Tastatur und speichert es ab
Informatik 2006 Ein- / Ausgabe Seite 2
Datenausgabe • formatierte Ausgabe von Texten, Datenwerten und Steuerzeichen • Ausgabe-Unterprogramm printf ist in der Systembibliothek stdio.h enthalten • allgemeine Form: printf ("formatbeschreibung" [, ausdruck]); • ausdruck steht für – Name einer Variablen, – Wert einer Konstanten oder – gültigen Ausdruck
Informatik 2006 Ein- / Ausgabe Seite 3
Klöditz Hochschule Anhalt (FH)
Ausgabeformatierung Ausgabeformate Texte
Text AbC ...
Text wie angegeben
ganze Zahlen
%[n]d
Wert in einem n Stellen langen Bereich, rechtsbündig
reelle Zahlen
%[n.m]f
Wert in einem n Stellen langen Bereich, rechtsbündig mit m "Nachkomma"-Stellen
Zeichen
%[n]c
Wert in einem n Stellen langen Bereich, linksbündig
Zeichenketten
%s
Steuerzeichen
•
Zeilenvorschub
\n
Tabulatorsprung
\t
Beispiele: printf ("\nMasse:...%10.3f", m, ".kg\n"); printf ("\t\tProgrammende\n\n\n"); printf ("Anzahl Werte:..%d\n", anz);
Klöditz Hochschule Anhalt (FH)
Informatik 2006 Ein- / Ausgabe Seite 4
Was geschieht bei der Ausgabe? printf ("\nMasse:...%10.3f.kg\n", m); 1. Unterprogramm printf wird aufgerufen und 2. schreibt einen Zeilenvorschub (\n) und dann den Text Masse:... in den Zeilenpuffer für die Ausgabe, 3. holt den Wert von m von dessen Hauptspeicherplatz (duale Darstellung einer reellen Zahl !), 4. konvertiert den Wert in die dezimale Darstellung, 5. setzt ihn im Zeilenpuffer anstelle des Formatplatzhalters %10.3f in 10 Stellen so ein, dass er dort rechtsbündig, mit 3 "Nachkomma"-Stellen, Dezimalpunkt und ggf. Vorzeichen steht; z.B. ....2.450, 6. schreibt dahinter die Zeichenkette .kg in den Zeilenpuffer, 7. setzt dahinter einen Zeilenvorschub (\n) 8. und gibt dann den Inhalt des Zeilenpuffers auf den Bildschirm aus. Informatik 2006 Ein- / Ausgabe Seite 5
Klöditz Hochschule Anhalt (FH)
Dateneingabe • formatierte Eingabe von Datenwerten • Eingabe-Unterprogramm scanf ist in der Systembibliothek stdio.h enthalten • allgemeine Form: scanf ("formatbeschreibung", variablenadresse); • formatbeschreibung • variablenadresse
Klöditz Hochschule Anhalt (FH)
analog printf steht für &varname
Informatik 2006 Ein- / Ausgabe Seite 6
Eingabeformate • • • •
ganze Zahlen: reelle Zahlen: Zeichen: Zeichenketten:
%d %f %c %s
• Beispiele: scanf ("%f", &alpha); scanf ("%d", &anz);
Informatik 2006 Ein- / Ausgabe Seite 7
Klöditz Hochschule Anhalt (FH)
Was geschieht bei der Eingabe? scanf ("%d", &anz); 1. Unterprogramm scanf wird aufgerufen und 2. liest von der Tastatur (Eingabepuffer) eine Dezimalzahl als Text (ASCII-Zeichen) ein, 3. konvertiert den Text gemäß %d-Format in die interne duale Zahlenwert-Darstellung, 4. speichert den dualen Wert auf den Platz im Hauptspeicher, der für die Variable anz vorgesehen ist (Adresse von anz ist &anz)
Klöditz Hochschule Anhalt (FH)
Informatik 2006 Ein- / Ausgabe Seite 8
Datenformate
Datentyp
Format Bemerkungen
int
%[n]d
float
%[n.m]f
Reelle Gleit-"Komma"-Zahl
%[n.m]e
Reelle Zahl (Exponential-Darstellung)
%[n]c
Einzelzeichen
%[n]s
Zeichenkette
\n
Zeilenvorschub
\t
Tabulatorsprung
char Steuerzeichen
ganze Dezimalzahl (integer)
Informatik 2006 Ein- / Ausgabe Seite 9
Klöditz Hochschule Anhalt (FH)
Beispiele für Ein- und Ausgabe #include void main () { int i, j; float x,y; printf ("Formatierte Ein- und Ausgabe\n\n"); printf scanf scanf printf
("Eingabe i und j: "); ("%d",&i); ("%d",&j); ("Ausgabe i und j (8i)\n%8i%8i\n\n", i, j);
printf scanf scanf printf
("Eingabe x und y: "); ("%f",&x); ("%f",&y); ("Ausgabe x und y (8.4f)\n%8.4f%8.4f\n\n",x,y);
printf ("Programm-Ende\n\n\n"); } Klöditz Hochschule Anhalt (FH)
Informatik 2006 Ein- / Ausgabe Seite 10
Fragen zur Überprüfung des Verständnisses 1. Was geschieht bei der formatierten Ausgabe von Daten? Geben Sie die entsprechende Anweisung an. 2. In welcher Form stehen die Daten im Rechner, in welcher Form auf dem Bildschirm? 3. Wozu dient die Angabe eines Formates bei der Ausgabe? 4. Was geschieht, wenn Format und Datentyp bei der Ausgabe nicht übereinstimmen? 5. Was geschieht bei der formatierten Eingabe von Daten? Geben Sie die entsprechende Anweisung an. 6. Von wo nach wo wird eingelesen? 7. Was geschieht, wenn die externe Darstellung bei der Eingabe nicht mit dem programmierten Datenformat übereinstimmt?
Klöditz Hochschule Anhalt (FH)
Informatik 2006 Ein- / Ausgabe Seite 11