Решение задач
Разбор задачи A8 (демо ЕГЭ 2007)
Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:
Бейсик | Паскаль | Алгоритмический | СИ |
---|---|---|---|
FOR n=1 TO 100 A(n)=n-10 NEXT n FOR n=1 TO 100 B(n)=A(n)*n NEXT n |
for n:=1 to 100 do A[n]:=n-10; for n:=1 to 100 do B[n]:=A[n]*n |
нц для n от 1 до 100 A[n]=n-10 кц нц для n от 1 до 100 B[n]=A[n]*n кц |
for(n=1;n<=100;n++) A[n]=n-10; for(n=1;n<=100;n++) B[n]=A[n]*n |
Сколько элементов массива B будут иметь положительные значения?
- 10
- 50
- 90
- 100
Решение:
Сначала рассмотрим как заполняется массив A. Количество элементов в массиве равно 100, поэтому рассматривать все элементы бессмысленно. Рассмотрим пограничные элементы и элемент с нулевым значением:
A[1]=-9
A[10]=0
A[100]=90
Элементы от A[1] до A[9] (включительно) отрицательны.
Элементы от A[11] до A[100] (включительно) положительны. Нулевой элемент A[10] не является положительным.
Рассмотрим массив B. Его элементы имеют значение: B[n]=A[n]*n, т.е. знак элемента (плюс или минус) массива В равен знаку элемента массива А, поэтому только элементы от B[11] до B[100] (включительно) положительны.
Количество положительных элементов равно:
N+=100-11+1=89+1=90