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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2009, 03:20
Аватар для serj71298
serj71298 serj71298 вне форума
Прохожий
 
Регистрация: 22.02.2009
Сообщения: 14
Репутация: 10
По умолчанию Динамический массив, число замен.

Здравствуйте, нужна маленькая помощь.
процедура замена - на +: нужно показать фиксированое число замен, но если число замен совпадает с n*m вывести что" все эл-ты заменены".
У меня работает маленько не так: " все эл-ты заменены" выходит даже если замен меньше.
Заранее спасибо.
Код:
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,zam: Longint;

begin
 zam:=0;
  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]);
  zam:=zam+1;
  ShowMessage('произведено ' +IntToStr(zam) +' замен');

   if zam =(n-1)*(m-1) then
    ShowMessage('заменены все элементы')

 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.
Ответить с цитированием
  #2  
Старый 10.03.2009, 03:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,056
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от serj71298
Код:
 ShowMessage('произведено ' +IntToStr(zam) +' замен');

   if zam =(n-1)*(m-1) then
    ShowMessage('заменены все элементы')

Код:
   if zam =(n-1)*(m-1) 
   then ShowMessage('заменены все элементы')
   else ShowMessage('произведено ' +IntToStr(zam) +' замен');
Ответить с цитированием
  #3  
Старый 10.03.2009, 04:50
Аватар для serj71298
serj71298 serj71298 вне форума
Прохожий
 
Регистрация: 22.02.2009
Сообщения: 14
Репутация: 10
По умолчанию

lmikle спасибо за помощь, но я так пробывал работает неочень.
я переделал, так гораздо лучше получилось.
Код:
 if zam =n*m then
    ShowMessage('заменены все элементы');
    if zam <n*m then
    ShowMessage('произведено ' +IntToStr(zam) +' замен');


один вопросик: а как сделать что-бы показывал общее кол-во замен?
__________________________
Всем удачи!!!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter