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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.11.2014, 21:50   #1
Igrohim
 
Регистрация: 16.11.2014
Сообщений: 8
Вопрос Помогите сделать задачу в Delphi

Имеется Stringgrid1 заполненный произвольными числами (размеры таблицы (ixj)). Необходимо нажатием кнопки заменить все отрицательные элементы таблицы на их абсолютное значение.

Мне кажется здесь должен быть цикл с использованием функции abs, но не могу представить какой именно, подскажите пожалуйста.

Как я примерно понимаю:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
for i := 0 to StringGrid1.RowCount do
for j := 0 to stringgrid1.colcount do
 begin
 m:=strtofloat(StringGrid1.Cells[i,j]);
 if StrToFloat(stringgrid1.Cells[i,j])<0 then
 m=abs(StrToFloat(StringGrid1.Cells[i,j]);
 end;
end;

Последний раз редактировалось Igrohim; 16.11.2014 в 22:21. Причина: Добавил код
Igrohim вне форума
Старый 16.11.2014, 22:33   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
procedure TForm100500.ButtonClick(Sender: TObject);
var
  r, c, x: integer;
begin
  with stringgrid1 do
    for r:= fixedrows to rowcount - 1 do
      for c:= fixedcols to colcount - 1 do
        if trystrtoint(cells[r, c], x)
          then cells[r, c]:= inttostr(abs(x))
          else begin
                 Application.MessageBox(PChar('ахтунг, неверный ввод данныхЪ... пыщ-пыщ!'),
                                        PChar('Ошибка'),
                                        mb_Ok+mb_IconError);
                  exit;
               end;
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 16.11.2014, 22:40   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
       if trystrtoint(cells[r, c], x)
не, наоборот.
У этого хитровывернутого StringGrid в методе Cells сначала указывается столбец, потом строка:
Код:
       if trystrtoint(cells[c, r], x)
Serge_Bliznykov вне форума
Старый 16.11.2014, 22:42   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не, наоборот.
У этого хитровывернутого StringGrid в методе Cells сначала указывается столбец, потом строка:
Код:
       if trystrtoint(cells[c, r], x)
действительно, ты прав, сорри.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 16.11.2014, 22:50   #5
Igrohim
 
Регистрация: 16.11.2014
Сообщений: 8
По умолчанию

Большое спасибо!
Igrohim вне форума
Старый 16.11.2014, 22:51   #6
Igrohim
 
Регистрация: 16.11.2014
Сообщений: 8
По умолчанию

Спасибо за Вашу внимательность!
Igrohim вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать задачу Decehead Паскаль, Turbo Pascal, PascalABC.NET 4 13.06.2009 21:33
Плиз помогите сделать задачу на Delphi Kelik Помощь студентам 1 22.05.2009 10:53
Помогите сделать задачу через Turbo Delphi Alibastr007 БД в Delphi 0 05.03.2009 15:33