ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.12.2020
Просмотров: 85
Скачиваний: 1
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ОДЕСЬКИЙ ДЕРЖАВНИЙ ІНСТИТУТ ВИМІРЮВАЛЬНОЇ ТЕХНІКИ
Білоцерківська філія
Методичні вказівки та завдання
до виконання лабораторної роботи №10
з дисципліни
обчислювальна техніка
та програмування
Спеціальність: 5.0500103 «Механічні вимірювання»
5.0500102 «Електротеплотехнічні вимірювання»
Методичні вказівки розглянуті та рекомендовані у навчальний процес цикловою комісією
Протокол №____ _____ __________ 20_ р.
Голова циклової комісії ________________ ___________________
м. Біла Церква
Тема: Мова програмування високого рівня Турбо Паскаль
Мета: Засвоїти основні функції мови Паскаль та операції, що визначені для кожного із стандартних типів; навчитись складати, редагувати та реалізовувати найпростіші лінійні програми на мові Паскаль
Теоретичні відомості:
У мові Паскаль програма складається із заголовка, розділів описів і розділу операторів:
program <ім'я програми>;
<розділи описів>
begin
<розділ операторів>
end.
Описи — це складова частина структури програми, в якій зазначаються імена об'єктів програми (міток, констант, змінних, типів даних користувача, підпрограм тощо) і вказуються їхні характеристики.
Описи в мові Паскаль складаються з окремих розділів:
uses... {опис імен бібліотечних модулів, які будуть використову
ватися в програмі}
label... {oпис міток}
const... {опис констант}
type... {опис типів даних}
var... {опис змінних}
procedure...
function... {опис процедур і функцій}.
У мові Турбо Паскаль розділи описів можуть іти в довільному порядку і навіть повторюватися; головне, щоб імена, які використовуються, були або стандартними, або попередньо описаними. Заголовок у мові Turbo Pascal не обов'язковий, оскільки він не несе жодного смислового навантаження.
Стандартні математичні функції мови програмування Turbo Pascal
-
Abs(X) — обчислення абсолютного значення (модулю) Х.
-
ArcTan(X) — обчислення кута, тангенс якого дорівнює Х (тобто математичний arctg(X)) , значення кута подано в радіанах і може знаходитися в діапазоні від -π/2 до π/2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/π. Результат має дійсний тип.
-
Cos(X) — обчислення косинуса Х, параметр задає значення кута в радіанах.
-
Exp(x) — обчислення значення експоненти аргументу (ex). Результат завжди має дійсний тип.
-
Frac(X) — знаходження дробової частини Х. Результат має дійсний тип.
-
Int(X) — знаходження цілої частини Х (дробова частина відкидається). Результат має дійсний тип.
-
Ln(x) — обчислюється натуральний логарифм аргументу. Результат має дійсний тип. За допомогою функцій Exp та Ln можна обчислити довільну степінь числа наступним чином: ab=Exp(b*Ln(a)), відповідно корінь можна подати так само a1/b (тобто корінь степіня b з a)=Exp(1/b*Ln(a)).
-
Pi — повертає значення числа p (3.1415926).
-
Sin(X) — обчислення синуса Х. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/p. Результат має дійсний тип.
-
Sqr(X) — піднесення до квадрату значення Х. Тип результату збігається з типом параметра.
-
Sqrt(X) — обчислення квадратного кореня з Х. Тип результату дійсний.
Оператори мови Паскаль можна поділити на прості, структуровані та оператори введення-виведення. До простих операторів відносять:
-
порожній оператор, який не має жодної форми запису та не виконує жодних дій; використовується для узгодження синтаксичних правил вживання розділового знака «;»;
-
оператор присвоювання
<ідентифікатор>:=<вираз>;
Тип виразу та ідентифікатора повинні бути сумісними. Це означає, що, наприклад, ідентифікатору дійсного типу можна присвоїти вираз цілого типу, але не навпаки. Пов'язано це з тим, що для збереження величини дійсного типу потрібен, як правило, більший обсяг пам'яті, ніж для величини цілого типу;
-
оператор безумовного переходу
goto <мітка>;
Для формування міток можна використовувати цифри та літери латинського алфавіту. Мітки описуються у розділі label. Перехід на мітку можна робити лише в межах того програмного блоку (тіла програми або підпрограми), в якому вона описана. Наприклад,
label М1, 123;
begin
123:<оператор1>;
goto М1;
goto 123;
М1:<оператор2>;
end.
-
оператор виклику процедури (стандартної або описаної користувачем) має наступний вигляд:
<ім'я процедури> [(фактичні параметри)];
До структурованих операторів відносять:
-
складений оператор, який служить для об'єднання деякої кількості операторів:
begin
<оператор1>;
........
<оператор N>;
end;
-
умовний оператор іf:
if <умова> then <оператор1> else <оператор2>;
-
оператор вибору case:
case <вираз-селектор вибору> оf
<список міток1>: <оператор1>;
<список міток N>:<оператор N>;
else <оператор>;
end;
Вираз-селектор вибору та мітки розгалужень в операторі case повинні належати до простого упорядкованого типу. Якщо значення виразу збігається з однією з міток певного розгалуження, то виконується оператор з цього розгалуження. Якщо значення виразу не збігається з жодною з міток, то, при його наявності спрацьовує оператор з розгалуження else;
-
цикл із параметром for:
for <змінна>:=<вираз1> to <вираз2> do <оператор>;
for <змінна>:=<вираз1> downto <вираз2> do <оператор>;
Змінна-параметр циклу, як і вираз1 та вираз2, повинні належати до простого упорядкованого типу. Вираз1 та вираз2 задають діапазон значень, яких набуває змінна при переході від одного кроку циклу до наступного. У першому операторі for змінна набуває значень у зростаючому порядку, а в другому — у спадному;
-
цикл із передумовою while працює доти, поки умова залишається істинною.
while <умова> do <оператор>;
-
цикл з післяумовою repeat працює доти, поки умова буде хибою.
repeat
<оператор1>;
<оператор N>
until <умова>;
Введення і виведення даних здійснюється у мові Паскаль за допомогою відповідних процедур:
Read (<список змінних>); —дозволяє ввести значення для вказаних змінних із клавіатури,
Write (<список виведення>); —виводить значення елементів списку виведення на екран монітора.
Процедура Writeln(<список виведення>) після роздрукування елементів списку переводить курсор у наступний рядок на екрані.
Елементами списку виведення можуть бути вирази та константи, змінні, виклики функцій як окремі випадки виразів.
Приклади розв’язування задач
Приклад 1(на мітки і оператор безумовного переходу)
Ввести номер дня тижня і вивести відповідну йому назву на українській і російській мові.
Розв’язання:
Program zadacha;
M: label;
Var i: integer;
Begin
M: write(‘vvod i’);
Readln(i);
Case i of
1: writeln(‘понеділок, понедельник’)
2: writeln(‘вівторок, вторник’)
3: writeln(‘середа, среда’)
4: writeln(‘четвер, четверг’)
5: writeln(‘п’ятниця, пятница’)
6: writeln(‘субота, субота’)
7: writeln(‘неділя, воскрисенье’)
Else i<1 or i>7 then goto M
end;
end.
Приклад 2 (оператори циклу)
Протабелювати функцію y=x2+1 на відрізку x є [-4;4] з кроком 1.
Розв’язання:
Цикл з параметром:
program zadacha2;
var x,y :integer;
begin
for x:=-4 to 4 do
begin
y:=x*x+1;
writeln (‘x=’,x,’y=’,y);
end;
end.
Цикл з передумовою:
program zadacha3;
var x,y:integer;
begin
x:=-4;
while x<=4 do
begin
y:=x*x+1;
writeln (‘x=’,x,’y=’,y);
x:=x+1;
end;
end.
Цикл з пост умовою:
program zadacha 4;
var x,y:integer;
begin
x:=-4;
repeat
y:=x*x+1;
writeln (‘x=’,x);
x:=x+1;
until x>4;
end.
Приклад 3
Скласти програму обчислення функції мовою Turbo Pascal: якщо x=y, то інакше
Розв’язування:
Program zadacha;
var f, y, x:real;
begin
writeln(‘введіть числові дані x y’);
write(‘x:’);
read(x);
write(‘y:’);
read(y);
if x=y then f:=sin(2*y)+(5/(1+cos(3*x))) else f:=(4*x)/(sin(12*y)+5);
writeln(‘результати обчислень’,f:5:3);
end.
Хід виконання роботи:
Завдання 1
Дано катети прямокутного трикутника. Знайти його гіпотенузу.
Завдання 2
З рейтинговою системою оцінка визначається таким чином: якщо сумарний бал учня становить не менше 92% від максимального, то виставляється оцінка 12, якщо не нижче 70% - то оцінка 8, якщо ж не нижче 50%, - то оцінка 5, а в інших випадках оцінка 2. Визначити оцінку учня, ящо він набрав N балів, а максимальне значення сумрного балу становить S.
Завдання 3
Скласти програму для обчислення суми чисел використовуючи мову програмування Turbo Pascal:
Контрольні запитання:
-
Яка структура Паскаль-програми?
-
З чоготпочинається і чим закінчується виконавча частина?
-
Який розділовий знак відокремлює оператори?
-
Які службові слова використовують при записі оманди розгалуження?
-
Які оператори циклу ви знаєте?