Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: AnnoZone Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

thebreaker10

Landratte

  • »thebreaker10« ist der Autor dieses Themas

Beiträge: 0

Registrierungsdatum: 22. Mai 2011

  • Nachricht senden

1

Sonntag, 22. Mai 2011, 20:19

Dev Pascal Bruchrechnung

Hallo,
in der Schule sollten wir in Informatik ein Programm zur Bruchrechnung schrieben.

Hier ist das Programm:



PROGRAM Berechnung;
Uses Crt;

VAR c,z1,z2,n1,n2,zeg,neg : INTEGER;
erg : REAL;
op, Frage : char;


PROCEDURE eingabe;
BEGIN
textcolor(white);
ClrScr;
textcolor(lightgreen);
Writeln(' Berechnung von zwei Bruechen');
Writeln(' ---------------------------');
textcolor (white);
Writeln; Writeln;
Write(' Erster Zaehler : ');Readln(z1);
Write(' Erster Nenner : ');Readln(n1);
Write(' Zweiter Zaehler : ');Readln(z2);
Write(' Zweiter Nenner : ');Readln(n2);
Writeln('Welche Operation moechten Sie ausfuehren? (+,-,* oder /)');
Read (op);
Writeln;
END;


PROCEDURE ggT (a, b : INTEGER; VAR c : INTEGER);
VAR rest : INTEGER;

BEGIN
REPEAT
rest := a MOD b;
IF rest = 0
THEN c := b
ELSE BEGIN
a := b;
b := rest;
END;
UNTIL rest = 0
END;

PROCEDURE kgV (a,b : INTEGER; var c : INTEGER);
BEGIN
ggT(a,b,c);
c := a*b div c;
END;

PROCEDURE ausgabe;
BEGIN
Writeln ('Aus ',z1/n1 : 4:3,' ',op,' ',z2/n2 : 4:3,' ist ',erg : 4:3,' berechnet worden !!!!');
Readln;
END;


PROCEDURE addition;
var f,g : INTEGER;
begin
if n1<>n2 then
begin
kgV(n1,n2,c);
f := c div n1;
g := c div n2;
z1 := z1*z2;
z2 := z2*g;
zeg := z1+z2;
neg := c;
end
else
begin
zeg := z1+z2;
neg := n1;
end;
erg := (z1/n1)+(z2/n2);
ausgabe;
end;

PROCEDURE subtraktion;
var f,g : INTEGER;
begin
if n1<>n2 then
begin
kgV(n1,n2,c);
f := c div n1;
g := c div n2;
z1 := z1*z2;
z2 := z2*g;
zeg := z1-z2;
neg := c;
end
else
begin
zeg := z1-z2;
neg := n1;
end;
erg := (z1/n1)-(z2/n2);
ausgabe;
end;

PROCEDURE mal;
BEGIN
zeg := z1 * z2;
neg := n1 * n2;
erg := (zeg)/(neg);
ausgabe;
END;

PROCEDURE geteilt;
BEGIN
zeg := z1 * n2;
neg := n1 * z2;
erg := (zeg)/(neg);
ausgabe;
END;


procedure analyse;
VAR frequenz : INTEGER;
BEGIN
CASE op OF
'+' : addition;
'-' : subtraktion;
'*' : mal;
'/' : geteilt;
ELSE
Sound (Frequenz);
Writeln('Falsche Eingabe bei der Operation!');
Writeln('Bitte starten Sie das Programm neu!');
Readln;
Nosound;
end;
end;

BEGIN
repeat
eingabe;
analyse;
Writeln;

textcolor(white);
Write('Moechten Sie neustarten?');
textcolor(lightgreen);
Write(' J(a)');
textcolor(white);
Write(' oder');
textcolor(lightred);
Write(' N(ein)');
textcolor(white);
Write (' ?: ');
textcolor(white);
Readln(Frage)
until (Frage <> 'j') and (Frage <> 'J');
END.




Unser Lehrer meinte, dass wir jetzt Parameter einbringen sollen. Kann mir da vielleicht jemand helfen?

danke im vorraus

Der Hausgeist

immer für einen Spuuk zu haben :)

Beiträge: 486

Registrierungsdatum: 30. Juli 2003

  • Nachricht senden

2

Sonntag, 22. Mai 2011, 20:21

Haste dich verirrt :scratch:
  ...ich glaube nicht an Geister...schon seit über 500 Jahren keine mehr gesehn :hey:
Ich hab die Ruhe und Gelassenheit eines Stuhls, icvh komm mit jedem Arsch klar. ;)