субота, 11 жовтня 2014 р.

ВКАЗІВКА РОЗГАЛУЖЕННЯ ТА ВИБОРУ

Вказівка розгалуження та вибору

3.  ВКАЗІВКА РОЗГАЛУЖЕННЯ IF
Умова (розгалуження) – це вид управляючої структури, що передбачає можливість вибору з декількох варіантів, для кожного з яких в залежності від певної умови виконується своя послідовність операторів.
Логічний вираз — це засіб записування умов для відшукання потрібних даних. Логічний вираз може приймати значення true (істинність) або false (хибність). Логічні вирази бувають прості та складені. Простий — це два арифметичні вирази, з’єднані символом відношення, а складений — це прості логічні вирази, з’єднані назвами логічних операцій: not, and i or.
Опис та використання вказівки розгалуження
Вказівка розгалуження в мові програмування Паскаль може записуватися в повній або в скороченій формах.
  1. Повна форма:
if  <умова>
then
<вказівка1>
else
<вказівка2>;
Дія оператора: Якщо умова справджується, то виконується вказівка 1, якщо ні – то вказівка 2.
2. Скорочена форма:
Іf <умова>   then     <вказівка>;
Дія оператора: Якщо умова істинна, то виконується вказівка, якщо ні, то вказівка не виконується.
Службові слова, які використовуються в умовній вказівці, ма­ють зміст if — якщо, then — то, else — інакше.
Умова — це вираз булевого типу. Умова може бути простою або складеною.
Наприклад.
1. Проста умова: а<5, с>=а, х=0, а<b
2. Складена умова (а>5) and (a<10 ), (а=2) or (b=3)
Складена умова записується з допомогою логічних операцій andі, or — чи (або), not — не. При записі умови можна використовувати всі можливі операції відношення. Результатом виразу умови завжди буде величина булевого типу.




Подпись: Наприклад:
Програма обчислення значень складеної функції
 
Program Umovny;
Var
        x,y: REAL ;
BEGIN
        WriteLn(' vvedit x');
         ReadLn(x);
         IF x<3 then y:=x*x  ELSE  
         y:=SQRT(x);
        WriteLn('y=', y:8:3);
END.

4. вказівка вибору CASE
Довільна вказівка в програмі може бути помічена міткою. Мітка вказівки записується перед нею і відділяється від неї двокрап­кою.
Мітка — це довільне ціле число в інтервалі від 0 до 9999 або довільний ідентифікатор (тобто ім'я мітки записується згідно з правилами запису ідентифікаторів).
Однією міткою може бути помічена тільки одна вказівка. Ідентифікатор мітки не повинен співпадати з ідентифікатором змінної або константи.
Вказівка вибору ( варіанту)
У випадку, коли необхідно використовувати декілька вказівок розгалуження, вкладених одна в одну, то краще замінити їх вка­зівкою вибору.
Вказівка вибору записується у вигляді:
Зауваження!!
Слова синоніми:
Варіант=Селектор,
Значеня=Мітка
 
Case  <вираз>  of
значення1:<вказівка1>;
значення2:<вказівка2>;
значенняМ:<вказівкаM>
end;
Дія оператора: Якщо значення виразу збігається зі значенням з деякого списку, то виконується відповідний оператор, а інші оператори не виконуються Якщо ні одне з значень не співпадає зі значенням виразу, то виконується вказівка, яка знаходиться після вказівки варіанту, тобто після службового сло­ва end.
Вираз, який записується між службовим словом case і of, нази­вається селектором. Селектор повинен належати до одного з ці­лого, булевого, символьного типів або типу користувача. Дійсні і рядкові типи в селекторах використовувати не можна.
Мітки варіантів — константи, типи яких повинні співпадати з типом селектора. Всі мітки варіантів повинні бути різними. Якщо одній вказівці у вказівці варіанту відповідає декілька міток, то вони перераховуються через кому.
Виконується вказівка варіанту так.
Примітка.
Мітки варіанту не потрібно описувати в розділі міток Label і їх не можна використовувати у вказівці безумовного переходу Goto.
Наприклад.
Скласти програму, яка визначає пору року за порядковим но­мером місяця.
Program PORA;
Var MONTH: integer;
begin
Write('Введіть порядковий номер місяця (від 1 до 12): ');
readln(MONTH);
case MONTH of
3,4,5:writeln('Becнa');
6,7,8 : writeln ('Літо');
9,10,11:writeln('Ociнь');
12,1,2:writeln('Зимa')
end;
           end.

ВКАЗІВКИ ПОВТОРЕННЯ (ЦИКЛУ)

5.  Вказівка повторення з параметром FOR
Цикл – це вид управляючої структури, що дозволяє кілька разів повторити задану кількість операторів. Цикли - основний засіб у програмуванні, що дозволяє коротко записувати алгоритм, який здійснює велику кількість дій.
Для реалізації циклічних алгоритмів у мові Паскаль використовуються оператори повторення (цикли):
*               оператор циклу з параметром (For);
*               оператор циклу з передумовою (While);
*               оператор циклу з післяумовою (Repeat).
Оператор циклу з параметром передбачає повторне виконання деякого оператора з одночасною зміною значення, що присвоюється керуючою змінною (параметру цього циклу). Він має вид:
а) зі значенням 1 кроку зміни параметра:
For < параметр > := <вираз1 > to <вираз2 > do <оператор >
Дія оператора: Параметрові циклу присвоюється значення виразу 1. Якщо це значення менше-рівне, ніж значення виразу 2, то виконується оператор. Після виконання оператора значення параметра автоматично збільшується на 1 і знову порівнюється зі значенням виразу 2 і т.д. Коли значення параметра стане більшим, ніж значення виразу 2, то виконується наступний після циклу оператор.
або
б) зі значенням -1 кроку зміни параметра:
For < параметр >:=< вираз1 > downto <вираз2 > do <оператор>
Дія оператора: Ця команда діє як попередня, але крок зміни параметра є –1.
Оператор - тіло циклу.
Параметр циклу, вираз1 і вираз2 повинні бути одного й того ж скалярного типу ( крім дійсного). Вираз1 і вираз2 обчислюється лише один раз - при вході в цикл, і, отже, повинні бути визначені до входу в цикл і не можуть бути змінені в тілі циклу.
Якщо вираз1 і вираз2 розділяє службове слово to, то після виконання оператора (тіла циклу) параметр циклу v приймає значення Succ(v), якщо ж  дільником виразу1 і виразу2 служить слово downto, то параметр циклу v після виконання тіла циклу приймає значення Pred(v).
Приклад:
Піднести будь-яке дійсне число а до будь-якого цілого степення n.
Розв'язок:
program Stepin;
var
     a,p:real;
      i,n:integer;
begin
      write('введіть a - основу степеня, а=');
      readln(a);
      write('введіть ціле n - показник степеня, n=');
       readln(n);
        p:=1;
  for i:=1 to n do
       p := p * a;
       writeln('p=',p)
end.
6. Вказівка повторення WHILE
Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу.  У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана  деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з післяумовою Repeat.
Вказівка циклу з передумовою:
 



Дія оператора:
Оператор (тіло циклу) виконується до тих пір, поки умова істинна. Якщо при першій перевірці умова  виявилась хибною, оператор не виконується. Зазначений оператор виконується нуль, один або декілька разів, поки умова справджується.
Тіло циклу WHILE виконується до тих пір, поки умова приймає значення True. Дії, що містяться в тілі циклу, будуть виконані у крайньому випадку один раз. Таким чином, не виконання умови є умовою закінчення циклу.

Приклад 1.  Роздрукувати символи латинського алфавіту.
              
а) звичайний порядок:
program latsimvol;
var
   S:char;
begin
   S:='A';
   while S<='Z' do
      begin
         writeln(S);
         S:=succ(S);
      end
end.

б) у зворотному порядку:
program latsimvol;
var
   S:char;
begin
   S:='Z';
   while S>='A' do
      begin
         writeln(S);
         S:=pred(S);
      end
end.

 
 















                                                                                                                                                                                         





















7. Вказівка повторення REPEAT

Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу.  У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана  деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з післяумовою Repeat.
Оператор циклу з післяумовою визначений діаграмою:
 






Оператор циклу з післяумовою  передбачає повторне виконання деякого оператора(ів) до тих пір, поки не виконається умова.. Він має вид:

REPEAT
<оператор1 >
<оператор2 >
<оператор3 >
        ***
<оператор n >
UNTIL  <умова>;

Дія оператора: Спочатку виконуються зазначені оператори, а пізніше перевіряється умова. Якщо умова справджується (істинна), то виконання циклу завершується, якщо ні, то оператори виконуються ще раз, і так далі.
Тіло циклу Repeat виконується до тих пір, поки умова приймає значення False. Дії, що містяться в тілі циклу, будуть виконані у крайньому випадку один раз. Таким чином, виконання умови є умовою закінчення циклу.


ВКЛАДЕНІ ЦИКЛИ:

Вкладені цикли – це декілька циклів записаних один за одним.
Наприклад:
for i:=1 to 10 do
for j:=1 to 15 do
<оператори>
Зауваження:
Repeat Until KeyPressed – умова, чи
натиснена клавіша (пауза);









Приклад 1.  Роздрукувати символи латинського алфавіту.
           а) звичайний порядок:
program latsimvol;
var
   S:char;
begin
   S:='A';
Repeat
         write(S);
         S:=succ(S);
      until S>'Z'
end.

б) у зворотному порядку:
program latsimvol;
var
   S:char;
begin
   S:='Z';
Repeat
         write(S);
         S:=pred(S);
      until S<'A'
end.

 
 


                                                                                

Немає коментарів:

Дописати коментар