почему в ответе получается 26? var s,i:integer;mas:array[1..10] of...

0 интересует 0 не интересует
116 просмотров

почему в ответе получается 26?

var s,i:integer;
mas:array[1..10] of integer;
begin
mas[1]:=14;
mas[2]:=10;
mas[3]:=-8;
mas[4]:=6 ;
mas[5]:=12;
mas[6]:=4 ;
mas[7]:=-16 ;
mas[8]:=-7 ;
mas[9]:=5;
mas[10]:=3;
s:=0;
for i:=1 to 5 do
mas[2*i]:=0;
for i:=1 to 10 do
if mas[i]>5 then s:=s+mas[i];
write(s);
end.

спросил от (15 баллов) в категории Информатика
2 Ответы
0 интересует 0 не интересует
ответил от Доцент (52.6k баллов)
 
Лучший ответ

Пошагово:

 

1) Строки

     mas[1]:=14;
     . . .

     mas[10]:=3;

задают значения элементов массива.

Массив имеет вид:

14  10  -8  6  12  4  -16  -7  5  3

 

2) переменная s:=0;

 

3) цикл

for i:=1 to 5 do
mas[2*i]:=0;

все элементы, стоящие на чётных местах, обнуляются.

Массив имеет вид:

14  0  -8  0  12  0  -16  0  5  0

 

4) цикл

for i:=1 to 10 do
if mas[i]>5 then s:=s+mas[i];

просматриваем массив, и если элемент больше 5, добавляем его в сумму s:

добавится сначала 1-й элемент (так как 14>5), сумма станет 0+14=14

а потом 5-й (12>5), сумма станет 14+12 = 26

 

5)write(s);

напечатает 26, то есть значание s

 

Всё!

0 интересует 0 не интересует
ответил от Отличник (7.2k баллов)

Сначала заданы элементы, потом все элементы с четным индексом обнуляются (через один). Потом мы считаем сумму элементов больших 5 в получившемся массиве.

Это 14 и 12.

 

14+12=26

 

Тебе на экран и выводит 26.

...