розгалуження виконується, коли виконання попереднього розгалуження ще не закінчено.
Наприклад, вам потрібно встановити будильник на завтра. Якщо
завтра робочий день, то ви повинні встати о 7-й годині ранку, щоб іти
до школи. Якщо завтра субота, то ви повинні встати о 8-й годині ранку, щоб їхати на заняття гуртка. Якщо завтра неділя, то ви встаєте о
9-й годині ранку.
У наведеному на малюнку алгоритмі друге розгалуження з
умовою Завтра субота? міститься всередині першого розгалуження з
умовою Завтра робочий день?.
Такий фрагмент алгоритму називають вкладеним розгалуженням.
Вкладені розгалуження - це фрагмент алгоритму, у якому одне
розгалуження міститься всередині іншого розгалуження.
Розглянемо виконання наведеного на малюнку 3.26 фрагмента алгоритму. Спочатку перевіряється умова Завтра робочий день?. Якщо
результат перевірки цієї умови Так, то виконується команда Установити будильник на 7-му годину ранку і на цьому виконання всього
цього фрагмента алгоритму закінчується. Якщо результат перевірки
умови Завтра робочий день? - Ні, то перевіряється умова Завтра субота?. Якщо результат перевірки цієї умови Так, то виконується команда
Установити будильник на 8-му годину ранку і на цьому виконання всього цього фрагмента алгоритму закінчується, а якщо результат перевірки
цієї умови Ні, то виконується команда Установити будильник на 9-ту
годину ранку і виконання всього цього фрагмента алгоритму закінчується.
У наведеному на малюнку
фрагменті алгоритму внутрішнє
розгалуження виконується, якщо результат перевірки умови зовнішнього розгалуження Ні.
Объяснение:
рисунок 3.26 (во вложении)
ответ: 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.
var a,b,c: real;
k: byte;
begin k:=0;
write('a=');
readln(a);
if round(a)=a then k:=k+1;
write('b=');
readln(b);
if round(b)=b then k:=k+1;
write('c=');
readln(c);
if round(c)=c then k:=k+1;
writeln(k);
readln;
end.