lechic3
?>

Реализовать эффект ёлочки, который доходит до 8-го разряда и начинает считать в обратную сторону (... 0111 1111->1111 1111->01111 1111->0011 1111...) Построить в Atmel Studio 7.0​

Информатика

Ответы

iraira761
На алгоритмическом.

a=массив(10..50);
max:=a[1]'
min:=a[1];
n_min:=0;
n_max:=0;
k:=0;
i:=10;

пока i<=50  делай
нц
  если a[i]>max то
    нц
     max:=a[i];
     n_max:=i;
    кц
  если a[i]<min то
   нц
    min:=a[i];
    n_min:=i;
   кц
 если (i mod 2)==0 то
   sum:=sum+a[i]; 
   k:=k+1;
кц

srednee_znachenie:=sum/k;

//

var
a:array(10..50) of integer;
max,min,n_min,n_max,k,i,sum:integer;
sr:float;

begin
 max:=a[1];
 min:=a[1];

 for i:=10 to 50 do
  begin
   if a[i]>max then
    begin
     max:=a[i];
     n_max:=i;
    end;
   if a[i]<min then
    begin
     min:=a[i]
     n_min:=i;
    end;
   if ((i mod 2)=0) then
    begin
     k:=k+1;
     sum:=a[i]+sum;
    end;
  end;
end;

sr:=sum/k;
end.
Усошина1059

ответ: 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.

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

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

Реализовать эффект ёлочки, который доходит до 8-го разряда и начинает считать в обратную сторону (... 0111 1111->1111 1111->01111 1111->0011 1111...) Построить в Atmel Studio 7.0​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

anatolevich1931
juliaipatova1739
Мунировна
vdk81816778
konstantinslivkov
Mnatsovna
kit036
nickname0091
legezin
konnovakat1
Vlad Petr531
coleslow12
Linichuk
Кулагина_Владимир1179
irinatikhonov