Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка_ОТтаП_Ч1

.pdf
Скачиваний:
45
Добавлен:
12.05.2015
Размер:
1.51 Mб
Скачать

Тепер запишемо програму повністю:

Program Laba_2; Var

x, y : real; Begin

Write(’Введіть значення X :’);

Readln(x); if x>2 then

y:= sqr(sin(x)){значення Y для X>2} else

if x<-2 then

y:= -cos(x){значення Y для X<-2} else

y:=0;{значення Y у решті випадків} Writeln(’Значення функції Y :’, у:5:3);

end.

Блок-схема програми:

Початок

x

x>2

Ні

Так

x<-2

Ні

y := -cos(x)

y := 0

Так

y := sqr(sin(x))

y

Кінець

40

3.6.Порядок виконання роботи.

1.Вибрати індивідуальне завдання. Номер варіанту відповідає номеру студента у списку групи.

2.Ознайомитись із теоретичним матеріалом.

3.Скласти алгоритм для розв’язання завдання.

4.Скласти і відлагодити програму на мові Pascal , яка реалізує введення вихідних даних, обчислення значення функції за заданою формулою, виведення результатів у зручній формі на екран.

5.Підготувати звіт по роботі.

3.7.Індивідуальні завдання.

1.Скласти програму для знаходження функції:

 

 

2

3x 4,

якщо x 5,

x

 

y ln x, якщо

1 x 5,

 

x

, якщо x 1.

e

 

 

2. Скласти програму для знаходження функції:

x4 2x, якщо x 1, y tg(x), якщо -1 x 1,

x 2 , якщо x 1.

3. Скласти програму для знаходження функції:

 

 

 

 

 

sin x x

2

, якщо x 1,

 

y 3,

якщо - 2 x 1,

 

1 2 x

, якщо x 2.

1 e

4. Скласти програму для знаходження функції:

 

 

 

якщо x 4,

lg x,

 

y

x 5

, якщо - 3 x 4,

 

cos2

x, якщо x 3.

 

 

 

 

41

5.Задано три числа. Визначити, чи будуть вони сторонами одного трикутника. Знайти найбільше число i надати його значення змінній D.

6.Визначити, якому квадранту належить точка M(x, y). Значення x та y вибираються довільно.

7.Визначити, чи належить точка N(3,2;7,5) трикутнику, утвореному осями OX,OY та прямою y=7,6x-3,5.

8.Є рівняння: ax2+bx+c=0. Скласти програму, що надає змінній y значення 1, якщо рівняння має дiйсні розв’язки, i значення 0, якщо воно не має дiйсних розв’язків (a=3; b=0; c=-4,7).

9.Задано два відрізка на осі: A1=3,2; B1=7,8; B2=5; A2=1.

Якщо точка x належить одночасно i першому, i другому відрізкам, то p=x2, якщо ні, то p=tgx. Скласти програму.

10.Скласти програму для знаходження функції:

ln(x 8),

якщо x 9,

 

 

 

 

x2 1,

якщо - 2 x 9,

y

 

 

 

 

x 7, якщо x 2.

11.Скласти програму для знаходження функції:

 

 

 

x 10, якщо x 10,

 

 

 

y ln x2 , якщо 5 x 10,

sin x, якщо x 5.

 

 

 

 

 

 

12.Задано дві точки: M1(8,21; -8,1); M2(2,14; 15,81). Надати змінній N значення Q, якщо відстань між точками дорівнює нулю, i значення p=Q/3 в іншому випадку.

Q=6,28+sin x-ab(a+b); a=12,4; b=3,62; x вибирають довільно.

13.Визначити відстань між двома довільними точками M(x,y), M1(x1, y1) в третьому квадранті. Значення x, x1 та y, y1 вибираються довільно.

14.Швидкість руху об’єкта змінюється від v 0 до vm за формулою vi=v0+at. Скласти алгоритм i програму для

42

визначення швидкості (при vi<v0, прийняти vi=v0, а при vi>vm прийняти vi=vm ;a=2,5; t=40; v0=25; vm=117).

15.Скласти алгоритм i програму для визначення потужності за формулою P=UI, при цьому повинні виконуватися такі вимоги: при U<0, I=k1U, при 0 U Uc , I=k2U2 i при

U>Uc , I=k3(U0+U); k1=1,5; k2=0,5; k3=10; U=0,2; U0=0,3; Uc=0,4.

16.Розв’язати попередню задачу за таких умов:

якщо 0<U<U1, то I=k1U;

якщо U1 U U2, то I=k1U1+k2 U ;

якщо U2<U, то I=k1U1+k2 U2 +k3U,

де U1=0,8; U2=1,2; k1=15; k2=0,7; k3=0,01; U=0,8.

17.Прямокутник задано в площині точками A,B,C,D:

A(xa,ya); B(xb,yb); C(xc,yc); D(xd,yd). Скласти алгоритм i

програму

для

визначення

належності

даному

прямокутнику

точки M(14;0,5), якщо

xb=xa=12;

xc= xd=20; ya= yd=1; yc= yb=3.

18.Визначити відстань між двома довільними точками M(x,y), M1(x1, y1) в другому квадранті. Значення x, x1 та y, y1 вибираються довільно.

19.Трикутник задано в площині точками A,B,C: A(xa,ya); B(xb,yb); C(xc,yc). Скласти алгоритм i програму для визначення належності даному трикутнику точки M(x,y), якщо для прикладу xa=12; xb= 16; xc =15; yc=3; ya= yb=1.

20.Задано довжини трьох сторін трикутника: m, n, h. Визначити, чи буде трикутник прямокутним. m=3, n=5, h=4.

21.Область припустимих розв’язків обмежена прямою k1x+k2y+c=0 і осями OX та OY. Точка, що належить області припустимих розв’язків, повинна задовольняти

співвідношення: x 0 ; y 0 . Cкласти алгоритм i програму для визначення належностi зазначеній області точки

S(x,y), якщо c=12; k1=4; k2=3,0; x=2; y=1.

22.Скласти алгоритм i програму для визначення можливості розв’язання квадратного рівняння ax2+bx+c=0 (a=12,1; b=32,8; c=14,56) в області дійсних чисел.

43

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

 

3x 1

, якщо x 3,

e

 

 

 

 

 

 

y 3x2

x, якщо - 2 x 3,

ln

 

x

 

, якщо x 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24.В площині задано область, яка обмежена осями OX, OY

та рівнянням x2 y 2 1 . Визначити, чи належить точка P(3;-2) заданій області.

25.Задано область q, що обмежена осями OX, OY та прямою

x4 y 4 1 . Визначити, чи належить точка M(-2;4,5) області q.

26.Змінні R та S можуть бути додатними і від’ємними. Надати змінній BIGABS значення тої змінної, яка більше за абсолютною величиною. Скласти алгоритм i програму розв’язання задачі.

27.Координати трьох точок кривої: y1, y2, y3. Якщо y2 - відносний максимум, перейти на оператор ymax:=y2, в іншому випадку, перейти до оператора end, для прикладу

(y1= -12,45; y2=30; y3=2,99999).

28.Визначити відстань між двома довільними точками M(x, y), M1(x1, y1) в першому квадранті. Значення x, x1 та y, y1 вибираються довiльно.

29.Координати трьох точок кривої: y1, y2, y3. Якщо y2 - відносний мінімум, перейти на оператор ymin=y2, в іншому випадку, перейти до оператора end, для прикладу

(y1= -1,5; y2=3,0; y3=22,79)

30.Визначити, чи належить точка N(-8,2;7,5) трикутнику, утвореному осями OX,OY та прямою y=-4,6x-5.

3.8.Контрольні запитання.

1.Які вам відомі оператори порівняння?

2.Що ви знаєте про тип даних boolean?

3.Для чого використовується оператор goto?.

4.Як внести пояснення в текст програми?

44

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

Оператор вибору Case.

Мета роботи – оволодіння прийомами програмування складних розгалужених обчислювальних процесів.

4.1. Символьний тип даних Char.

Значення символьного типу у мові Паскаль складається з 256 символів, серед яких літери англійського і національного алфавітів, символи-роздільники, цифри та різні допоміжні символи склад яких може змінюватись в залежності від настроювання комп’ютера. Змінні символьного типу оголошуються за допомогою ключового слова char, а їх значення задаються за допомогою символу взятого в одинарні лапки. Наприклад:

Program Name_30; Var

c :char;{c–змінна символьного типу}

Begin

c :=’Ф’;{тепер значення змінної c – літера Ф}

Writeln(c); {виведе Ф на екран} end.

Кожному символу за допомогою функції ORD(c) – ставиться у відповідність число з діапазону 0…255. Обернена їй функція – CHR(b), яка для кожного числа b з діапазону 0…255 повертає відповідний символ.

Program Name_30;

Var

c : char;

45

Begin

c :=’L’;

Writeln(ORD(c)); {виведе на екран код

літери L - 76}

Writeln(CHR(85));{виведе на екран

літеру з кодом 85 - U} end.

4.2. Оператор вибору CASE.

Оператор вибору CASE є умовним оператором і являє собою узагальнений варіант оператора IF, про який розповідалось вище. Він дозволяє зробити вибір з декількох варіантів. Параметром, за яким проводиться вибір, слугує ключ вибору – вираз цілого, булевого чи символьного типів.

Структура оператора вибору наступна:

Case <ключ_вибору> of

<список 1>: <оператор 1>;

<список 2>: <оператор 2>;

. . .

<список N>: <оператор N>

Else <оператор N+1>;

End;{Case}

де

<ключ_вибору> - ключ;

<список 1><список N> - одне з можливих значень, або декілька можливих значень перерахованих через кому, або діапазон значень перерахованих через дві крапки (Наприклад: 1, 2, 7..15) ;

<оператор 1>…<оператор N+1> - довільні

оператори або блоки операторів Паскалю;

else як і в операторі if – необов’язкова частина оператору.

46

’-’.

Оператор вибору працює наступним чином. Спочатку обчислюється значення ключа вибору, а потім серед значень списків знаходиться значення рівне обчисленому, якщо таке значення існує, то виконується оператор, відповідний до цього значення. Якщо такого значення, не знайдено, то виконується оператор після ключового слова else. Коли ж необов’язкове ключове слово else відсутнє, то не виконається жоден з операторів і оператор вибору Case просто завершить свою роботу.

4.3. Приклад

Приклад.

Для прикладу розглянемо програму, яка імітує програму мікрокалькулятора. Ця програма для введених двох чисел, виконає одну з арифметичних операцій – ділення, множення, додавання чи віднімання, в залежності від того, який символ введено ’/’, ’*’, ’+’ або

Program Laba_3; Var

a, b, d : real;{дійсні змінні для

обчислень}

ch : char;{символьна змінна для операції}

err : bool;{булева змінна для визначення невірного символу}

Begin

err:=false;{вказуємо що помилки ще не було}

Write(’Введіть число a : ’);

Readln(a);

Write(’Введіть число b : ’);

Readln(b);

Write(’Задайте операцію /,*,+ або -’);

Readln(ch);

47

Case ch of

’/’: d:=a/b;

’*’: d:=a*b;

’+’: d:=a+b;

’-’: d:=a-b

Else

err:=true; {символ не є допустимою операцією}

End;

If err then

Writeln(’Недопустимий символ : ’, ch);

Else

Writeln(’Результат = ’ , d:5:3);

end.

В цій програмі оператор Case використовується для визначення типу операції, якщо ввели символ ділення, множення, додавання чи віднімання, то й виконується відповідна операція і результат заноситься в змінну d. Якщо ж введений символ не відповідає жодній з вищезгаданих операцій, то спочатку в логічній змінній err присвоюється значення true, а потім виводиться повідомлення про помилку.

Результат роботи програми може мати такий вигляд:

Введіть число a : 2.1

Введіть число b : 3.3

Задайте операцію /,*,+ або -: * Результат = 6.930

або такий:

Введіть число a : 2.1 Введіть число b : 3.3

Задайте операцію /,*,+ або -: ? Недопустимий символ : ?

Блок-схема програми:

48

 

 

 

 

 

 

 

Початок

 

 

 

 

 

 

 

 

 

 

 

a, b, ch

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

err :=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так

 

 

 

 

 

Ні

ch =’/’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так

 

 

d := a/b

 

 

 

Ні

ch =’*’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так

 

 

 

 

 

 

 

 

 

 

 

 

d := a*b

 

 

 

 

ch =’+’

 

 

 

 

 

 

 

Ні

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Так

 

 

 

 

 

 

 

 

 

Ні

 

 

 

 

d := a+b

 

 

 

 

ch =’-’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

err := true

 

 

 

d := a+b

 

 

 

 

 

 

 

 

 

 

 

 

Так

 

 

 

 

Ні

 

 

 

 

 

 

 

 

err

 

 

 

 

 

 

 

 

 

ch

 

 

 

 

d

Кінець

4.4.Порядок виконання роботи.

1.Вибрати індивідуальне завдання. Номер варіанту відповідає номеру студента у списку групи.

2.Ознайомитись із теоретичним матеріалом.

3.Скласти алгоритм для розв’язання завдання.

4.Скласти і відлагодити програму на мові Pascal , яка реалізує введення вихідних даних, розв’язання задачі за допомогою оператора case, виведення результатів у зручній формі на екран.

5.Підготувати звіт по роботі.

49