Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АП. Методичнi вказiвки.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
1.25 Mб
Скачать

Лабораторна робота № 2 обчислювальний процес, що розгалужується

Завдання: Скласти алгоритм і програму за допомогою операторів галуження IF і CASE і оператора безумовного переходу GOTO. Досліджувати функцію на область допустимих значень. Завдання приведені в таблиці 2.

Управління обчислювальним процесом

Коли процес обчислення залежить від проміжних обчислень, то хід розрахунку не може бути заданий однозначно до початку розрахунку. В цьому випадку потрібне використання операторів управління обчислювальним процесом:

  • GOTO - оператора безумовного переходу;

  • IF - оператора умовного переходу;

  • CASE - оператора вибору.

2.1 Оператор безумовного переходу GOTO

Безумовний перехід приводить до передачі управління з одного місця програми в інше. Для виконання безумовного переходу необхідно:

  • перед оператором, одержуючим управління поставити мітку у вигляді цілого числа з діапазону 0..9999;

  • на початку програми описати цю мітку.

Опис міток виконують між заголовком програми і описом констант. Мітками можна зробити відразу декілька чисел.

Наприклад:

program prim;

label 1,2,8;

var c, i:integer;

b, d:real;

begin

read(b);

d: =sin (b); goto 1;

...

...

...

2: read(i);

c: =i+1;

write(c);

goto 8;

...

...

...

1: write(d);

goto 2;

...

...

...

8: end.

2.2 Тип даних BOOLEAN

Булеві (логічні) змінні можуть мати одне з двох значень: TRUE (істина) або FALSE (брехня).Булеві вирази використовуються для перевірки відносин між двома змінними.

Відносини:

= рівно;

> більше, ніж...;

>= більше, ніж... або рівно;

< менше, ніж ...;

<= менше, ніж..., або рівно;

<> нерівно;

Крім того, булеві вирази можуть конструюватися за допомогою булевих операцій. У мову Паскаль включені три булеві операції: AND (и), OR (або), NOT (не).

Булеві операції застосовуються, якщо потрібно перевірити складну умову. Булеві вирази можуть використовувати три булеві операції в будь-яких поєднаннях; операнди можуть бути простими булевими константами, булевими змінними або відносинами.

Порядок старшинства операцій в булевих виразах:

Вищий

Нижчий

( )

>

NOT

=

AND

<

OR

<>

>=

<=

У мові Паскаль є вбудована булева функція ODD (X) з цілочисельним аргументом. Функція ODD (X) повертає істину, якщо аргумент X є непарним.

2.3 Галуження

Використовуючи булеві вирази можна здійснювати перевірку різних умов в мові Паскаль. Конструкція вибору може бути реалізована за допомогою двох функцій: IF і CASE.

2.3.1 Інструкція IF

Оператори умовного переходу IF THEN і IF THEN. ELSE задають порядок проходження операторів залежно від істинності (або помилковості) виразу відношення.

Загальна форма запису:

IF булевий вираз THEN оператор IF булевий вираз THEN оператор 1 ЕLSE оператор 2

Коли оператор IF з'являється усередині іншого оператора IF, він вважається вкладеним. Вкладення використовується для зменшення числа перевірок. Проте не рекомендується використовувати більш за одного-двух рівні вкладення IF.

Якщо в операторові IF буде потрібно виконання послідовності операторів, можна поміщати цю послідовність між зарезервованими словами BEGIN і END.

Приклад:

program vybor;

var a, b:integer;

begin

writeln('введіть числа а, b');

read(а, b);

if a<b then writeln('а менше b')

else writeln('а більше b');

{ складений оператор}

if a<b then

begin

writeln('a<b');

writeln('а менше b');

end;

end.

2.3.2 Інструкція CASE

Оператор IF дозволяє програмі виконувати переходи на ту або іншу гілку за значенням булевої умови. Для здійснення вибору однієї з декількох альтернатив мова Паскаль надає іншу структуру, що управляє (оператор CASE).

Таким чином, інструкція CASE здійснює множинне галуження по ряду умов.

Загальна форма запису:

CASE вираз OF

значення: оператор;

...................

значення: оператор;

ELSE оператор;

end;

Обробка оператора починається з обчислення виразу, а далі виконується оператор, відповідний результату обчислення виразу.

Приклад 1:

case number mod 2 of

0: writeln('number- парне');

1: writeln('number- непар.');

end;

Приклад 2:

case month of

1,2,3: writeln('перший квартал');

4,5,6: writeln('другий квартал');

7,8,9: writeln('третій квартал');

10,11,12: begin

writeln('четвертий квартал');

writeln('складається з місяців:');

writeln('жовтень, листопад, грудень');

end;

end;

Змінна вибору (селектор) в операторові CASE не повинна належати типу REAL. Селектор може бути виразом.

Таблиця 2 - Варіанти завдань для лабораторної роботи № 2

Зміст завдання

Початкові дані

A

B

C

1

1.45

3.65

4.82

3.65

2

2

7.54

-2

0

3

3

4.29

0.5

4.5

8.61

4

4.95

1

2

2.57

5

7.8

2.55

10.41

4.7

6

1

2

3

-6.52

10.54

7

1.27

0.38

4.28

0.15

8

1.23

12.55

-2.75

7.32

9

16.24

2.67

11.2

3.28

10

16.25

2.26

4.83

0.865

11

1

2

3

6.58

4.35

12

14.2

10.2

2.78

6.43

13

10.42

-11.3

-1.42

-0.98

14

0.93

0.44

1.38

0.52

15

8.45

9.36

11.48

10.55

16

10.43

1.53

2.6

6.05

17

1

12

10.36

0.828

18

3.75

-6.75

1.34

3.075

19

5.016

7.22

10.98

3.5

20

Перевірити істинність виразу:

A+BC-2>5

1

-3

2

4

21

Перевірити істинність виразу:

3

6

4

7

25

8

22

Якщо вираз AВ>0 істинно

то обчислити:

3.25

-5.4

1.4

2.4

15.6

23

Перевірити числа A, B, C на парність

5

6

0

-3

8

-7

24

Отримати MAX (A, B)

3.45

4.78

25

Отримати MAX (A, B, C)

-2.5

-59

2.48

26

Отримати MIN (A, B, C)

15.28

2.33

20.73

27

Обчислити MAX(A+B+C, ABC)

5.4

8.2

0.45

28

Перевірити чи виконується А<B<C

2.54

3.27

4.28

5.44

10.5

2.1

29

Якщо A>=В>=С, то подвоїти A, B і C

інакше замінити абсолютними значеннями

5.28

2.49

4.72

7.24

3.24

-4.66

30

Надрукувати A, якщо A>В

інакше надрукувати A і B

4.58

2.27

3.54