|
Addition von Brüchen in Pascal
Addition von Bruechen mit automatischem Erweitern und Kuerzen mit Hilfe des GGTs (Pascal)
{ Programmzweck : Addition von Bruechen mit automatischem }
{ Erweitern und Kuerzen }
{ Eingabedateien : keine }
{ Ausgabedateien : keine ...
|
![]() |
Addition von Brüchen in Pascal
Addition von Bruechen mit automatischem Erweitern und Kuerzen mit Hilfe des GGTs (Pascal)
{ Programmzweck : Addition von Bruechen mit automatischem }
{ Erweitern und Kuerzen }
{ Eingabedateien : keine }
{ Ausgabedateien : keine }
{ Eingabedaten : 2 Brueche mit Zaehler und Nenner vom Typ }
{ Integer, Nenner=0 ist abgefangen }
{ Schluesselvariablen : B TBR=RECORD Ergebnis }
{ B1 Z,N:INTEGER Bruch 1 }
{ B2 END; Bruch 2 }
type tbr=record
z,n:integer;
end;
var b,b1,b2:tbr;
function ggt(a,b:integer):integer;
begin
if a mod b=0
then ggt:=b
else ggt:=ggt(b,a mod b);
end;
{ Liefert den GGT von A und B zum Kuerzen }
function kgv(a,b:integer):integer;
begin
kgv:=abs(a*b div ggt(a,abs(b)));
end;
{ Liefert das KGV von A und B mit Hilfe des GGT zum Erweitern }
procedure kuerzen(var b:tbr);
var g:integer;
begin
g:=ggt(b.z,abs(b.n));
b.z:=b.z div g;
b.n:=b.n div g;
if b.n0;
end;
{ Liest einen Bruch vom Terminal ein, N dient zur Identifizierung }
procedure ausgabe(b:tbr);
begin
write(b.z:0);
if b.n1 then write(\\\'/\\\',b.n:0);
end;
{ Schreibt einen Bruch, Nenner 1 wird unterdrueckt }
begin
eingabe(b1,1);
eingabe(b2,2);
writeln;
write(\\\' \\\');ausgabe(b1);write(\\\' + \\\');ausgabe(b2);writeln;
kuerzen(b1);
kuerzen(b2);
write(\\\'= \\\');ausgabe(b1);write(\\\' + \\\');ausgabe(b2);writeln;
b.n:=kgv(b1.n,b2.n);
b.z:=b1.z*b.n div b1.n+b2.z*b.n div b2.n;
if b.n>1
then begin
write(\\\'= \\\',b1.z*b.n div b1.n:0,\\\'/\\\',b.n:0);
writeln(\\\' + \\\',b2.z*b.n div b2.n:0,\\\'/\\\',b.n:0);
end
else writeln(\\\'= \\\',b1.z:0,\\\' + \\\',b2.z:0);
write(\\\'= \\\');ausgabe(b);writeln;
kuerzen(b);
write(\\\'= \\\');ausgabe(b);writeln;
end.
Druckansicht
Anzeige im Text-Format
Download als PDF-Datei
Download als RTF-Datei
Bewertung abgeben Fehler melden per eMail weiterempfehlen
