![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Умовний оператор
Загальний вид –
if a then p1 else p2; Тут a - булевський (логічний) вираз; p1, p2 - оператори. Булевський вираз може набувати одного з двох значень: true (правда, істина) або false (неправда). Найпростішими логічними виразами є вираз відносини:
a1 op a2.
Тут a1, a2 - вирази, а op - операція відносини (=, < >, <, >, < =, і т.д.). До булевських даних застосовні логічні операції and, or, not, xor. Булевський вираз визначає умову в операторі if, істинність якої веде до виконання оператора p1, а хибність - виконання оператора p2. Наприклад:
if (X> 5) and (Y< =10) then Z: =8 else Z: = X+4;
Конструкції else р2 може не бути.
Приклади виконання завдання лабораторної роботи
Приклад 4. Обчислити корені квадратного рівняння
ax2 + bx + c = 0 за умови d = b2-4ac ³ 0 за формулою
У противному випадку, тобто при d< 0, передбачити вивід повідомлення «Дійсних коренів немає».
Блок-схема Порядок роботи: Крок 1. Уводимо a, b, c. Крок 2. Обчислюємо d = b2 - 4ac. Крок 3. Якщо d< 0, виводимо повідомлення «Дійсних коренів немає», останов. Крок 4. Обчислюємо
Крок 5. Виводимо x1, x2. Крок 6. Останов. Приклад 5. Дано дійсне число x. Скласти програму для обчислення функції f(x), якщо
Програма обчислення f(x) має вид
program pr5_1; uses crt; var x, y: real; k: char; begin clrscr; write('x? '); readln(x); if x< =0 then y: =sqr(x)*x else if (x> 0) and (x< =2) then y: =sqr(x)+4*x+5 else y: =sqr(x)-sin(pi*x*x/3); writeln(' x= ', x: 5: 1, ' y = ', y: 5: 1); k: =readkey end.
або
program pr5_2; uses crt; var x, y: real; k: char; begin clrscr; write('x? '); readln(x); if x< =0 then y: =sqr(x)*x; if (x> 0) and (x< =2) then y: =sqr(x)+4*x+5; if x> 2 then y: =sqr(x)-sin(pi*x*x/3); writeln(' x= ', x: 5: 1, ' y = ', y: 5: 1); k: =readkey end.
Приклад 6. Нехай D - заштрихована частина площини (рис. 1). Функція U визначається за х та y у такий спосіб:
Дані два числа x, y. Скласти програму для обчислення значення U.
Для опису ділянки D складемо рівняння ліній, що обмежують частину площини. Одержимо: 1) рівняння лінії 1 x=-1; 2) рівняння лінії 2 x2+y2=1; 3) рівняння лінії 3 визначимо із загального рівняння прямої. Для цього підставимо до рівняння прямої y=ax+b координати двох точок (-1; 1) і (1; 0). Вирішивши отриману систему лінійних рівнянь, знайдемо рівняння лінії 3: y=-0, 5x+0, 5. Розіб'ємо ділянку D на дві підділянки: A, що лежить нижче осі OX, і B, що лежить вище осі OX. Тоді підділянку A можна описати системою нерівностей:
x2+y2£ 1; y£ 0,
а підділянку B - системою нерівностей:
y £ 0, 5x +0, 5; x ³ -1; y ³ 0. Ділянка D визначиться як сума підділянок A і B. Тоді програма обчислення U набуде виду
program pr6; uses crt; var x, y, u, z: real; a, b, d: boolean; k: char; begin clrscr; writeln(‘x, y? ‘); readln(x, y); a: =(sqr(x)+sqr(y)< =1) and (y< =0); b: =(x> =-1) and (y< =-0.5*x+0.5) and (y> =0); d: =a or b; if d then begin z: =(x/pi)/sqrt(1-sqr(x/pi)); u: =exp(x-y)+arctan(z) end else u: =exp(sin(y)*ln(abs(x)))*ln(abs(x*sqr(y))); writeln(‘D=’, D, ’x=’, x: 5: 1, ’y=’, y: 5: 1, ’u=’, u: 5: 1); k: =readkey end.
|