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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2012, 15:34   #1
demopp
Новичок
Джуниор
 
Регистрация: 19.09.2012
Сообщений: 2
Печаль Множения матриц

омогите, срочно решить(

Множения матриц. В файл а.txt занести значения элементов целочисленной матрицы размера n X n, а в файл b.txt - матрицы В размера n X n, где n = 4. Вычислить матрицу...
Изображения
Тип файла: png 1.png (8.5 Кб, 65 просмотров)
demopp вне форума Ответить с цитированием
Старый 25.09.2012, 17:52   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Хорошо. Сколько вы готовы заплатить за решение этой задачи?
Вадим Мошев вне форума Ответить с цитированием
Старый 25.09.2012, 18:48   #3
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Вроде так
Код:
uses crt;
type
mas= array [1..100,1..100] of integer;
var f1,f2,f3:file of integer;
m1,m2,ab,a2,m3,b2,b3,b4:mas;
i,J,n,x,k:integer;
begin
assign(f1,'a.txt');
rewrite(f1);
assign(f2,'b.txt');
rewrite(f2);
n:=4; randomize;
for i:=1 to n do begin
for J:=1 to n do begin
                 m1[i,j]:=random(20);
                 write(f1,m1[i,j]);
                 END; writeln;end; reset(f1);
 writeln('Матрица из файла 1:');
for i:=1 to n do  begin
for J:=1 to n do begin
                 read(f1, x);
                 write(x:3);
                 END; writeln;end;
for i:=1 to n do begin
for J:=1 to n do begin
                 m2[i,j]:=random(20);
                 write(f2,m2[i,j]);
                 END; writeln;end; reset(f2);
 writeln('Матрица из файла 2:');
for i:=1 to n do  begin
    for J:=1 to n do begin
                 read(f2, x);
                 write(x:3);
                 END; writeln;end;
assign(f3,'c,txt');
rewrite(f3);
{перемножаем матрицу A на 2}
 for i:=1 to n do
    for j:=1 to n do
             a2[i,j]:=m1[i,j]*2;
{перемножаем матрицу 2A на матрицу B}
for i:=1 to n do  begin
    for j:=1 to n do
    begin
      ab[i,j]:=0;
      for k:=1 to n do
        ab[i,j]:=ab[i,j]+a2[i,k]*m2[k,j];

        end;  end;
{Возводим матрицу B в четвертую степень}
for i:=1 to n do  begin
    for j:=1 to n do
    begin
      b2[i,j]:=0;
      for k:=1 to n do
        b2[i,j]:=b2[i,j]+m2[i,k]*m2[k,j];

        end;  end;
{умножаем матрицу в квадрате на матруцу B}
for i:=1 to n do  begin
    for j:=1 to n do
    begin
      b3[i,j]:=0;
      for k:=1 to n do
        b3[i,j]:=b3[i,j]+b2[i,k]*b2[k,j];
        end;  end;
  {умножаем матрицу в кубе на матруцу B}
for i:=1 to n do  begin
    for j:=1 to n do
    begin
      b4[i,j]:=0;
      for k:=1 to n do
        b4[i,j]:=b4[i,j]+b3[i,k]*b3[k,j];
        end;  end;
  {находим матрицу С}
for i:=1 to n do  begin
    for j:=1 to n do
    begin
         m3[i,j]:=ab[i,j]-b4[i,j];
        end;  end;


{записываем в 3 файл}
for i:=1 to n do  begin
    for J:=1 to n do begin
          write(f3,m3[i,j]);
                          end;
                          writeln;
                          end;  reset(f3);

 writeln('Матрица из файла 3');
for i:=1 to n do  begin
    for J:=1 to n do begin
                 read(f3, x);
                 write(x:12);
                 END; writeln;end;

close(f1);
close(f2);
close(f3);
end.
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 26.09.2012, 05:49   #4
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от domovou Посмотреть сообщение
Вроде так
Не-а, не так ))
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 26.09.2012, 17:50   #5
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Не-а, не так ))
А можно что именно))
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Старый 27.09.2012, 04:42   #6
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от domovou Посмотреть сообщение
А можно что именно))
конечно, можно ))
Когда ты ищешь B^4, ты позводишь ее в квадрат (b2=m2*m2), потом перемножаешь квадраты (b3=b2*b2), а потом еще раз (b4=b3*b3). То есть реально ты находишь.. эээ... 8-ую степень. Помнишь поговорку? Главное - вовремя остановиться )).

Если не возражаешь, небольшой совет еще.
Ты бы и сам, думаю, заметил, что у тебя некоторый перебор, если бы у тебя была ВКЛЮЧЕНА ПРОВЕРКА ДИАПАЗОНОВ. Советую ее никогда не выключать.

И еще один, совсем маленький совет.. Писанины было бы гораздо меньше (да и код яснее), если бы ты сделал процедурки для умножения и сложения матриц.

А вообще молодец, +1 ))
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 27.09.2012, 19:21   #7
domovou
Пользователь
 
Аватар для domovou
 
Регистрация: 01.09.2012
Сообщений: 88
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Главное - вовремя остановиться )).

Цитата:
Сообщение от TinMan Посмотреть сообщение
если бы ты сделал процедурки для умножения и сложения матриц
Учту в следующий раз))
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.
domovou вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для любых 2 матриц (вводятся) надо найти объединение и пересечение этих матриц (Pascal) novicok Помощь студентам 6 15.09.2011 09:51
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20
Генерация матриц Kuzemark Общие вопросы C/C++ 3 06.09.2010 19:17
Сортировка матриц VD1988 Помощь студентам 2 15.06.2010 15:29