drob2.pas 874 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var
  2. chisl,
  3. znam : byte;
  4. out : text;
  5. found : boolean;
  6. maxc,maxz:byte;
  7. min : real;
  8. function NOD(n1,n2 : byte):byte;
  9. var
  10. nn1,nn2:byte;
  11. begin
  12. nn1 := n1;
  13. nn2 := n2;
  14. while nn1 <> nn2 do if nn1 > nn2 then nn1 := nn1 - nn2 else nn2 := nn2 - nn1;
  15. NOD := nn1;
  16. end;
  17. Begin
  18. assign(out,'output.txt');
  19. rewrite(out);
  20. found := true;
  21. min := 0;
  22. while found do
  23. begin
  24. maxz := 1;
  25. maxc := 1;
  26. found := false;
  27. for chisl := 1 to 15 do
  28. for znam := 15 downto chisl do
  29. begin
  30. if (chisl/znam > min)and (chisl/znam < maxc/maxz) then
  31. begin
  32. maxc:=chisl;
  33. maxz:=znam;
  34. found := true;
  35. end;
  36. end;
  37. if found then writeln(out,maxc div NOD(maxc,maxz),'/',maxz div NOD(maxc,maxz),'=',maxc/maxz:0:8);
  38. min := maxc/maxz;
  39. end;
  40. close(out);
  41. End.