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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2008, 22:14   #1
DJ DIMON
Пользователь
 
Аватар для DJ DIMON
 
Регистрация: 05.12.2008
Сообщений: 31
Восклицание Решение матриц

1)Вычислите определитель матрицы четвёртого порядка.
Задайте матрицу через раздел описания констант:

Матрица Y:=
5 1 5 1
1 2 2 2
3 1 1 0
3 4 1 1

2)Произведите умножение матрицы из предыдущего задания на вектор, состоящий из четырёх элементов заданных через генератор случайных чисел. Выведите на экран полученный вектор.

Помогите кто может!
DJ DIMON вне форума Ответить с цитированием
Старый 08.12.2008, 13:07   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
const
  a:array [1..4,1..4] of integer =((5,1,5,1),
                                   (1,2,2,2),
                                   (3,1,1,0),
                                   (3,4,1,1));

function determinant(n: integer): double;
var
  d: double;
  i: integer;
  b: array[1..4] of boolean;
procedure thread(p: double; e,i: integer);
var
  j,f,z: integer;
begin
  if odd(e) then z:=-1 else z:=1;
  if i > n then d:=d+p*z else
    if p <> 0 then begin
      f:=0;
      for j:=n downto 1 do
        if b[j] then f:=f+1 else begin
          b[j]:=true;
          thread(p*a[i,j],e+f,i+1);
          b[j]:=false;
        end;
    end;
end;
begin
  for i:=1 to n do b[i]:=false;
  d:=0; thread(1,0,1);
  determinant:=d;
end;

var i,j:integer;
    vector,res:array[1..4] of real;

begin
  clrscr;
  randomize;
  writeln('Determinant:',determinant(4):4:1);
  readln;
  write('Vector:(');
  for i:=1 to 4 do
   begin
    vector[i]:=random(10);
    write(vector[i]:4:1
    );
   end;
   write(')');
  writeln;
  for i:=1 to 4 do
    begin
     res[i]:=0;
     for j:=1 to 4 do
      res[i]:=res[i]+a[i,j]*vector[j];
    end;
  write('Result:(');
  for i:=1 to 4 do
    write(res[i]:6:1);
  write(')');
  readln;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20
Собственное значение матриц. Mixasik Помощь студентам 2 18.10.2008 21:30
Подпрограммы и обработка матриц Pravednik Помощь студентам 3 20.01.2008 14:41
Перемножение матриц Арина Помощь студентам 1 18.05.2007 19:21