
Помогите , пожалуйста, с решением) В программе исполняется одномерный целочисленный массив А с
индексами от 0 до 9. Значения 6,2,3,1,5,6,7,8,9,3 соответственно, т.е А[0]=6, A[1]=2 и т.д. Определите значение переменной S после выполнения следующего фрагмента этой программы. S:=0; n:=0; for i:=1 to 9 do if (A[i] +A[n]) mod 4< >0 then begin S:=S+i; t:=A[i]; A[i]:= A[n]; A[n]:=t; end;

Ответы на вопрос

Ответ: 28
Объяснение:
Заданный фрагмента программы выполняет следующую задачу:
Цикл для i от 1 до 9, в котором если остаток от деления (А[i] + A[0]) на 4 неравен 0, (т. е. сумма А[i] и A[0] не делится на 4), то их (А[i] и A[0]) меняют местами, а переменную S увеличивают на i. Выполним алгоритм вручную:
- 6, 2, 3, 1, 5, 6, 7, 8, 9, 3; i=1; (6+2)%4 = 8%4 = 0;
- 6, 2, 3, 1, 5, 6, 7, 8, 9, 3; i=2; (6+3)%4 = 9%4 = 1; --> S =0+2= 2
- 3, 2, 6, 1, 5, 6, 7, 8, 9, 3; i=3; (3+1)%4 = 4%4 = 0;
- 3, 2, 6, 1, 5, 6, 7, 8, 9, 3; i=4; (3+5)%4 = 8%4 = 0;
- 3, 2, 6, 1, 5, 6, 7, 8, 9, 3; i=5; (3+6)%4 = 9%4 = 1; --> S =2+5= 7
- 6, 2, 6, 1, 5, 3, 7, 8, 9, 3; i=6; (6+7)%4 = 13%4 = 1; --> S =7+6= 13
- 7, 2, 6, 1, 5, 3, 6, 8, 9, 3; i=7; (7+8)%4 = 15%4 = 3; --> S =13+7= 20
- 8, 2, 6, 1, 5, 3, 6, 7, 9, 3; i=8; (8+9)%4 = 17%4 = 1; --> S =20+8= 28
- 9, 2, 6, 1, 5, 3, 6, 7, 8, 3; i=9; (9+3)%4 = 12%4 = 0;
Как можно увидеть, после выполнения фрагмента программы переменная S будет равна 28.
Пример работы:




Давайте разберемся, как изменяется значение переменной S после выполнения данного фрагмента программы.
Сначала у нас есть массив A с элементами:
A[0] = 6 A[1] = 2 A[2] = 3 A[3] = 1 A[4] = 5 A[5] = 6 A[6] = 7 A[7] = 8 A[8] = 9 A[9] = 3
Изначально S и n установлены в 0. Теперь давайте выполним цикл for для i от 1 до 9:
- i = 1: A[1] + A[0] = 2 + 6 = 8, 8 mod 4 = 0, поэтому ничего не происходит.
- i = 2: A[2] + A[0] = 3 + 6 = 9, 9 mod 4 = 1, условие выполняется, поэтому S увеличивается на 2, и происходит обмен местами A[2] и A[0]. Массив становится: [3, 2, 6, 1, 5, 6, 7, 8, 9, 3].
- i = 3: A[3] + A[0] = 1 + 6 = 7, 7 mod 4 = 3, условие выполняется, поэтому S увеличивается на 3, и происходит обмен местами A[3] и A[0]. Массив становится: [1, 2, 6, 3, 5, 6, 7, 8, 9, 3].
- i = 4: A[4] + A[0] = 5 + 6 = 11, 11 mod 4 = 3, условие выполняется, поэтому S увеличивается на 4, и происходит обмен местами A[4] и A[0]. Массив становится: [5, 2, 6, 3, 1, 6, 7, 8, 9, 3].
- i = 5: A[5] + A[0] = 6 + 6 = 12, 12 mod 4 = 0, поэтому ничего не происходит.
- i = 6: A[6] + A[0] = 7 + 6 = 13, 13 mod 4 = 1, условие выполняется, поэтому S увеличивается на 6, и происходит обмен местами A[6] и A[0]. Массив становится: [7, 2, 6, 3, 1, 6, 5, 8, 9, 3].
- i = 7: A[7] + A[0] = 8 + 6 = 14, 14 mod 4 = 2, условие выполняется, поэтому S увеличивается на 7, и происходит обмен местами A[7] и A[0]. Массив становится: [8, 2, 6, 3, 1, 6, 5, 7, 9, 3].
- i = 8: A[8] + A[0] = 9 + 6 = 15, 15 mod 4 = 3, условие выполняется, поэтому S увеличивается на 8, и происходит обмен местами A[8] и A[0]. Массив становится: [9, 2, 6, 3, 1, 6, 5, 7, 8, 3].
Теперь завершим выполнение цикла for, и значение S равно 2 + 3 + 4 + 6 + 7 + 8 = 30.
Таким образом, значение переменной S после выполнения данного фрагмента программы равно 30.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili