Лабораторная работа № 2. Программирование разветвлений
Алгоритм линейной структуры
Алгоритм линейной структуры – алгоритм, в котором все действия выполняются последовательно.
Для реализации этого алгоритма в языке Pascal используются следующие операторы:
1.  Составной оператор имеет вид:
begin
  Op1;
  …
  OpN 
end
где  begin  – начало,  end  – конец,  Op1  – оператор 1-й,  OpN  – оператор N-й.
Оператор означает, что надо выполнять оператор Op1, и т.д., … выполнять оператор OpN.
2.  Оператор присваивания имеет вид:
P:= V
где  P  – переменная,  V  – выражение.
Оператор означает, что переменной P  присваивается значение выражения V .
3.  Операторы ввода имеют вид:
read (P1 , … , PN)
readln (P1 , … , PN)
где  read  – читать,  readln  – читать до новой строки (read-on-line),  P1  – переменная 1-я,  PN  – переменная N-я.
Оператор read позволяет последовательно вводить значения переменных P1 … PN, а оператор readln, кроме этого, позволяет дополнительно перевести курсор на новую строку.
4.  Операторы вывода имеют вид:
write (V1 , … , VN)
writeln (V1 , … , VN)
где  write  – писать,  writeln  – писать до новой строки (write-on-line),  V1  – выражение 1-е,  VN  – выражение N-е.
Оператор write позволяет последовательно выводить значения выражений V1 … VN, а оператор writeln, кроме этого, позволяет дополнительно перевести курсор на новую строку.
            
        
        
        
                    
                
                    Лабораторная работа № 2. Программирование разветвлений
Алгоритм линейной структуры
Алгоритм линейной структуры – алгоритм, в котором все действия выполняются последовательно.
Для реализации этого алгоритма в языке Pascal используются следующие операторы:
1.  Составной оператор имеет вид:
begin
  Op1;
  …
  OpN 
end
где  begin  – начало,  end  – конец,  Op1  – оператор 1й,  OpN  – оператор Nй.
Оператор означает, что надо выполнять оператор Op1, и т.д., … выполнять оператор OpN.
2.  Оператор присваивания имеет вид:
P:= V
где  P  – переменная,  V  – выражение.
Оператор означает, что переменной P  присваивается значение выражения V .
3.  Операторы ввода имеют вид:
read (P1 , … , PN)
readln (P1 , … , PN)
где  read  – читать,  readln  – читать до новой строки (readonline),  P1  – переменная 1я,  PN  – переменная Nя.
Оператор read позволяет последовательно вводить значения переменных P1 … PN, а оператор readln, кроме
этого, позволяет дополнительно перевести курсор на новую строку.
4.  Операторы вывода имеют вид:
write (V1 , … , VN)
writeln (V1 , … , VN)
где  write  – писать,  writeln  – писать до новой строки (writeonline),  V1  – выражение 1е,  VN  – выражение Nе.
Оператор  write  позволяет последовательно  выводить значения выражений  V1  …  VN, а оператор  writeln,
кроме этого, позволяет дополнительно перевести курсор на новую строку.
Алгоритм разветвляющейся структуры
Алгоритм разветвляющейся структуры  – алгоритм, в котором происходит переход к одной из нескольких ветвей
алгоритма или к далеко расположенной части алгоритма.
Для реализации этого алгоритма в языке Pascal используются следующие операторы:
1.  Оператор безусловного перехода имеет вид:
goto M
где  goto  – идти к,  M  – метка.
Оператор означает, что надо перейти к строке с  меткой M .
Метка – обозначение строки в программе, отделяемое от программного кода двоеточием.
2.  Оператор условного перехода имеет вид:
if U then Op1 else Op2
где  if  – если,  then  – то, else  – иначе, U  – условие, Op1  – оператор 1й,  Op2  – оператор 2й.
Оператор означает, что если условие U истинное, то выполнять оператор Op1, иначе выполнять оператор Op2.
Условие – логическое выражение, которое может принимать одно из 2х значений: истина или ложь.
3.  Оператор варианта (или оператор выбора) имеет вид:
case S of
   Z1 : Op1;
   …
   ZN : OpN
  else Op0
 end
где  case  – в случае,  of  – из, else  – иначе, end  – конец,  S  – селектор, Z1  – значение 1е,  ZN  – значение Nе,  Op1 –
оператор 1й,  OpN  – оператор Nй,  Op0  – оператор 0й.
Оператор означает, что в случае, если селектор S принимает значение из списка z1, то выполнять оператор
Op1  … если селектор  S  принимает значение из списка  zN, то выполнять оператор  OpN, иначе выполнять
оператор Op0.
Селектор – выражение порядкового типа, которое может принимать одно из многих значений.
Порядок выполнения
1. Зайти в Pascal ABC (Borland Pascal).
2. Набрать текст программы для решения задачи № 1 и получить ответ (при 
 и 
3. Исправить программу так, чтобы она решала задачу без использования слова  else.
1a
; 
4. Набрать текст программы для решения задачи № 2 и получить ответ (при 
3a
0a
; 
10a
; 
100a
).
5b
; 
20a
 и 
10b
).5. Исправить программу так, чтобы она решала задачу без использования оператора  case.
Примеры задач
Задача 1. 
Вычислить величину
a b
ab
b
,если 
 
a
с
a
b
,если 
a
b
.
Задача 2. Вычислить величину 
c
0
,2
a
1,3
a
10
,4
a
или
  1
иначе
,5
,
  
a
11
Program Lab2a;
Var
 a,b,c:real;
Begin
 writeln('Введи a,b');
 read(a,b);
 if a>b
  then c:=(ab)/(a*b)
  else c:=exp(b*ln(a));
 writeln('c=',c:10:3);
End.
Дополнительное задание
b
e
1. Вычислить 
y
x
sin2
57,0tg
a
при
2
lg
b
при
b
.2
где a и c – целые числа.
Program Lab2b;
Var a,c:integer;
Begin
 read(a);
 case a of
   0: c:=2;
   1..10: c:=3;
   1,11: c:=4
   else c:=5
  end;
 writeln(c);
End.
;2
2. Вычислить 
С
0 
yR
 при 
y
1
n
3. Вычислить 
z
ZA
, где 
A
5,1
3,1
sin
7,0
,
C
C
,
180
если
если
R
R
;1
.1
,
если
0
90;
35,0
90
,
если
90
.180
4. Вычислить 
M
2
gl
12
lg
l
6
,
если
a
b
;
x
a
g
6
b
l
3
x
,
если
a
b
,
 где 
x
l
lb
a
.
3
5. Вычислить 
Q
2 zg
0
, где 
2
,
bh
d
4
2
a
если
j
;1
,
если
j
;2
b
h
,
если
j
3
или
j
.4
6. Вычислить 
B
7. Найти  
u
8. Найти 
y
y
y
y
.
b
;
.
b
   ,1
   ,0
m
,n
1
  
при
x
n
cos
  
m
x
y
n,
tg
  
при
  
n
при
m,
1
  
x
  
sin
x
x
  
если
5;0
  
x
если
10;1
a
x
b
x
  
при
a
  
при
a
   ,
   ,
z
   ,
ax
   ,
z
bx
Контрольные вопросы
1. Что такое алгоритм линейной структуры? Перечислите операторы, реализующие этот алгоритм.
2. Что такое алгоритм разветвляющейся структуры? Перечислите операторы, реализующие этот алгоритм.
3. Какой вид имеют составной оператор и оператор присваивания, а также что они означают?
4. Какой вид имеют операторы ввода и вывода, а также что они означают?
5. Какой вид имеет оператор безусловного и условного перехода, а также что они означают?
6. Какой вид имеет оператор варианта и что он означает?
7. Что такое метка, условие и селектор? К каким типам данных относятся эти понятия?
8. Напишите, что означает каждая строка в вышеприведённых программах.
9. Напишите программу к одной из задач дополнительного задания.