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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.11.2011, 17:53
Аватар для Dym_aka_Han
Dym_aka_Han Dym_aka_Han вне форума
Прохожий
 
Регистрация: 27.05.2009
Сообщения: 2
Версия Delphi: 7
Репутация: 10
Стрелка Одномерный массив

Помогите написать программу одномерного массива используя три StringGrid или Memo из пяти элементов. Положительные числа на второй StringGrid (или Memo), а отрицательные числа на трети.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  m:array[0..4] of integer;
  i,k:integer;
begin
  for i:=1 to 5 do
  begin
    if m[i]<0 then
    m[i] := StrToInt(StringGrid1.Cells[i,0]);
       inc(k);
    memo1.Lines.Add(inttostr(m[k]));
  end;
end;
здесь работа только отрицательных чисел и то не работает
Подскажите пожалуйста!
Ответить с цитированием
  #2  
Старый 27.11.2011, 17:58
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

Цитата:
Сообщение от Dym_aka_Han
здесь работа только отрицательных чисел и то не работает

так как массив у тебя наичнается с нуля [0..4]
то цикл начинай тожк с нуля
for i:=0 to 4 do

Код:
For i:=0 to 4 do
if m[i]<0
 then memo1.lines.add(inttostr(m[i]) //если число отрицательное то в кинем его в мемо
else StringGrid1.Cells[i,0]:=m[i] //если число положительное (или равно нулю) то кинем его на стрнгрид
а переменную k тут использовать не обязательно.
и еще,зачем вот эта строка у тебя?
Код:
m[i] := StrToInt(StringGrid1.Cells[i,0]);
т.е. в начале ты считываешь числа из стринггрида в массив? постановку задачи плохо написл..

Последний раз редактировалось Snake22, 27.11.2011 в 18:05.
Ответить с цитированием
  #3  
Старый 28.11.2011, 21:32
Аватар для Dym_aka_Han
Dym_aka_Han Dym_aka_Han вне форума
Прохожий
 
Регистрация: 27.05.2009
Сообщения: 2
Версия Delphi: 7
Репутация: 10
Подмигивание

Спасибо! Но, так не пойдет(
Вот это вот работает.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,k,p:integer;
begin
  k:=0;
  p:=0;
  for i:=0 to stringgrid1.ColCount-1 do
  begin

    if strtoint(stringgrid1.Cells[i,0])>0 then begin
    stringgrid2.Cells[k,0]:=stringgrid1.cells[i,0];
    inc(k); end;

    if strtoint(stringgrid1.Cells[i,0])<0 then begin
    stringgrid3.Cells[p,0]:=stringgrid1.cells[i,0];
    inc(p); end;

  end;


end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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