Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2010, 08:33   #1
Витас
 
Регистрация: 05.03.2010
Сообщений: 6
Вопрос подпрограммы в паскале

помогите написать программу
Даны две матрицы А размера n*m B размера m*n, состоящие из целых елементов. Если количество z(A) нулевых элементов матрицы А, больше количества z(B) нулевых элементов матрицы B, то вычислить новую матрицу С по формуле C=z(A)*A*B^T(транспонированная) +z(B)*(A*B^T)^2, иначе вычислить новую матрицу D по формуле D по формуле D=z(B)*((A^T)*B)^2+(A^T)*B*z(A)
Витас вне форума Ответить с цитированием
Старый 05.03.2010, 08:39   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
type matrix = array[1..100,1..100] of integer;
............
{нахождение количества 0}
function z(a:matrix;k,l:integer):integer;
var c,i,j:integer;
begin
  c:=0;
  for I := 1 to k  do
    for J := 1 to l do
      if a[i,j]=0 then c:=c+1;
end;
{умножение матрицы на число }
function scmult(a:matrix;k,l:integer;sc:integer) :matrix;
 var i,j:integer;
 b:matrix;
begin
  for I := 1 to k  do
    for J := 1 to l do
     b[i,j]:=a[i,j]*sc;
end;
 {ввод матрицы}
procedure Vvod(var mt:matrix;x,y:byte);
var i,j:byte;
begin
for i:=1 to x do
for j:=1 to y do
mt[i,j]:=random(x*y);
end;
{вывод матриц на экран}
procedure Vyvod(var mt:matrix;x,y:byte;);
var i,j:byte;
begin
for i:=1 to x do
 begin
  for j:=1 to y do
  write(mt[i,j]:4);
  writeln;
 end;
end;
{траеспонирование матриц}
procedure Trans(m1:matrix;x,y:byte;var m2:matrix);
var i,j:byte;
begin
for i:=1 to y do
for j:=1 to x do
m2[i,j]:=m1[j,i];
end;
{умножение матриц}
procedure Umn(m1,m2:matrix;x,y:byte;var m3:matrix);
var i,j,k:byte;
begin
for k:=1 to x do
for j:=1 to x do
 begin
  m3[k,j]:=0;
  for i:=1 to y do
  m3[k,j]:=m3[k,j]+m1[k,i]*m2[i,j];
 end;
end;
{возведение матриц в квадрат}
procedure Umn2(m1:matrix;x,y:byte;var m3:matrix);
var i,j,k:byte;
begin
for k:=1 to x do
for j:=1 to x do
 begin
  m3[k,j]:=0;
  for i:=1 to y do
  m3[k,j]:=m3[k,j]+m1[k,i]*m1[i,j];
 end;
end;
.............
begin
{осталось дописать описание переменных и  тело программы}
end;

Последний раз редактировалось Google2010; 05.03.2010 в 08:54.
Google2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подпрограммы в паскале Шахрия Помощь студентам 1 30.10.2009 19:42
Подпрограммы в C# Doublefaced Помощь студентам 3 18.06.2009 21:19
подпрограммы Nightt Помощь студентам 0 18.06.2009 19:22
ПОДПРОГРАММЫ! Linker88 Паскаль, Turbo Pascal, PascalABC.NET 4 21.04.2009 22:25
Подпрограммы на паскале vlad1991 Помощь студентам 11 16.12.2008 21:52