All pastes #753977 Raw Edit

Something

public text v1 · immutable
#753977 ·published 2007-10-29 18:05 UTC
rendered paste body
program ulamki;
uses Crt;
type
     ul=record
        mianownik:integer;
        licznik:integer;
        end;

        var ulamek1, ulamek2, roznica, iloraz, iloczyn, suma : ul;

procedure dane (var ulamek1:ul; nr:byte);
begin
     write('Podaj licznik ',nr,' ulamka: ');
     readln(ulamek1.licznik);
     write('Podaj mianownik ',nr,' ulamka: ');
     readln(ulamek1.mianownik);
end;

function nwd(ulamek1:ul):byte;
var  r:integer;
begin
        if ulamek1.licznik<>ulamek1.mianownik then
        begin
             if ulamek1.licznik>ulamek1.mianownik then
             begin
              repeat
                    r:=ulamek1.licznik mod ulamek1.mianownik;
                    ulamek1.licznik:=ulamek1.mianownik;
                    ulamek1.mianownik:=r;
                    nwd:=ulamek1.licznik;
                    until ulamek1.mianownik=0;
             end else
              begin
             repeat
                r:=ulamek1.mianownik mod ulamek1.licznik;
                ulamek1.mianownik:=ulamek1.licznik;
                ulamek1.licznik:=r;
                nwd:=ulamek1.mianownik;
              until ulamek1.licznik=0;
               end;
        end else nwd:=ulamek1.licznik;
end;

procedure sumaul (ulamek1, ulamek2: ul; var suma:ul);
var n:integer;
begin
     suma.licznik:=ulamek1.licznik*ulamek2.mianownik+ulamek2.licznik*ulamek1.mianownik;
     suma.mianownik:=ulamek1.mianownik*ulamek2.mianownik;
     n:=nwd(suma);
     suma.licznik:=suma.licznik div n;
     suma.mianownik:=suma.mianownik div n;
end;

procedure roznicaul (ulamek1, ulamek2: ul; var roznica :ul);
var n:integer;
begin
     roznica.licznik:=ulamek1.licznik*ulamek2.mianownik-ulamek2.licznik*ulamek1.mianownik;
     roznica.mianownik:=ulamek1.mianownik*ulamek2.mianownik;
     n:=nwd(roznica);
     roznica.licznik:=roznica.licznik div n;
     roznica.mianownik:=roznica.mianownik div n;
end;

procedure iloczynul (ulamek1,ulamek2: ul; var iloczyn:ul);
var n:integer;
begin
     iloczyn.licznik:=ulamek1.licznik*ulamek2.licznik;
     iloczyn.mianownik:=ulamek1.mianownik*ulamek2.mianownik;
     n:=nwd(iloczyn);
     iloczyn.licznik:=iloczyn.licznik div n;
     iloczyn.mianownik:=iloczyn.mianownik div n;
end;

procedure ilorazul (ulamek1,ulamek2: ul; var iloraz:ul);
var n:integer;
begin


     iloraz.licznik:=ulamek1.licznik*ulamek2.mianownik;
     iloraz.mianownik:=ulamek2.licznik*ulamek1.mianownik;
     n:=nwd(iloraz);
     iloraz.licznik:=iloraz.licznik div n;
     iloraz.mianownik:=iloraz.mianownik div n;
end;

procedure wypisz (suma,roznica,iloczyn,iloraz :ul);
begin
     writeln('Suma wynosi ',suma.licznik,'/',suma.mianownik);
     writeln('Roznica wynosi ',roznica.licznik,'/',roznica.mianownik);
     writeln('Iloczyn wynosi ',iloczyn.licznik,'/',iloczyn.mianownik);
     writeln('Iloraz wynosi ',iloraz.licznik,'/',iloraz.mianownik);
end;


begin
     ClrScr;
     dane(ulamek1,1);
     dane(ulamek2,2);
     sumaul(ulamek1,ulamek2,suma);
     roznicaul(ulamek1,ulamek2,roznica);
     iloczynul(ulamek1,ulamek2,iloczyn);
     ilorazul(ulamek1,ulamek2,iloraz);
     wypisz(suma,roznica,iloczyn,iloraz);
     readkey;
end.