Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Загальний вид –

 

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.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.