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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 10:38   #1
alerzo
 
Регистрация: 03.03.2010
Сообщений: 9
По умолчанию матрица

помогите решить задачу...программа не выводит результат в стрин грид.
задача:составить программу для вычисления компонент вектора d={d1,d2,d3...dn} равного произведению матрицы А={aij} на вектор b={b1,b2,b3..bn} каждая компонента вектора вычисляется по формуле di=m(над сигмой)(сигма)к=1(под сигмой)*(aik*bk) i=1...n (n<=9 m<=9)
то есть программа перемножает каждый элемент строки матрицы А на элемент B и складывает друг с другом.
код:
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
mas1: TStringGrid;
mas3: TStringGrid;
mas2: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.button1Click(Sender: TObject);
var
a:array [1..8,1..9] of real;
b,d:array [1..9] of real;
i,j,N,M:Integer;
begin
N:=strtoint(edit1.text);
M:=strtoint(edit2.text);
for i:=1 to N do
for j:=1 to M do
a[i,j]:=strtofloat(mas1.Cells[j-1,i-1]);
for i:=1 to N do
b[i]:=strtofloat(mas1.Cells[i-1,0]);
d[i]:=0;
d[i]:=d[i]+a[i,j]*b[i];
mas3.Cells[0, i]:=FloatToStr(d[i]);
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
if edit1.Text<>' ' then
mas1.rowcount:=strtoint(Edit1.Text) ;
mas2.rowcount:=strtoint(Edit1.Text) ;
mas3.rowcount:=strtoint(Edit1.Text) ;
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
if edit2.text<>' ' then
mas1.colcount:=strtoint(Edit2.Text) ;
end;

end.
Вложения
Тип файла: rar информатика.rar (188.9 Кб, 10 просмотров)

Последний раз редактировалось Stilet; 17.03.2010 в 13:15.
alerzo вне форума Ответить с цитированием
Старый 17.03.2010, 10:54   #2
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Не удается найти unit1.pas
Не удается найти Unit1.dcu
Заново загрузи файлы.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 17.03.2010, 11:46   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё там есть
в проект просто надо указать Unit1 лежащий в папке с проектом (или отредактировать строчку
Unit1 in '..\Новая папка\Unit1.pas' {Form1};
в Project1.dpr)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2010, 12:27   #4
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

alerzo Если вам сложно найти на форуме реализацию алгоритма умножения матриц, то где-то так:
Код:
for i:=1 to m do 
b[i]:=strtofloat(mas1.Cells[i-1,0]);
For i := 1 to n do begin
d[i]:=0;
For j:=1 to m do
d[i]:=d[i]+a[i,j]*b[j];
mas3.Cells[0, i]:=FloatToStr(d[i]);
end;
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Матрица Sweto4ka Общие вопросы C/C++ 1 17.10.2009 18:19
4-я матрица и 6-я матрица ciaonataha Общие вопросы C/C++ 5 27.03.2009 15:59
Матрица LKf Паскаль, Turbo Pascal, PascalABC.NET 2 04.12.2008 17:33