art-03857
?>

Заполнить двумерный массив случайными числами от 10 до 100.

Информатика

Ответы

lera4075
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  var a:=MatrixRandom(5,5,10,100);
  Writeln(a)
end.

Тестовое решение:
[[26,15,69,59,40],[27,62,65,49,63],[99,80,37,44,40],[54,95,35,19,70],[45,31,28,88,68]]
dkedrin74038
Var m : array[1..5,1..5] of Integer;
i,j : Byte;
Begin
  Randomize;
  For i:=1 to 5 do
  Begin
   For j:=1 to 5 do
   Begin
     m[i,j]:=Random(91)+10;
     Write(m[i,j]:4);
   end;
  Writeln;
  end;
end.
egolopuzenko4253

a=8

Объяснение:

идём по шагам:

1 Шаг    a=5  b=7

2 Шаг  проверяем b<10 или нет.  Да меньше. Идём по стрелке ДА

3 Шаг  проверяем a<= b  у нас это 5<=7  Да меньше. Идём по стрелке ДА

4 Шаг  увеличиваем а и b на единицу, становится a=5+1=6  b=7+1=8  возвращаемся по стрелке к шагу 2

5 Шаг  проверяем 8<10 или нет.  Да меньше. Идём по стрелке ДА

6 Шаг  проверяем 6<=8  Да меньше. Идём по стрелке ДА

7 Шаг  увеличиваем а и b на единицу, становится a=6+1=7  b=8+1=9  возвращаемся по стрелке к шагу 2

8 Шаг  проверяем 9<10 или нет.  Да меньше. Идём по стрелке ДА

9 Шаг  проверяем 7<=9  Да меньше. Идём по стрелке ДА

10 Шаг  увеличиваем а и b на единицу, становится a=7+1=8  b=9+1=10  возвращаемся по стрелке к шагу 2

11 Шаг проверяем 10<10 или нет.  Нет.  Идём по стрелке Нет. Выход из алгоритма. На этом этапе a=8

si0000

Закраски клеток (команда 5) здесь нет, значит надо просто обеспечить более короткое перемещение в ту же конечную точку.

Для этого посмотрим, что за движения там записаны.

Если во всём алгоритме три раза вверх и три раза вниз- то робот вернётся в ту же точку (по вертикали), и значит все эти команды можно просто удалить.

То же самое- для движений влево и вправо. Они тоже взаимно противоположные.

Другими словами- надо просто сократить все пары движений влево-вправо и вверх-вниз. Всё что останется- это и есть короткий вариант алгоритма, который даст перемещение ту же самую конечную точку.

Запишу подробнее, как сократить алгоритм движения (только для случая без закраски):

а) берём наш алгоритм: 131413324223

б) во всём алгоритме считаем количество команд перемещения для каждого из направлений движения:

1 (вверх)-    3 штуки

2 (вниз)-     3 штуки

3 (влево)-   4 штуки

4 (вправо)- 2 штуки

в) считаем разность количества команд влево и вправо (из большего числа вычитаем меньшее):  4 - 2 = 2

Осталось две команды - влево (т.к. их было больше). Остальные команды влево-вправо сократились (мы их удалили из алгоритма).

г) считаем разность количества команд вверх и вниз (из большего числа вычитаем меньшее, но тут числа равны):  3 - 3 = 0

Не осталось ни одной команды вверх или вниз. Все эти команды сократились (мы их удалили из алгоритма).

д) получаем, что в коротком варианте алгоритма останутся только две команды влево (3).

Запишем весь алгоритм:   33

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Заполнить двумерный массив случайными числами от 10 до 100.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Борисовна_Дмитриевич1003
punchf
bakerkirill
ilplakhotin8734
tshelokova
club-pushkin
arturcristian
master-lamaster
gordeevadesign2986
fotostock
chermen40
boykoz9
potap-ver20065158
sbn07373
Alyona1692