![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Нужно в матрице 5х5 которая считывается из стринггрид1 найти скалярное произведение каждой строки на главную диагональ и вывести в вектор который записывается в стринггрид2. Нужно добавить к выводимому результату умножение на побочную диагональ суму элементов каждой строки я нашел
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
n = 5;
implementation
{$R *.dfm}
Type
Matrix = array [1 .. 5, 1 .. 5] of real;
vect = array [1 .. 5] of integer;
Var
a: Matrix;
s: real;
procedure TForm1.Button1Click(Sender: TObject);
var
sm, smax, sd: string;
j, i, ier, imax, jmax: integer;
max: real;
begin
for j := 0 to 4 do
begin
for i := 0 to 4 do
if Length(StringGrid1.Cells[i ,j]) <> 0 then
a[i, 1] := strtofloat(StringGrid1.Cells[i ,j])
else
a[i, j] := 0;
end;
for i := 0 to n-1 do
begin
s := 0;
for j := 0 to n-1 do begin
s := s + strtofloat(StringGrid1.Cells[j, i])*strtofloat(StringGrid1.Cells[n - j + 1, j]);
//strtofloat(StringGrid1.Cells[n - j + 1, j]);
end;
StringGrid2.Cells[i, 1] := floattostr(s);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
j, i: integer;
begin
for i := 0 to n-1 do
for j := 0 to n-1 do
StringGrid1.Cells[j, i] := inttostr(random(10));
for j := 0 to 4 do
StringGrid2.Cells[j , 1] := '';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end. |
|
#2
|
|||
|
|||
|
Помогите пожалуйста. Куча просмотров и ни одного ответа
|
|
#3
|
||||
|
||||
|
Цитата:
Алгоритм хотя бы можете описать что нужно, например ячейки в матрице Код:
r1c1 r1c2 r1c3 r1c4 r1c5 r2c1 r2c2 r2c3 r2c4 r2c5 r3c1 r3c2 r3c3 r3c4 r3c5 r4c1 r4c2 r4c3 r4c4 r4c5 r5c1 r5c2 r5c3 r5c4 r5c5 Код:
r1c1 + r1c2 + r1c3 + r1c4 + r1c5 = сумма горизонтальных ячеек в матрице r1c1 + r2c1 + r3c1 + r4c1 + r5c1 = сумма вертикальных ячеек в матрице r1c1 + r2c2 + r3c3 + r4c4 + r5c5 = ???главная диагональ??? r1c5 + r2c4 + r3c3 + r4c2 + r5c1 = ???побочная??? Код:
sum:= 0; for i := 1 to 5 do sum:= sum + Matrix[1, i]; Код:
sum:= 0; for i := 1 to 5 do sum:= sum + Matrix[i, 1]; Код:
sum:= 0; for i := 1 to 5 do sum:= sum + Matrix[i, i]; Код:
sum:= 0; for i := 1 to 5 do sum:= sum + Matrix[i, (6 - i)]; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Grynyuk (23.05.2013)
| ||
|
#4
|
|||
|
|||
|
r1c1*r5c1 + r1c2* r4c2 + r1c3 *r3c3+ r1c4*r2c4 + r1c5 *r1c5 r2c1*r5c1 + r2c2* r4c2 + r2c3 *r2c3+ r2c4*r2c4 + r2c5 *r1c5 -------------------------------------------------------------- -------------------------------------------------------------- r5с1*r5c1 + r5c2* r4c2 + r5c3 *r3c3+ r5c4*r2c4 + r5c5 *r1c5 надо результат 1 строки записать в 1 ячейку стринггрид2, результат 2 строки записать в 2 ячейку стринггрид2 и тд. |
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Цитата:
|