М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
gjhjcznrj
gjhjcznrj
16.08.2020 06:42 •  Информатика

2. Система команд исполнителя, «живущего» в прямоугольном лабиринте на клетчатой плоскости: вверх, вниз, влево, вправо. При выполнении этих команд исполнитель перемещается на одну клетку в соответствующем направлении. Исполнитель двигаться в сторону стены не может.

Сколько клеток приведенного лабиринта соответствуют требованию, что, выполнив, предложенную ниже программу, исполнитель, начав движение, остановится в той же клетке, с которой он начал движение. Укажите координаты таких клеток и их общее количество.


2. Система команд исполнителя, «живущего» в прямоугольном лабиринте на клетчатой плоскости: вверх, в

👇
Открыть все ответы
Ответ:
Semfore
Semfore
16.08.2020
Рассмотрим, что делает эта программа.
  c := 0; // начальное значение счётчика

  for i := 1 to 9 do // цикл по i

    if A[i - 1] < A[i] then begin // если текущий элемент больше предыдущего

      c := c + 1; // то увеличиваем счётчик на 1

      t := A[i]; // и меняем текущий элемент местами с предыдущим

      A[i] := A[i - 1];

      A[i - 1] := t

    end;

Последние три строчки перед end - обычный алгоритм обмена значениями между двумя переменными (t = a; a = b; b = t).

Итак, моделируем, что делает программа и считаем число обменов.

0) 6 9 7 2 1 5 0 3 4 8 - исходный массив
1) 6 9 7 2 1 5 0 3 4 8 -> 9 6 7 2 1 5 0 3 4 8 ОБМЕН
2) 9 6 7 2 1 5 0 3 4 8 -> 9 7 6 2 1 5 0 3 4 8 ОБМЕН
3) 9 7 6 2 1 5 0 3 4 8 ОК
4) 9 7 6 2 1 5 0 3 4 8 ОК
5) 9 7 6 2 1 5 0 3 4 8 -> 9 7 6 2 5 1 0 3 4 8 ОБМЕН
6) 9 7 6 2 5 1 0 3 4 8 ОК
7, 8, 9) Ноль будет "всплывать" в конец, 3 ОБМЕНА

Всего будет 6 обменов, c = 6.
4,6(54 оценок)
Ответ:
evbarseguan
evbarseguan
16.08.2020
Задача 1

const max_size = 100;

var a: array[1..max_size] of real;

 i, n: integer;

 f: boolean;

begin

 read(n); {Во всех задачах считаю, что n <= max_size}

 for i := 1 to n do

   read(a[i]);

 f := true;

 for i := 2 to n do

   f := f and (a[i] > a[i - 1]);

 write(f)

end.

Пример ввода:

4

1 2 3 4

Пример вывода:

TRUE

Задача 2

const max_size = 100;

var a: array[1..max_size] of real;

 i, n, imax, imin: integer;

 temp: real;

begin

 read(n);

 for i := 1 to n do

   read(a[i]);

 imax := 1;

 imin := n;

 for i := 2 to n do

   if a[i] > a[imax] then

     imax := i;

 for i := n - 1 downto 1 do

   if a[i] < a[imin] then

     imin := i;

 temp := a[imax];

 a[imax] := a[imin];

 a[imin] := temp;

 for i := 1 to n do

   write(a[i], ' ');

end.

Пример ввода:

4

1 2 3 4

Пример вывода:

4 2 3 1

Задача 3

const max_size = 100;

var x: array[1..max_size] of integer;

 i, n, temp: integer;

begin

 read(n);

 for i := 1 to n do

   read(x[i]);

 for i := 1 to n div 2 do

 begin

   temp := x[i];

   x[i] := x[n - i + 1];

   x[n - i + 1] := temp;

 end;

 for i := 1 to n do

   write(x[i], ' ');

end.

Пример ввода:

4

1 2 3 4

Пример вывода:

4 3 2 1

Задача 4

const max_size = 100;

var x: array[1..max_size] of integer;

 i, n, sum: integer;

begin

 read(n);

 for i := 1 to n do

   read(x[i]);

 for i := 1 to n do

   if i = x[i] then

     sum := sum + x[i];

 write(sum)

end.

Пример ввода:

4

1 2 3 4

Пример вывода:

10

4,5(39 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ