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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2009, 14:21   #11
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

Здравствуйте, спасибо за помощь.
все равно не получается сделал работу при нажатии кнопки,
все работает и меняет в StringGrid1 значения
Код:
Type
TA=array of real;
TA1= array of TA;

var
  Form1: TForm1;
  a:TA1;
  n,m:Longint;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Trim(Edit1.Text));
m:=StrToInt(Trim(Edit2.Text));
SetLength(a,n,m);
StringGrid1.ColCount:=n;
StringGrid1.RowCount:=m;
end;


procedure TForm1.Button2Click(Sender: TObject);
Var
i,j:Longint;
begin
for i:=0 to n-1 do
for j:=0 to m-1 do
a[i,j]:=StrToFloat (StringGrid1.Cells[i,j]);
for i:=0 to n-1 do
for j:=0 to m-1 do
if a[i,j]<0 then
begin
a[i,j]:=abs(a[i,j]);
StringGrid1.Cells[i,j]:=FloatToStr(a[i,j]);
end;
end;
end.
но при создании отдельной процедуры как требуется в лабе
идет ошибка в StringGrid1.Cells[i,j]:=FloatToStr(a[i,j]);

Код:
Type
TA=array of real;
TA1= array of TA;

var
  Form1: TForm1;
  a:TA1;
  n,m:Longint;

implementation

{$R *.dfm}

procedure samena (a:TA1);
var
i,j,n.m:Longint
begin
n:= Length (a);
m:= Length (a);
for i:=0 to n-1 do
for j:=0 to m-1 do
if a[i,j]<0 then
begin
a[i,j]:=abs(a[i,j]);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Trim(Edit1.Text));
m:=StrToInt(Trim(Edit2.Text));
SetLength(a,n,m);
StringGrid1.ColCount:=n;
StringGrid1.RowCount:=m;
end;


procedure TForm1.Button2Click(Sender: TObject);
Var
i,j:Longint;
begin
for i:=0 to n-1 do
for j:=0 to m-1 do
a[i,j]:=StrToFloat (StringGrid1.Cells[i,j]);
samena (a);
StringGrid1.Cells[i,j]:=FloatToStr(a[i,j]);
end;
end.
никак немогу понять почему не получается. заранее спасибо.
преведущии ответы пробовал без результата.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 09.03.2009, 14:41   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так цикл-то нужно новый организовывать:
Код:
for i:=0 to n-1 do
for j:=0 to m-1 do
StringGrid1.Cells[i,j]:=FloatToStr(a[i,j]);
mihali4 вне форума Ответить с цитированием
Старый 09.03.2009, 16:40   #13
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

mihali4 огромное спасибо еще вопросик если можно.
при вводе в edit2 большее значения m, чем в edit1 значение n прогр. работает как nxn. и как просщитать кол-во замен " было произедено "5" замен" к примеру. спасибо.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 09.03.2009, 17:06   #14
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Читайте мой пост №7.
mihali4 вне форума Ответить с цитированием
Старый 09.03.2009, 17:19   #15
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

mihali4 я все понял на сщет замен спасибо.
програма работает не полнастью n x m, a как n x n в чем может быть проблема?
Код:
  Type
  TA=array of real;
  TA1=array of TA;

var
  Form1: TForm1;
  a:TA1;
  n,m:Longint;

implementation

{$R *.dfm}
procedure Samena(b:TA1);
var
i,j,n,m: Longint;

begin
 n:=Length(b);
 m:=Length(b);
 for i:=0 to n-1 do
 for j:=0 to m-1 do
 if b[i,j]<0 then
    begin
     b[i,j]:=abs(b[i,j]);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 n:=StrToInt (Trim (Edit1.Text));
 m:=StrToInt (Trim (Edit2.Text));
 StringGrid1.ColCount:=n;
 StringGrid1.RowCount:=m;
 SetLength(a,n,m);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,j:Longint;
begin
 for i:=0 to n-1 do
 for j:=0 to m-1 do
 a[i,j]:=StrToFloat (StringGrid1.Cells[i,j]);
 begin
    Samena (a);
    for i:=0 to n-1 do
    for j:=0 to m-1 do
    StringGrid1.Cells [i,j]:=FloatToStr(a[i,j]);
    end;
end;

end.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 09.03.2009, 17:53   #16
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так это же очевидно...
Вы ж сами вот тут "квадрат" делаете:
Код:
 n:=Length(b);
 m:=Length(b);
То есть у вас всегда M=N...
Я вообще не понимаю, зачем вы эти переменные переопределяете?
И зачем делаете их локальными?
mihali4 вне форума Ответить с цитированием
Старый 09.03.2009, 18:11   #17
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

если честно я сам уже не понимаю.
но без определения проц. вобще не работает
я уже вобще запутался
без проц. я сделал она работает
но по заданию нужно сделать отдельную проц. и здесь проблема.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 09.03.2009, 18:41   #18
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от serj-07 Посмотреть сообщение
по заданию нужно сделать отдельную проц. и здесь проблема.
Всего-то нужно выкинуть из процедуры TForm1.Samena(b:TA1) вот это, выделенное красным:
Код:
i,j,n,m: Longint;

begin
 n:=Length(b);
 m:=Length(b);
и переделать объявление процедуры:
procedure TForm1.Samena(b:TA1);

Последний раз редактировалось mihali4; 09.03.2009 в 21:32.
mihali4 вне форума Ответить с цитированием
Старый 09.03.2009, 21:30   #19
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

mihali4 большое спасибо, все разобрался.

да глупость сделал.

всем успехов!!!
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 16.06.2012, 13:03   #20
MadHouse
Новичок
Джуниор
 
Регистрация: 15.06.2012
Сообщений: 2
По умолчанию вывод коментария

как понимать "причем в случае совпадения числа замен с общим числом элементов в матрице предусмотреть дополнительно вывод поясняющего текста" что сделать нужно?
MadHouse вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема поиск и замена текста(Delphi) KirkMETAL Помощь студентам 4 26.07.2010 08:41
Массив (Delphi) stasig Помощь студентам 2 28.02.2009 21:43
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL DorianLeroy Фриланс 8 18.02.2009 18:52
Замена маленьких букв на большие. DELPHI Absent Помощь студентам 2 23.03.2008 17:19
[Delphi] Замена одного слова на другое... ZhooZhik Помощь студентам 5 09.01.2008 23:31