ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


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

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

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

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

Program Work2;

{Варіант 30: a*b/4, якщо b > a

X = -55, якщо b = a

(b - 5)/a, якщо b < a

}

Uses CRT;

Const

inv1='Повторите введення';

inv2=' Ділення на нуль!!!!!!! ';

inv3='Результат ';

inv4='виходить за діапазон [-32768..32767]!!!!';

inv5=' значення, що вводиться, ';

invA='A';

invB='B';

Label L1;

Var

a,b,x : Integer;

ch : Char;

 

{Обчислення значення Xз перевіркою на допустимий діапазон

для змінної типу INTEGER}

function F (a,b:Integer; Var x:Integer) : Boolean;

Var x1 : Real;

s1 : String;

Begin

F:=True;

if b>a then x1:=b/4.0*a {Тільки так, інакше буде помилка обчислення!!!!}

else if b=a then x1:=-55

else if a=0 then

Begin

s1:=inv2+inv1;

Writeln(s1);

F:=False;

Exit;

End

else x1:=(b-5.0)/a;

{-і-і-і Перевірка результату на допустимий діапазон -і-і-і}

if (x1>=-32768)and(x1<=32767) then x:=trunc(x1)

else

Begin

s1:=inv3+inv4;

Writeln(s1);

Writeln(x1);

Writeln(inv1);

F:=False;

Exit;

End

End;


{Процедура введення вихідного значення змінноїА з перевіркою на область

допустимих значень}

Procedure Input(Var A:integer; inv:String);

Label L;

Var aL :Real;

s1 : String;

Begin

L:

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

Readln(aL);

if (aL>=-32768)and(aL<=32767) then A:=trunc(aL)

else

Begin

s1:=inv5+inv4;

Writeln(s1);

Writeln(inv1);

goto L;

End

End;

 

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

Begin

Repeat

ClrScr;

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

Writeln(' a*b/4, якщо b > a');

Writeln(' X = -55, якщо b = a');

Writeln(' (b - 5)/a, якщо b < a');

Writeln;

L1:

Input(b,invB);

Input(a,invA);

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

else goto L1;

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

ch:=ReadKey;

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

End.

У контрольній роботі №2 необхідно обчислити значення цілої змінної Х в залежності від значень теж цілих зміннихa і bз обліком області допустимих значень.

Програмі присвоєне ім'яWork2:

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

· У поле виклику бібліотечних модулівUSES записаний модуль CRT.

· У поле завдання констант визначені значення строкових констант: inv1, inv2, inv3, inv4, inv5, inv, inv.

· У поле міток описана міткаL1.

· У поле опису змінних описані змінні - a, b, x : integer; ch : char.

· Далі випливають описання функції Fі процедуриInput.

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

Функція F визначена як BOOLEAN.У заголовку функції описані вхідні параметриa,b:integer(передаються з головної програми) і вихідний параметр x:integer( передається в головну програму). У тілі функції використовуються локальні змінні x1: real і s1: string.


© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти