Складений оператор.
Дано 3-й дійсні числа а,Ь,с. Визначити, скільки серед них від'ємних.
Д/3 1. Обчислити значення у в залежності від х.
0 при х0
y= х 0<x1
xінакше
2. Нехай у залежить від х. Написати програму обчислення значень у.
Program PR4;
VarA,B,C: Real; Kol: Integer;
Веgin
Kol:=0;
If A<0 then kol: =kol+ 1;
If B<0 then kol: =kol+l;
If C<0 then kol: =kol+l;
Write ('kol=’,kol: 4);
End.
В умовному операторі після then та else можливо розміщати тільки по одному оператору. Часто виникає необхідність в результаті перевірки виконувати ту чи іншу групу операторів. В Паскалі є така можливість із групи операторів зробити один оператор - складений.
Структура складеного оператора така:
Begin P1,P2, ...Pk End;
Де Р1,Р2,...Рк - любі оператори. В деяких випадках дія слів Begin та End схожа на дію дужок в арифметичних виразах.
Приклад:
Знайти кoрні квадратного рівняння у=ах2+bх+с, дослідити дискримінант.
Program PR5;
VarA,B,C,D:Real;
xl,x2:Real;
Ведіп
Read(A,B,C);
D: =sqr(b) - 4*a*c;
If D<0 then writeln ('Корні уявні')
Else begin
Xl:=(- b+sqrt(D)/2*a);
X2;=(-b=sqrt(D)/2*a);
End;
WritelnCxl = ',xl:5:2, 'x2= ', x2:5:2);
End,
Складний оператор може бути використаний не тільки в середині умовного оператора, але і повсюду в програмі, при цьому необхідно витримати схему:
Begin
Begin
Begin
:
End;
End;
End.
Приклад: Скласти програму визначення номеру мінімального елементу із трьох у 1, у2, уЗ:
Program PR6;
Var yl,y2,y3: Integer;
Міп,п: Integer;
Begin
Writeln( 'Введіть yl,y2,y3');
Read (у1,у2,уЗ);
If yl<y2 then
Begin Min: =yl;
N:=l;End
Else
Begin Min: =y2;
N:=2;End;
If y3<Min then
Bedin Min: -y3;
N:=3;End;
WriteIn('Hoмep Min = ‘,N:2);
End.
Якщо обчислювальний процес містить багаторазові обчислення по одним і тим самим математичним залежностям, але різним значенням змінних, то його називають циклічним; ті частини, що багато разів повторюються називаються циклами, зміні, що змінюються в циклі - зміні циклу.
Алгоритм циклічної структури має такий вигляд:
1. Блок підготовки циклу (включає завдання початкових значень змінних);
2. Тіло циклу (дії, що повторюються в циклі для різних значень змінних);
3. Модифікація (змінна значень змінних циклу перед кожним його повторенням);
4.Управління циклу (перевірка умови продовження). Графічно це виглядає наступним чином :
Призначення операторів циклу:
1. Використання циклів в програмі дозволяє ефективно
використовувати машину.
2. Зменшує довжину програми.
3. Скорочує час на її складання та відлагодження.
Для всіх операторів циклу характерна така особливість: обчислення, які повторюються записуються всього 1 раз. Вхід в цикл можливий тільки через його початок. Змінні оператора циклу повинні бути визначенні до входу в циклічну частину. Необхідно передбачити також вихід із циклу: або по його закінченню або по оператору переходу. В Паскалі цикл реалізують за допомогою 3-х операторів циклу. Розглянемо їх. Розрізняють оператори циклу з заданим та зарані невідомим числом повторень. Цикл з зарані відомим числом повторень називають циклом з лічильником. Управління циклом здійснюється на основі порівнянь поточного значення
лічильника із заданим. Такий цикл називається цикл з параметром.
Оператор циклу з параметром має вигляд:
TO
For <пар. циклу>: =<поч. значення> DOWNTO <кін. знач.> DO<onepamopu>;
(For - для, ТО - до, DO - виконати)
Оператор виконується в циклі For для кожного значення параметру циклу, починаючи з початкового значення і до кінцевого. При використанні в циклі службового слова То значення параметра збільшується, а при Downto зменшується. Крок зміни параметра циклу залежать від типу змінної. Найбільш часто використовують змінну цілого типу, що визначає крок = 1 при То та -І при Downto. Параметром циклу може бути лише змінна, а початковим та кінцевим значенням можуть бути вирази за виключенням дійсного типу Real. Якщо крок зміни параметру - 1, а початкове більше кінцевого, то циклічна частина не виконується ні разу.
Тут необхідно пам'ятати, що параметр циклу, початкове та кінцеве значення повинні бути одного типу.
Після службового слова DO може стояти лише один оператор, якщо ж їх декілька, то всі вони повинні бути заключені в операторні дужки: Begin... End.