Контрольное задание №6-2 / 6-2
.docСоставьте программу сокращения дроби M/N, где M,N – натуральные числа
Название программы следует после служебного слова program, программа называется drob. После слова var, определяется тип данных – логический тип данных boolean. Далее перечисляются переменные, используемые в программе (a,b) и задается их тип – целые числа integer. Программа начинается после слова begin. Начинается программа с ввода значения числителя, команда: writeln (' vvedite cheslitel') выдаёт на экран сообщение с текстом указанным в скобках, команда readln (a) присваивает переменной (a) числовое значение, введённое с клавиатуры. Далее команда: writeln (' vvedite znamenatel ') выдаёт на экран сообщение с текстом указанным в скобках, команда readln (b) присваивает переменной (b) числовое значение, введённое с клавиатуры. Затем следует проверка на целочисленное деление. Если условие (a mod b=0) совпадает с результатом, то переменной (а) задается значение, полученное путем деления (a) на (b), а переменной (b) задается значение 1 и с помощью writeln значения данных переменных выводятся на экран как числитель (a) и знаменатель (b). Если условие не совпадает с результатом, то производится проверка деления на два. Если переменные (а) и (b) делятся на 2 без остатка, то им присваиваются значения (a:=a div 2) и (b:=b div 2), типу данных присваивается значение true (истина) и значения переменных выводятся на экран как числитель (a) и знаменатель (b). Если и это условие не совпадает, то производится проверка деления на 3, а в случает очередного не совпадения – проверка деления на 5
program Drob;
var
flag:boolean;
a,b:integer;
begin
writeln('vvedite cheslitel');
readln(a);
writeln('vvedite znamenatel');
readln(b);
if a mod b=0 then
begin
a:=a div b;
b:=1;
end else
begin
repeat
flag:=false;
if (a mod 2=0)and(b mod 2=0) then
begin
a:=a div 2;
b:=b div 2;
flag:=true;
end;
if (a mod 3=0)and(b mod 3=0) then
begin
a:=a div 3;
b:=b div 3;
flag:=true;
end;
if (a mod 5=0)and(b mod 5=0) then
begin
a:=a div 5;
b:=b div 5;
flag:=true;
end;
until flag=false;
end;
writeln('cheslitel '+inttostr(a));
writeln('znamenatel '+inttostr(b));
readln;
end.