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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.05.2013, 20:29
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию Нужно помочь найти ошибку

Нужно в матрице 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.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter