- •Лекція 3. Програмування основних алгоритмічних структур.
- •Алгоритми процесів з розгалуженнями та їх програмування. Оператор вибору case. Алгоритми циклічних процесів: «до», «поки», «для». Регулярні та ітераційні цикли. Програмування циклів.
- •Програмування процесів з розгалуженнями.
- •Алгоритми з розгалуженням.
- •Умовний оператор.
- •Var a, b, y: real;
- •Var X, y, k: real;
- •Оператор вибору.
- •Var a:byte;
- •X, y, c:real;
- •Оператор безумовного переходу.
- •1: Write (‘*’);
- •Програмування циклічних процесів. Алгоритми циклічних процесів.
- •Var і, s: integer;
- •Var I,n, y :integer;
- •Var a,b,c,d,e,f: byte;
- •Var a, X, w: real;
- •Var a, X, w: real;
- •Var X, y, a, b, hx, max, xmax: real;
- •Алгоритми ітераційних процесів.
Умовний оператор.
В першому розділі ви ознайомилися з побудовою алгоритмів обчислювальних процесів з розгалуженням. Для їх використання у мові Pascalє відповідний оператор, що має вигляд
IF < умова> THEN < оператор 1 > ELSE < оператор2 > ;
Цей оператор відповідає блоку альтернативи:
-
+
Якщо умова приймає значення істини, то виконується оператор 1, якщо ні - виконується оператор 2.
Після THEN або ELSE записується тільки один оператор. Якщо треба виконати декілька дій, то застосовується складовий оператор. Цей оператор подається як серія операторів, що записуються між службовими словами BeginтаEnd; (операторні дужки). Всі оператори, записані в складовий оператор розглядаються як одне ціле і виконується разом.
IF < умова> THEN
BEGIN
< оператор 1 > ;
< оператор 2 > ;
END
ELSE < оператор 3 > ;
Наприклад:
if a>5 then
x:=s/2
else
begin
d:=2+r;
x:=d-s;
end;
Крім того існує коротка форма оператору If:
умова
-
+
оператор
IF <умова> THEN <оператор>
Наприклад:
if x>0 then k:=k+1;
Зауважимо, що при записі складної умови кожний операнд логічної операції треба брати у дужки. Наприклад: (a>b)and((x<g)or(b<>c)).
Розглянемо декілька прикладів на побудову програм з розгалуженням.
Приклад 3.5.Для заданих дійсних чисел a,bобчислити значення
-
величина
ідентифікатор
тип
вхідні величини
перше число
a
дійсне
друге число
b
дійсне
вихідні величини
результат
y
дійсне
Var a, b, y: real;
begin
writeln (‘введіть значення a,b’);
readln (a, b);
if a>b then y:= a + b else y:= a- b;
writeln(‘y=’, y);
end.
Приклад 3.6. Побудувати алгоритм та написати програму для обчислення значення y для будь-яких значень x та y:
-
величина
ідентифікатор
тип
вхідні величини
перше число
x
дійсне
друге число
k
дійсне
вихідні величини
результат
y
дійсне
Блок-схема приведена на малюнку 3.3.
Програма:
Var X, y, k: real;
begin
writeln(‘введіть x, k’);
readln(x, k);
if (x>5) and (cos(k*x)<>0)
then
begin
y:=exp(sqr(sin(k*x)/cos(k*x))*ln(3));
writeln( ‘y=’, y:6:2);
end
else
if (1<x) and (x<4) and (k*x>=0) and (x-sqrt(k*x)>0)
then
begin
y:= 2*exp(1/3*ln( x-sqrt(k*x)));
writeln( ‘y=’, y:6:2);
end
else
if (x<1) and (x<>0)
then
begin
y:=ln(abs(x));
writeln( ‘y=’, y:6:2);
end
else
writeln( ‘ нема розв’язку’);
end.
Приклад 3.7. Задані два різних дійсних числа xта y. Знайти найменше з них.
var x, y, min;
begin
writeln(‘введіть x, y’);
readln(x, y);
if x> y then min:= y else min := x;
writeln(‘min=’, min);
readln;
end.