В условном операторе и после then, и после else можно использовать только один оператор. Если при некотором условии требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.
Конструкция вида
называется составным оператором .
Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.
program n_11;
var a, b, с: real;
var d: real;
var x, x1, x2: real;
begin
writeln (‘Решение квадратного уравнения ‘) ;
write (‘Введите коэффициенты а, b, c>>’);
readln (a, b, с);
d:=b*b-4*a*c;
if dthen writeln (‘Корней нет’);
if d=0 then
begin
x:=-b/2/a;
writeln (‘Корень уравнения х=’, х:9:3)
end;
if d>0 then
begin
x1:=(-b+sqrt(d))/2/a;
x2:=(-b-sqrt(d))/2/a;
writeln (‘Корни уравнения:’) ;
writeln (‘x1=’, x1:9:3);
writeln (‘x2=’, x2:9:3)
Переменные в языке Си
end
end.
3.4.3. Многообразие способов записи ветвлений
В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:
if then
if then
else
При использовании таких сложных конструкций (их ещё называют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.
Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.
program n_12;
var a, b, x: real;
begin
writeln (‘Решение линейного уравнения’);
write (‘Введите коэффициенты а, b>>’);
readln (a, b);
if a<>0 then
begin
x:=-b/a;
writeln (‘Корень уравнения х=’, х:9:3)
end
else writeln (‘ x — любое число’);
end.
Как правило, для решения одной и той же задачи можно предложить несколько алгоритмов. Убедимся в этом, записав программу решения линейного уравнения, не прибегая к вложенным ветвлениям.
program n_l3;
var a, b, x: real;
begin
writeln (‘Решение линейного уравнения’);
write (‘Введите коэффициенты а, b>>’);
readln (a, b);
if а<>0 then
begin
x:=-b/a;
writeln (‘Корень уравнения х=’, х:9:3):
end;
if (a=0) and (b<>0) then writeln (‘Корней нет’);
if (a=0) and (b=0) then writeln (‘x — любое число’);
end.
Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.
Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].
Вопросы и задания
1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Используйте эти материалы при подготовке ответов на вопросы и выполнении заданий.
ЧТО ТАКОЕ ПЕРЕМЕННАЯ В C# | ОБЪЯВЛЕНИЕ И ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ | ПРИСВОЕНИЕ ЗНАЧЕНИЙ | C# Урок #4
2. Как на языке Паскаль записывается полное и неполное ветвление?
3. Является ли условным оператором следующая последовательность символов?
а) if xthen x:=0 else read(у)
б) if x>=y then x:=0; y:=0 else write(z)
в) if xthen a:=a+l
4. Что такое составной оператор? Для чего он используется в условном операторе?
5. Дан условный оператор:
if a then c:=l
else if a>5 then с: =2
else с:=3
Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?
Источник: informatika-ru.ucoz.com
с маленьким тестом по информатике(Паскаль) очень нужно Какие значения примут переменные C и D в результате выполнения программы:
Program vvv2;
Var A, B, C, D: integer;
Begin
A:=7;
B:=2*A-3;
If B>A Then C:=B-A Else D:=A-B;
Writeln (`C=`, C); Writeln (`D=`, D);
End.
2)Какое значение примет переменная Х после выполнения оператора Х:= 15 div 4:
3)Укажите верные записи условного оператора if.
1)if
else оператор 1
then оператор 2;
2)if
then оператор 1
else оператор 2;
3)if
then оператор 1;
4)if
then оператор 1
4)Укажите формы ветвления в разветвляющихся алгоритмах.
1)неполная форма ветвления
2)полная форма ветвления форма ветвления
4)пустая форма ветвления
5)Укажите все строки, в которых условный оператор на языке Pascal записан верно.
1)if x>=0
then
begin
y:=sqrt(x);
write(y);
end
else write (‘нельзя вычислить’);
2)if x=0
then
y:=sqrt(x);
write(y)
else write (‘нет ответа’);
3)if х=у
then z:=1
else z:=x*y;
6)Запиши условный оператор на языке Pascal, заполняя пропуски нужными словами (слова писать маленькими буквами):
7)Укажите условие выбора чисел, кратных 5 и не кратных 10:
1)нет правильного ответа
2)(X mod 5<>0) or (X mod 10=0);
3)(X mod 5=0) and (X mod 10<>0);
4)(X mod 5=0) and (X mod 10=0);
Источник: vse-znaniya.com
Программирование циклов
1.
2.
3.
4.
Какая геометрическая фигура обозначает в
блок-схеме действие?
Прямоугольник
Какая геометрическая фигура обозначает в
блок-схеме условие?
Ромб
Какой оператор описывает в программе ввод
данных?
Read, readln
Какой оператор описывает в программе
вывод данных?
Write, writeln
3. ОПЕРАТОРЫ ЦИКЛА
1. Цикл с предусловием (цикл — пока)
While do ;
2. Цикл с постусловием (цикл — до)
Repeat until ;
3. Цикл с параметром (цикл — для)
1) for i:=In to Ik do ;
2) for i:=In downto Ik do ;
4. ЦИКЛ С ПРЕДУСЛОВИЕМ (ЦИКЛ — ПОКА)
While <условие>do ;
условие
нет
да
тело цикла
Пока условие – истинно, выполняется тело
цикла. Тело цикла может быть простым или
составным оператором.
5. ЦИКЛ С ПОСТУСЛОВИЕМ (ЦИКЛ — ДО)
Repeat <тело цикла>until ;
тело цикла
условие
да
нет
Повторяется выполнение тела цикла до
истинности условия. Тело цикла с
постусловием
выполняется хотя бы
один раз.
6. ЦИКЛ С ПАРАМЕТРОМ (ЦИКЛ — ДЛЯ)
1.
for i:=In to Ik do ;
2. for i:=In downto Ik do ;
i – параметр цикла – простая
переменная порядкового типа;
In – выражение того же типа,
определяющее начальное
значение параметра;
Ik – выражение того же типа,
определяющее конечное
значение параметра;
Цикл повторяется, пока значение
параметра лежит в
интервале между In и Ik.
i:=In, Ik
тело цикла
7. СКОЛЬКО РАЗ ВЫПОЛНИТСЯ ТЕЛО ЦИКЛА?
1) x:=5;
for i:=-1 to 5 do
x:=x+1;
Ответ:
7
2) s:=0;
for i:=4 to 1 do
s:=s+1;
Ответ:
ни разу
8. КАКОЕ ЗНАЧЕНИЕ ПРИМЕТ ПЕРЕМЕННАЯ Х В РЕЗУЛЬТАТЕ ВЫПОЛНЕНИЯ АЛГОРИТМА:
1.
x:=3;
while x x:=x+3;
x:=x+1;
Ответ:
13
9. КАКОЕ ЗНАЧЕНИЕ ПРИМЕТ ПЕРЕМЕННАЯ Х В РЕЗУЛЬТАТЕ ВЫПОЛНЕНИЯ АЛГОРИТМА:
1.
x:=3;
while x begin
x:=x+3;
x:=x+1;
end;
Ответ:
11
10. СКОЛЬКО РАЗ БУДЕТ ПОВТОРЕН ЦИКЛ, ЧЕМУ БУДУТ РАВНЫ S, A, B?
a:=1; b:=1;
While a+b < 8 do
begin
a:=a+1;
b:=b+2;
end;
S:=a+b;
Ответ:
2 раза
S=8, a=3, b=5
11. ОПРЕДЕЛИТЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ S ПОСЛЕ ВЫПОЛНЕНИЯ ПРОГРАММЫ:
Var a,S: integer;
Begin
S:=0;
For a:=5 downto 1 do
S:=s+2*a;
Writeln(‘S=’, S);
End.
Ответ:
S=30
12. ВЫЧИСЛИТЬ СУММУ НАТУРАЛЬНОГО РЯДА ЧИСЕЛ ОТ 1 ДО N
Program summa1;
Var N,i,S: integer;
Begin
Write(‘N=’); readln(N);
S:=0; i:=1;
While i begin
S:=S+i;
i:=i+1;
end;
Writeln(‘S=’, S);
End.
начало
ввод N
S:=0; i:=1
i да
S:=S+i;
i:=i+1
нет
Вывод S
конец
13. ВЫЧИСЛИТЬ СУММУ НАТУРАЛЬНОГО РЯДА ЧИСЕЛ ОТ 1 ДО N
Program summa2;
Var N,i,S: integer;
Begin
Write(‘N=’); readln(N);
S:=0; i:=1;
Repeat
S:=S+i;
i:=i+1;
Until i>N;
Writeln(‘S=’, S);
End.
начало
ввод N
S:=0; i:=1
S:=S+i;
i:=i+1
i>N
нет
да
Вывод S
конец
14. ВЫЧИСЛИТЬ СУММУ НАТУРАЛЬНОГО РЯДА ЧИСЕЛ ОТ 1 ДО N
Program summa3;
начало
Var N, i, S: integer;
ввод N
Begin
Write(‘N=’); readln(N);
S:=0;
S:=0;
For i:=1 to N do
i:=1, N
S:=S+i;
Writeln(‘S=’, S);
S:=S+i;
End.
Вывод S
конец
15. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
1. Найти сумму квадратов от 1 до N.
(S = 1 + 4 + 9 + … + n2)
2. Найти произведение 1 ∙ 2 ∙ 3 ∙ … ∙ n.
3. Найти сумму 1! + 2! + 3! +…+ n!
(n!= 1 ∙ 2 ∙ 3 ∙ … ∙ n)
Источник: ppt-online.org