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

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

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

повинно бути більше нуля, і ділення на нуль не можливе, отже c

– повинно бути ненульове. Інакше програма замість результату видасть повідомлення про помилку.

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

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

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

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

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

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

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

Cкласти алгоритм i програму для обчислення значення змінної

за заданою формулою:

 

Y

 

 

 

 

 

 

t )

 

 

 

 

 

 

 

 

 

 

 

1.

 

d r cos(

16.

x=U2+lg t cos(t2-cos rt)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

x=1+ arctg (t-cos t)

17.

x=U2+arctg(t4-cos st)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z e t 5

r

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

 

18.

I

 

1

(1 e L t )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

Y

f cos( t 1)

19.

Y

gt cos( t )

 

 

 

 

 

 

 

 

 

 

5.

 

 

1 tg(x)

20.

z e t u sin(

u

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

w=U2sin x +cos(t4-cos st)

21.

x=U2+cos(t2-cos rt)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.

x=1+ arctg (t2-cos kt)

22.

A

1 k 2 sin 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

8.

Y

 

 

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

23.

 

 

 

A

 

sin kt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln( x d )4

 

 

 

 

 

 

(x rc)4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.

G

 

cos t sin2 t

 

24.

Y

 

 

gt2 s cos( t )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10.

A

 

1 k

sin

 

 

25.

 

R e

1 sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

 

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11.

ln(x d )4

 

 

 

 

 

 

 

26.

 

A 1 k sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

cos( t )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12.

L

 

gt

S

 

27.

S

 

P cos jQ sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13.

Q

cos t h2 sin2

 

28.

A

 

 

cos t k 2

sin 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14.

 

1 ctg 2 ( x)

 

 

 

 

 

29.

 

 

 

 

1 ln2 (x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

t

 

 

 

 

 

15.

 

1

 

 

 

 

 

 

 

 

 

 

 

 

30.

 

1

 

 

 

 

 

 

 

 

 

 

(1 e c )

 

 

 

 

 

 

 

(1 e L )

 

u

 

 

 

 

 

 

 

 

 

 

 

I r

 

 

c

 

 

 

 

 

 

 

 

 

 

 

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

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

2.Який синтаксис оператора присвоювання?

3.Яка структура операторів введення-виведення послідовного доступу?

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

5.В яких випадках використовується тип даних real?.

6.Як використовуються стандартні функції? (Наведіть приклади).

7.Яка послідовність операцій при обробці арифметичного виразу?

8.Які ви знаєте стандартні функції перетворення типів (real,

integer)?

31

3. Заняття №3.

Керування обчислювальним процесом. Умовні оператори переходу.

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

3.1. Операції порівняння.

При написанні програм часто виникає потреба порівняти різні однотипні значення, або змінні, для цього використовуються операції порівняння або відношення:

< – менше; >= – менше або дорівнює; = – дорівнює; > – більше;

>= – більше або дорівнює; < > – не дорівнює.

В операціях порівняння повинні приймати участь однотипні дані, виключення зроблено для даних типу Real та Integer, які можна порівнювати одні з одними.

3.2. Тип даних Boolean та логічні операції.

Результатом виконання операцій порівняння для будь-яких значень – завжди буде значення типу Boolean. Булевий тип,

або як його ще називають – логічний тип, задається двома значеннями: True (істинно) або False (хибно). Опис булевої

змінної має такий вигляд:

var

bool: Boolean;

Розглянемо приклади:

bool:=5>2; значення змінної bool = True bool:=5<>5; значення змінної bool = False bool:=5>-5; значення змінної bool = True bool:=5>10; значення змінної bool = False

32

В Паскалі для булевого типу найчастіше використовуються наступні операції:

NOT – логічне Ні або операція заперечення, яка замінює

значення свого операнда на протилежне:

not True = False not False = True

тобто:

5>2 – прийме значення True, not(5>2) – прийме значення False.

AND – логічне І, результат цієї двомісної операції прийме значення True (істинно) лише тоді, коли обидва операнди будуть істинні (матимуть значення True), тобто:

True and True = True

True and False = False

False and True = False

False and False = False

Наприклад:

вираз (X>=1) and (X<=2) - прийме значення True, для всіх значень X з відрізку [1;2], значення False, для всіх інших значень.

OR – логічне Або, приймає значення True (істинно) – коли хоча б один з операндів істинний (має значення True) , тобто:

True or True = True True or False = True

False or True = True

False or False = False

Наприклад:

вираз (X<3) or (X>5) - прийме значення True, для всіх значень X які або менше 3, або більше 5, і значення False для всі X з відрізку [3;5].

Зауваження: При побудові логічних виразів слід враховувати пріоритет операцій. Так як, логічні операції в мові Паскаль мають вищій пріоритет, ніж операції відношення, то

33

операції відношення зазвичай потрібно брати в дужки. Наприклад, якщо a, b, c і d – цілі змінні, то вираз:

а = b and c < d

викличе повідомлення про синтаксичну помилку. Вірним буде наступний вираз:

(а = b) and (c < d)

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

Ми вже розглядали приклади програм, в яких оператори виконуються послідовно один за одним, але іноді виникає потреба виконати ту або іншу послідовність операторів, в залежності від деякої умови. Для цього в мові Паскаль використовується – умовний оператор IF.

Структура умовного оператора має наступний вигляд:

if <умова> then <оператор1> else <оператор2>;

де if, then, else ключові слова відповідно еквівалентні

“якщо”, “то”, “інакше”;

<умова> - логічний вираз, якщо він приймає значення True

(істинно), то виконується оператор, або набір операторів <оператор1>, інакше виконується оператор, або набір операторів <оператор2>.

Якщо треба, виконати групу операторів замість одного, то блок операторів виділяється ключовими словами Begin та End

так:

Begin

<оператор 1>; <оператор 2>;

<оператор n>

End;

Зауваження:

Частина else <оператор2> коли альтернативні дії не передбачені, може бути відсутня;

перед else крапка з комою (;) – не використовується.

34

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

Program Maximum; Var

a, b, max: real;

Begin

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

Readln(a);

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

Readln(b); if a>b then

max := a else

max := b;

Writeln (’Максимум = ’ , max:5:3); end.

Перевіримо роботу програми, введемо значення a = 5.5, b = - 3.45, в результаті роботи програми отримаємо:

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

Введіть число b : -3.45 Максимум = 5.5

Отже програма в операторі if перевірила, що значення змінної a більше за значення змінної b і присвоїла змінній max

– значення змінної a.

Тепер знову запустимо програму, введемо значення a = 2.7, b = 9.08, та отримаємо наступний результат:

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

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

Максимум = 9.08

Отже, в цьому випадку умова a>b не виконується (приймає значення False), і в операторі if, виконався оператор після ключового слова else, а саме - max := b,

тобто змінній max – записалося значення змінної b.

35

Розглянемо іншу задачу – розв’язання квадратного

рівняння. Нехай рівняння має вигляд ax2 bx c 0 , де a, b, c – задаються довільним чином і нам потрібно знайти значення коренів цього рівняння. Відомо, що квадратне рівняння має розв’язок, коли його дискримінант – невід’ємний, тобто:

D b2 4ac 0 ,

 

x1,2

 

b

D

 

тоді корені рівняння знаходяться за формулою

2a

.

 

 

 

 

 

Розглянемо відповідну програму.

Program Polinom;

Var

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

Begin

Write(’Введіть коефіцієнт a :’);

Readln(a);

Write(’Введіть коефіцієнт b :’);

Readln(b);

Write(’Введіть коефіцієнт c :’);

Readln(c);

D := sqr(b) – 4*a*с; if D>=0 then

begin

x1 := (-b+sqrt(D))/(2*a);

x2 := (-b-sqrt(D))/(2*a); Writeln(’x1 = ’ , x1:5:3);

Writeln(’x2 = ’ , x2:5:3) end

else

Writeln(’Немає коренів.’); end.

Розберемо цю програму детальніше:

на початку вона зчитує коефіцієнти a, b, c;

потім за допомогою функції sqr() (квадрат числа)

обчислюється значення дискримінанта і запам’ятовується в змінній D:

36

D := sqr(b) – 4*a*с;

далі за допомогою оператора if з’ясовуємо знак

дискримінанта

if D>=0 then

у випадку коли значення D - невід’ємне, виконується блок операторів по знаходженню і виведенню на екран коренів рівняння :

begin

x1 := (-b+sqrt(D))/(2*a);

x2 := (-b-sqrt(D))/(2*a);

Writeln(’x1 = ’ , x1:5:3); Writeln(’x2 = ’ , x2:5:3) end

у випадку коли значення D - від’ємне, на екран виводиться

повідомлення

Немає коренів.

Розглянемо приклад виконання програми для значень a, b, c – 1, - 3, 1 відповідно:

Введіть коефіцієнт a : 1 Введіть коефіцієнт b : -3 Введіть коефіцієнт c : 1 x1 = 2.618

x2 = 0.382

3.4. Оператор безумовного переходу GOTO. Мітки. Коментарі.

goto <мітка>;

Оператор безумовного переходу goto є простим оператором і означає “Перейти до”. Він використовується в тих випадках, коли після виконання якої-небудь команди чи оператора необхідно виконати не наступну по порядку команду чи оператор, а який-небудь інший. При цьому той оператор чи команда, котрі необхідно виконати, позначаються міткою - набором символів (літер чи цифр) не більше 127 знаків, до того ж

37

біля мітки, яка позначає необхідний оператор, ставиться двокрапка, наприклад:

goto Mіtka1;

...

Mіtka1: if a<b then begin ... {до

виконання

цього

оператора

програма

приступить

після

виконання

оператора

Goto}

 

 

 

При використанні оператора goto необхідно, щоб всі мітки, які використовуються у програмі, були описані в розділі опису міток, розташованому на початку програми. Зарезервованим словом для опису міток є Label, а сам процес виглядає так:

Program example;

 

Var

{розділ

опису

змінних}

 

 

i: integer;

 

label

{розділ опису міток}

m1;

 

 

Begin

 

 

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

 

Readln(і);

 

 

if i<0 then

goto m1; {якщо i

менше

нуля то переходимо до мітки m1} Write(’i – невід`ємне’); m1:

End.

В цій програмі, спочатку в змінну i зчитується ціле число, потім за допомогою оператора if перевіряється, чи є воно

38

від’ємним, якщо так, то за допомогою оператора goto переходимо до мітки m1 в кінці програми, програму завершено. Інакше, коли i – додатне або нуль, то у мова в if стає хибною, оператор goto не виконується, а на екран виводиться

повідомлення:

i – невід`ємне

В тексті цієї програми зустрічаються пояснення в фігурних дужках {…}, такі пояснення в програмуванні називаються коментарями. Коментарі не впливають на хід виконання програми, можуть використовуватись в довільному місці програми і використовуються для полегшення сприйняття тексту програми.

Зауваження:

Областю дії мітки є той блок програми, в якому вона описана, тому спроба перейти в інший блок (чи вийти за межі блока) викличе програмне переривання.

3.5. Приклад розв’язання

Постановка задачі

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

 

 

2

x, якщо x 2,

sin

 

y

0,

якщо - 2 x 2,

cos x, якщо x 2.

1.Спочатку визначимося з набором змінних, в формулі присутні дві змінні x та y, обидві дійсного типу, тому при оголошенні змінних можемо використати тип даних real.

2.Функція задана на трьох проміжках, тому для її опису можна двічі використати умовний оператор if.

3.Функції sin(X) та cos(X) – стандартні в мові Паскаль,

а для знаходження квадрату числа можна використати функцію sqr(X).

39