Предмет: Информатика, автор: mrGrizly

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

Ответы

Автор ответа: HappyCoder
2

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.


HappyCoder: Вот это затуп дикий. Во первых я не могу вспомнить откуда я взял условие mod 10 = 0
HappyCoder: Во вторых я забыл про " умножением двух различных элементов последовательности "
HappyCoder: Исправил..
Автор ответа: BobbyFresnel
0

===== 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.

Похожие вопросы
Предмет: Алгебра, автор: ololoshkanoob2