5. Листинг
label start,startA,startB,startC,startD;
type matrix = array[1..10,1..10] of integer;
var N,M,i,j,k,code: integer;
var A,B,C,D,E,X,Xtmp1,Xtmp2 : matrix;
var input : string;
{процедура сложения матриц}
procedure Madd ( MA : matrix; MB : matrix);
begin
for i := 1 to N do begin
for j := 1 to N do begin
X[i,j] := MA[i,j] + MB[i,j];
end;
end;
end;
{процедура вычитания матриц}
procedure MSub ( MA : matrix; MB : matrix);
begin
for i := 1 to N do begin
for j := 1 to N do begin
X[i,j] := MA[i,j] - MB[i,j];
end;
end;
end;
{процедура умножения матрицы на число}
procedure MK ( MA : matrix; k : integer);
begin
for i := 1 to N do begin
for j := 1 to N do begin
X[i,j] := MA[i,j] * k;
end;
end;
end;
begin
Start:
writeln ('Введите размер матрицы(2-9)');
{примем размеры матриц}
readln (input);
val (input,N,code);
if code = 1 then begin
writeln ('Ошибка - нечисловое значение');
goto Start;
end;
if (N > 9) or (N < 2) then
begin
writeln ('Неверный размер матрицы');
goto Start;
end;
StartA:
writeln ('Матрица A:');
for i := 1 to N do
for j := 1 to N do
begin
writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');
readln (input);
val (input,M,code);
if code = 1 then begin
writeln ('Ошибка - нечисловое значение');
goto StartA;
end;
A[i,j] := M;
end;
StartB:
writeln ('Матрица B:');
for i := 1 to N do
for j := 1 to N do
begin
writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');
readln (input);
val (input,M,code);
if code = 1 then begin
writeln ('Ошибка - нечисловое значение');
goto StartB;
end;
B[i,j] := M;
end;
StartC:
writeln ('Матрица C:');
for i := 1 to N do
for j := 1 to N do
begin
writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');
readln (input);
val (input,M,code);
if code = 1 then begin
writeln ('Ошибка - нечисловое значение');
goto StartC;
end;
C[i,j] := M;
end;
StartD:
writeln ('Матрица D:');
for i := 1 to N do
for j := 1 to N do begin
writeln ('Введите ',i,'-ое значение ',j,'-ого ряда');
readln (input);
val (input,M,code);
if code = 1 then begin
writeln ('Ошибка - нечисловое значение');
goto StartD;
end;
D[i,j] := M;
end;
{ФУНКЦИЯ}
MSub (B,C);
MK (X,3);
Xtmp1 := X;
MK (D,4);
Msub (Xtmp1,X);
Madd (A,X);
for i := 1 to N do
begin
writeln (' ',i,'-ый ряд результ. м-цы: ');
for j:= 1 to N do begin
write (' ',X[i,j], ',');
end;
writeln ('');
end;
end.
6. Контрольный пример
Введите размер матрицы(2-9)
2
Матрица A:
Введите 1-ое значение 1-ого ряда
1
Введите 1-ое значение 2-ого ряда
1
Введите 2-ое значение 1-ого ряда
1
Введите 2-ое значение 2-ого ряда
1
Матрица B:
Введите 1-ое значение 1-ого ряда
2
Введите 1-ое значение 2-ого ряда
2
Введите 2-ое значение 1-ого ряда
2
Введите 2-ое значение 2-ого ряда
2
Матрица C:
Введите 1-ое значение 1-ого ряда
3
Введите 2-ое значение 1-ого ряда
3
Введите 2-ое значение 2-ого ряда
3
Матрица D:
Введите 1-ое значение 1-ого ряда
4
Введите 1-ое значение 2-ого ряда
4
Введите 2-ое значение 1-ого ряда
4
Введите 2-ое значение 2-ого ряда
4
1-ый ряд результ. м-цы:
-18, -18,
2-ый ряд результ. м-цы:
-18, -18,
При проверке X = A+3(B-C)-4*D получаем аналогичный результат.
7. Инструкция пользователю
После запуска программы пользователю предлагается выбрать размер матриц, с которыми он будет оперировать в дальнейшем. Допустимый диапазон – от 2 до 9.
При выборе размера матриц следует учесть, что большему размеру соответствует значительно большее количество элементов.
На вопрос: «Введите размер матрицы(2-9)» следует нажать клавишу соответствующей цифры, а затем <Enter>.
Затем появится следующее приглашение:
Матрица A:
Введите 1-ое значение 1-ого ряда
На что следует ввести значение обозначенного элемента матрицы A и нажать <Enter>.
Таким образом необходимо заполнить матрицы A,B,C и D.
После чего можно программа выдаст результат. Например:
1-ый ряд результ. м-цы:
-18, -18,
2-ый ряд результ. м-цы:
-18, -18,
Список литературы
1. http://www.btpascal.chat.ru/ - сайт.
... «В» (в программе – MAS2), пользователю предлагается ввести ее размеры, как и при вводе матрицы «А», далее программа проверяет, возможно ли проведение выбранной операции над матрицами с введенными параметрами. Если операция невозможна, то на экран выводится сообщение об ошибке, и программа завершает работу. Иначе, операция выполняется, и ее результирующая матрица «С» (в программе – MAS3) выводится ...
... от 1. Для того, чтобы MathCAD вел отсчет номеров строк и столбцов от 1, нужно задать значение переменной ORIGIN:=1. Функции, предназначенные для работы с задачами линейной алгебры, собраны в разделе “Векторы и матрицы” диалога “вставить функцию” (напоминаем, что он вызывается кнопкой на панели “Стандартные”). Основные из этих функций будут описаны позже. Транспонирование Рис.2 ...
... изучения функционального анализа являются бесконечномерные векторные пространства. 1 Постановка задачи Требуется разработать программу, реализующую основные операции алгебры матриц: сложение, вычитание, умножение, транспонирование, а также умножение матрицы на число. Пример 1. Над матрицами А и В выполнить основные операции: . Сумма матриц: . Разность матриц: . Транспонирование ...
... 2.0Ghz. Оперативная память не менее 512 Мбайт, достаточное количество свободного места на диске – порядка 1 Гбайт. 2. Разработка рабочего проекта 2.1 Разработка программы Проект программы содержит три окна: 1. Form1 – главное окно (выполнение операции над матрицами). 2. Form2 – справка о разработчике. Окно Form1. Главное окно программы – Form1 Ниже приведены описание ...
0 комментариев