- •З м і с т
- •Лабораторна робота 13. Робота з множинними типами даних . . . 76 Лабораторна робота 14. Створення й обробка файлів . . . . . . . . . . 79
- •Порядок виконання лабораторних робіт
- •Оператор привласнювання
- •Оператори уводу-виводу
- •Завдання до лабораторної роботи
- •Лабораторна робота 2 програмування розгалуЖеного обчислювального процесу
- •Структура Паскаль–програми
- •Умовний оператор
- •Завдання до лабораторної роботи
- •Програмування розгалуЖеного циклічного
- •Завдання до лабораторної роботи
- •Лабораторна робота 4 нестандартні й обмежені типи даних. Оператор варіанта
- •Нестандартні типи даних
- •Обмежені типи даних
- •Оператор вибору варіанта
- •Оператор циклу for
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 5 регулярні типи даних. Селективна обробка масивів
- •Регулярні типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 6 формування робочих масивів за допомогою операцій селекції вихідного масиву
- •Сортування масивів
- •Завдання до лабораторної роботи
- •Лабораторна робота 7 вкладені цикли. Обробка двовимірних масивів
- •Загальні вказівки
- •Завдання до лабораторної роботи
- •Лабораторна робота 8 процедури і функції
- •Процедури
- •Функції
- •Завдання до лабораторної роботи
- •Лабораторна робота 9 обробка символьних даних
- •Символьний тип даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 10 обробка строкових даних
- •Строковий тип даних
- •Процедури
- •Функції
- •'Abcdef' copy(s,2,3) 'bcd';
- •'System' length(s) 6;
- •Завдання до лабораторної роботи
- •Лабораторна робота 11 комбіновані типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 12 файли і файлові типи даних
- •Файловий тип даних
- •Процедури обробки файлів
- •Завдання до лабораторної роботи
- •Лабораторна робота 13 робота з множинними типами даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 14 створення й оброблення файлів
- •Файли з типом
- •Процедури для роботи з файлами з типом
- •Функції для обробки файлів з типом
- •Завдання до лабораторної роботи
- •Лабораторна робота 15 коректування файлів
- •Завдання до лабораторної роботи
- •Лабораторна робота 16 робота з екраном у текстовому режимі засобами мови паскаль
- •Загальні вказівки
- •Процедури роботи з екраном
- •Процедури установлення текстових режимів I управління кольором
- •Процедури управління курсором
- •Процедура установлення текстових вікон
- •Завдання до лабораторної роботи
- •Лабораторна робота 17 перевірка достовірності даних
- •Вибір критеріїв достовірності
- •Типові алгоритми уводу I перевірки достовірності даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 18 графічні засоби мови паскаль
- •Графічні процедури мови Паскаль
- •Завдання до лабораторної роботи
- •Розрахунок масштабу I зрушення графіка
- •Процедура для креслення графіка
- •Завдання до лабораторної роботи
- •Порядок виконання роботи
- •Зміст звіту
- •Список рекомендованої літератури
- •Додаток а
Лабораторна робота 2 програмування розгалуЖеного обчислювального процесу
Мета роботи: виробити практичні навички в складанні алгоритмів, написанні та налагодженні програм на розгалужений обчислювальний процес.
Структура Паскаль–програми
Паскаль-програма складається із заголовка program і блоку. Блок складається із шести розділів:
1) розділ міток label;
2) розділ констант const;
3) розділ типів type;
4) розділ змінних var;
5) розділ процедур і функцій;
6) розділ дій (операторів).
Першому розділу може передувати необов’язкове речення uses. Замість одного оператора в будь-якому місці програми можна вставити цілий набір операторів, розділених крапкою з комою, які записані в операторні дужки begin end. Такий оператор називається складеним. Перед end крапка з комою звичайно не ставиться.
Умовний оператор
Загальний вид –
if a then p1 else p2;
Тут a - булевський (логічний) вираз; p1,p2 - оператори.
Булевський вираз може набувати одного з двох значень: true (правда, істина) або false (неправда).
Найпростішими логічними виразами є вираз відносини:
a1 op a2.
Тут a1, a2 - вирази, а op - операція відносини (=, <>, <, >, <=, і т.д.).
До булевських даних застосовні логічні операції and, or, not, xor. Булевський вираз визначає умову в операторі if, істинність якої веде до виконання оператора p1, а хибність - виконання оператора p2.
Наприклад:
if (X>5) and (Y<=10)
then
Z:=8
else
Z:= X+4;
Конструкції else р2 може не бути.
Приклади виконання завдання лабораторної роботи
Приклад 4. Обчислити корені квадратного рівняння
ax2 + bx + c = 0
за умови d = b2-4ac 0 за формулою
.
У противному випадку, тобто при d<0, передбачити вивід повідомлення «Дійсних коренів немає».
Блок-схема
Порядок роботи:
Крок 1. Уводимо a, b, c.
Крок 2. Обчислюємо d = b2 - 4ac.
Крок 3. Якщо d<0, виводимо повідомлення «Дійсних коренів немає», останов.
Крок 4. Обчислюємо
.
Крок 5. Виводимо x1, x2.
Крок 6. Останов.
Приклад 5. Дано дійсне число x. Скласти програму для обчислення функції f(x), якщо
Програма обчислення f(x) має вид
program pr5_1;
uses crt;
var x,y:real; k:char;
begin clrscr;
write('x ? '); readln(x);
if x<=0 then
y:=sqr(x)*x
else
if (x>0) and (x<=2) then
y:=sqr(x)+4*x+5
else
y:=sqr(x)-sin(pi*x*x/3);
writeln(' x= ',x:5:1,' y = ',y:5:1);
k:=readkey
end.
або
program pr5_2;
uses crt;
var x,y:real; k:char;
begin clrscr;
write('x ? '); readln(x);
if x<=0 then y:=sqr(x)*x;
if (x>0) and (x<=2) then y:=sqr(x)+4*x+5;
if x>2 then y:=sqr(x)-sin(pi*x*x/3);
writeln(' x= ',x:5:1,' y = ',y:5:1);
k:=readkey
end.
Приклад 6. Нехай D - заштрихована частина площини (рис. 1). Функція U визначається за х та y у такий спосіб:
Дані два числаx,y. Скласти програму для обчислення значення U.
Для опису ділянки D складемо рівняння ліній, що обмежують частину площини. Одержимо:
1) рівняння лінії 1 x=-1;
2) рівняння лінії 2 x2+y2=1;
3) рівняння лінії 3 визначимо із загального рівняння прямої. Для цього підставимо до рівняння прямої y=ax+b координати двох точок (-1;1) і (1;0). Вирішивши отриману систему лінійних рівнянь, знайдемо рівняння лінії 3: y=-0,5x+0,5.
Розіб'ємо ділянку D на дві підділянки: A, що лежить нижче осі OX, і B, що лежить вище осі OX. Тоді підділянку A можна описати системою нерівностей:
x2+y21; y0,
а підділянку B - системою нерівностей:
y 0,5x +0,5; x -1; y 0.
Ділянка D визначиться як сума підділянок A і B. Тоді програма обчислення U набуде виду
program pr6;
uses crt;
var x,y,u,z:real; a,b,d:boolean; k:char;
begin clrscr;
writeln(‘x,y? ‘); readln(x,y);
a:=(sqr(x)+sqr(y)<=1) and (y<=0);
b:=(x>=-1) and (y<=-0.5*x+0.5) and (y>=0);
d:=a or b;
if d then
begin
z:=(x/pi)/sqrt(1-sqr(x/pi));
u:=exp(x-y)+arctan(z)
end
else
u:=exp(sin(y)*ln(abs(x)))*ln(abs(x*sqr(y)));
writeln(‘D=’,D,’x=’,x:5:1,’y=’,y:5:1,’u=’,u:5:1);
k:=readkey
end.