daskal83
?>

Написать программу в turbo pascal найти 2 максимума из любой последовательности чисел

Информатика

Ответы

gorodof4292
Var ar:array[1..30] of integer;
i,max,max2,maxp,maxi:integer;
begin;
randomize;
writeln('Array');
for i:=1 to 30 do
begin;
ar[i]:=random(1,100);
write(ar[i]:4);
end;
for i:=1 to 30 do
if max<ar[i] then
begin;
maxp:=max;
max:=ar[i];
maxi:=i;
end;
ar[maxi]:=maxp;
for i:=1 to 30 do
if max2<ar[i] then max2:=ar[i];
writeln;
writeln('Max1:',max);
writeln('Max2:',max2);
end.
PoleshchukTatyana

ответ: 110.

Объяснение:

Максимально подробно.

В начале программы переменная s равна 0, n - 10.

Далее идет цикл "for" от 0 до n, то есть от 0 до 10.

Цикл "for" - последовательность команд, которые программа будет выполнять какое-то количество раз (в данном случае 11 раз:

для "i" равного 0,1,2,3,4,5,6,7,8,9 и 10).

Последовательность команд описывается между словами begin и end:

if і = n-i then s:=s+A[i]+A[i+1];

Рассмотрим подробнее эту строчку. В ней проверяется равенство:

i = n-i

Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Если же неверно - программа переходит к следующему значению i.

n - число постоянное и нигде не меняется, оно равно 10, то есть условие выглядит так:

i = 10-i

Когда такое возможно? "i" у нас меняется от 0 до 10 включительно. Посмотрим. Для этого мысленно продумаем весь ход работы программы. В начале i равно 0. Смотрим условие:

0 = 10 - 0

Неверно. 0 не равно 10. Далее программа переходит к следующему i, то есть единице.

i=1: 1 = 10 - 1

Тоже неверно. 1 не равно 9.

i=2: 2 = 10 - 2 Неверно. 2 не равно 8.

i=3: 3 = 10 - 3 Неверно. 3 не равно 7.

i=4: 4 = 10 - 4 Неверно. 4 не равно 6.

i=5: 5 = 10 - 5

Верно. Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Здесь к переменной "s", которая изначально равна нулю, прибавляется сама s, то есть 0, и значение элементов массива "A" под индексами i и i+1.

i у нас равно 5.

Следовательно: s=0+A[5]+A[5+1]

Или s=0+A[5]+A[6].

Посмотрим на массив:

(0,10,20,30,40,50,60,70,80,90,100)

A[0]=0, A[1]=10.

Значит пятый элемент равен 50, а шестой - 60.

Следовательно наше выражение:

s=0+A[5]+A[6] = 0 + 50 + 60 = 110.

Но на этом работа программы не закончена.

Цикл будет выполняться до тех пор, пока "i" не станет равно 10.

Идем дальше.

i=6: 6 = 10 - 6 Неверно. 6 не равно 4.

i=7: 7 = 10 - 7 Неверно. 7 не равно 3.

i=8: 8 = 10 - 8 Неверно. 8 не равно 2.

i=9: 9 = 10 - 9 Неверно. 9 не равно 1.

i=10: 10 = 10 - 10 Неверно. 10 не равно 0.

Теперь "i" равно 10, цикл больше выполняться не будет.

ответ: 110.

Kelena190533

ответ: 110.

Объяснение:

Максимально подробно.

В начале программы переменная s равна 0, n - 10.

Далее идет цикл "for" от 0 до n, то есть от 0 до 10.

Цикл "for" - последовательность команд, которые программа будет выполнять какое-то количество раз (в данном случае 11 раз:

для "i" равного 0,1,2,3,4,5,6,7,8,9 и 10).

Последовательность команд описывается между словами begin и end:

if і = n-i then s:=s+A[i]+A[i+1];

Рассмотрим подробнее эту строчку. В ней проверяется равенство:

i = n-i

Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Если же неверно - программа переходит к следующему значению i.

n - число постоянное и нигде не меняется, оно равно 10, то есть условие выглядит так:

i = 10-i

Когда такое возможно? "i" у нас меняется от 0 до 10 включительно. Посмотрим. Для этого мысленно продумаем весь ход работы программы. В начале i равно 0. Смотрим условие:

0 = 10 - 0

Неверно. 0 не равно 10. Далее программа переходит к следующему i, то есть единице.

i=1: 1 = 10 - 1

Тоже неверно. 1 не равно 9.

i=2: 2 = 10 - 2 Неверно. 2 не равно 8.

i=3: 3 = 10 - 3 Неверно. 3 не равно 7.

i=4: 4 = 10 - 4 Неверно. 4 не равно 6.

i=5: 5 = 10 - 5

Верно. Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Здесь к переменной "s", которая изначально равна нулю, прибавляется сама s, то есть 0, и значение элементов массива "A" под индексами i и i+1.

i у нас равно 5.

Следовательно: s=0+A[5]+A[5+1]

Или s=0+A[5]+A[6].

Посмотрим на массив:

(0,10,20,30,40,50,60,70,80,90,100)

A[0]=0, A[1]=10.

Значит пятый элемент равен 50, а шестой - 60.

Следовательно наше выражение:

s=0+A[5]+A[6] = 0 + 50 + 60 = 110.

Но на этом работа программы не закончена.

Цикл будет выполняться до тех пор, пока "i" не станет равно 10.

Идем дальше.

i=6: 6 = 10 - 6 Неверно. 6 не равно 4.

i=7: 7 = 10 - 7 Неверно. 7 не равно 3.

i=8: 8 = 10 - 8 Неверно. 8 не равно 2.

i=9: 9 = 10 - 9 Неверно. 9 не равно 1.

i=10: 10 = 10 - 10 Неверно. 10 не равно 0.

Теперь "i" равно 10, цикл больше выполняться не будет.

ответ: 110.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать программу в turbo pascal найти 2 максимума из любой последовательности чисел
Ваше имя (никнейм)*
Email*
Комментарий*