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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 21:41   #1
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию Проблема с массивом !!!

Народ скажите а как найти первый положительный и последний отрицательный элемент в динамическом массиве , с разным количеством элементов в строке ??? Вот код :
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a:textfile;
str:string;
begin
if opendialog1.Execute then
assignfile(a,opendialog1.FileName);
reset(a);
memo1.Lines.Clear;
while not eoln(a)  do begin
 readln(a,str);
 memo1.Lines.Add(str);
end;
closefile(a);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
b:array of array of integer;
i,j:integer;
str:string;
begin
for i:=0 to length(str) do
for j:=0 to length(str) do begin
   if (b[i,j]>0) then edit1.Text:=inttostr(b[i,j]);
и вот на этом месте прога не работает ! просто зависает и все !

Последний раз редактировалось Stilet; 09.10.2010 в 22:15.
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 21:53   #2
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

цикл поиска первого положительного элемента (точнее его индекса i в массиве):
Код:
i:=-1;
flag:=false;
while (i < High(Mas)) and not flag do
  begin
    Inc(i);
    if Mas[i] >= 0 then flag:=true;
end;
// if flag then найден индекс положительного элемента
            else такого элемента в массиве нет

цикл поиска индекса последнего отрицательного элемента:
Код:
i:=Length(Mas);
flag:=false;
while (i > 0) and not flag do
  begin
    Dec(i);
    if Mas[i] < 0 then flag:=true;
end;
// if flag then найден индекс отрицательного элемента
            else такого элемента в массиве нет
ICQ: 593-013-807

Последний раз редактировалось Don Karleone; 09.10.2010 в 21:57.
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 21:56   #3
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

извините но забыл сказать , что массив у меня двумерный
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 21:58   #4
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

тебе надо найти эти элементы для каждой строки??
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 22:00   #5
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

не , для всего массива в целом . просто из за того , что в этом массиве разное количество элементов в строке , я не могу понять как это делать .
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:05   #6
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

покажи как описан динамический массив и как ты его создаешь.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 22:10   #7
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

я его создаю в файле . вот пример
6 -2 1 43
-1 5
5 4 2 18 13
5
-4 -4
это мой массив . он динамический , то есть массив может быть перезаписан иначе . из файла я его считываю с помощью eoln , то есть построчно .и вот мне нужно найти первый положительный и последний отрицательный .
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:14   #8
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

я так понял ты его считываешь вначале в компонент memo1?
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 09.10.2010, 22:16   #9
drylozav
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 40
По умолчанию

да , просто это необходимо по условию задачи
drylozav вне форума Ответить с цитированием
Старый 09.10.2010, 22:17   #10
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

А тут d: array of array of integer ты объявляешь этот самый динамический массив?
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с массивом @Ivan Общие вопросы C/C++ 2 11.10.2010 11:46
проблема с массивом Doppelganger Общие вопросы C/C++ 1 12.06.2010 14:12
проблема с массивом kommunist Паскаль, Turbo Pascal, PascalABC.NET 7 27.05.2010 19:00
проблема с массивом kommunist Помощь студентам 6 14.11.2007 18:36
проблема с массивом Lonix Общие вопросы Delphi 2 06.11.2007 23:56