Информатика, вопрос задал Revivu26 , 2 года назад

Помогите пожалуйста понять, все ли я правильно написала.

Вопрос:

фрагмент программы обрабатывает на паскале элементы одномерного целочисленного массива A с индексами от 0 до 9. Перед началом выполнения данного фрагмента эти элементы массива имели значения 2, 4, 1, 8, 2, 6, 3, 2, 2, 1 (т.е. A[0] = 2, A[1] = 4, …, A[9] = 1). Определите значение переменной s после выполнения фрагмента.
n:=10;
s:=0;
for i:=1 to n-1 do begin
if a[i-1]>2*a[i] then begin
a[i]:=2*a[i];
s := s+ a[i];

Программа:
program jfsdkp;

var s, n, i:integer;

const p=9;

var a:array [0..p] of integer;

begin

for i:=0 to p do begin

a[0]:=(2);

a[1]:=(4);

a[2]:=(1);

a[3]:=(8);

a[4]:=(2);

a[5]:=(6);

a[6]:=(3);

a[7]:=(2);

a[8]:=(2);

a[9]:=(1);

end;

n:=10;

s:=0;

for i:=1 to n-1 do begin

if a[i-1]>2*a[i] then begin

a[i]:=2*a[i];

s := s+ a[i];


end;

end;

writeln (s);

end.

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

Ответил lenyashastin
2

Ответ:

Всё верно

*** В качестве альтернативы можно не вводить const p = 9, а просто задать массив как var a:array[0..9] of integer;

*** При заполнении массива необязательно заключать элемент в скобки, как здесь a[9]:=(1); ⇒ a[9]:=1;

Новые вопросы