Предмет: Информатика, автор: FritiPano

почему в ответе получается 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.

Ответы

Автор ответа: Alphaeus
0

Пошагово:

 

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

 

Всё!

Автор ответа: Sky09
0

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

Это 14 и 12.

 

14+12=26

 

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

Похожие вопросы
Предмет: Алгебра, автор: ejik80