Заняття № 3.
Розробка та виконання програм на мові Pascal.
Мета: систематизація знань, формування вмінь і навичок, розробки та виконання на ЕОМ найпростіших програм на мові Pascal.
Теоретичні відомості.
Програма на мові Pascal складається:
- Розділ оголошень;
- Розділ текстів процедур і функцій;
- Розділ основного блоку.
Розділ оголошень
program заголовок програми:
($ ...) Глобальні директиви компілятора:
uses підключаємі бібліотеки:
label розділ оголошення глобальних міток:
const розділ оголошення глобальних констант:
type розділ оголошення глобальних типів:
var розділ оголошення глобальних змінних:
Розділ текстів процедур і функцій
procedure (function)
label розділ оголошення локальних міток:
const розділ оголошення локальних констант:
type розділ оголошення локальних типів:
var розділ оголошення локальних змінних:
begin основний блок процедури або функції:
end;
Розділ основного блоку програми.
begin основний блок програми:
end.
Програми діляться на прості (лінійні), розгалужені та циклічні. У простих програмах відсутні будь-які перевірки умов та використовуються лінійні оператори. В розгалужених можуть бути оператори умовного та безумовного переходу.
Умовні:
скорочена форма IF умова THEN опер.
повна форма IF умова THEN опер.1 ELSE опер. 2
Оператор безумовного переходу - GOTO «мітка».
Оператор множинного вибору:
CASE вираз OF
мітка1: опер. 1;
мітка2: опер. 2;
END;
Розрізняють три способи організації циклів:
1) цикл з параметром (FOR .. TO .. DO);
2) цикл з післяумовою (REPEAT UNTIL);
3) цикл з передумовою (WHILE .. DO).
Індивідуальне завдання.
Варіант № 3.
Скласти та виконати на ЕОМ програми розв'язування слідуючих задач:
Завдання 1.
Обчислити та вивести на очищений екран з К-ї позиції L-го рядка в форматованого вигляді значення вихідних даних та результатів обчислення виразу:
Обчислити значення виразу на ЕОМ для значень:
A =- 6, b = 6.4, c = 8.85, k = 20, l = 10
Завдання 2.
Обчислити значення даної функції, використовуючи оператори IF_THEN, IF_THEN_ELSE (два варіанти програми):
Виконати для: a =- 2.3, b =- 8, t1 =- 4.5, t2 = 1.2 * 10-3, t3 = 4.3
Завдання 3.
Обчислити та вивести на екран в стовпчик таблицю значень функції:
Для значень Х із проміжку Х = [-3,5] з кроком h = 1.2
Скласти програми, використавши всі структури циклів.
Завдання 1:
program zanattia3;
uses crt;
const
k = 20;
l = 10;
a =- +6;
b = 6.4;
c = 8.85;
var
f: real;
begin
clrscr;
f: = (exp (a) +2 * ln (b + c))/(arctan (b)) + a * b;
gotoxy (k, l);
textcolor (2);
write ( 'Вiдповiдь:');
textcolor (3);
write (f: 7:5);
textcolor (14);
write ( 'при а =- 6, в = 6.4, с = 8.85');
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И:
______________________________________________________________________________< br />
Вiдповiдь: -34.54943 при а =- 6, в = 6.4, с = 8.85
______________________________________________________________________________< br />
Завдання 2:
program zanattia3_variant1;
uses crt;
const
a =- 2.3;
b =- 8;
t1 =- 4.5;
t2 = 1.2e-3;
t3 = 4.3;
var
y, t: real;
function obch (t: real): real;
begin
if t> 3 then obch: = exp (t)/ln (t);
if t
if ((t =- 3)) then obch: = sin (t)/cos (t) + sqrt (a * b + b);
end;
begin
clrscr;
t: = t1;
y: = obch (t);
writeln ( 'при t =', t: 7:3, 'вiдповiдь:', y: 7:3);
t: = t2;
y: = obch (t);
writeln ( 'при t =', t: 7:3, 'вiдповiдь:', y: 7:3);
t: = t3;
y: = obch (t);
writeln ( 'при t =', t: 7:3, 'вiдповiдь:', y: 7:3);
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И:
______________________________________________________________________________< br />
при t = -4.500 вiдповiдь: 18.500
при t = 0.001 вiдповiдь: 3.226
при t = 4.300 вiдповiдь: 50.527
______________________________________________________________________________< br />
program zanattia3_variant2;
uses crt;
const
a =- 2.3;
b =- 8;
t1 =- 4.5;
t2 = 1.2e-3;
t3 = 4.3;
var
y, t: real;
function obch (t: real): real;
begin
if t> 3 then obch: = exp (t)/ln (t) else
if t
end;
begin
clrscr;
t: = t1;
y: = obch (t);
writeln ( 'при t =', t: 7:3, 'вiдповiдь:', y: 7:3);
t: = t2;
y: = obch (t);
writeln ( 'при t =', t: 7:3, 'вiдповiдь:', y: 7:3);
t: = t3;
y: = obch (t);
writeln ( 'при t =', t: 7:3, 'вiдповiдь:', y: 7:3);
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И:
______________________________________________________________________________< br />
при t = -4.500 вiдповiдь: 18.500
при t = 0.001 вiдповiдь: 3.226
при t = 4.300 вiдповiдь: 50.527
______________________________________________________________________________< br />
Завдання 3:
program zanattia3_variant1;
uses crt;
var
y: real;
x: real;
h: real;
begin
clrscr;
x: =- 3;
h: = 1.2;
repeat
y: = 2 * sqr (x-1) +3;
writeln ( 'y =', y: 7:5, 'при x =', x: 7:5);
x: = x + h;
until x> 5;
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И:
______________________________________________________________________________< br />
y = 35.00000 при x =- 3.00000
y = 18.68000 при x =- 1.80000
y = 8.12000 при x =- 0.60000
y = 3.32000 при x = 0.60000
y = 4.28000 при x = 1.80000
y = 11.00000 при x = 3.00000
y = 23.48000 при x = 4.20000
______________________________________________________________________________< br />
program zanattia3_variant2;
uses crt;
var
y: real;
x: real;
h: real;
begin
clrscr;
x: =- 3;
h: = 1.2;
while x
y: = 2 * sqr (x-1) +3;
writeln ( 'y =', y: 7:5, 'при x =', x: 7:5);
x: = x + h;
end;
end.
Р Е З У Л Ь Т А Т И Р О Б О Т И П Р О Г Р А М И:
______________________________________________________________________________< br />
y = 35.00000 при x =- 3.00000
y = 18.68000 при x =- 1.80000
y = 8.12000 при x =- 0.60000
y = 3.32000 при x = 0.60000
y = 4.28000 при x = 1.80000
y = 11.00000 при x = 3.00000
y = 23.48000 при x = 4.20000
Висновок: закріпив основні навички роботи з усіми видами циклів, умов, рівнянь та математічнімх функцій в Torbo Pascal, виконав всі завдання по розробці програм з циклами та розгалудженою, які надає мова Pascal.
Заняття № 4.
Робота з масивами.
Мета: систематизація та поглиблення знань, формування вмінь і навичок, розробки програм обробки масивів.
Теоретичні відомості.
Масив - це структурний тип даних, який складається із фіксованого числа елементів одного типу. Для звернення до елемента масиву необхідно вказати в квадратних дужках порядковий номер елемента А [4]. При описі масиву необхідно вказати його ім'я, вказати, в яких границях здійснюється нумерація елементів, вказавши початкове і кінцеве значення індексів, вказати також тип елементів.
Двовимірний масив - це прямокутна таблиця, яка складається із m рядків та n стовпців. Опис двовимірного масива можна здійснити задає тип масиву або безпосередньо змінну типу масив.
Індивідуальне завдання.
Варіант № 15.
Скласти програму на мові Pascal розв'язку даної задачі та виконання її на ЕОМ. Передбачивши виведення на очищений екран масивів у вигляді матриці та результатів обчислень, супроводу їх необхідними поясненнями.
Завдання 1.
Обчислити максимальне значення із добутку елементів кожного із стовпчиків масива До (6,4).
Завдання 2.
Знайти нацбільшій та найменьших елементи масиву А (5,5) та поміняти їх місцями. Вивести масив порядках.
Завдання 1:
program masiv_1;
uses
crt;
var
k: array [1 .. 6,1 .. 4] of integer;
i, j, max: integer;
dob: array [1 .. 4] of real;
begin
clrscr;
for i: = 1 to 6 do
for j: = 1 to 4 do begin
write ( 'Введiть елемент K [', i ,',', j ,']=');< br />
readln (k [i, j]);
end;
for j: = 1 to 4 do begin
dob [j]: = 1;
for i: = 1 to 6 do dob [j]: = dob [j] * k [i, j];
end;
max: = 1;
for j: = 1 to 4 do if dob [max]
for i: = 1 to 6 do begin
for j: = 1 to 4 do write (k [i, j], '');
writeln;
end;
for j: = 1 to 4 do write (dob [j]: 3:1, '');
writeln;
write ( 'Максимальний добуток в стовпцi з номером', max);
writeln ( 'i дорiвнюї', dob [max]: 3:1);
end.
Р Е З У Л Ь Т А Т И О Б Ч И С Л Е Н Ь П Р О Г Р А М И:
22 3 3 3
4 5 6 7
3 3 3 32
2 -6 -5 4
-7 3 2 0
2 3 4 5
-7392.0 -2430.0 -2160.0 0.0
Максимальний добуток в стовпцi з номером 4 i дорiвнюї 0.0
Завдання 2:
program masiv_2;
uses
crt;
var
a: array [1 .. 5,1 .. 5] of integer;
i, j, max1, max2, min1, min2: integer;
temp: integer;
begin
clrscr;
for i: = 1 to 5 do
for j: = 1 to 5 do begin
write ( 'Введiть елемент A [', i ,',', j ,']=');< br />
readln (a [i, j]);
end;
max1: = 1;
min1: = 1;
max2: = 1;
min2: = 1;
for i: = 1 to 5 do
for j: = 1 to 5 do begin
if a [max1, max2]
max1: = i;
max2: = j;
end;
if a [min1, min2]> a [i, j] then begin
min1: = i;
min2: = j;
end;
end;
clrscr;
writeln ( 'Віхiдній масив :');< br />
for i: = 1 to 5 do begin
for j: = 1 to 5 do write (a [i, j], '');
writeln;
end;
temp: = a [max1, max2];
a [max1, max2]: = a [min1, min2];
a [min1, min2]: = temp;
writeln ( 'перетворений масив :');< br />
for i: = 1 to 5 do begin
for j: = 1 to 5 do write (a [i, j], '');
writeln;
end;
end.
Р Е З У Л Ь Т А Т И О Б Ч И С Л Е Н Ь П Р О Г Р А М И:
Віхiдній масив:
1 2 3 4 5
6 7 8 9 2
5 3 -3 -6 2
11 4 -7 3 2
8 9 2 2 3
Перетворений масив:
1 2 3 4 5
6 7 8 9 2
5 3 -3 -6 2
-7 4 11 3 2
8 9 2 2 3
Висновок: на практичній роботі я сістематізував знання, вміння та навички по роботі з масивами, як двомірнімі, так і одномірнімі, навчився працювати з матрицями та операціями з ними.
Заняття № 5.
Складання програм з використанням процедур та функцій.
Мета: систематизація та поглиблення знань, вмінь і навичок, розробки програм з використанням процедур та функцій.
Теоретичні відомості.
Підпрограма - це пойменована, логічно закінчена група операторів, яку можна викликати для виконання довільну кількість разів з різних місць програми.
В мові Pascal в ролі підпрограм використовуються процедури і функції. Функція представляє собою групу операторів, в результаті виконання яких обчислюється одне значення, що присвоюється значенню функції.
Опис функції здійснюється за допомогою ключового слова FUNCTION ім'я, а в дужках змінні.
Процедура на відміну від функції може повертати в програму одне, декілька або не повертати жодного значення. В заголовку після ключового слова PROCEDURE ім'я, а в дужках змінні зі своїми описами.
Індивідуальне завдання.
Варіант № 13.
Скласти програму на мові Pascal розв'язку даної задачі та виконання її на ЕОМ. Передбачивши виведення на очищений екран результатів обчислень, супроводу їх необхідними поясненнями.
Завдання 1.
Дано масив С (5,4). Зформувати новий масив К, кожний елемент якого дорівнює відповідному елементу масива С, поділеному на Факторіал суми його індексів. Надрукувати масив К по рядках, підрахувавши кількість його елементів, значення яких менше одиниці.
Завдання 2.
Знайти суму від'ємних елементів та середнє значення додатніх елементів масивів: L (6), B (5), H (7) цілих чисел, використовуючи процедури.
Завдання 1:
program var_1_1;
uses crt;
var
c, k: array [1 .. 5,1 .. 4] of real;
i, j: integer;
m: byte;
function facktorial (x: integer): real;
var
i: integer;
facktorial1: real;
begin
facktorial1: = 1;
if i
for i: = 1 to x do facktorial1: = facktorial1 * i;
facktorial: = facktorial1;
end;
end;
begin
clrscr;
writeln ( 'Введiть елементи масива :');< br />
writeln;
for i: = 1 to 5 do
for j: = 1 to 4 do begin
write ( 'Елемент [', i ,',', j ,']=');< br />
readln (c [i, j]);
end;
m: = 0;
clrscr;
for i: = 1 to 5 do begin
for j: = 1 to 4 do begin
k [i, j]: = c [i, j]/facktorial (i + j);
if k [i, j]
write (k [i, j]: 7:5, '');
end;
writeln;
end;
end.
РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ:
0.50000 0.33333 0.16667 -0.04167
0.66667 0.12500 -0.01667 0.00556
0.20833 -0.01667 -0.00417 0.00119
0.05833 0.01250 0.00417 0.00005
0.00417 -0.00099 0.00005 0.00000
Завдання 2:
program var_1_2;
uses crt;
var
l: array [1 .. 7] of integer;
b: array [1 .. 6] of integer;
h: array [1 .. 8] of integer;
v: integer;
s: real;
procedure masiv (var x: array of integer; kol: integer; var vid: integer; var ser: real);
var
i: integer;
begin
clrscr;
vid: = 0;
ser: = 0;
writeln ( 'Введiть елементи масива :');< br />
writeln;
for i: = 1 to kol do begin
write ( 'Елемент x [', i ,']=');< br />
readln (x [i]);
if x [i]
end;
ser: = ser/kol;
end;
begin
masiv (l, 6, v, s);
writeln ( 'Вiдемніх елементiв:', v);
writeln ( 'Середнє арифметичне суми додатнiх елементiв:', s);
repeat until keypressed;
masiv (b, 5, v, s);
writeln ( 'Вiдемніх елементiв:', v);
writeln ( 'Середнє арифметичне суми додатнiх елементiв:', s);
repeat until keypressed;
repeat until keypressed;
masiv (h, 7, v, s);
writeln ( 'Вiдемніх елементiв:', v);
writeln ( 'Середнє арифметичне суми додатнiх елементiв:', s);
end.
РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ:
Введiть елементи масива:
Елемент x [1] = 2
Елемент x [2] =- 2
Елемент x [3] =- 3
Елемент x [4] = 5
Елемент x [5] = 3
Елемент x [6] = 4
Вiдемніх елементiв: 2
Середнє арифметичне суми додатнiх елементiв: 2.33
Введiть елементи масива:
Елемент x [1] = 23
Елемент x [2] =- 3
Елемент x [3] =- 4
Елемент x [4] = 2
Елемент x [5] = 8
Вiдемніх елементiв: 2
Середнє арифметичне суми додатнiх елементiв: 6.60
Введiть елементи масива:
Елемент x [1] = 4
Елемент x [2] = 5
Елемент x [3] =- 6
Елемент x [4] = 3
Елемент x [5] = 2
Елемент x [6] =- 7
Елемент x [7] = 0
Вiдемніх елементiв: 2
Середнє арифметичне суми додатнiх елементiв: 2.00
Висновок: на практичній роботі я сістематізував та поглибив вміння та навички по роботі з функціями і процедурами у власних програмах, які дуже легко використовувати завдяки процедурам та функціям.