Задание 3. Тип заданий 19: программирование, массивы.
  • Задание:

    В программе используется одномерный целочисленный массив A с индексами от 1 до 10. Значения элементов равны 5, 4, 8, 6, 5, 1, 4, 8, 3, 4 соответственно, т.е. A[1] = 5, A[2] = 4 и т.д. Определите значение переменной x после выполнения следующего фрагмента этой программы:

    Pascal:

    x := 0;
    for i := 2 to 10 do
      if A[i] < A[1] then begin
        x := x + 1;
        k := A[i];
        A[i] := A[1];
        A[1] := k;
      end;

  • Решение:

    Цикл начинает проверять массив от 2 элемента (в первом повторе цикла i:=2), и каждый повтор цикла проверяется условие:

    Если A[i] < A[1] То — проще говоря, если проверяемый элемент меньше первого элемента

    x := x + 1; — значение переменной x увеличивается на единицу

    k := A[i]; — переменной k присваивается значение проверяемого элемента

    A[i] := A[1]; — проверяемому элементу присваивается значение первого элемента

    A[1] := A[i]; — первому элементу присваивается проверяемый элемент.

    Проще говоря, каждый раз, когда условие выполняется, переменная x увеличивается на 1, а первый и проверяемый элементы меняются местами.

    Изобразим данный массив в виде таблицы:

    1 2 3 4 5 6 7 8 9 10
    5 4 8 6 5 1 4 8 3 4

     

    В первом повторе i = 2, проверяются a[2] и a[1], условие 4<5 выполняется, элементы меняются местами, x = 1:

    1 2 3 4 5 6 7 8 9 10
    4 5 8 6 5 1 4 8 3 4

     

    Во втором повторе условие не выполняется, т.к. i=3, условие a[3] < a[1] не выполняется.

    В третьем повторе условие не выполняется, т.к. i=4, условие a[4] < a[1] не выполняется.

    В четвертом повторе условие не выполняется, т.к. i=5, условие a[5] < a[1] не выполняется.

    В пятом повторе i=6, условие a[6] < a[1] выполняется, 6-й и 1-й элементы поменяются местами, x = 2:

    1 2 3 4 5 6 7 8 9 10
    1 5 8 6 5 4 4 8 3 4

     

    Первая ячейка массива стала наименьшим элементом массива, значит условие a[i] < a[1] больше не выполнится.

    Условие выполнилось 2 раза, переменная x стала равна 2.

    Ответ: 2

Поделиться:
 
Комментарии (0)

Нет комментариев. Ваш будет первым!

Перевести число из в Результат: 510 = 1012