Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи паскаль.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.77 Mб
Скачать

Лабораторна робота №4 Програмування розгалужених процесів

Мета роботи:

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

.

Теоретичні відомості

ОПЕРАТОРИ РОЗГАЛУЖЕННЯ ПРОГРАМИ

Для реалізації розгалуження в програмах використовуються три оператори:

  1. умовний оператор IF;

  2. оператор вибору CASE;

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

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

Умовний оператор призначений для вибору однієї із двох можливих дій, в залежності від певної умови. Структура оператора IF

IF <логічний вираз> THEN <оператор1>

[ ELSE <оператор2>];

Синтаксична діаграма Рис.4

Рис.4. Оператор IF

Спочатку обчислюється логічний вираз. Якщо значення виразу TRUE, то виконується "оператор 1", вказаний після слова THEN. Якщо результат FALSE, виконується "оператор 2", вказаний після службового слова ELSE.

Частина оператора із словом ELSE може бути відсутня. Тоді управління передається оператору, що стоїть після оператора EF.

Слід відзначити, що після службового слова IF і ELSE може виконуватись тільки один оператор. Якщо користувачеві необхідно виконати кілька операторів, то їх треба взяти в операторні дужки BEGIN і END, тобто зробити ці декілька операторів складеним оператором. Приклад:

обчислити x=sin(a*i);

y=(b+c)/x

при виникненні математичної некоректності ділення на нуль, видрукувати відповідне повідомлення.

PROGRAM TEST1;

VAR

I:INTEGER;

А, В, С, X, Y:REAL;

BEGIN

WRITELN ('Введи a, b, c, i' );

READLN (A, B, C, I); X=SIN(A*I);

IF X=0

THEN WRITELN ('Ділення на нуль')

ELSE

BEGIN

Y:= (B+C)/X;

WRITELN ('X=', X, 'Y=', Y)

END

END.

В реальних програмах часто виникає ситуація вкладення одного умовного оператора в інший. В цих випадках необхідно чітко дотримуватися структури: IF-THEN-ELSE, оскільки може виникнути синтаксична невизначеність, а з нею і помилка. Приклад: Обчислити

Оператор умови буде мати такий вигляд:

IF X<-1 THEN Y=-l

ELSE IF X>=1 THEN Y:=l

ELSE Y:=X*X*X;

Якщо пропустити перше службове слово

ELSE

IF X<=-1 THEN Y:=-l IF X>=1 THEN Y:=l

ELSE Y:=X*X*X;

Така програма дасть нам неправильний результат оскільки, коли Х<=-1, Y пристоїться значення -1, тоді, після перевірки другої умови управління передасться оператору Y:=X*X*X і результат буде помилковим.

ОПЕРАТОР ВИБОРУ CASE

Часто виникає необхідність розгалуження програм не в двох, а в багатьох напрямках. Звичайно у цьому випадку можна використати умовний оператор EF, але такий засіб може бути дуже громіздким і ненаглядним. Зручніше використати оператор вибору (або варіанту).

Структура оператора CASE:

CASE <вираз> OF

<константа вибору 1>:<оператор 1>;

<константа вибору 2>:<оператор 2>;

<константа вибору n>:<оператор n>

else <оператор>

END;

Оператор CASE складається з <виразу> (селектора) і списку операторів, кожному з яких відповідає конкретне значення селектора. Тип селектора і тип константи вибору повинен співпадати. Селектором може бути вираз або змінна будь-якого простого дискретного типу, тобто INTEGER, CHAR, BOOLEAN, створеного Вами перелічуваного або інтервального типу. Селектор і константи вибору не можуть бути типу REAL, оскільки дійсне число не представлене в пам'яті машини дискретно.

Порядок виконання оператора CASE наступний:

  1. Обчислюється <вираз> (селектор).

  2. Значення селектора порівнюється з <константами вибору>. Якщо селектор співпав з певною константою вибору, виконується оператор, що стоїть за нею.

  3. Якщо селектор не співпав з жодною константою вибору, виконується оператор, що стоїть після слова OTHERWISE.

  4. Після виконання вибраного варіанта управління передається на службове слово END, тобто кінець оператора CASE .

Приклад: В залежності від значення цілої змінної І обчислити

CASE I OF

0: Y:= 0;

1: Y=sin(x);

2,4: Y=cos(x);

3: Y=LN(x);

ELSE Y=EXP(x)

END;

He треба плутати константу вибору з міткою. Оскільки мітки в програмі описуються в розділі LABEL, а константи вибору опису не потребують.

Слід пам'ятати , що в одному операторі CASE не може бути двох однакових констант вибору.

ОПЕРАТОР БЕЗУМОВНОГО ПЕРЕХОДУ GOTO

Оператор безумовного переходу використовується, коли необхідно обійти деякий фрагмент програми. Структура оператора GOTO: ООТО<мітка>

<мітка>:<оператор>;

Мітка - це ціле число без знаку від 1 до 9999. Мітка обов'язково повинна бути описана в розділі опису міток. При використанні оператора GOTO слід пам'ятати такі правила:

  1. Оператор GOTO і помічений оператор повинні знаходитись в одному і тому ж блоці. Не допускається перехід всередину функцій або процедур.

  2. Перехід всередину складених операторів деколи може викликати непередбачені результати. Тому використання оператора GOTO без крайньої потреби не рекомендується.

КОНТРОЛЬНІ ЗАПИТАННЯ.

  1. Як зображаються алгоритми?

  2. Які існують типи обчислювальних процесів?

  3. Що таке лінійний обчислювальний процес?

  4. Яка особливість обчислювального процесу із розгалуженням?

  5. Як програмуються обчислювальні процеси із розгалуженням на ПАСКАЛІ?

  6. Як працює умовний оператор IF у ПАСКАЛІ ?

  7. Як реалізовано оператор вибору у ПАСКАЛІ ?

  8. Які особливості застосування оператора переходу GOTO ?

  9. Класифікація операторів мови ПАСКАЛЬ ?

  10. Що таке складений оператор ?

ПРИКЛАД ВИКОРИСТАННЯ ОПЕРАТОРІВ IF I CASE.

Скласти програму, яка буде визначати в якому квадранті декартової системи координат знаходиться точка, координати якої задані як х і у. Блок схема алгоритму приведена на рис. 7.

ЗАВДАННЯ

  1. Ознайомитись із методами зображення алгоритмів обчислювальних процесів та їх програмуванням на алгоритмічній мові ПАСКАЛЬ.

  2. Одержати індивідуальне завдання.

  3. Скласти блок-схему алгоритму і програму на ПАСКАЛІ для обчислення заданої функції (додаток).

  4. Виконати обчислення по програмі.

ЗМІСТ ЗВІТУ

  1. Мета роботи.

  2. Короткий опис методів зображення алгоритмів обчислювальних процесів та їх програмування на алгоритмічній мові ПАСКАЛЬ.

  3. Блок-схема алгоритму для обчислення по індивідуальному завданню.

  4. Текст програми.

  5. Результати обчислень по програмі.

  6. Аналіз результатів, висновки.