Sie sind nicht angemeldet.

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. ;)