19. В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 6; 9; 7; 2; 1; 5; 0; 3; 4; 8 соответственно, т. е. A[0] = 6; A[1] = 9 и т. д.
Определите значение переменной c после выполнения следующего фрагмента программы, записанного ниже на разных языках программирования.
Бейсик | Паскаль |
c =0 FOR i = 0 TO 8 IF A(i) < A(i + 1) THEN c = c + 1 t = A(i) A(i +1) = t ENDIF NEXT i |
c := 0 for i :=0 to 8 do if A(i) < A(i +1) then begin c := c + 1; t := A(i); A(i) := A(i + 1); A(i + 1) := t end; |
Си | Алгоритмический язык |
c = 0; for (i = 0; 1 <= 8; i + +) if (A[i] < A[i + 1]) { c++; t = A[i]; A[i] =A[i + 1]; A[i + 1] = t; } |
c := 0 нц для i от 0 до 8 если A[i] < A[i + 1] то c := c + 1 t := A[i] A[i] := A[i + 1] A[i + 1] := t все кц |
Ответ: 6
Решение:
Исходный массив
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 6 | 9 | 7 | 2 | 1 | 5 | 0 | 3 | 4 | 8 |
1) A(i) = 6 A(i + 1) = 9
6 < 9 да
c = 0 + 1 c =1
t = A(i) = 6
A(i) = A(i + 1) = 9
A(i + 1) = t = 6
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 6 |
2) A(i) = 6 A(i + 1) = 7
6 < 7 да
c = 1 + 1 c = 2
t = A(i) = 6
A(i) = A(i + 1) = 7
A(i + 1) = t = 6
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 |
3) A(i) = 6 A(i + 1) = 2
6 < 2 нет
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 |
4) A(i) = 2 A(i + 1) = 1
2 < 1 нет
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 | 1 |
5) A(i) = 1 A(i + 1) = 5
1 < 5 да
c = 2 + 1 c = 3
t = A(i) = 1
A(i) = A(i + 1) = 5
A(i + 1) = t = 1
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 | 5 | 1 |
6) A(i) = 1 A(i + 1) = 0
1 < 0 нет
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 | 5 | 1 | 0 |
7) A(i) = 0 A(i + 1) = 3
0 < 3 да
c = 3 + 1 c = 4
t = A(i) = 0
A(i) = A(i + 1) = 3
A(i + 1) = t = 0
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 | 5 | 1 | 3 | 0 |
8) A(i) = 0 A(i + 1) = 4
0 < 4 да
c = 4 + 1 c = 5
t = A(i) = 0
A(i) = A(i + 1) = 4
A(i + 1) = t = 0
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 | 5 | 1 | 3 | 4 | 0 |
9) A(i) = 0 A(i + 1) = 8
0 < 8 да
c = 5 + 1 c = 6
t = A(i) = 0
A(i) = A(i + 1) = 8
A(i + 1) = t = 0
i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
A( i ) | 9 | 7 | 6 | 2 | 5 | 1 | 3 | 4 | 8 | 0 |
Итак, в цикле сравниваются пары элементов. В том случае, если предшествующий элемент меньше последующего, значение переменной сувеличивается на единицу, а элементы меняются местами. В процессе выполнения программы, поменялись местами элементы 6 и 9, 6 и 7, 1 и 5, 0 и 3, 0 и 4, 0 и 8. Значение с = 6.