Принять последовательность чисел и проверить контрольное значение - Pascal

Узнай цену своей работы

Формулировка задачи:

По каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число, которое можно получить умножением двух различных элементов последовательности. Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида: Получено .. чисел Полученное контрольное значение: …. Вычисленное контрольное значение:… Контроль пройден (или – контроль не пройден)

Решение задачи: «Принять последовательность чисел и проверить контрольное значение»

textual
Листинг программы
var
  n, k, cr, cc, m1, m2: integer;
begin
  n := 0;
  m1 := 0;
  read(k);
  while k > 0 do
    begin
      inc(n);
      if k >= m1
        then begin
          m2 := m1;
          m1 := k
        end
        else if k > m2
          then m2 := k;
      read(k)
    end;
  readln(cr);
  cc := m1 * m2;
  writeln('Получено ', n, ' чисел');
  writeln('Полученное контрольное значение: ', cr);
  writeln('Вычисленное контрольное значение: ', cc);
  if cr = cc
    then writeln('Контроль пройден')
    else writeln('Контроль не пройден');
  readln
end.

Объяснение кода листинга программы

  1. Объявлены переменные: n, k, cr, cc, m1, m2 (тип данных - integer).
  2. Инициализированы переменные: n = 0, m1 = 0.
  3. Вводится первое число k.
  4. Запускается цикл while, который выполняется до тех пор, пока k > 0.
  5. Увеличивается значение переменной n.
  6. Если k >= m1, то выполняется внутренний цикл while, который расчитывает новое значение m2, иначе если k > m2, то обновляется значение m2.
  7. Внутренний цикл while выполняется до тех пор, пока k > 0.
  8. Вводится следующее число k.
  9. Цикл while выполняется до тех пор, пока k > 0.
  10. Вычисляется значение переменной cc как произведение m1 и m2.
  11. Выводится сообщение о количестве введенных чисел (n), контрольном числе (cr) и вычисленном контрольном числе (cc).
  12. Сравниваются значения cr и cc.
  13. Если значения равны, выводится сообщение Контроль пройден.
  14. Если значения не равны, выводится сообщение Контроль не пройден.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.5 из 5
Похожие ответы