Лабораторная работа №12

5668
знаков
6
таблиц
2
изображения

Цель работы: Изучение правил описания и вызова подпрограмм: процедур и функций. Получение навыков и овладение приемами работы над подпрограммами.

Задание№ 17. Посчитать сумму элементов лежащих выше главной диагонали матрицы для матрицы Z=X2+Y2.

Программа на Turbo Pascal

{Программа: Kyrsaсh }

{Цель: Найти сумму элементов выше главной диагонали }

{Переменные: }

{ X,Y - вводимые массивы }

{ N, M, A,B, Z - промежуточные массивы }

{ t - Размер массива }

{ i, j - переменные цикла }

{Программист: Позднышев А.А. группа 316 }

{Проверил: Новичков В.С. }

Program Lab_12;

uses crt;

Const

Nmax=10; {Максимальный размер массива}

Type

Matrics=array[1..Nmax,1..Nmax] of integer;

Masiv=array[1..Nmax] of integer;

Var

X,Y,Z,A,B:matrics;

M,N:masiv;

i,j,t:integer;

{Процедура ввода элементов массива}

{Параметры: t - размер массива, X - массив}

Procedure Vvod (t:integer; Var X:matrics);

Var

i,j:integer;

Begin{Vvod}

For i:=1 to t do

For j:=1 to t do

Begin {Ввод элементов}

Write ('[',i,',',j,']=');

Read (X[i,j]);

End; {Ввод элементов}

For i:=1 to t do

Begin {Вывод элементов}

For j:=1 to t do

Write (X[i,j]:5);

Writeln

End {Вывод элементов}

End;{Vvod}

{Процедура вывода элеменов матриц}

{Параметры: X,Y - матрицы, t - размер}

Procedure Echo (t:integer; X:matrics);

var

i,j:byte;

begin {Echo}

For i:=1 to t do

Begin

For j:=1 to t do

Write (X[i,j]:5);

Writeln

End

end; {Echo}

{Процедура умножения матриц}

{Параметры: X,Y - начальные массивы, Z - массив результат,t - размер}

Procedure Umn (X,Y:matrics; t:integer; Var Z:matrics);

var

i,j,k,s:integer;

begin {Umno}

for i:=1 to t do

for j:=1 to t do

begin

S:=0;

for k:=1 to t do

s:=s+X[k,i]*Y[j,k];

Z[i,j]:=s;

end;

end; {Umno}

{Процедура сложения массивов}

{Параметры: X,Y - начальные массивы, Z - массив результат, t - размер}

Procedure Summa(X,Y:matrics; t:integer; Var Z:matrics);

var

i,j:integer;

begin {Summa}

for i:=1 to t do

for j:=1 to t do

Z[i,j]:=X[i,j]+Y[i,j]

end; {Summa}

{Процедура для нахождения суммы ниже главной диагонали}

{Параметры: X - начальные массивы, Y - массив результат, t - размер}

Procedure Under (X:matrics; t:integer; Var Y:masiv);

var

s:real;

Begin

S := 0;

For i := 2 to t do

For j := 1 to i-1 do

S:=S + X[i, j];

WriteLn('Сумма элементов, лежащих ниже главной диагонали=', S:5:1);

End;

{Процедура для нахождения суммы выше главной диагонали}

{Параметры: X - начальные массивы, Y - массив результат, t - размер}

Procedure Over (X:matrics; t:integer; Var Y:masiv);

var

s:real;

Begin

S := 0;

For i := 1 to t-1 do

For j := i+1 to t do

S := S + X[i, j];

WriteLn('Сумма элементов, лежащих выше главной диагонали=', S:5:1);

ReadLn

End;

begin{lab_12}

clrscr;

writeln('Введите размеры матриц X,Y:');read(t);

writeln('Введите ',t*t,' элемента для каждой матрицы:');

writeln('Введите матрицу X:');vvod(t,X);

writeln('Введите матрицу Y:');vvod(t,Y);

writeln('Результат возведения матрицы X в квадрат:');

Umn(X,X,t,A);

Echo(t,A);

writeln('Результат возведения матрицы Y в квадрат:');

Umn(Y,Y,t,B);

Echo(t,B);

writeln('Полученный массив после преобразований:');

summa(A,B,t,Z);

Echo(t,Z);

under(Z,t,M);

over(Z,t,N);

end.{lab_12}

Блок-схема





Проведём детализацию в последовательности, определяемой нумерацией блоков на рис. 1.

Ввод размеров матриц X, Y. В данном блоке определён ввод размеров квадратных матриц X, Y (t – размер матриц).

Имя подпрограммы: VVOD
Входные параметры: количество элементов t*t
I=1(1)t

J=1(1)t

Ввод элементов
Выходные параметры: X – матрица размером t*t.

Рис.11. Детализация блока 2

схемы алгоритма.


Имя подпрограммы UMN
Входные параметры: X, Y – матрицы размером t*t

I=1(1)t
J=1(1)t

S=0
K=1(1)t

S=S+X[i,k]*Y[k,j]
C[i,j]=S
Выходные параметры: матрица Z размером t*t

Рис. 13. Детализация блока 4

схемы алгоритма
Ввод элементов можно представить соответствующей подпрограммой, структурограмма которой приведена на рис.11. Всего должно быть выведено t*t значений для каждого массива.

Печать элементов матриц X, Y (а также отладочная печать). В данном блоке определёна печать значений элементов квадратных матриц X, Y размером t*t.

Умножение матриц удобно представить следующей подпрограммой, структурограмма которой приведена на рисунке 13.

Сложение матрицы X и матрицы Y представлено в виде подпрограммы на рис.15.


Подпрограммы формирования вектора из сумм элементов выше и ниже главной диагонали представлена структурограммой на рисунке 16 и 17.


Имя подпрограммы OVER
Входные параметры: X – матрица, размером t*t

S=0
I=1(1)t–1

J=i+1(1)t
S=S+X[i,j]

Выходные параметры:

Y – матрица размером t.

Рис. 16. Детализация блока 8
схемы алгоритма
Имя подпрограммы: SUMMA
Входные параметры: X, Y – матрицы, размером t*t
I=1(1)t

J=1(1)t

Z[i,j]=X[i,j]+Y[i,j]

Выходные параметры: Z – матрица размером t*t.
Рис. 15. Детализация блока 7 схемы алгоритма


После каждой подпрограммы производится отладочная печать, представленная отдельной подпрограммой, структурограмма которой изображена на рис. 18.


Имя подпрограммы UNDER
Входные параметры: X – матрица, размером t*t

S=0
I=2(1)t

J=1(1)i-1
S=S+X[i,j]

Выходные параметры:

Y – матрица размером t.

Рис. 17. Детализация блока 8
схемы алгоритма

Имя подпрограммы: Echo
Входные параметры: X – матрица, размером t*t
I=1(1)t

J=1(1)t

Вывод элементов
Выходные параметры: Y – матрица размером t*t.
Рис. 18. Детализация подпрограммы вывода элементов


Министерство образования РФ


Рязанская государственная радиотехническая академия


Кафедра ВПМ


Отчет о

лабораторной работе № 12:

«ПРОЦЕДУРЫ И ФУНКЦИИ»


Выполнил: ст. гр. 316

Позднышев А.А.

Проверил: Новичков В.С.


Рязань 2004


Информация о работе «Лабораторная работа №12»
Раздел: Информатика, программирование
Количество знаков с пробелами: 5668
Количество таблиц: 6
Количество изображений: 2

Похожие работы

Скачать
114601
5
73

... концентрических окружностей с уменьшающимся радиусом по мере затухания колебаний скорости и момента. Аналогичная картина наблюдается при ступенчатом набросе нагрузки. 5. РАЗРАБОТКА ВИРТУАЛЬНОЙ ЛАБОРАТОРНОЙ РАБОТЫ НА БАЗЕ ВИРТУАЛЬНОЙ АСИНХРОННОЙ МАШИНЫ   Иную возможность анализа АД представляет специализированный раздел по электротехнике Toolbox Power System Block. В его библиотеке имеются блоки ...

Скачать
193894
73
12

аучного цикла является отсутствие возможности реальной постановки учебного, и лабораторного эксперимента. Хотя в настоящее время имеются разработки виртуальных лабораторных практикумов, однако окончательно решение проблемы требует пристального внимания специалистов различных профилей, в том числе и психолого-педагогического. 1.2 Роль технологии виртуальных приборов обучения в техническом вузе ...

Скачать
50943
24
10

... 17.6 - 2.5 2 22.5 109.4 20.1 16.7 - 3.4 - 2.8 3 22.5 175. - 2.4   Задание 4. Проверка закона сохранения импульса.   ОТЧЕТ   ……………………………………………………………………………. о выполнении лабораторной работы №2 Законы сохранения в механике. Колебательное движение   Задание 1. Исследование затухания колебаний маятника Упражнение 1. Закон затухания.   Таблица 1. ...

Скачать
34621
0
5

... и их красота украшают здание школы, воспитывают эстетические чувства. Во второй главе показано место и роль древесных и кустарниковых форм как объекта лабораторных исследований. Глава 2. ДРЕВЕСНЫЕ И КУСТАРНИКОВЫЕ РАСТЕНИЯ КАК ОБЪЕКТ ЛАБОРАТОРНЫХ РАБОТ ПО ОБЩЕЙ БИОЛОГИИ Одной из ответственных задач, стоящих перед учителем биологии, является повышение эффективности всех применяемых в школе ...

0 комментариев


Наверх