Написать программу на языке Pascal По каналу связи передается последовательность положительных целых чисел, все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число, которое можно получить умножением двух различных элементов последовательности. Напишите эффективную программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение, а также проверяет правильность контрольного значения. Программа должна напечатать отчет следующего вида: Получено .. чисел Полученное контрольное значение: …. Вычисленное контрольное значение:… Контроль пройден (или – контроль не пройден)
program CheckControlValue; var num, controlValue, maxProduct, count, i, j, num1, num2: integer; begin count := 0; maxProduct := 0; repeat read(num); count := count + 1; if num > maxProduct then maxProduct := num; until num = 0; read(controlValue); writeln('Получено ', count - 1, ' чисел'); writeln('Полученное контрольное значение: ', controlValue); writeln('Вычисленное контрольное значение: ', maxProduct); for i := 1 to count - 2 do begin for j := i + 1 to count - 1 do begin num1 := i; num2 := j; if num1 * num2 = controlValue then begin writeln('Контроль пройден'); halt; end; end; end; writeln('Контроль не пройден'); end.
Программа считывает последовательность чисел, находит наибольшее произведение двух различных чисел и затем проверяет, можно ли получить это произведение из пар чисел в последовательности. Если такая пара чисел существует, то программа выводит "Контроль пройден", иначе выводит "Контроль не пройден".
var
num, controlValue, maxProduct, count, i, j, num1, num2: integer;
begin
count := 0;
maxProduct := 0;
repeat
read(num);
count := count + 1;
if num > maxProduct then
maxProduct := num;
until num = 0;
read(controlValue);
writeln('Получено ', count - 1, ' чисел');
writeln('Полученное контрольное значение: ', controlValue);
writeln('Вычисленное контрольное значение: ', maxProduct);
for i := 1 to count - 2 do
begin
for j := i + 1 to count - 1 do
begin
num1 := i;
num2 := j;
if num1 * num2 = controlValue then
begin
writeln('Контроль пройден');
halt;
end;
end;
end;
writeln('Контроль не пройден');
end.
Программа считывает последовательность чисел, находит наибольшее произведение двух различных чисел и затем проверяет, можно ли получить это произведение из пар чисел в последовательности. Если такая пара чисел существует, то программа выводит "Контроль пройден", иначе выводит "Контроль не пройден".