В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
esedova61p0apim
esedova61p0apim
18.08.2021 14:39 •  Информатика

Сапёр Николай готовится к сдаче экзамена по обезвреживанию бомб. Среди прочего, для успешной сдачи экзамена ему необходимо обезвредить модуль с цифровой панелью. Правила обезвреживания следующие. · Цифровая панель отображает матрицу 5 на 5, состоящую из натуральных чисел, расположенных в случайном порядке.
· Цифровая панель называется корректной, если содержит в себе все числа от единицы до двадцати пяти без повторений.
· Приблизительно каждая вторая панель является корректной.
· Сапер должен определить, является ли данная цифровая панель корректной. Если цифровая панель корректна, то ему достаточно указать, что она корректна, в противном случае сапёр должен назвать наименьшее из чисел которое повторяется или которое отсутствует в таблице.
начинающему сапёру в подготовке к экзамену и напишите программу, которая позволит ему тренироваться в решении данной задачи. Предполагается, что интерфейс программы будет «консольным», тем не менее, вы можете выбрать тот тип интерфейса, который будет удобнее вам. Допускается использование английского языка в интерфейсе. Далее перечислены требования, за каждое из которых начисляется при полном выполнении.
1. Программа должна выводить на экран условие задачи (матрицу 5 на 5 из натуральных чисел), при каждом запуске программы условие должно быть разным.
2. Программа должна ждать ввода ответа от пользователя (в случае, если цифровая панель корректна, то пусть пользователь введёт слово ‘yes’, в противном случае число) и сообщать ему корректный ответ, если сапёр совершил ошибку.
3. После решения модуля (верного или нет) программа должна выдавать новое задание и продолжать тестирование сапёра.
4. Программа должна выводить количество верно решённых заданий подряд, а также процент верно решённых заданий за всё время работы программы.
5. В программе должен быть узнать правильный ответ без изменения статистики, например при вводе знака вопроса программа
будет сообщать правильный ответ, не учитывая это ни как правильный, ни как неправильный ответ.
6. При написании исходного кода придерживайтесь общих стандартов к чистоте кода на вашем языке программирования. Соблюдайте отступы, именуйте переменные в соответствии с их предназначением.
Неожиданное завершение работы программы (вылет), может привести к обнулению за те пункты, при которых встречается вылет, а также тех пунктов, работа которых зависит от обнулённых пунктов.
ВСЕ ДОЛЖНО БЫТЬ НА ЯЗЫКЕ PYTHON ​

Показать ответ
Ответ:
qwertzasd
qwertzasd
31.12.2020 15:37
// PascalABC.NET 3.0, сборка 1073
const
  nn=30;
  mm=30;
var
  a:array[1..mm,1..nn] of integer;
  m,n,i,j,k,s:integer;
begin
  Writeln('Введите число строк и столбцов массива: '); Read(m,n);
  Randomize;
  Writeln('*** Исходный массив ***');
  k:=0;
  for i:=1 to m do begin
    for j:=1 to n do begin
      a[i,j]:=Random(51)-25;
      Write(a[i,j]:4);
      if Odd(a[i,j]) then Inc(k)
    end;
    Writeln
  end;
  if k>5 then begin
    Writeln('Средние арифметические отрицательных элементов по строкам');
    for i:=1 to m do begin
      s:=0; k:=0;
      for j:=1 to n do
        if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end;
      if k>0 then Writeln(s/k:9:5) else Writeln('  0.00000');
    end
  end
  else begin
    Writeln('*** Результирующий массив ***');
    for i:=1 to m do begin
      for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end;
    Writeln
    end
  end
end.

Тестовые решения:
Введите число строк и столбцов массива:
8 6
*** Исходный массив ***
 -16  -8  -1  24 -22   1
  -9 -20 -25  13 -11  10
 -15  10 -12  20 -22   3
  -6  25  -3  25 -14  22
  24  -4  24  17  -4 -17
 -23  -9 -22   1 -18 -13
 -12  13   6 -16   2 -13
  19   8 -22  14  -3   4
Средние арифметические отрицательных элементов по строкам
-11.75000
-16.25000
-16.33333
 -7.66667
 -8.33333
-17.00000
-13.66667
-12.50000

Введите число строк и столбцов массива:
3 5
*** Исходный массив ***
   3  24 -21 -22  -8
 -21  14 -22   0 -22
  15 -16  -2   6  22
*** Результирующий массив ***
   6  48 -42 -44 -16
 -42  28 -44   0 -44
  30 -32  -4  12  44
0,0(0 оценок)
Ответ:
maga050508
maga050508
21.03.2023 12:38
Var m : array[0..6] of Integer;
  i,k,N : Integer;
Begin
  For i:=0 to 6 do m[i]:=0;
  Readln(N);
  k:=6;
  While N>0 do
  Begin
    If N>=Power(2,k) then
    Begin
      N:=N-Trunc(Power(2,k));
      Inc(m[k]);
    end else Dec(k);
  end;
  For i:=0 to 6 do Writeln(Power(2,i),'  ',m[i],' шт.');
end.

Еще вариант:
Const
  NN = 7;
  money : array[1..7] of Integer = (1,2,4,8,16,32,64);
Var m : array[1..NN] of Integer;
  i,k,N : Integer;
Begin
  For i:=1 to NN do m[i]:=0;
  Readln(N);
  k:=NN;
  While N>0 do
  Begin
    If N>=money[k] then
    Begin
      N:=N-money[k];
      Inc(m[k]);
    end else Dec(k);
  end;
  For i:=1 to NN do Writeln(money[i],'  ',m[i],' шт.');
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота