Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2013, 13:38
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию Доработать программу(Работа с матрицами и stringgrid)

Нужно в матрице 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.
MAD: Еще раз не оформишь код - уйдешь в бан (ибо не первый раз уже).

Последний раз редактировалось Grynyuk, 22.05.2013 в 22:27.
Ответить с цитированием
  #2  
Старый 22.05.2013, 16:45
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Grynyuk
...Как сделать так чтобы сумма еще и умножалась на вектор элементов побочной диагонали?
Стоп, сумма понятно что такое, а вот насчёт вектора, да ещё и побочного, да и от диагонали - энто как, объясните пжлст.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Grynyuk (22.05.2013)
  #3  
Старый 22.05.2013, 16:59
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Нужно в матрице 5х5 которая считывается из стринггрид1 найти скалярное произведение каждой строки на главную диагональ и вывести в вектор который записывается в стринггрид2. Нужно добавить к выводимому результату умножение на побочную диагональ суму элементов каждой строки я нашел
Ответить с цитированием
  #4  
Старый 22.05.2013, 17:38
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Стоп, сумма понятно что такое, а вот насчёт вектора, да ещё и побочного, да и от диагонали - энто как, объясните пжлст.
Нужно в матрице 5х5 которая считывается из стринггрид1 найти скалярное произведение каждой строки на главную диагональ и вывести в вектор который записывается в стринггрид2. Нужно добавить к выводимому результату умножение на побочную диагональ суму элементов каждой строки я нашел
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter