Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі, Детальна інформація

Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі
Тип документу: Реферат
Сторінок: 11
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 26.2
Скачувань: 1271
if умова then

оператор

else оператор

Виконання його полягає в тім, що спочатку обчислюється значення умови, записаної після слова if. Далі, якщо цим значенням є true, виконується оператор, записаний після слова then, і на цьому виконання закінчується. Але якщо це значення хибне, те виконується не перший, а другий оператор, записаний після else. Наприклад, при виконанні послідовності операторів

readln(x);

if x>=0 then z := 1 else z := -1

змінна z одержить значення 1, якщо прочитано невід'ємне значення x. Якщо ж прочитано значення від'ємне, то z одержить значення –1.

Оператор розгалуження в скороченій формі має вигляд:

if умова then оператор

Він відрізняється лише тим, що якщо обчислення умови дає значення false, то на цьому його виконання закінчується.

Як бачимо, оператори розгалуження містять умови, з обчислення яких і починається їх виконання. Тому ці оператори ще називаються умовними.

Застосуємо оператори розгалуження для перекладу алгоритму обчислення коренів на мову Паскаль. Пункт (3) можна, здавалося б, перекласти так:

if d>0 then x1:=(-b- sqrt(d))/(2*a); x2:=(-b+sqrt(d))/(2*a)

else

if d=0 then x1:=-b/(2*a);

{інакше нічого не робити}

Але це неправильно! Оператор розгалуження закінчується оператором присвоювання змінній x1. Оператор x2 := (-b+sqrt(d))/(2*a) записано уже за роздільником ";", тобто після оператора розгалуження. Те, що написано далі, взагалі не є оператором.

Як же записати послідовність із двох або більше операторів там, де має бути один? Напрошується відповідь, що їх треба взяти в дужки. І такі дужки, що перетворюють послідовність операторів у один оператор, у мові Паскаль є. Це так звані відкриваюча та закриваюча операторні дужки: ключові слова begin і end (початок і кінець).

Запис вигляду

begin послідовність операторів end

називається складеним оператором.

Отже, опишемо обчислення одного або двох коренів таким оператором розгалуження в повній формі:

if d>0 then

begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a) end

else

if d=0 then x1:=-b/(2*a)

Як бачимо, після слова then записано складений, а після слова else – оператор розгалуження в скороченій формі.

Оформимо алгоритм обчислення коренів у вигляді програми:

program roots(input, output);

var a, b, c: real; x1, x2: real;

The online video editor trusted by teams to make professional video in minutes