Определить количество ковриков, которые покроют весь пол - 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
не станет равным нулю. - Выводится количество ковров, определенное методом
знайки
. - Программа ожидает ввода пользователя, чтобы он мог увидеть результат.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д