Найти остаток от деления первого числа на второе и определить, упорядочены ли цифры в записи остатка - Free Pascal
Формулировка задачи:
Заданы два натуральных числа. Найти остаток от деления первого числа на второе и определить, расположены ли цифры в записи остатка в порядке возрастания или убывания слева направо.
Решение задачи: «Найти остаток от деления первого числа на второе и определить, упорядочены ли цифры в записи остатка»
textual
Листинг программы
var m,x,y,a,b,c,v,u:longint;
begin
repeat
write('x>0 x=');readln(x);
write('y>0 y=');readln(y);
until(x>0)and(y>0);
m:=x mod y;
writeln('Остаток=',m);
if m<10 then write('Число однозначное')
else
begin
a:=m mod 10;
m:=m div 10;
c:=1;
v:=1;
u:=1;
while m>0 do
begin
b:=m mod 10;
if b>a then u:=u+1
else if b<a then v:=v+1;
a:=b;
m:=m div 10;
c:=c+1;
end;
if v=c then write('Цифры возрастают слева направо')
else if u=c then write('Цифры убывают слева направо')
else write('Цифры не упорядочены, либо есть одинаковые');
end;
readln
end.
Объяснение кода листинга программы
- Ввод первых двух чисел x и y с помощью функции readln.
- Проверка на положительность чисел x и y с помощью условия (x>0)and(y>0).
- Вычисление остатка от деления x на y с помощью оператора mod и присваивание его переменной m.
- Вывод значения остатка на экран с помощью функции writeln.
- Проверка на однозначность числа остатка с помощью условного оператора if и вывод соответствующего сообщения.
- При однозначности числа остатка, инициализация переменных a, m, c, v, u значениями остатка, единицы и нулей.
- В цикле while вычисление каждого разряда числа остатка с помощью оператора mod, сохранение значения в переменной b, проверка на возрастание или убывание цифр с помощью условных операторов if и вычисление количества цифр с помощью переменной c.
- После окончания цикла проверка на равенство количества цифр, увеличивающихся и уменьшающихся, и вывод соответствующего сообщения.
- Если количество цифр, увеличивающихся и уменьшающихся, равно количеству цифр, то вывод сообщения о том, что цифры не упорядочены или есть одинаковые.
- Завершение работы программы с помощью функции readln.