Б С Бусигін - Прикладна інформатика - страница 32

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 

3. Дано три числа. Знайти найменше з них і вивести його значення на екран.

4. Дано три числа. Знайти найбільше з них і вивести його значення на екран.

5. Скласти програму визначення номера найменшого елемента з трьох хь

X 2, X з.

6. Розташуйте три числа а, Ь, с у порядку збільшення їх значень і виведіть на екран.

7. Скласти програму знаходження множення двох найбільших з трьох

чисел X, у, 2 .

8.13. Управляючі структури (оператори) мови ТП. Прості оператори.

Оператори мови ТП призначені (рос. - предназначеньї) для опису дій, котрі будуть виконані при реалізації розробленого заздалегідь алгоритму. Структурно, вони є елементами мови, яка служить для організації проведення операцій над даними (фактично вони є глаголами мови ТП і відповідають на питання "що зробити?": привласнити, повторити і таке інше). Але потрібно постійно пам'ятати, що розробка алгоритму завжди провадиться на основі знання і умілого використання потрібних типів даних і операторів, що їх можуть допомогти обробити.

Оператори (згідно синтаксису) розділяються на дві групи: О прості оператори; © складні оператори.

Оператори відокремлюються один від одного "розподілювачем" -тобто крапкою з комою. Наприклад:

...  x:=0.324;  r:=cos(x);  t  :=sqrt(sqr(x*x+r)+1; ... Тому взагалі у складеному (рос.-составном) операторі (begin end;)

перед ключовим словом end знак ";" можна не ставити. Але якщо він стоїть, то вважається що після розподілювача ";" розташований пустий оператор. ...  begin  ...  x:=0324;  r:=cos(x); end;

Пустий оператор

Прості оператори це оператори, які не містять у собі інших операторів (табл. 8.32).

Таблиця 8.32

_Прості оператори мови ТП_

Назва оператора

Форма запису оператора

Оператор привласнення (рос. - присваивания)

A := B;

Оператори виклику процедури

writeln('Уведить w:   ',w); readln;

Оператор переходу

goto (Не розглядається далі, тому що не відповідає         вимогам структурного програмування і)

Примітка. Зверніть увагу, що оператор процедури, на відміну від інших простих операторів (:=), що записуються завжди однаково (!), має тільки загальну форму запису:

<ім'я процедури і (можливо!) (список фактичних параметрів)> ; а зміст - різний! Бо усі процедури, що виконують різні дії, мають:

1. різні імена;

2. різну кількість фактичних параметрів (або можуть зовсім їх не мати!). Причетність групи символів (які відображують ім'я та список

фактичних параметрів у дужках) до операторів процедури освідчує символ

(;) у їх кінці.

Оператор привласнення (рос. - присваивания) " :=" служить для привласнення значень змінним. Іншою мовою, він дозволяє заносити обчислені за виразами результати у конкретні місця пам'яті комп'ютера, які для зручності пойменовані для подальшого використання значень, що у них містяться.

Точне значення оператора привласнення можна описати так: замінити (замістити) попереднє значення змінної, ім'я якої стоїть у лівій частині оператора, на значення виразу, що стоїть у правій частині оператору привласнення. Таким чином, оператор

A := B + C;

означає те, що потрібно обчислити суму значень змінних В та С та замінити цією сумою попереднє значення змінної А. Специфічні властивості оператора привласнення виявляються дуже яскраво у такої формі:

N  := N + 1;

Сенс цього виразу полягає у тому, що змінній N потрібно привласнити її попереднє значення, збільшене на 1.

Оператор процедури. Виконання оператора процедури призводить до активізації дій, що описані у її тілі. Найчастіше у програмах використовуються процедури уводу даних у змінні програми з екрану (read, readln) і виводу даних на екран комп'ютера (write, writeln). Їх досить часто звуть операторами уводу-виводу:

...    \^гігє1п('Увєдить а,е:   ');    readln(a,e); ...

Після виконання цієї групи операторів на чорному екрані DOS з'явиться стрічка тексту 'Уведіть а,е: ' і комп'ютер буде чекати від користувача уводу двох значень даних, що відповідають опису їх у програмі. Наприклад, якщо вони описані як дійсні змінні, то треба буде увести підряд, але розподілені пробілом, два дійсних значення, припустимо такі: 2.0 0.291.

Слід додати, що до складу програми можуть бути уключені коментарі - які уявляють собою стрічки тексту, що пояснюють зміст дій програміста, але не впливають на хід виконання самої програми. Добрим стилем програмування у

23

софтверних фірмах (тобто тих, які виробляють програмне забезпечення) вважається такий, коли 45% тексту програми складають тільки коментарі!

Коментарі містяться у спеціальних дужках, перша з яких є відкриваючою, а остання - закриваючою (табл. 8.33).

Таблиця 8.33

__Приклади коментарів__

 

Відкриваюча дужка

Коментар

Закриваюча дужка

Три   різних типа дужок  для запису коментарів

{

Перший коментар

}

 

/*

Другий коментар

*/

 

(*

Третій коментар

*)

23 Софтверний (від англійського слова "software") - той, що має відношення до виробництва програмного забезпечення.

1. Які оператори ТП звуться простими?

2. Як відділяються оператори один від одного?

3. Який оператор зветься "пустим"?

4. Який зміст має оператор привласнення?

5. Чим оператор процедури відрізняється від інших простих операторів?

6. Що таке коментар і для чого він застосовується?

8.14. Складні (структурні) оператори управління виконанням алгоритмів. Складовий оператор begin ... end

Складні (структурні) оператори уключають у себе інші оператори і управляють послідовністю їх виконання (таблиця 8.34).

Таблиця 8.34

_Складні оператори мови ТП_

Назва оператора

Форма запису оператора

Складовий (рос. - составной) оператор або структурний оператор, котрий ще називають операторними дужками

begin ... end;

Умовний оператор

if ...  then ... else

Оператор вибору

case  ...  of ...else  ... end

Оператор циклу з параметром

for  ...  to  ... do

Оператор циклу з передумовою

while ... do

Оператор циклу з післяумовою

repeat ... until

Іноді синтаксис мови ТП потребує, щоб у деякому місці програми знаходилося не більше одного оператора, а для вирішення задачі потрібно їх декілька. Складовий оператор (рос.-составной оператор) уключає до себе їх усіх, але вважається комп'ютером за один (рис.8.32).

Var

i,  j,k :  integer;    r,t,factor : real; begin    ...  t:=4.846e-15; ...

begin

... r:=(1-sqrt(0.234/t)); begin

... t:=sqrt(1/sqrt(r)); goto 0001; ... begin

...  i:=writeln(r/exp(t)) ... end;

...    0001: factor:=(r+exp(3.12))/(t-25); ...  end;   ...Writeln('Result=', I) end; ...

end._

Рис. 8.32. Рівні (І, 2 і 3) включення операторів у операторні дужки

begin та end

r

r

І

{

Тобто, складовий оператор об'єднує групу операторів у єдине ціле, після чого їх можна вважати за один оператор. Таким чином, складовий оператор складається з послідовності операторів, що об'єднуються і розташовані поміж ключовими словами (операторними дужками) begin та end: О дужки, що відкриваються - begin; © дужки, що закриваються - end.

Не слід плутати операторні дужки з аналогічними зарезервованими словами, якими починається і закінчується розділ операторів програми. Треба також уважно стежити, щоб кількість операторних дужок, що відкриваються дорівнювала кількості дужок, що закривається за відповідними групами операторів (рис. 8.32).

Наведемо список складних операторів яким потрібен складовий оператор для об'єднання простих операторів у групи, які вважаються за єдине ціле (табл.

8.34).

Таблиця 8.34

_Складні оператори, яким потрібен складовий оператор_

Назва оператора

Форма запису оператора

Умовний оператор

if ... then

begin <оператори> end else

begin <оператори> end;

Оператор вибору

case  ... of

<М1~ТКА>  :  begin <оператори> end else

begin <оператори> end end;

Оператор   циклу з параметром for

for  ...  to  ... do

begin <оператори> end;

Оператор   циклу з передумовою while

while ... do

begin <оператори> end;

Вправи

1. Які оператори звуться складними?

2. Для чого використовуються складові оператори?

3. Яким складним операторам потрібні складові оператори, а яким ні?

4. Перелічить усі складні оператори мови ТП.

8.15. Оператори розгалуження алгоритмів.

Умовний оператор if. Оператор вибору case

Обчислювальний процес зветься розгалуженим (рос. - разветвляющимся), якщо у залежності від виконання визначених умов виконуються ті чи інші групи операторів. Кількість груп операторів і умови, щодо яких вони виконуються, конструює сам програміст. Кожна така група операторів зветься гілкою алгоритму обчислень. Вибір тієї чи іншої гілки здійснюється вже при виконанні програми у результаті перевірки запрограмованих умов, які залежать від властивостей вхідних даних і деяких проміжних (рос. - промежуточных) результатів.

В Турбо Паскаль включені фактично два умовні оператори if і case. Вони мають повну або неповну форму (див. далі), але перший зветься умовним оператором, а другий - оператором вибору.

Умовний оператор if призначений для виконання або невиконання різних груп операторів у залежності від виконання або невиконання умов, що задаються користувачем. Він має так звану неповну і повну форми. Їх синтаксис:

Неповна форма: if <логічний вираз умови> then <оператор Р1>; Повна форма:   if <логічний вираз умови> then <оператор Р1>

else <оператор Р2>;

Логічні вирази конструюються за допомогою наступних елементів:

О дужок ();

© логічних значень (false, true);

© логічних змінних, що уявлені їх іменами (Switch,  tt1 та інш.); О операцій порівняння (=, <, >, <>, <=, >=); © логічних операцій (not,  or, and). Оператори Р1 та Р2 можуть бути: О простими операторами;

© простими і складними операторами, що об'єднані операторними дужками begin ... end;

© складними операторами і, у тому числі, іншими умовними операторами.

Оскільки оператори у мові ТП розділяються символом ";" (крапка з комою), в середині складного логічного оператора цей символ застосовувати НЕ МОЖНА!

помилка!

if A > B then C := A |;  else C := B;

У цьому прикладі крапка з комою, що стоїть перед службовим словом else закінчує текст оператора if. А це призводить до синтаксичної помилки, оскільки оператора, що починається з службового слова else - немає.

Для розгляду прикладу використання логічного оператора складемо програму обчислення наступного виразу (14.1):

У

x2    О < x < І

x

І < x < З (S.5)

і

Ixl~2   3 < x < О

Алгоритм обчислення виразу (8.5) на мові ТП може виглядати так:

Program Sign X;

 

Var

 

x,  y  : real;

 

Begin

 

writeln('Vvedite x');

 

readln(x);

 

if   (x > 0)   and  (x < 1) then

 

y  : =

sqr(x)

else

 

if   (x > 1)   and  (x < 3) then

 

y  : =

sqrt(x)

else

 

y := 1/sqrt(abs(x));

 

writeln('Znachenie Y=', y:8:3);

 

end.

 

оператор. Тому, якщо після них потрібно виконати декілька операторів, треба їх об'єднати у один операторними дужками begin та end. Існують, так звані, вкладені (рос. - вложенные) оператори if (вкладені іфи). Це значить, що за зарезервованим словом else міститься наступний оператор if.

Наприклад, нехай потрібно обчислити значення функції y(x) = sign(x) згідно виразу (8.6).

У (x) = sign (x) -1,  x < О

0, x = О (8б)

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 


Похожие статьи

Б С Бусигін - Прикладна інформатика