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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 15:13   #1
kok222
 
Регистрация: 21.04.2010
Сообщений: 4
По умолчанию Алгебра матриц

Прошу вас, помогите мне пожалуйста разработать приложение для windows в среде Delphi, реализующее решение следующие действия над матрицами:

-проверка равенства матриц;
-сложение(вычитание);
-возведение в степень;
-транспонирование;
-вычисление определителя матрицы;
-замена столбца матрицы;
-добавление нового столбца.

помогите пожалуйста
kok222 вне форума Ответить с цитированием
Старый 21.04.2010, 15:20   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Умножение:
Код:
type
 TElem=integer;
const
 Count = 3; {кол-во столбцов и строк матрицы}
var
 Mat1, Mat2,                                     {вводимые матрицы}
 ResMat1 : array[1..Count, 1..Count] of TElem; {результирующая}
 i, x, y, R : integer;
 flag : boolean;

begin
 Writeln('Ввод первой матрицы (целые числа)');
 for y := 1 to Count do
  for x := 1 to Count do
  begin
   Write('Mat1[', x, ',', y,'] : ');
   Readln(Mat1[x, y]);
  end;
 Writeln('Ввод второй матрицы (целые числа)');
 for y := 1 to Count do
  for x := 1 to Count do
  begin
   Write('Mat2[', x, ',', y,'] : ');
   Readln(Mat2[x, y]);
  end;
 {подсчет матрицы AxB}
 for y := 1 to count do {спускаемся вниз по строкам}
  for x := 1 to Count do {идем по элементам строк вправо}
  begin
   R := 0;                          {обнуляем сумму произведений}
   for i := 1 to Count do           {идем под горизонтали Mat1 и по вертикали}
    r := R + mat1[y, i]*Mat2[i, x]; {Mat2; умножаем и добавляем в R}
   ResMat1[x, y] := R;              {Resmat1[x, y] = результат = R}
 end;
 Writeln('AxB='); {выводим на экран}
 for y := 1 to Count do
 begin
  for x := 1 to Count do
   Write(ResMat1[x, y]:4);
  Writeln;
 end;
END.
Определитель:
Код:
program denominator;
const
  MaxN=3;
  epsilon=1E-10
type
  matrix=array[1..maxN,1..maxN] of Real;
var
  a: matrix;
  i,j: integer;
  determ:real;

function det(a:matrix;n:integer):real;
var i,j,k:integer; d:real;
begin
  for i:=1 to pred(n) do begin
    if abs(a[i,i])<epsilon then begin
      det:=0.0; exit
    end;

    for j:=succ(i) to n do begin
      d:=a[j,i]/a[i,i];
      for k:=i to n do
        a[j,k]:=a[j,k]-d*a[i,k];
    end;
  end;

  d:=1.0;
  for i:=1 to n do d:=d*a[i,i];
  det:=d;
end;

begin
  for i:=1 to MaxN do
    for j:=1 to MaxN do read(a[i,j]);
  determ:=det(a,3);
  WriteLn(determ:0:0)
end.
Возведение в степень аналогично умножению. А вообще юзайте гугл! Все приведенные примеры кода нашлись за 5 минут
danekne вне форума Ответить с цитированием
Старый 21.04.2010, 15:35   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

есть готовые реализации на C#, могу переписать на Delphi за небольшое вознаграждение
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 29.04.2010, 20:32   #4
kok222
 
Регистрация: 21.04.2010
Сообщений: 4
По умолчанию

Мне надо создать программу, помогите((((
kok222 вне форума Ответить с цитированием
Старый 10.05.2010, 11:05   #5
Basing
 
Регистрация: 10.05.2010
Сообщений: 4
По умолчанию

RUSt88 если ты сделаешь программу то я заплачу)

-проверка равенства матриц;
-сложение(вычитание);
-возведение в степень;
-транспонирование;
-вычисление определителя матрицы;
-замена столбца матрицы;
-добавление нового столбца
Basing вне форума Ответить с цитированием
Старый 10.05.2010, 12:48   #6
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Basing, пиши, обязательно договоримся
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 10.05.2010, 15:56   #7
Basing
 
Регистрация: 10.05.2010
Сообщений: 4
По умолчанию

куда писать?
Basing вне форума Ответить с цитированием
Старый 10.05.2010, 15:57   #8
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
куда писать?
мыло: nexx_mp[собака]mail.ru
ася: [семь 3]-[97]-[1 шесть]
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 10.05.2010, 15:58   #9
Basing
 
Регистрация: 10.05.2010
Сообщений: 4
По умолчанию

вечерком напишу)
Basing вне форума Ответить с цитированием
Старый 11.05.2010, 23:30   #10
Basing
 
Регистрация: 10.05.2010
Сообщений: 4
По умолчанию

зайди в аську я тебе задание кину
Basing вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20
Алгебра Zmaxer Помощь студентам 4 12.10.2009 19:04
Булева Алгебра SPR//Rabitka Свободное общение 1 27.09.2009 12:01
Реляционная алгебра. Не сходиться leahov Помощь студентам 0 12.06.2009 20:36
Булевая алгебра. Задача. Выпдр Помощь студентам 4 01.02.2009 14:15