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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2013, 21:57   #1
Tonikmod
 
Регистрация: 11.11.2013
Сообщений: 9
По умолчанию Delphi. Найдите плиз ошибку: почему квадратные матрицы умножаются, а прямоугольные нет

я не могу разобраться где ошибка. Найдите плиз ошибку: почему квадратные матрицы умножаются, а прямоугольные нет! Всю голову сломал,помогите. Вот сам проект. Архив WinRAR.rar
Tonikmod вне форума Ответить с цитированием
Старый 14.11.2013, 22:00   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Я архив с тлф открыть не могу. Форма прямоугольных матриц согласована?
То есть количество столбцов первой матрицы равно количеству строк второй?

Последний раз редактировалось ZX Spectrum-128; 14.11.2013 в 22:41.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 14.11.2013, 22:43   #3
Tonikmod
 
Регистрация: 11.11.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Я архив с тлф открыть не могу. Форма прямоугольных матриц согласована?
я не знаю как Архив WinRAR.rar и Архив ZIP - WinRAR.zip еще раз проект
а вот код проекта
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    UpDown1: TUpDown;
    Edit1: TEdit;
    Edit2: TEdit;
    UpDown2: TUpDown;
    Label1: TLabel;
    Label2: TLabel;
    StringGrid3: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure StringGridKeyPress(Sender: TObject; var Key: Char);
    procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
    procedure UpDown2Click(Sender: TObject; Button: TUDBtnType);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i,j:byte;
begin
for i:=0 to StringGrid1.ColCount-1 do
for j:=0 to StringGrid1.RowCount-1 do
StringGrid1.Cells[i,j]:=IntToStr(random(1)-0);


end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j:byte;
begin
for i:=0 to StringGrid2.ColCount-1 do
for j:=0 to StringGrid2.RowCount-1 do
StringGrid2.Cells[i,j]:=IntToStr(random(1)-0);

end;

procedure TForm1.StringGridKeyPress(Sender: TObject; var Key: Char);
begin
  case key of
  #8, '0'..'9' :;
   '-' :
   begin
   key:=#0
   end;
  else
  key:=#0;
end;
end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
var i,j:integer;
begin
StringGrid1.ColCount:=StrToInt(Edit1.Text);
StringGrid2.RowCount:=StrToInt(Edit1.Text);
StringGrid1.Width:=StringGrid1.ColCount*(StringGrid1.DefaultColWidth+2);
StringGrid2.Height:=StringGrid2.RowCount*(StringGrid2.DefaultRowHeight+2);
for i:=0 to StringGrid1.ColCount-1 do begin
for j:=0 to StringGrid2.RowCount-1 do begin


end;
end;
end;

procedure TForm1.UpDown2Click(Sender: TObject; Button: TUDBtnType);
var i,j:integer;
begin
StringGrid2.ColCount:=StrToInt(Edit2.Text);
StringGrid1.RowCount:=StrToInt(Edit2.Text);
StringGrid2.Width:=StringGrid2.ColCount*(StringGrid1.DefaultColWidth+2);
StringGrid1.Height:=StringGrid1.RowCount*(StringGrid2.DefaultRowHeight+2);
for i:=0 to StringGrid1.ColCount-1 do begin
for j:=0 to StringGrid2.RowCount-1 do begin

end;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
  var Sg1,Sg2,Sg3,i,j,n,k: integer;
begin
for i:=0 to StringGrid1.RowCount-1 do
  for j:=0 to StringGrid2.ColCount-1 do
   begin
   if n<>1 then
    if (StringGrid1.Cells[i,j]='') then

     begin
      MessageBox(handle, PChar('Ìàòðèöû çàïîëíåíû íåïðàâèëüíî!'),
        PChar('Âíèìàíèå!'), MB_OK+MB_ICONWARNING);
      n:=n+1;
      break;
     end
      else
      begin
  Sg3:=0;
  for k:=0 to StringGrid2.RowCount-1 do

  begin
      Sg1:=StrToInt(StringGrid1.Cells[i,k]);
      Sg2:=StrToInt(StringGrid2.Cells[k,j]);
      Sg3:=Sg3+(Sg1*Sg2);
  end;
 StringGrid3.Cells[j,i]:=IntToStr(Sg3);
end;
end; end;



end.
Tonikmod вне форума Ответить с цитированием
Старый 16.11.2013, 00:01   #4
Tonikmod
 
Регистрация: 11.11.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Я архив с тлф открыть не могу. Форма прямоугольных матриц согласована?
То есть количество столбцов первой матрицы равно количеству строк второй?
Да вот не понимаю, сами что скажите по проекту
Tonikmod вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
даны три квадратные матрицы третьего порядка.вывести на экран ту из них,норма которой наименьшая. в качестве нормы матрицы взять м ayoka Паскаль, Turbo Pascal, PascalABC.NET 0 16.05.2012 18:28
Найдите ошибку в проге(Delphi)!!! Npwas Помощь студентам 6 05.01.2012 19:51
Найдите ошибку в проге, почему не работате она (((( ProgFrog Visual C++ 2 14.04.2011 13:10
квадратные матрицы perojenko Паскаль, Turbo Pascal, PascalABC.NET 5 22.01.2009 18:45
Неправильно умножаются матрицы!!! metamfetamin Помощь студентам 1 09.12.2007 20:37