Определить количество ковриков, которые покроют весь пол - Free Pascal
Формулировка задачи:
Незнайка решил покрыть пол в своей комнате,имеющий прямоугольную форму,квадратными ковриками по схеме. В магазине имеются коврики различных размеров. Требуется определить количество ковриков,которые покроют весь пол
полностью.(размеры комнаты вводятся с клавиатуры).
Решение задачи: «Определить количество ковриков, которые покроют весь пол»
textual
Листинг программы
var s:string;
a,b,a1,b1:longint;
k:integer;
begin
repeat
writeln('введите длину');
readln(s);
val(s,a,k);
if (k<>0)or(a<=0) then writeln('Некорректные данные,повторите');
until (k=0)and(a>0);
repeat
writeln('введите ширину');
readln(s);
val(s,b,k);
if (k<>0)or(b<=0) then writeln('Некорректные данные,повторите');
until (k=0)and(b>0);
a1:=a;
b1:=b;
writeln('метод незнайки');
k:=1;
while a<>b do
begin
if a>b then a:=a-b else b:=b-a;
k:=k+1;
end;
writeln('количество ковров=',k);
writeln('метод знайки');
k:=0;
while a1*b1>0 do
begin
if a1>b1 then
begin
k:=k+a1 div b1;
a1:=a1 mod b1;
end
else
begin
k:=k+b1 div a1;
b1:=b1 mod a1
end;
end;
writeln('количество ковров=',k);
readln;
end.
Объяснение кода листинга программы
- Переменная
sиспользуется для хранения введенных пользователем данных. Тип данных - строка. - Переменные
aиbиспользуются для хранения длины и ширины ковра соответственно. Тип данных - длинное целое число. - Переменная
kиспользуется для проверки корректности введенных данных. Тип данных - целое число. - Пользователю предлагается ввести длину ковра.
- Если введенные данные некорректны (не является числом или длина меньше или равна нулю), программа выводит сообщение об ошибке и просит повторить ввод.
- Пользователю предлагается ввести ширину ковра.
- Если введенные данные некорректны (не является числом или ширина меньше или равна нулю), программа выводит сообщение об ошибке и просит повторить ввод.
- Переменные
a1иb1инициализируются значениями переменныхaиbсоответственно. - Метод
незнайкииспользуется для определения количества ковров методом проб и ошибок. - Если длина ковра больше ширины, то длина уменьшается на ширину, иначе ширина уменьшается на длину.
- Если длина ковра равна нулю, то цикл завершается.
- Переменная
kувеличивается на единицу после каждой итерации цикла. - Метод
знайкииспользуется для определения количества ковров методом деления с остатком. - Если значение переменной
a1больше значения переменнойb1, то остаток от деленияa1наb1добавляется к переменнойk. Затем значение переменнойa1обновляется на остаток от деления наb1. - Если значение переменной
a1меньше или равно значению переменнойb1, то остаток от деленияb1наa1добавляется к переменнойk. Затем значение переменнойb1обновляется на остаток от деления наa1. - Цикл продолжается, пока значение переменной
a1не станет равным нулю. - Выводится количество ковров, определенное методом
знайки. - Программа ожидает ввода пользователя, чтобы он мог увидеть результат.