Вопрос задан 23.02.2019 в 01:21. Предмет Информатика. Спрашивает Кузеванов Евгений.

По каналу связи передается последовательность положительных целых чисел, все числа не превышают

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кошелев Егор.
PascalABC.NET
-----------------------------
var
  a: array[1..10000] of integer;
  kz,maxp,n,i,j: integer;  
begin  
  i:=0;
  maxp:=integer.MinValue;
  writeln ('Готов к приему чисел');
  repeat
    i:=i+1;
    readln (a[i]);  
  until a[i]=0;
  n:=i-1;
  readln (kz);
  for i:=1 to n-1 do 
    for j:=2 to n do 
      if maxp<(a[i]*a[j]) then maxp:=(a[i]*a[j]);  
  writeln ('Получено ',n,' чисел');
  writeln;
  writeln ('Полученное контрольное значение: ',kz);
  writeln;
  writeln ('Вычисленное контрольное значение: ',maxp);
  writeln;
  if kz=maxp 
    then writeln ('Контроль пройден')
    else writeln ('Контроль не пройден');
end.
--------------------------------------
Результаты:
1)
Готов к приему чисел
1 2 3 4 5 0 20
Получено 5 чисел
Полученное контрольное значение: 20
Вычисленное контрольное значение: 20
Контроль пройден
2)
Готов к приему чисел
1 2 3 4 5 6 0 20
Получено 6 чисел
Полученное контрольное значение: 20
Вычисленное контрольное значение: 30
Контроль не пройден

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи можно написать программу на языке программирования, которая будет получать последовательность чисел и проверять правильность контрольного значения. Вот пример эффективной программы на языке C:

```c #include

int main() { int number; int maxProduct = 0; int count = 0;

// Получаем последовательность чисел printf("Введите последовательность чисел (для завершения введите 0):\n"); scanf("%d", &number);

// Пока не введен признак конца последовательности (0) while (number != 0) { count++;

// Обновляем максимальное произведение if (number > maxProduct) { maxProduct = number; }

scanf("%d", &number); }

int controlValue; printf("Введите контрольное значение:\n"); scanf("%d", &controlValue);

// Проверяем правильность контрольного значения int computedValue = maxProduct * (maxProduct - 1); if (computedValue == controlValue) { printf("Получено %d чисел\n", count); printf("Полученное контрольное значение: %d\n", controlValue); printf("Вычисленное контрольное значение: %d\n", computedValue); printf("Контроль пройден\n"); } else { printf("Получено %d чисел\n", count); printf("Полученное контрольное значение: %d\n", controlValue); printf("Вычисленное контрольное значение: %d\n", computedValue); printf("Контроль не пройден\n"); }

return 0; } ```

Программа запрашивает у пользователя последовательность чисел, пока не будет введен признак конца последовательности (0). Затем программа запрашивает контрольное значение. После этого программа вычисляет максимальное произведение двух различных элементов последовательности и сравнивает его с контрольным значением. Если значения совпадают, программа выводит отчет о полученном и вычисленном контрольных значениях и сообщает, что контроль пройден. В противном случае программа выводит отчет и сообщает, что контроль не пройден.

Примечание: В данном примере предполагается, что пользователь будет вводить только положительные целые числа, не превышающие 1000. Если ввод могут быть отрицательные числа или числа, превышающие 1000, необходимо добавить соответствующую проверку и обработку в программу.

Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос