Освоєння технології структурного та модульного програмування при розробці й створенні програми мовою Турбо Паскаль при реалізації на ПЕОМ задач з використанням процедур
ЛАБОРАТОРНА РОБОТА № 8
Освоєння технології структурного та модульного програмування
при розробці й створенні програми мовою Турбо Паскаль
при реалізації на ПЕОМ задач з використанням процедур
Мета роботи
Дослідити роботу операторів процедур мови Паскаль; знати призначення, форму запису та особливості вживання процедур. Освоїти методику складання, відладки та розвязання Паскаль-програм (ПП) з використанням процедур на ПЕОМ.
Теоретичні відомості
Процедури і функції по своїй структурі подібні звичайним програмам і мають загальну назву підпрограми. Застосування підпрограм дає можливість зменшити число повторень однієї і тієї ж послідовності операторів, а так само конструювати програму, як набір окремих підпрограм. Для складних задач це істотно спрощує процес програмування.
У процедурах і функціях, як і в звичайних програмах, можуть бути описані власні мітки, константи, типи, власні змінні і навіть власні процедури і функції.
Опис кожної процедури починається з заголовка, в якому задається ім'я процедури і список формальних параметрів із указівкою їх типів; процедура може бути і без параметрів, тоді в заголовку вказується тільки її ім'я. За допомогою параметрів здійснюється передача вихідних даних у процедуру, а також передача результатів роботи назад у програму.
Загальна форма запису заголовка процедури:
procedure <ім'я процедури> (<список формальних параметрів>);
Список формальних параметрів може містити в собі параметри-значення, параметри-змінні, перед якими повинне стояти зарезервоване слово var, і деякі інші категорії формальних параметрів.
Виклик і виконання процедури здійснюється за допомогою оператора процедури:
<ім'я процедури>(<список фактичних параметрів>);
Розглянемо послідовно етапи створення програми з процедурами на конкретному прикладі.
1. Умова завдання:
Дано матриці A(4,4), B(3,4), C(2,5). Поділити кожний рядок матриці на максимальний елемент у цьому рядку. Введення, виведення матриці, перетворення матриці оформити у вигляді окремих підпрограм.
2. Створимо ПП з коментарями та відступами
Див. рис. 1.
Program MatrABC;
Uses
Crt;
Type
MatrType = Array[l..5O,l..5O] of Real;
Var
A, B, C : MatrType;
Procedure Vvod(Var D:MatrType; n, m:Integer; Ch:Char);
LD - Bsonumuu Maccus, n, m - ero paamepxocru,
Var
i, j : Integer;
Begin
for i:=l to n do
for j:=l to m do
begid
write(Chl:[:l ii '1'! jl '1 = ');
ReadLn(D[i,j])
end
End;
Procedure Vyvod(Var D:MatrIype; n, m:Integer);
Var
i, j : Integer;
Begin
for i:=l to n do
begin
for j:=l to m do
rite(D[i,j]:5:2, ' ');
WriteLn
end
End;
Procedure DivStr(Var D:MatrType; n, m:Integer);
far
Bax : Real; {M&KC. saaq. an-Ia}
i, 3 : Integer;
Begin
for i;=l to n do
begin
Max:fD[i,l];
for 3:=Q to m do
if D[i,3] > Max then
Qax:=D[i,3];
for qzfl to Q do
d D[i,j]:=D[i,j]/Max
en
End;
Begin
ClrScr;
WriteLn('Vvedite massiv A(4,4)');
Vvod(A, 4, 4, 'A'); {Bson Maccusa A}
DivStr(A, 4, 4); {Hpeo6pa3oBaxme A}
WriteLn('Preobrazovanniy massiv A)
Vyvod(A, 4, 4); {Bmson Maccnsa 3
WriteLn,
WriteLn('Vvedite massiv B(3,4)');
Vvod(B, 3, 4 'B'); {Baon Maccmsa B
DivStr(B, 3,,4); {Hpeo6pa3oBaxue B
NriteLn('Preobrazovanniy massiv B)
Vyyod(B, 5, 4);
WriteLn;
js
I
J
F
-.1
Рис. 1. Текст програми
Програма роботи .
3.1. Записати вказаний викладачем варіант завдання. Вивчити рекомендовану літературу та конспект лекцій.
3.2. Програмування задачи:
скласти ПП рішення задачи на ПЕОМ.
3.3. Оформлення звіту
Звіт повинен мати:
номер лабораторної роботи та їх назву;
умову задачі та дані свого варіанту;
лістінг ПП з коментарями та відступами, яка використовує підпрограми;
підготований тест для свого варіанту задачі;
скріншот результатів роботи ПП.
4. Варіанти завдань
Варіанти завдань наведені в табл. 8 та обираються студентом згідно номера у журналі групи.
Таблица 7. Варианты задач с процедурами
- Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю под главной диагональю и на главной диагонали. Ввод, вывод матрицы и вычисление сумм оформить в виде отдельных процедур.
- Даны матрицы А(4,3) и В(3,5). Для каждой матрицы найти наибольший и наименьший элементы главной диагонали. Ввод матрицы и поиск минимального и максимального элементов оформить в виде отдельных процедур.
- Даны матрицы А(NxM) и В(MxN ).Вычислить АхВ и ВхА. Ввод, вывод матрицы и умножение матриц оформить в виде отдельных процедур.
- Даны матрицы А(4,3) и В(3,5). Найти средние геометрические положительных элементов каждой строки матриц. Ввод, вывод матрицы и поиск средних геометрических оформить в виде отдельных процедур.
- Даны матрицы А(6,3) и В(4,5).Найти наибольший элемент каждой матрицы и записать 1 в ту строку и столбец, в которых он находится. Ввод, вывод матрицы и преобразование матрицы оформить в виде отдельных процедур.
- Даны матрицы А(3,4) и В(5,2).Построить новые матрицы , поменяв местами строки и столбцы. Ввод, вывод матрицы и транспонирование матрицы оформить в виде отдельных процедур.
- Даны матрицы А(6,2) и В(4,5).Найти наибольший элемент каждой матрицы и номера строк и столбцов, в которых он находится. Ввод, вывод матрицы и поиск максимального элемента оформить в виде отдельных процедур.
- Даны матрицы А(4,4) и В(3,4).Найти наименьший элемент каждой матрицы и записать в строку, где находится этот элемент 10. Ввод, вывод матрицы и преобразование матрицы оформить в виде отдельных процедур.
- Даны матрицы А(4,5) и В(5,5). Для каждой матрицы вычислить сумму элементов строк и определить наименьшее значение этих сумм и номер соответствующей строки. Ввод, вывод матрицы и поиск номера строки оформить в виде отдельных процедур.
- Даны матрицы А(3,3) и В(4,5).Определить количество положительных и отрицательных элементов матриц. Ввод, вывод матрицы и поиск количества положительных и отрицательных в виде отдельных процедур.
- Даны матрицы А(5,2) и В(3,2). Для каждой матрицы найти наибольшие элементы каждой строки матрицы и записать их в одномерный массив. Ввод, вывод матрицы и формирование одномерного массива оформить в виде отдельных процедур.
- Даны матрицы А(3,3), В(5,5), С(4,4). Найти произведения: АЕ, ЕВ, СЕ, где Е - единичная матрица. Ввод матрицы, вывод матрицы, перемножение матриц, формирование единичной матрицы оформить как отдельные подпрограммы.
- Даны три матрицы А(4,3), В(5,4), С(5,4) и два действительных числа x и y. Найти x*A, y*B, x*C+y*B. Ввод матрицы, вывод матрицы, сложение матриц, умножение матрицы на число оформить как отдельные подпрограммы.
- Даны три матрицы А(4,3), В(5,4), С(5,5). Найти AТ, BT, CT, где AТ, BT, CT- транспонированные матрицы. Ввод матрицы, вывод матрицы, транспонирование матрицы оформить как отдельные подпрограммы.
- Даны матрицы А(3,5), В(5,2), С(4,6). В каждой матрице поменять местами первую и последнюю строки. Ввод матрицы, вывод матрицы, обмен строк оформить как отдельные подпрограммы.
- Даны матрицы А(4,5), В(5,3), С(4,6). В каждой матрице поменять местами первый и последний столбцы. Ввод матрицы, вывод матрицы, обмен столбцов оформить как отдельные подпрограммы.
- Даны матрицы А(3,5), В(5,2), С(4,6). В каждой матрице определить местоположение максимального элемента. Ввод матрицы, поиск местоположения максимального элемента оформить как отдельные подпрограммы.
- Даны матрицы А(4,5), В(5,3), С(4,6). Образовать три новых матрицы путем деления каждого элемента исходной матрицы на среднее арифметическое ее элементов. Ввод матрицы, вывод матрицы, преобразование матриц оформить как отдельные подпрограммы.
- Даны матрицы А(3,3), В(5,5), С(4,4). В каждой матрице поменять местами элементы, стоящие на главной и побочной диагонали. Ввод матрицы, вывод матрицы, преобразование матрицы оформить как отдельные подпрограммы.
- Даны матрицы А(3,3), В(5,5), С(4,4). Для каждой матрицы вычислить сумму элементов главной диагонали. Ввод матрицы, вычисление суммы элементов главной диагонали оформить как отдельные подпрограммы.
- Даны матрицы А(3,5), В(5,2), С(4,6). Для каждой матрицы вычислить суммы строк. Ввод матрицы, вычисление сумм строк, вывод вектора оформить как отдельные подпрограммы.
- Даны матрицы А(4,5), В(5,3), С(2,6). Для каждой матрицы вычислить суммы столбцов. Ввод матрицы, вычисление сумм столбцов, вывод вектора оформить как отдельные подпрограммы.
- Даны матрицы А(3,3), В(5,5), С(4,4). Для каждой матрицы найти максимальный и минимальный элементы главной диагонали. Ввод матрицы, поиск минимального и максимального элементов оформить как отдельные подпрограммы.
- Даны матрицы А(3,5), В(5,2), С(4,6). Для каждой матрицы вычислить количество положительных и отрицательных элементов. Ввод матрицы, вычисление количества положительных и отрицательных элементов оформить как отдельные подпрограммы.
- Даны матрицы А(3,3), В(5,5), С(4,4). Для каждой матрицы определить максимальные элементы в строках и переместить их на главную диагональ. Ввод матрицы, вывод матрицы, преобразование матрицы оформить как отдельные подпрограммы.
- Даны матрицы А(4,4), В(3,3), С(5,5). Для каждой матрицы вычислить сумму элементов над главной диагональю под главной диагональю и на главной диагонали. Ввод матрицы и вычисление сумм оформить в виде отдельных подпрограмм.
- Некоторый элемент матрицы назовем седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Даны матрицы А(4,3), В(3,5), С(3,4). Для каждой матрицы найти номера строки и столбца какой-нибудь седловой точки. Ввод матрицы, поиск седловой точки оформить в виде отдельных подпрограмм.
- Даны матрицы А(4,3), В(3,5), С(3,4). Найти среднее геометрическое положительных элементов для каждой строки матрицы. Ввод матрицы, поиск средних геометрических, вывод вектора оформить в виде отдельных подпрограмм.
- Даны матрицы А(6,3), В(4,5), С(5,4). Найти наибольший элемент каждой матрицы и записать 1 в ту строку и столбец, в которых он находится. Ввод, вывод матрицы и преобразование матрицы оформить в виде отдельных подпрограмм.
- Даны матрицы А(5,2), В(3,2), С(6,4). Для каждой матрицы найти наибольшие элементы в каждой строке и записать их в вектор. Ввод матрицы, формирование вектора, вывод вектора оформить в виде отдельных подпрограмм.
PAGE 5
Освоєння технології структурного та модульного програмування при розробці й створенні програми мовою Турбо Паскаль при реалізації на ПЕОМ задач з використанням процедур