Т. е. сокращение дроби? 
program Drob; 
var 
 a,b,c :longint; 
 a1,b1 :longint; 
 
begin 
 Write('Введите а');Readln(a); 
 Write('введите b');Readln(b); 
 if b=0 then begin 
 Writeln('Нуль -знаменатель! '); 
 Readln; 
 Halt(1); 
 end; 
 if a=0 then begin 
 Writeln(a,'/',b,'=',0); 
 Readln; 
 Halt(1); 
 end; 
 
 a1:=a; b1:=b; 
 if b>a then begin 
 c:=a; 
 a:=b; 
 b:=c; 
 end; 
 
 while a mod b <> 0 do begin 
 c:=b; 
 b:=a mod b; 
 a:=c; 
 end; 
 Write(a1,'/',b1,'=',a1 div b); 
 if b1 div b<>1 then Writeln('/',b1 div b); 
 Readln; 
end.
				
	Другие языки программирования и технологии
	
		
		
								
				
							
								
				
			
	
		
			помогите составить программу, сокращающую обыкновенные дроби.на паскале заранее спасибо
program Drobi;
var a,b,c :longint; d,e :real;
function NOD(x,y:longint):longint;
begin
if x<>0 then NOD:= NOD(y mod x,x) else NOD:= y;
end;
 
begin
writeln('Для создания использовался алгаритм Евклида (нахождение НОД) и алгаринт выученныйна уроке (Сокращение дроби)');
Write('Введите дробь (оба числа через пробел): ');
Readln(a,b);
c:=NOD(a,b);
d:=a/c;
e:=b/c;
writeln('Сокращённая дробь: ',d,'/',e);
writeln('Программу сделал Иван Никонов');
readln
end.
Алагиртм для нахоэдения нод сделан по Еквмлиду
Воспользуемся алгоритмом Евклида. В этом примере a=64, b=48.
Делим 64 на 48, получаем 64:48=1 (ост. 16) (при необходимости смотрите правила и примеры деления с остатком), что можно записать в виде равенства 64=48·1+16, то есть, q1=1, r1=16.
Теперь делим b на r1, то есть, 48 делим на 16, получаем 48:16=3, откуда имеем 48=16·3. Здесь q2=3, а r2=0, так как 48 делится на 16 без остатка. Мы получили r2=0, поэтому это был последний шаг алгоритма Евклида, и r1=16 является искомым наибольшим общим делителем чисел 64 и 48.
				
							var a,b,c :longint; d,e :real;
function NOD(x,y:longint):longint;
begin
if x<>0 then NOD:= NOD(y mod x,x) else NOD:= y;
end;
begin
writeln('Для создания использовался алгаритм Евклида (нахождение НОД) и алгаринт выученныйна уроке (Сокращение дроби)');
Write('Введите дробь (оба числа через пробел): ');
Readln(a,b);
c:=NOD(a,b);
d:=a/c;
e:=b/c;
writeln('Сокращённая дробь: ',d,'/',e);
writeln('Программу сделал Иван Никонов');
readln
end.
Алагиртм для нахоэдения нод сделан по Еквмлиду
Воспользуемся алгоритмом Евклида. В этом примере a=64, b=48.
Делим 64 на 48, получаем 64:48=1 (ост. 16) (при необходимости смотрите правила и примеры деления с остатком), что можно записать в виде равенства 64=48·1+16, то есть, q1=1, r1=16.
Теперь делим b на r1, то есть, 48 делим на 16, получаем 48:16=3, откуда имеем 48=16·3. Здесь q2=3, а r2=0, так как 48 делится на 16 без остатка. Мы получили r2=0, поэтому это был последний шаг алгоритма Евклида, и r1=16 является искомым наибольшим общим делителем чисел 64 и 48.
Похожие вопросы
- Помогите составить программу на паскале!
 - Сделайте пожалуйста программу на Паскале. Заранее спасибо!!!!
 - помогите составить программу в паскаль, плиз
 - помогите составить программу на паскале используя массив:
 - Помогите составить программу на Турбо Паскале! ПЛИЗЗ!!
 - помогите составить программу на паскале, срочно..
 - Паскаль. Помогите составить программу.
 - Помогите составить программу на паскале
 - Помогите составить программу. тема "Процедуры и функции" при помощи Паскаль
 - Помогите составить программу в паскали..