Ein- und Ausgabe von Daten

Ein- und Ausgabe von Daten • Datenausgabe • Dateneingabe • Datenformatierung Informatik 2006 Ein- / Ausgabe Seite 1 Klöditz Hochschule Anhalt (FH) ...
1 downloads 2 Views 25KB Size
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

Suggest Documents