Розгалуження Логiчнi вирази. Оператори умовного переходу Логiчнi вирази Одним з елементiв мови PASCAL є вираз.

Download Report

Transcript Розгалуження Логiчнi вирази. Оператори умовного переходу Логiчнi вирази Одним з елементiв мови PASCAL є вираз.

Розгалуження

Логiчнi вирази. Оператори умовного переходу

Логiчнi вирази

Одним з елементiв мови PASCAL є

вираз

.

Вираз

–– це конструкцiя мови, яка задає правилo отримання значень. Арифметичний вираз задає правилo обчислення числового значення цiлого або дiйсного типу.

Логiчний вираз задає правило отримання логiчного значення (

false

або

true

) i описує умову.

Один з простих логiчних виразiв ––

вiдношення

, що задає правило порiвняння двох операндiв за допомогою знакiв вiдношення : < , > , >= , <= , = , <>.

Логiчнi вирази

Операнди у вiдношеннi –– скалярного типу. Типи операндiв у вiдношеннi повиннi бути однаковими.

Вiдношення приймає одне iз значень: true або false.

Приклад : 2<3.7

- true true

Логiчнi вирази

Будується логiчний вираз з операндiв логiчного типу (змiннi, функції логiчного типу, вiдношення) за допомогою логічних операцiй:

not

- нi;

and

- i (логiчне множення); В логiчних виразах прийняте таке

or

- або (логiчне додавання).

Порядок виконання визначається ( ) або старшинством операцiй.

старшинство

дiй: 1. not 2. *, /, and, div, mod 3. +, -, or 4. операції вiдношень ( <,>,=,...) Відношення, які стоять з лівого i правого боків від знаку логічної операції, повиннi братись в круглi дужки.

Приклад : (x*x+y*y<=4) and (x

Оператори умовного переходу

Умовний оператор (опеpатоp умовного пеpеходу) служить для запису алгоритмiчної структури розгалуження, тобто дозволяє вибрати для виконання один з двох операторiв в залежностi вiд того виконується деяка умова чи нi.

Iснує дві форми умовного оператора: - повна; - коротка

Повна форма розгалуження

Якщо <логічний вираз> то

серія1

інакше

серія2;

все

Коротка форма розгалуження

Якщо <логічний вираз> то

серія;

все

Розгалуження мовою програмування

Формат повної форми: IF <логiчний вираз>THEN <оператор1> ELSE <оператор2>;

IF ( якщо), THEN (то), ELSE (iнакше) - службовi слова.

Дiя оператора: якщо значення логiчного виразу TRUE, то виконується <оператор1> ( <оператор2> пропускається ); iнакше, якщо значення логiчного виразу - FALSE, то виконується <оператор2> (<оператор1> пропускається).

Пiсля THEN та ELSE може стояти лише один оператор !!!

Якщо потрiбно виконати кiлька операторiв, їх треба взяти в операторнi дужки BEGIN END, тобто утворити складений оператор.

Пеpед ELSE ";" не ставиться !!!

Розгалуження мовою програмування

Формат короткої форми: IF <логiчний вираз> THEN <оператор>;

Приклад 1

Приклад: а) IF x<0 THEN y:= -x ELSE y:=x; –– умовний оператор задає функцiю y=|x|.

б) IF a>b THEN IF b<0 THEN c:=a ELSE c:=b ELSE c:=0 Пiсля THEN i ELSE може також стояти умовний оператор. Такi оператори –– вкладенi. Пpи цьому дiє правило: ELSE завжди вiдноситься до ближчого злiва оператора IF.

Приклад 2

Проаналізуйте текст програми:

Program Task2; Var a, b:integer; max:integer; Begin Readln(a); Readln(b); if a>b then max:=a else max:=b; Writeln(max); End.

1. Що виконає дана програма?

2. Які необхідно внести зміни, щоб знайти min із двох чисел?

Завдання 1

Обчислити значення функції:

y

 

a a

( (

b b

  4

c

), 4

c

),

якщо

(

a

b якщо

(

a

b

) )  

c c

Завдання 1

До даної задачі складемо: 1.

Алгоритми

(блок-схему і алгоритм на навчальній алгоритмічній мові); 2.

Програми

(з використанням повної і короткої формах розгалуження)

Завдання 1

(Алгоритми)

Так Y:=a(b+4c) Початок Ввести a, b, c a+b>=c Ні Y:=a(b-4c) Вивід y Кінець Повна умовна конструкція Алг

Вираз;

арг

a, b, c: дійсн;

рез

у: дійсн;

Поч

Ввести а, b, c; якщо (a+b)>=c то y:=a(b+4c) інакше y:=a(b-4c); Вивід y;

Кін

Завдання 1

(Алгоритми)

Так Y:=a(b+4c) Початок Ввести a, b, c a+b>=c Ні Y:=a(b-4c) Вивід y Кінець Неповна умовна конструкція Алг

Вираз;

арг

a, b, c: дійсн;

рез

у: дійсн;

Поч

Ввести а, b, c; якщо (a+b)>=c то y:=a(b+4c) якщо (a+b)

Кін

Завдання 1

(Програми)

Повна умовна конструкція

Program Task1_1; Var a, b, c:real; Y:real; Begin Readln(a, b, c); If a+b>=c then y:=a*(b+4*c) else y:=a*(b-4*c); Writeln(y); End.

Неповна умовна конструкція

Program Task1_2; Var a, b, c:real; Y:real; Begin Readln(a, b, c); If a+b>=c then y:=a*(b+4*c); If a+b