Освоєння технології структурного та модульного програмування при розробці й створенні програми мовою Турбо Паскаль при реалізації на ПЕОМ задач з використанням процедур

ЛАБОРАТОРНА РОБОТА № 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. Варианты задач с процедурами

  1. Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю под главной диагональю и на главной диагонали. Ввод, вывод матрицы и вычисление сумм оформить в виде отдельных процедур.
  2. Даны матрицы А(4,3) и В(3,5). Для каждой матрицы найти наибольший и наименьший элементы главной диагонали. Ввод матрицы и поиск минимального и максимального элементов оформить в виде отдельных процедур.
  3. Даны матрицы А(NxM) и В(MxN ).Вычислить АхВ и ВхА. Ввод, вывод матрицы и умножение матриц оформить в виде отдельных процедур.
  4. Даны матрицы А(4,3) и В(3,5). Найти средние геометрические положительных элементов каждой строки матриц. Ввод, вывод матрицы и поиск средних геометрических оформить в виде отдельных процедур.
  5. Даны матрицы А(6,3) и В(4,5).Найти наибольший элемент каждой матрицы и записать 1 в ту строку и столбец, в которых он находится. Ввод, вывод матрицы и преобразование матрицы оформить в виде отдельных процедур.
  6. Даны матрицы А(3,4) и В(5,2).Построить новые матрицы , поменяв местами строки и столбцы. Ввод, вывод матрицы и транспонирование матрицы оформить в виде отдельных процедур.
  7. Даны матрицы А(6,2) и В(4,5).Найти наибольший элемент каждой матрицы и номера строк и столбцов, в которых он находится. Ввод, вывод матрицы и поиск максимального элемента оформить в виде отдельных процедур.
  8. Даны матрицы А(4,4) и В(3,4).Найти наименьший элемент каждой матрицы и записать в строку, где находится этот элемент 10. Ввод, вывод матрицы и преобразование матрицы оформить в виде отдельных процедур.
  9. Даны матрицы А(4,5) и В(5,5). Для каждой матрицы вычислить сумму элементов строк и определить наименьшее значение этих сумм и номер соответствующей строки. Ввод, вывод матрицы и поиск номера строки оформить в виде отдельных процедур.
  10. Даны матрицы А(3,3) и В(4,5).Определить количество положительных и отрицательных элементов матриц. Ввод, вывод матрицы и поиск количества положительных и отрицательных в виде отдельных процедур.
  11. Даны матрицы А(5,2) и В(3,2). Для каждой матрицы найти наибольшие элементы каждой строки матрицы и записать их в одномерный массив. Ввод, вывод матрицы и формирование одномерного массива оформить в виде отдельных процедур.
  12. Даны матрицы А(3,3), В(5,5), С(4,4). Найти произведения: АЕ, ЕВ, СЕ, где Е - единичная матрица. Ввод матрицы, вывод матрицы, перемножение матриц, формирование единичной матрицы оформить как отдельные подпрограммы.
  13. Даны три матрицы А(4,3), В(5,4), С(5,4) и два действительных числа x и y. Найти x*A, y*B, x*C+y*B. Ввод матрицы, вывод матрицы, сложение матриц, умножение матрицы на число оформить как отдельные подпрограммы.
  14. Даны три матрицы А(4,3), В(5,4), С(5,5). Найти AТ, BT, CT, где AТ, BT, CT- транспонированные матрицы. Ввод матрицы, вывод матрицы, транспонирование матрицы оформить как отдельные подпрограммы.
  15. Даны матрицы А(3,5), В(5,2), С(4,6). В каждой матрице поменять местами первую и последнюю строки. Ввод матрицы, вывод матрицы, обмен строк оформить как отдельные подпрограммы.
  16. Даны матрицы А(4,5), В(5,3), С(4,6). В каждой матрице поменять местами первый и последний столбцы. Ввод матрицы, вывод матрицы, обмен столбцов оформить как отдельные подпрограммы.
  17. Даны матрицы А(3,5), В(5,2), С(4,6). В каждой матрице определить местоположение максимального элемента. Ввод матрицы, поиск местоположения максимального элемента оформить как отдельные подпрограммы.
  18. Даны матрицы А(4,5), В(5,3), С(4,6). Образовать три новых матрицы путем деления каждого элемента исходной матрицы на среднее арифметическое ее элементов. Ввод матрицы, вывод матрицы, преобразование матриц оформить как отдельные подпрограммы.
  19. Даны матрицы А(3,3), В(5,5), С(4,4). В каждой матрице поменять местами элементы, стоящие на главной и побочной диагонали. Ввод матрицы, вывод матрицы, преобразование матрицы оформить как отдельные подпрограммы.
  20. Даны матрицы А(3,3), В(5,5), С(4,4). Для каждой матрицы вычислить сумму элементов главной диагонали. Ввод матрицы, вычисление суммы элементов главной диагонали оформить как отдельные подпрограммы.
  21. Даны матрицы А(3,5), В(5,2), С(4,6). Для каждой матрицы вычислить суммы строк. Ввод матрицы, вычисление сумм строк, вывод вектора оформить как отдельные подпрограммы.
  22. Даны матрицы А(4,5), В(5,3), С(2,6). Для каждой матрицы вычислить суммы столбцов. Ввод матрицы, вычисление сумм столбцов, вывод вектора оформить как отдельные подпрограммы.
  23. Даны матрицы А(3,3), В(5,5), С(4,4). Для каждой матрицы найти максимальный и минимальный элементы главной диагонали. Ввод матрицы, поиск минимального и максимального элементов оформить как отдельные подпрограммы.
  24. Даны матрицы А(3,5), В(5,2), С(4,6). Для каждой матрицы вычислить количество положительных и отрицательных элементов. Ввод матрицы, вычисление количества положительных и отрицательных элементов оформить как отдельные подпрограммы.
  25. Даны матрицы А(3,3), В(5,5), С(4,4). Для каждой матрицы определить максимальные элементы в строках и переместить их на главную диагональ. Ввод матрицы, вывод матрицы, преобразование матрицы оформить как отдельные подпрограммы.
  26. Даны матрицы А(4,4), В(3,3), С(5,5). Для каждой матрицы вычислить сумму элементов над главной диагональю под главной диагональю и на главной диагонали. Ввод матрицы и вычисление сумм оформить в виде отдельных подпрограмм.
  27. Некоторый элемент матрицы назовем седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце. Даны матрицы А(4,3), В(3,5), С(3,4). Для каждой матрицы найти номера строки и столбца какой-нибудь седловой точки. Ввод матрицы, поиск седловой точки оформить в виде отдельных подпрограмм.
  28. Даны матрицы А(4,3), В(3,5), С(3,4). Найти среднее геометрическое положительных элементов для каждой строки матрицы. Ввод матрицы, поиск средних геометрических, вывод вектора оформить в виде отдельных подпрограмм.
  29. Даны матрицы А(6,3), В(4,5), С(5,4). Найти наибольший элемент каждой матрицы и записать 1 в ту строку и столбец, в которых он находится. Ввод, вывод матрицы и преобразование матрицы оформить в виде отдельных подпрограмм.
  30. Даны матрицы А(5,2), В(3,2), С(6,4). Для каждой матрицы найти наибольшие элементы в каждой строке и записать их в вектор. Ввод матрицы, формирование вектора, вывод вектора оформить в виде отдельных подпрограмм.

PAGE 5

Освоєння технології структурного та модульного програмування при розробці й створенні програми мовою Турбо Паскаль при реалізації на ПЕОМ задач з використанням процедур