Это программа нахождения максимального числа из введенного с клавиатуры ввод числа не более 10^9. Она работает верно. Но я не могу понять сам смысл этой программы (очень грустно). Кроме того, что max_digit:=0. Это понятно, остальное не ясно. Почему используют mod и div для такого рода программы? Помогите разобраться. Заранее огромное спасибо и +1 к карме)

var N: longint;
 digit, max_digit: integer;
begin
 readln(N);
 max_digit:=0;
 while N>0 do
 begin
  digit:=N mod 10;
  if digit > max_digit then
   max_digit:=digit;
  N:=N div 10;
  end;
  writeln(max_digit);
end.

задан 27 Авг '14 17:19

изменен 29 Авг '14 0:18

%D0%92%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%BD%D0%B0's gravatar image


9917

10|600 символов нужно символов осталось
0

Эта программа решает несколько другую задачу. Вводится всего одно число, а затем находится максимальная из его десятичных цифр. Это не то же самое, как если бы мы вводили несколько чисел определённого диапазона, а потом искали бы среди них максимальное.

Принцип работы здесь такой: число читаем с правого конца, сравнивая последнюю цифру с максимальной из зарегистрированных на текущий момент. Последней цифрой числа $%N$% будет как раз $%N{\rm\ mod\ }10$%. Если она больше текущей максимальной, то переменной max_digit присваиваем её значение.

Эти действия совершаются в цикле, и далее рассматривается число без уже просмотренной последней цифре. Отбрасывание последней десятичной цифры -- это в точности операция div по модулю 10. Поэтому $%N$% заменяем на $%N$% без последней цифры, и так до тех пор, пока не получится ноль.

Вот краткая иллюстрация хода работы программы на примере:

N=6815, md=0

N=681, md=5

N=68, md=5

N=6, md=8

N=0, md=8

ссылка

отвечен 27 Авг '14 17:35

10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×38

задан
27 Авг '14 17:19

показан
355 раз

обновлен
27 Авг '14 17:35

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru