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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2009, 16:06   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию Delphi массивы

Доброо времени суток! Не могу отладить программу. Не могли бы мне помочь? Задан двумерный массив nxm. Нужно определить количество особых элементов в матрице,считая элемент “особым”, если в его строке слева от него находятся элементы, меньшие его, а справа – большие.
Заранее спасибо.
Вот исходный код:
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    StringGrid1: TStringGrid;
    Edit2: TEdit;
    column: TButton;
    Memo1: TMemo;
    calculate: TButton;
    procedure EditKeyPress(Sender: TObject; var Key: Char);
    procedure columnClick(Sender: TObject);
    procedure calculateClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  count=10;
type
  massiv=array[1..count,1..count]of extended;
var
  Form2: TForm2;
  matrix:massiv;
  line:integer;
   colum:integer;

implementation

{$R *.dfm}

procedure TForm2.calculateClick(Sender: TObject);
var
  i,j,temp:integer;
begin
  temp:=0;
  for i:=1 to line do
    for j:=1 to colum do
      matrix[i,j]:=StrToFloat(StringGrid1.Cells[i,j]);
  for i:=1 to line do
    for j:=1 to colum do
      if (matrix[i,j]<matrix[i-1,j]) and(matrix[i,j]>matrix[i+1,j]) then
        temp:=temp+1;
  Memo1.Lines.Add(' количество особых элементов  = '+FloatToStrF(temp,fffixed,8,3));

end;

procedure TForm2.columnClick(Sender: TObject);
var
  i,j:integer;
begin
  line:=StrToInt(Edit1.Text);
  colum:=StrToInt(Edit2.Text);
   {Задание числа строк и столбцов в таблицах}
   StringGrid1.RowCount:=line+1;
   StringGrid1.ColCount:=colum+1;
  {Заполнение верхнего и левого столбцов поясняющими подписями}
   for i:=1 to line do
     for j:=1 to colum do
     begin
    StringGrid1.Cells[i,0]:=' i= '+IntToStr(i);
    StringGrid1.Cells[0,j]:=' j= '+IntToStr(j);
    end;
end;

procedure TForm2.EditKeyPress(Sender: TObject; var Key: Char);
begin
  if not(key in ['0'..'9']) then key:=#0;
end;

procedure TForm2.FormCreate(Sender: TObject);
var
  i,j:integer;
begin
Edit1.Text:=FloatToStr(line);
Edit2.Text:=FloatToStr(colum);

 {Задание числа строк и столбцов в таблицах}
   StringGrid1.ColCount:=colum+1;
   StringGrid1.RowCount:=line+1;


end;

end.
world12_tk вне форума Ответить с цитированием
Старый 04.10.2010, 02:29   #2
XTenS
Пользователь
 
Регистрация: 26.09.2010
Сообщений: 17
По умолчанию

Странный вопрос всё кажись верно
Нужна платная помощь в реализации пиши
ICQ: 410691984

Последний раз редактировалось XTenS; 04.10.2010 в 02:34.
XTenS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы (Delphi) 777UFO777 Помощь студентам 4 19.01.2010 16:51
Delphi массивы Misty Помощь студентам 2 25.05.2009 07:51
Массивы Delphi Tesa Помощь студентам 1 06.10.2008 22:33
Массивы Delphi forumu Помощь студентам 2 11.01.2008 10:07