Список використаної і літератури, що рекомендується

1. Абрамов С.А., Гнєздилова Г.Г., Капустіна Е.Н., Селюн М.И. Задачі по програмуванню. М., 1988.

2. Абрамов С.А., Зима Е.В. Начоло информатики. М., 1989.

3. Вирт Н. Алгоритми + структури даних = програми. М., 1985.

4. Голуб Н.Г., Кириленко Е.Г. Алгоритмічні мови і програмування: Навчальний посібник, частина 1. ХАИ, 1997.

5. Грогоно П. Програмування мовою Паскаль. М., 1982.

6. Джонс Ж., Харроу К. Рішення задач у системі Турбо Паскаль. М., 1991.

7. Йенсен К., Вирт Н. Паскаль: посібник для користувача. М., 1989.

8. Касьянов В.Н., Сабельфельд В.К. Збірник завдань по практикуму на ЕОМ. М., 1986.

9. Мизрохи С.В. TURBO PASCAL і объктно-ориентированное програмирование. М., 1992.

10. Пильщиків В.Н. Збірник вправ по мові Паскаль. М., 1989.

11. Прайс Д. Програмування мовою Паскаль: Практичний посібник. М., 1987.

12. Фаронов В.В. Турбо Паскаль 7.0. Початковий курс. Навчальний посібник. М., 1997.

13. Фаронов В.В. Турбо Паскаль 7.0. Практика програмування. Навчальний посібник. М., 1997.

14. Фірмова документація і комп'ютерні довідники (файли допомоги типу HELP).


ДОДАТОК 1

Приклад виконання лабораторної роботи № 1

ЛІСТИНГ ПРОГРАМИ Work1.pas

program Work1;

{ Обчислити варіант

 

3 arctg(b) + c*b - a/4

x= ------------------------

12*c + a - b

}

Uses CRT;

Label L1;

Var

a,b,x,x1,x2: Real;

c: Integer;

ch: Char;

 

{Обчислення знаменника з перевіркою його на нуль}

function Flag (a,b:real; c:Integer; Var x2:Real): Boolean;

Begin

Flag:=True;

x2:= 12.0*c + a - b; { 12*c приведе до помилки при c>abs(32767.0/12) }

if x2=0 then

Begin

Writeln('Ділення на нуль!!!!!!!! Повторіть введення.');

Flag:=False;

Exit;

End;

End;

{Обчислення арифметичного виразу}

function F (a,b,x2:real; c:Integer): Real;

Var x1: Real;

Begin

x1:= ArcTan(b)+c*b-a/4;

F:=x1/x2

End;

{Введення значення змінної С з перевіркою його на припустимий діапазон}

Procedure InputC(Var c:integer);

Var cL:Real;

Begin

Repeat

Write('Введіть значення c=====>');

Readln(cL);

Until (cL>=-32768)and(cL<=32767);

c:=trunc(cL)

End;


{Головна програма}

Begin

Repeat

ClrScr;

Writeln(' Варіант 30');

Writeln(' arctg(b) + c*b - a/4');

Writeln(' x= ------------------------');

Writeln(' 12*c + a - b');

Writeln;

L1:

Write('Введіть значення a=====>');

Readln(a);

Write('Введіть значення b=====>');

Readln(b);

InputC(c);

if Flag(a,b,c,x2) then Writeln ('x=',F(a,b,x2,c))

else goto L1;

Writeln('Знову? (y/n)');

ch:=ReadKey;

Until (ch='n') or (ch='N');

End.

Розглянемо поетапне виконання лабораторної роботи №1.

У даному завданні необхідно обчислити значення арифметичного виразу (варіант 30), що є часткою від ділення виразу в чисельнику на вираз у знаменнику.

Для одержання результату необхідно зробити наступне:

1. Ввести значення змінних, які входять у даний вираз (a, b, c).

2. Перевірити, чи знаходяться цілочисельні змінні (у даному випадку тільки c) у діапазоні допустимих значень.

3. Обчислити знаменник з перевіркою його на нуль (тому що ділення на нуль НЕПРИПУСТИМЕ).

4. Обчислити вираз.

5. Вивести результат обчислення.

Програмі привласнене ім'я Work1, ім'я файлу - Work1.pas:

· У фігурних дужках написані коментарі - у даному випадку номер варіанта і вид виразу.

· Далі після зарезервованого слова Uses написане ім'я стандартного модуля середовища Turbo Pascal - CRT (докладніше - див. Додаток. 9).

· Потім описана мітка L1.

· У полі опису Var змінні a,b,x,x1,x2 оголошені як Real, змінна з как Integer, змінна ch как Char (типи даних - див. [4]).

· Далі іде опис функцій Flag, F і процедури Input.

· Записана головна програма, що викликає потрібні процедури і функції, відповідно до алгоритму розв’язання задачі.

Обчислимо знаменник з перевіркою його на нуль за допомогою функції Flag (основні поняття функції і процедури подані в [4]). Функція Flag описана як Boolean і приймає два значення True (якщо знаменник НЕ дорівнює нулю) чи False (якщо знаменник дорівнює нулю). У заголовку функції використовуємо параметри:

· вхідні змінні a,b, c, значення яких передається з основної програми у функцію Flag;

· вихідну змінну x2, значення якої обчислюється (це - знаменник виразу) і передається в основну програму.


Алгоритм обчислення знаменника наступний:

¨ Присвоюємо функції значення Flag:=True;

¨ Обчислюємо знаменник і присвоюємо змінній х2 значення виразу в знаменнику: х2:=12.0*з+a-b;

¨ Якщо знаменник дорівнює нулю (х2=0), функція Flag приймає значення рівне False і керування передається в основну програму (Exit).

¨ Якщо знаменник не дорівнює нулю, значення функції Flag залишається рівним True і значення функції і змінної х2 передаються в основну програму.

У цьому фрагменті використаний умовний оператор if-then - див. [4].

 

Безпосереднє значення виразу визначимо за допомогою функції F. Функція F описана як Real. Змінні a, b, c (вхідні) передаються з основної програми. Значення функції F обчислюється і передається в основну програму.

Алгоритм обчислення значення виразу:

¨ обчислюємо значення виразу в чисельнику: х1:=ArcTan(b)+c*b-a/4;

¨ присвоюємо функції F значення вихідного виразу: F:=x1/x2 і керування передається в основну програму.

 

Введення змінної с здійснюємо за допомогою процедури Input. У заголовку процедури описаний параметр-змінна: Var с: integer -одержуване значення введеної змінної.

Алгоритм роботи процедури Input:

¨ У циклі вводимо з клавіатури значення змінної с, одночасно перевіряється чи знаходиться значення с у діапазоні -32768... +32767 (діапазон значень для цілих чисел типу INTEGER). Тіло циклу розташоване між Repeat...і... Until. Докладніше про цикли див. [4].

¨ Змінній с присвоюємо значення рівне цілій частині (функція trunc) змінної c c:=trunc(c);

¨ Отримане значення змінної с передається в головну програму.

Алгоритм виконання головної програми:

У циклі Repeat.... Until(ch=’n’) or (ch:=’N’) виконуємо введення змінних, перевірку знаменника на нуль і обчислення значення виразу для одного комплекту даних a,b,c:

· Вводимо значення змінної а: Readln(а);

· Вводимо значення змінної b: Readln(b);

· Звертаємося до процедури Input(с) для введення значення цілої змінної c (значення с передається в головну програму з процедури Input).

· Перевіряємо значення функції Flag. Якщо воно True, то виводимо значення виразу на екран, інакше керування переходить на мітку L1, повторюємо введення змінних a, b, c доти, поки знаменник прийме значення, відмінне від нуля.

· Після висновку результату на екрані дисплея з'являється повідомлення - Знову? (y/n), змінної ch присвоюється значення натиснутої клавіші (оператор ReadKey читає символ із клавіатури - N чи Y). Якщо ви натиснули N, виконання програми закінчується, якщо натиснули клавішу Y, - керування передається на початок циклу і ви можете повторити обчислення з новими значеннями змінних a,b,c.

 


ДОДАТОК 2


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: