Другие языки программирования и технологии
TurboPascal. Дана матрица целых чисел. Возвести её во вторую степень, вывести исходную и полученную матрицы
В общем то как ввести-вывести мы знаем,подскажите пожалуйста,как написать на языке турбо паскаль её возведение в квадрат, прям так как надо писать в программе,заранее спасибо
Доброго времени суток.
Ну, ну, Роман Папко, с каких это пор возведение в квадрат элементов матрицы стало эквивалентом возведения в квадрат самой матрицы? Во все времена, возведение числа в квадрат выполнялось умножением числа само на себя. Это же справедливо и для матриц. Т. е.
()^2 = () * ()
Осталось только всего ничего, реализовать процедуру умножения матриц. Вот возможный вариант. Годится для перемножения не только квадратных матриц.
const
M = 4;{число строк}
N = 6;{число столбцов}
K = 4;{число столбцов второго массива}
type
Data = Integer;
Arr2 = array[1..M, 1..N] of Data; {двухмерный массив целых чисел}
procedure MatrMul(A,B: Arr2; var C: Arr2);
var
i, j, s : Integer;
begin
FillChar(C, SizeOf(C), 0); {обнуляем результирующую матрицу C}
for i:=1 to M do {цикл по строкам матрицы А}
for j:=1 to K do {цикл по столбцам матрицы В}
for s:=1 to N do {цикл по столбцам А и строкам В}
C[ i,j ] := C[ i,j ] + A[ i,s ] * B[ s,j ];
end;
Разменость подставьте какую надо. Полагаю, как воспользоваться функцией догадаетесь?
Удачи!
Ну, ну, Роман Папко, с каких это пор возведение в квадрат элементов матрицы стало эквивалентом возведения в квадрат самой матрицы? Во все времена, возведение числа в квадрат выполнялось умножением числа само на себя. Это же справедливо и для матриц. Т. е.
()^2 = () * ()
Осталось только всего ничего, реализовать процедуру умножения матриц. Вот возможный вариант. Годится для перемножения не только квадратных матриц.
const
M = 4;{число строк}
N = 6;{число столбцов}
K = 4;{число столбцов второго массива}
type
Data = Integer;
Arr2 = array[1..M, 1..N] of Data; {двухмерный массив целых чисел}
procedure MatrMul(A,B: Arr2; var C: Arr2);
var
i, j, s : Integer;
begin
FillChar(C, SizeOf(C), 0); {обнуляем результирующую матрицу C}
for i:=1 to M do {цикл по строкам матрицы А}
for j:=1 to K do {цикл по столбцам матрицы В}
for s:=1 to N do {цикл по столбцам А и строкам В}
C[ i,j ] := C[ i,j ] + A[ i,s ] * B[ s,j ];
end;
Разменость подставьте какую надо. Полагаю, как воспользоваться функцией догадаетесь?
Удачи!
Вот кусок программы с процедурой перемножения матриц
Const max = 5;
Type
matrix = array[1..max, 1..max] of integer;
var kmax, ch : byte;
A, B, : matrix;
{Умножение двух матриц: Resul = m1* m2}
Procedure MultMatrix(m1, m2: matrix; var Resul : matrix);
var i, j, k : byte;
begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
Resul [ i, j ] := 0;
for k := 1 to kmax do begin
Resul [ i, j ] := Resul [ i, j ]+ m1 [ i, k ] * m2 [ k, j ] ;
end;
end;
end;
end;
Вызываем процедуру
MultMatrix(A, A, B);
результат в В
Const max = 5;
Type
matrix = array[1..max, 1..max] of integer;
var kmax, ch : byte;
A, B, : matrix;
{Умножение двух матриц: Resul = m1* m2}
Procedure MultMatrix(m1, m2: matrix; var Resul : matrix);
var i, j, k : byte;
begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
Resul [ i, j ] := 0;
for k := 1 to kmax do begin
Resul [ i, j ] := Resul [ i, j ]+ m1 [ i, k ] * m2 [ k, j ] ;
end;
end;
end;
end;
Вызываем процедуру
MultMatrix(A, A, B);
результат в В
for i=1 to n do
b(i):=sqr(a(i))
где a(i) первая исходная матрица, b(i) вторая матрица результат квадратирования первой, n - число элементов матрицы. только круглые скобки заменить на квадратные в местах где указывается элемент массива
b(i):=sqr(a(i))
где a(i) первая исходная матрица, b(i) вторая матрица результат квадратирования первой, n - число элементов матрицы. только круглые скобки заменить на квадратные в местах где указывается элемент массива
Семенюк Максим
ммм...нет,это не правильно к сожалению,там формула и она не такая,там поэлементное умножение
Похожие вопросы
- Даны 3 целых числа. Возвести в квадрат отрицательные числа и в третью степень - положительные (число 0 не изменять)
- Дан файл целых чисел. Создать два новых файла, первый из которых содержит положительные числа из исходного файла...
- Вам даны все целые числа от 1 до N + 1, кроме одного. Найдите отсутствующее число.
- помогите? Дан массив целых чисел (n=15),
- дан массив целых чисел F1,F2...Fn. распечатать элементы, нах-ся между min и max и их номера. подскажите где я ошибся
- Дан массив N<100 целых чисел. Упорядочить элементы по убыванию и вывести те элементы, которые остались на своих места
- C++ Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.
- Даны 3 целых числа найти среднее язык #C
- Дан файл целых чисел.Найти сумму компонент с четным значением и записать в новый файл те из них,значения которых превыша
- нужна помощь с прогой на паскале. сортировка матрицы. в данной проге необходимо в начале вывести исходную матрицу в "кра