TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

Нахождение произведения двух матриц.

Program Pro_39 (Input, Output);    

Объявление имени программы

Var         

Блок объявления глобальных переменных

X, Y, Z   : Array [1..20, 1..20] Of Integer;       

Матрицы целых чисел максимальной размерности 20x20

N1, M1, N2, M2  : Integer;

N1, M1, N2, M2 - число строк и столбцов перемножаемы матриц

i, j, k        : Integer;              

i, j, k - переменные циклов

S             : Integer;              

Переменная S - вспомогательная

Begin    

Начало тела программы

 

 

WriteLn ('PASCAL:Нахождение произведения двух матриц.');            

Формулировка цели алгоритма

 

 

Write ('Введите количество строк первой матрицы: ');               

Запрос ввода N1 - количества строк первой матрицы

ReadLn (N1);       

Ввод N1

Write ('Введите количество столбцов первой матрицы: ');           

Запрос ввода M1 - количества столбцов первой матрицы

ReadLn (M1);      

Ввод M1

WriteLn ('Введите поочередно элементы первой матрицы:');         

Запрос ввода элементов 1-ой матрицы

For i := 1 To N1 Do            

Цикл для i от 1 до N

For j := 1 To M1 Do           

Цикл для j от 1 до N

Begin    

Начало тела цикла

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

Вывод удобной подсказки

ReadLn (X [i, j] );

Ввод очередного элемента матрицы X

End;      

Конец тела цикла

 

 

WriteLn ('Число строк 2-ой матрицы равно числу столбцов 1-ой матрицы.');              

Сообщение пользователю

N2 := M1;             

Присваиваем числу строк второй матрицы число столбцов первой

Write ('Введите количество столбцов второй матрицы: ');           

Запрос ввода M2- количества столбцов первой матрицы:

ReadLn (M2);      

Ввод M2

WriteLn ('Введите поочередно элементы второй матрицы:');         

Запрос ввода элементов 2-ой матрицы

For i := 1 To N2 Do            

Цикл для i от 1 до N

For j := 1 To M2 Do           

Цикл для j от 1 до N

Begin    

Начало тела цикла

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

Вывод удобной подсказки

ReadLn (Y [i, j] );

Ввод очередного элемента матрицы Y

End;      

Конец тела цикла

 

 

For i := 1 To N1 Do            

Цикл для i от 1 до N1

For j := 1 To M2 Do           

Цикл для j от 1 до M2

Begin    

Начало тела цикла

S := 0;    

Начальное значение S приравниваем 0

For k := 1 To N2 Do           

Цикл для k от 1 до N2

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

Накапливаем в S значение очередного элемента результирующей матрицы

Z [i, j] := S;           

Заносим в Z [i, j] значение очередного вычисленного элемента

End;      

Конец тела цикла

 

 

WriteLn;              

Перевод строки

WriteLn ('Полученная матрица:');

Сообщение пользователю о выводе результата

For i := 1 To N1 Do            

Цикл для i от 1 до N1

Begin    

Начало тела цикла

For j := 1 To M2 Do           

Цикл для j от 1 до M2

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

Форматированный вывод в строку очередного элемента массива Z

WriteLn;              

Перевод строки

End;      

Конец тела цикла

 

 

ReadLn;

Ожидание нажатия клавиши Enter для завершения

End.       

Конец программы.

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz