Weiter zum Dokument

EDV1-TU 05 C Mittelwert

wintersemester
Kurs

Einführung in die Informatik (0434 L 350)

362 Dokumente
Studierenden haben 362 Dokumente in diesem Kurs geteilt
Akademisches Jahr: 2022/2023
Hochgeladen von:
Anonymer Student
Dieses Dokument wurde von einer bzw. einem Studierenden hochgeladen, die/der wie du beschlossen hat, anonym zu bleiben.
Technische Universität Berlin

Kommentare

Bitte logge dich ein oder registriere dich, um Kommentare zu posten.

Text Vorschau

5. Tutorium

Einführung in die Informationstechnik für Ingenieure

Version von Di, 28. Mai 2019, 11:01 Uhr

Struktogrammsymbole und Quelltext

Ein- und Ausgaben:

A(B): "Bitte eingeben:"

E(T): var

A(B): "Du hast ", var1 , " eingegeben!"

char buffer[100]; printf (“Bitte eingeben:“); fgets (buffer, 100, stdin); sscanf (buffer, “%i“, &var1); printf (“Du hast %i eingegeben!“, var1);

Einfache Verzweigung:

T F

True−Pfad False−Pfad

Bedingung if (Bedingung) { True-Pfad } else { False-Pfad } oder if (Bedingung) True-Pfad

Mehrfachverzweigung:

else

  1. Pfad 2. Pfad

else− Pfad

Bed1 Bed

if (Bed1) { 1. Pfad } else if (Bed2) { 2. Pfad } else { else-Pfad }

Mehrfachverzweigung (CASE):

else

Pfad

variable Wert1 Wert

  1. Pfad 2. Pfad

else−

= switch (variable) { case Wert1: 1. Pfad; break; case Wert2: 2. Pfad; break; default: else-Pfad }

1

Schleife mit Eintrittsbedingung:

Schleifenrumpf

Eintrittsbedingung while (Eintrittsbedingung) { Schleifenrumpf }

Schleife mit Austrittsbedingung:

Schleifenrumpf

Austrittsbedingung

do { Schleifenrumpf } while (! (Austrittsbedingung) );

Zählschleife:

i = a

Schleifenrumpf

, e, sw

for (i = a; i <= e; i = i + sw) { Schleifenrumpf }

Ein- und Ausgaben (Dateien):

A(D):

E(D): var1 ,

var3,

var

var

Datei "

Datei "datei" öffnen

datei" schließen

FILE datin, datout; /==== lesen: ==================/ datin = fopen (“datei“,“r“); fscanf (datin, “%i %f“, &var1, &var2); fclose (datin); /==== schreiben: ==============/ datout = fopen (“datei“,“w“); fprintf (datout, “%i %f“, var3, var4); fclose (datout);

Funktionsaufruf:

rw =

(para1, para2)

(para1, para2)

unterprogramm

funktion

unterprogramm (para1, para2); rw = funktion (para1, para2);

2

  • Struktogramme
  1. Beispiel: Mittelwert Es sollen Zahlen aus einer Datei eingelesen werden und danach der Mittelwert der gelesenen Werte berechnet werden. Hauptprogramm: - Das Programm soll sich mit einer Bildschirmausgabe als Begrüßung melden. - Anschließend soll der Benutzer nach dem Namen der Datei gefragt werden, aus der die reellen Zahlen eingelesen werden sollen. - Nachdem der Dateiname eingelesen wurde, soll die Datei geöffnet werden. - Falls diese nicht existiert, soll nach einer Fehlermeldung zur Neueingabe des Dateinamens aufgefordert werden. - Aus der Datei sollen maximal 100 reelle Zahlen eingelesen und in das Feld x gespeichert werden. ∗ Dafür ist zunächst erforderlich, dass der Zählindex N initialisiert wird. ∗ Mögliche Lesefehler sollen ebenso zum Beenden des Einlesens führen wie das Errei- chen der maximalen Anzahl der eingelesenen Werte. - Nachdem alle Werte aus der Datei eingelesen wurden, kann diese nun geschlossen wer- den. - Um die tatsächliche Anzahl der eingelesenen Werte zu ermitteln, muss im Falle eines Lesefehlers der Zählindex um eins reduziert werden. - Im Anschluss soll diese auf dem Bildschirm ausgegeben werden. - Mithilfe der Funktion mittelwert soll der Mittelwert berechnet werden. Dazu ist es er- forderlich, dass diese das Feld x und die Anzahl der eingelesenen Werte als Parameter übergeben bekommt. Der Rückgabewert soll in die Variable mw gespeichert werden. - Der berechnete Mittelwert soll auf dem Bildschirm ausgegeben werden. - Das Programm fragt, ob eine weitere Berechnung erwünscht ist. - Nachdem der Benutzer seine Wahl eingegeben hat, soll diese wie folgt überprüft werden: ∗ Falls der Benutzer mit ja („j“) geantwortet hat, soll mit dem Einlesens eines neuen Dateinamens das Programm fortgeführt werden. ∗ Falls der Benutzer mit nein („n“) geantwortet hat, soll sich das Programm mit einer Bildschirmausgabe verabschieden und beendet werden. ∗ Bei anderen Eingaben soll nach einer Fehlermeldung zur Neueingabe aufgefordert werden. Mittelwert: - Die Funktion mittelwert soll den Mittelwert der Zahlen ermitteln, welche durch das Feld x übergeben wurden. - Dazu kann folgende Formel zu Hilfe genommen werden:

x =

1

N

N

i= 1

xi

N = Anzahl der Werte

3

A(B): "Welche Datei soll ausgelesen werden?"

E(T): dname

Datei <dname> öffnen

Datei <dname> existiert

N = 0

N < 100 und kein Lesefehler

N = N + 1

E(D): x(N)

Datei <dname> schließen

N = N − 1

A(B): "Anzahl der eingelesenen Werte:" , N

mw =

A(B): "Berechneter Mittelwert:" , mw

A(B): "Nochmal?"

E(T): wahl

A(B): "Auf Wiedersehen" A(B): "Fehler"

wahl = ’j’ oder wahl = ’n’

wahl = ’n’

T F

T Lesefehler? F

’j’ ’n’ wahl = else

mittelwert (x, N)

main

A(B): "Programm zur Berechnung des Mittelwertes"

A(B): "Datei existiert nicht"

<dname> existiert nicht

summe = 0

mittelwert (x, N)

i = 1, N

summe = summe + x(i)

mittelwert = summe / N

Rückgabewert: mittelwert

4

War dieses Dokument hilfreich?

EDV1-TU 05 C Mittelwert

Kurs: Einführung in die Informatik (0434 L 350)

362 Dokumente
Studierenden haben 362 Dokumente in diesem Kurs geteilt
War dieses Dokument hilfreich?
5. Tutorium
Einführung in die Informationstechnik für Ingenieure
Version von Di, 28. Mai 2019, 11:01 Uhr
Struktogrammsymbole und Quelltext
Ein- und Ausgaben:
A(B): "Bitte eingeben:"
E(T): var1
A(B): "Du hast ", var1 , " eingegeben!"
char buffer[100];
printf (“Bitte eingeben:“);
fgets (buffer, 100, stdin);
sscanf (buffer, %i“, &var1);
printf (“Du hast %i eingegeben!“, var1);
Einfache Verzweigung:
T F
True−Pfad False−Pfad
Bedingung
if (Bedingung) {
True-Pfad
} else {
False-Pfad
}
oder
if (Bedingung)True-Pfad
Mehrfachverzweigung:
else
1. Pfad 2. Pfad
else−
Pfad
Bed2
Bed1
if (Bed1) {
1. Pfad
} else if (Bed2) {
2. Pfad
} else {
else-Pfad
}
Mehrfachverzweigung (CASE):
else
Pfad
variable
Wert1 Wert2
1. Pfad 2. Pfad
else−
=
switch (variable) {
case Wert1:1. Pfad; break;
case Wert2:2. Pfad; break;
default: else-Pfad
}
1
Schleife mit Eintrittsbedingung:
Schleifenrumpf
Eintrittsbedingung
while (Eintrittsbedingung) {
Schleifenrumpf
}
Schleife mit Austrittsbedingung:
Schleifenrumpf
Austrittsbedingung
do {
Schleifenrumpf
} while (! (Austrittsbedingung) );
Zählschleife:
=ai
Schleifenrumpf
,e,sw
for (i=a;i<= e;i=i+sw) {
Schleifenrumpf
}
Ein- und Ausgaben (Dateien):
A(D):
E(D): var1 ,
,
var3
var2
var4
Datei "
Datei "datei.dat " öffnen
datei.dat" schließen
FILE *datin, *datout;
/*==== lesen: ==================*/
datin = fopen (“datei.dat“,“r“);
fscanf (datin, %i %f“, &var1, &var2);
fclose (datin);
/*==== schreiben: ==============*/
datout = fopen (“datei.dat“,“w“);
fprintf (datout, %i %f“, var3,var4);
fclose (datout);
Funktionsaufruf:
=rw
(para1, para2)
(para1, para2)
unterprogramm
funktion
unterprogramm (para1,para2);
rw =funktion (para1,para2);
2