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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2009, 12:25   #1
IceTiger
Новичок
Джуниор
 
Регистрация: 17.06.2009
Сообщений: 1
Восклицание изменить матрицу на Delphi

Всем привет! Помогите решить задание.

Цитата:
Дана целочисленная матрица {Aij} i=1....n , j=1....m (n,m принадлежат (6....8))
В правом дополнительном столбце выводится произведение каждого столбца.
Взял у друга задачу где нужно найти сумму всех отрицательных чисел матрицы, она в принцепе похожа на мою, только смысл немного другой, вот код
Код:
unit Kurs;

interface

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

type
  TMatrix = Array of array of integer;
  TMinusCount = Array of integer;
  TMainForm = class(TForm)
    sgMatrix: TStringGrid;
    gbMSettings: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    eRowCount: TEdit;
    eColCount: TEdit;
    btnGenerate: TButton;
    procedure btnGenerateClick(Sender: TObject);
  private
    { Private declarations }
    Matrix: TMatrix;
    MinusCount: TMinusCount;
    ColCount: integer;
    RowCount: integer;
    function CheckMatrixRange(): bool;
    procedure CreateMatrix();
    procedure FillMatrix();
    procedure VisualMatrix();
    function CreateElement(): integer;
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

function TMainForm.CreateElement(): integer;
var minus: integer;
    res: integer;
begin
  Randomize();
  minus := Random(2);
  Randomize();
  res := Random(100);
  if (minus = 1) then
  begin
    res := res * (-1);
  end;
  result := res;
end;

procedure TMainForm.CreateMatrix();
begin
  SetLength(Matrix, ColCount, RowCount);
  SetLength(MinusCount, RowCount);
  sgMatrix.ColCount := ColCount + 2;
  sgMatrix.RowCount := RowCount;
end;

procedure TMainForm.FillMatrix();
var i: integer;
    j: integer;
    element: integer;
    minus: integer;
begin
  minus := 0;
  for j := 0 to RowCount - 1 do
  begin
    for i := 0 to ColCount - 1 do
    begin
      element := CreateElement();
      Matrix[i,j] := element;
      if element < 0 then inc(minus);
    end;
    MinusCount[j]:= minus;
    minus := 0;
  end;
end;


procedure TMainForm.VisualMatrix();
var i: integer;
    j: integer;
    s: string;
begin
  s := '';
  for j := 0 to RowCount - 1 do
  begin
    for i := 0 to ColCount - 1 do
    begin
      sgMatrix.Cells[i,j] := intToStr(Matrix[i,j]);
    end;
    sgMatrix.Cells[i,j] := '||';
    sgMatrix.Cells[i+1,j] := intToStr(MinusCount[j]);
  end;
end;

function TMainForm.CheckMatrixRange(): bool;
var good: bool;
begin
  good := true;
  try
    ColCount := StrToInt(eColCount.Text);
    RowCount := StrToInt(eRowCount.Text);
  except
    good := false;
  end;
  if ((ColCount < 5) or (RowCount < 5) or (ColCount > 8) or (RowCount > 8)) then
    good := false;
  result := good;
end;

procedure TMainForm.btnGenerateClick(Sender: TObject);
var good: bool;
begin
good := CheckMatrixRange;
if (good) then
begin
  CreateMatrix();
  FillMatrix();
  VisualMatrix();
end
else
begin
  MessageDlg('Не верно заданы  размеры матрицы', mtError, [mbOk],0);
end;
end;

end.
Помогите решить задание или изменить под мою задачу приведенную выше. За ранее спасибо.
IceTiger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на матрицу jorjinho10 Паскаль, Turbo Pascal, PascalABC.NET 0 28.04.2009 19:55
Объясните пожалуйста как можно считать значения в этом файле в вектор, 4 -ую матрицу, 6-ую матрицу ciaonataha Помощь студентам 1 30.03.2009 20:57
Как изменить значок .ехе файла Delphi? Evgenii Общие вопросы Delphi 4 04.02.2009 15:45
Задача на матрицу. Fest Помощь студентам 2 16.12.2007 05:54
Задачка на матрицу. Саня895 Помощь студентам 1 11.12.2007 08:45