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

Ответы на вопрос

var
n, max, count, contrl, max2: integer;
begin
contrl := 0;
max := 0;
Writeln('Введите числа: ');
Readln(n);
while n <> 0 do
begin
Inc(count);
if n>max then begin max2:=max; max:=n end
else if n > max2 then max2 := n;
Read(n);
end;
max2*=max;
Writeln('Введите контрольное значение: ');
Read(contrl);
Writeln('Получено: ', count, ' чисел');
Writeln('Получено контрольное значение: ', contrl);
Writeln('Вычисленное контрольное значение:: ', max2);
if contrl = max then Writeln('Контроль пройден')
else Writeln('Контроль не пройден');
end.



===== PascalABC.NET =====
begin
var (n1, n2) := ReadInteger2;
if n2 > n1 then
Swap(n1, n2);
var k := 2;
foreach var n in ReadSeqIntegerWhile(p -> p <> 0) do
begin
if n > n2 then
n2 := n;
if n2 > n1 then
Swap(n1, n2);
Inc(k)
end;
var ks := ReadInteger;
Println('Получено', k, 'чисел');
Println('Полученное контрольное значение:', ks);
n1 *= n2;
Println('Вычисленное контрольное значение:', n1);
Print('Контроль', ks = n1 ? 'пройден' : 'не пройден')
end.



Для написания программы на языке Pascal, выполним следующие шаги:
- Создадим переменные для хранения чисел и контрольного значения.
- Создадим цикл для ввода чисел с клавиатуры, пока не будет введено значение 0. В ходе ввода, найдем максимальные два числа для вычисления контрольного значения.
- После ввода чисел, вычислим контрольное значение, умножив максимальные два числа.
- Сравним полученное контрольное значение с введенным контрольным значением и выведем соответствующий отчет.
Вот программа на языке Pascal, реализующая описанный алгоритм:
pascalprogram CheckControlValue; var num, controlValue, max1, max2, temp: integer; count: integer; begin count := 0; max1 := 0; max2 := 0; // Ввод чисел и поиск максимальных двух чисел repeat readln(num); if num <> 0 then begin count := count + 1; if num > max1 then begin temp := max1; max1 := num; max2 := temp; end else if num > max2 then max2 := num; end; until num = 0; // Ввод контрольного значения readln(controlValue); // Вычисление контрольного значения temp := max1 * max2; // Вывод отчета writeln('Получено ', count, ' чисел'); writeln('Полученное контрольное значение: ', controlValue); writeln('Вычисленное контрольное значение: ', temp); if controlValue = temp then writeln('Контроль пройден') else writeln('Контроль не пройден'); end.
Программа будет последовательно запрашивать ввод чисел до тех пор, пока не будет введено значение 0. После этого, программа запросит ввод контрольного значения и вычислит контрольное значение на основе максимальных двух чисел из введенной последовательности. Затем программа сравнит полученное контрольное значение с введенным и выведет соответствующий отчет.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili