Задание: В программе используется одномерный целочисленный массив А с индексами от 1 до 10. Значения элементов равны 4, 5, 8, 6, 4, 5, 1, 7, 15, 8 соответственно, т.е. A[1] = 4, A[2] = 5 и т.д. Определите значение переменной s после выполнения следующего фрагмента программы:
Pascal: |
s := 0;
for i:=1 to 9 do
s := s — A[i] + A[i+1]; |
Решение: Для решения данного задания надо понять, по какому принципу изменяется значение переменной s.
Массив состоит из десяти элементов.
Каждый повтор цикла от переменной s отнимается значение элемента с индексом i, и прибавляется значение элемента с индексом i+1, то есть значение следующего элемента.
Однако, в каждом следующем повторе цикла этот прибавленный элемент снова будет вычтен. Рассмотрим два повтора цикла для данного массива:
1. s := s-a[1]+a[1+1] = 0-4+5 = 1
2. s := s-a[2]+a[2+1] = 1-5+8 = 4
Таким образом, к переменной s будут прибавляться, а затем снова отниматься элементы 2..9:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
4 | 5 | 8 | 6 | 4 | 5 | 1 | 7 | 15 | 8 |
Красным подсвечены элементы, которые будут прибавлены к переменной s, а затем вычтены из неё. Первый же элемент будет вычтен в первом повторе цикла, но прибавлен не будет. Последний элемент будет прибавлен, но не будет вычтен.
Получается, что значение переменной s равно:
s := s-4+8 = 4
Ответ: 4