![]() |
Anzeige:
|
|
|||||||
| Sonstige Programmiersprachen Das Sammel-Forum für alle weiteren Programmiersprachen wie z.B. Assembler, Delphi, Pascal, C# (C-Sharp), Java usw. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 22.05.2011
Beiträge: 1
|
Hallo,
in der Schule sollten wir in Informatik ein Programm zur Bruchrechnung schrieben. Hier ist das Programm: Code:
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.
danke im vorraus Geändert von Frabbing (22.05.2011 um 23:51 Uhr) Grund: Codetags gesetzt |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
Ich könnte mir jetzt höchstens vorstellen, dass den Proceduren, die du ja schon geschrieben hast, jetzt per Parametern die zu berechnenden Zahlen übergeben werden sollen.
Beispiel: Code:
PROCEDURE Summe(X: Integer; Y: Integer); Var Ergebnis: Integer; BEGIN Ergebnis = X + Y; END;
__________________
Xzeer |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| pascal | afae5454wt4 | Sonstige Programmiersprachen | 12 | 10.03.2008 19:52 |
| Os in C oder Pascal | _,.-°*''*°-.,_ | Sonstige Programmiersprachen | 1 | 16.04.2006 20:22 |
| Ausgabeumleitung in Pascal | powerweb | Sonstige Programmiersprachen | 0 | 10.03.2006 15:46 |
| try...except... bei pascal | aDm1n | Sonstige Programmiersprachen | 0 | 21.02.2006 22:45 |
| Turbo Pascal 7.0 | GAST SEIN | Windows 95/98/ME/2000/NT | 4 | 26.06.2004 10:31 |