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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 07:03   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Я одно не понимаю.. зачем список?
Poma][a вне форума Ответить с цитированием
Старый 21.05.2014, 08:31   #12
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Огромное спасибо всем!
glazik вне форума Ответить с цитированием
Старый 21.05.2014, 08:32   #13
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Рома, а какой Ваш вариант?
glazik вне форума Ответить с цитированием
Старый 21.05.2014, 08:43   #14
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Я одно не понимаю.. зачем список?
Затем что лень писать процедуру перегонки в динамический массив из строки. Список умеет быстро.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.05.2014, 08:46   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Poma][a, имеет в виду, что достаточно пройтись по строке перебором, разделяя строку на отдельные подстроки по пробелу.

Кстати, в вашем вариант переменные str1 и str2 явно ЛИШНИЕ.
Т.е. они мало того, что не нужны, они ещё привели к ошибке (когда Вы вместо str2 написали str1 ). Да и два StringList - тоже роскошь.

в вашем случае достаточно так:
Код:
strlist1:=TStringList.create;
strlist1.delimiter := ' ';
strlist1.delimitedtext:=edit1.text;;
SetLength(num1, strlist1.Count);
for i:=0 to strlist1.Count-1 do
  begin
    num1[i]:=strtoint(strlist1[i]);
    showmessage(inttostr(num1[i]));
  end;
{------------------------------------------------------------------------------}
strlist1.delimitedtext:=edit2.text;
SetLength(num2, strlist1.Count);
for i:=0 to strlist1.Count-1 do
  begin
    num2[i]:=strtoint(strlist1[i]);
    showmessage(inttostr(num2[i]));
  end;
strlist1.free;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2014, 09:44   #16
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

эээ, а что split так и не появился в delphi?
что-то попробовал искать, так вот такие письмена попадаются
http://www.sql.ru/forum/176889/analo...split-v-delphi
eval вне форума Ответить с цитированием
Старый 21.05.2014, 09:55   #17
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Код:
  max:=1;
  for i:= 2 to strlist1.Count-1 do
    if num1[i]>num1[max] then max:=i;
  showmessage(inttostr(num1[max]));
Далее пытаюсь в массиве найти максимальный элемент, но программа вылетает.
glazik вне форума Ответить с цитированием
Старый 21.05.2014, 10:05   #18
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
но программа вылетает
Не вылетает а аварийно завершается. При этом отладчик возвращает имя ошибки. Колись, какая ошибка.
doktor255 вне форума Ответить с цитированием
Старый 21.05.2014, 10:25   #19
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
эээ, а что split так и не появился в delphi?
В новом со строковыми хелперами кажися есть, там вообще все сильно на c# похоже. Но студентов, особенно двоишников, обычно гоняют на 7-ке.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.05.2014, 11:16   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от glazik Посмотреть сообщение
Код:
  max:=1;
  for i:= 2 to strlist1.Count-1 do
    if num1[i]>num1[max] then max:=i;
  showmessage(inttostr(num1[max]));
Далее пытаюсь в массиве найти максимальный элемент, но программа вылетает.
Всё, StrList отработал своё и уничтожен (надеюсь!).
Поэтому нужно работать только с самим массивом.
И не забывать, что динамические массивы индексируются (нумеруются) от НУЛЯ! А ещё лучше использовать функции Low и High для получения реальных индексов начального и конечного элементов массива:

Код:
  max:= Low(num1);
  for i:= Low(num1)+1 to High(num1) do
    if num1[i]>num1[max] then max:=i;
  showmessage(inttostr(num1[max]));
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код из Паскаля в Delphi (Дан целочисленный массив A. Переписать в новый массив В элементы с порядковыми номерами, кратными трём ALEXandr20333 Помощь студентам 8 27.02.2014 11:27
введите целочисленный массив в(5).подсчитайте число положительных элементов и перепишите их подряд в другой массив (Паскаль) buzz Помощь студентам 5 15.10.2013 16:16
Целочисленный массив gulbidin222 Помощь студентам 3 23.02.2012 20:45
Целочисленный массив ronil Паскаль, Turbo Pascal, PascalABC.NET 2 10.12.2010 09:36
Преобразование строки в массив чисел в Pascal(Lazarus) GaJIbI4 Помощь студентам 4 20.05.2010 20:38