- •Лабораторна робота №1. Тема: Програмування алгоритмів циклічної структури. Оператор циклу з параметром. Оператори циклу while, repeat.
- •Хід роботи
- •Лабораторна робота №2. Тема: Робота з одновимірними масивами.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 2 . Масиви.
- •Дії над масивами. Заповнення масиву даними
- •Виведення масиву.
- •Дії з одновимірними масивами
- •Сортування масиву
- •Лабораторна робота №3. Тема: Сортування масивів. Робота з двовимірними масивами.
- •Хід роботи
- •Лабораторна робота №4. Тема: Процедури та функції. Рекурсивні функції. Відкриті масиви
- •Хід роботи
- •Використання процедур без параметрів та з параметрами.
- •Використання функцій.
- •Лабораторна робота №5. Тема: Робота з даними рядкового типу.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 5 . Рядки (string)
- •Змінну рядкового типу оголошують за допомогою слова string так:
- •Лабораторна робота №6. Тема: Модулі користувача. Модулі crt і graph.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 6. Модулі.
- •Виведення тексту
- •Приклад виводу тексту.
- •Поняття модуля
- •Структура модуля
- •Компіляція модулів
- •Стандартні модулі Короткий опис модулів
- •Графіка
- •Лабораторна робота №7. Тема: Записи. Команда приєднання (with).
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 7. Поняття запису
- •Оператор with
- •Лабораторна робота №8. Тема: Робота з текстовими файлами. Використання типізованих файлів.
- •Хід роботи
- •Теоретичні відомості до лабораторної роботи № 8. Файли і робота з ними.
Лабораторна робота №4. Тема: Процедури та функції. Рекурсивні функції. Відкриті масиви
Мета роботи: Навчитися використовувати власні процедури та функції при створенні програм. Оволодіння практичними навиками роботи з процедурами: процедури без параметрів, з параметрами, відкриті масиви; функціями і рекурсією.
Хід роботи
Запустіть програму TURBO PASCAL.
Використання процедур без параметрів та з параметрами.
Створіть програму з використанням процедури без параметрів. Задача: банк виплачує р % річних. В яку суму перетвориться внесок величиною Х0, встановлений на n років? В програмі дві процедури. Перша має ім'я Initialize і служить для введення початкових даних, друга — Calculate, служить для обчислення суми, яку шукають і виводу результату, який визначається по відомій в теорії відсотків формулі «складних відсотків»: Хn=Х0*(1 + 0,01р)n. Заголовки процедур містять тільки їхні імена.
Program Bank;
var X0: real; {початкова сума}
n : Byte; {термін внесення}
Procedure Initialize;
begin
Write ('Введіть суму внеску '); ReadLn(X0);
Write ('Введіть термін внеску '); ReadLn(n);
end;
Procedure Calculate;
Const p=8; {відсоток річних}
var Xn: real;
begin
Xn:=X0*Exp(n*Ln(1+0.01*p));
Write ('Сума складе: ',Xn:10:3 );
ReadLn;
end;
{Основна програма}
BEGIN
Initialize;
Calculate;
END.
Створіть програму з використанням процедури з параметрами. Задача: заповнити масив розмірністю 9*5, виконати над кожним елементом масиву вказану арифметичну дію
та
вивести всі елементи, які менші нуля.
program stepen;
const row=9;
column=5;
var i, j: word;
а,b: array[1..row,1..column] of real;
{Процедура піднесення в раціональний степінь від′ємних і додатніх чисел}
procedure degree(x: real; n,m: byte; var rez: real);
begin
if x>0 then rez:=exp(n/m*ln(x));
if x<0 then
if m mod 2 = 0 then rez:=exp(n/m*ln(abs(x)))
else rez:=-exp(n/m*ln(abs(x)));
if x=0 then rez:=0;
end;
{процедура для виводу горизонтальної лінії}
procedure gorline;
var k:integer;
begin
write('|');
for k:=1 to 30 do write('-');
write('|');writeln;
end;
{процедура для виводу від′ємних чисел}
procedure vivod(n,m: word; x: real);
begin
if x>=0 then exit;
writeln('| ',n,' | ',m,' | ',x:5:3,' |');
gorline;
end;
{ Основна програма. Введення чисел в двовимірний масив a[row,column]}
begin
writeln('Введення початкового масиву по рядках через пробіл');
writeln('в кінці рядка натисніть ENTER');
for i:=1 to row do
begin
write('рядок з номером ',i,': ');
for j:=1 to column do read(а[i,j]);
writeln;
end;
{Від кожного елемента беремо корінь 5-го ступеня}
for i:=1 to row do
for j:=1 to column do degree(а[i,j],1,5,b[i,j]);
writeln('вивід отриманого масиву чисел по рядках');
for i:=1 to row do
begin
write('рядок з номером ',i,': ');
for j:=1 to column do write(b[i,j]:5:3,' ');
writeln;
end;
writeln('виведення від′ємних елементів масиву');
gorline;
writeln('| рядок | стовпець | елемент |');
gorline;
for i:=1 to row do
for j:=1 to column do vivod(i, j, a[i,j]);
end.
Виконайте завдання свого варіанту з лабораторної роботи №3 (п.4) з використанням процедури з параметрами (масив: [1..4,1..4], заповніть використовуючи генератор випадкових чисел та виведіть його на екран аналогічно попередній програмі).
Використання процедур. Робота з відкритими масивами. Задача: Створіть 2 масиви за допомогою генератора випадкових чисел, відсортуйте їх і виведіть на екран.
program pr;
procedure inpm(var m:array integer);
var i:integer;
begin
writeln('вводимо елементи масиву');
for i:=0 to high(m) do
begin m[i]:=random(100);
write(m[i]:4)
end; writeln;
end;
procedure sortm(var m:array integer);
var i,j,buf,n:integer;
begin
n:=high(m);
for i:=1 to n do
for j:=n downto i do
if m[j]<m[j-1] then
begin buf:=m[j];
m[j]:=m[j-1];
m[j-1]:=buf;
end;
end;
procedure outm(var m:array integer);
var i:integer;
begin
for i:=0 to high(m) do write(m[i]:4);
writeln;
end;
{основна програма}
var m1:array[1..10] integer;
m2:array[1..15] integer;
m_res:array[1..25] integer;
begin
randomize;
writeln('мас м1'); inpm(m1); sortm(m1); outm(m1);
writeln('мас м2'); inpm(m2); sortm(m2); outm(m2);
end.
