Форум: "Потрепаться";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизString->integer Найти похожие ветки
← →
copy (2005-11-02 18:09) [0]Прошу помощи в решении следующей задачи:
Дана строка с целыми числами записанными через пробел (например: 1 0 3 22 1 4 5 13 6 1 7)
Также задано некое число P, смысл в том, чтобы числа меньшие P преобразовать из строкового типа в числовой и переписать их из строки в целочисленный массив.
← →
Jeer © (2005-11-02 18:13) [1]-парсинг строки
-преобразование в целый тип
-сравнение и отбор в массив
← →
copy (2005-11-02 18:20) [2]
> -парсинг строки
> -преобразование в целый тип
> -сравнение и отбор в массив
Не могли бы вы написать код ?
← →
Плохиш © (2005-11-02 18:21) [3]200 Euro
← →
copy (2005-11-02 18:32) [4]???
← →
Jeer © (2005-11-02 18:44) [5]Больше - не возбраняется.
← →
Fay © (2005-11-02 18:44) [6]2 copy (02.11.05 18:32) [4]
>> ???
Ладно, назовите сумму, прощание с которой не повредит вашей психике.
← →
Jeer © (2005-11-02 18:49) [7]Он уже назвал - трехзначное число, цифры - на наше усмотрение.
Единицы не указаны, значит тоже наши.:)
← →
copy (2005-11-02 18:54) [8]Я написал, что прошу помощи, а не покупаю её.
← →
umbra © (2005-11-02 19:03) [9]а в чем помощь то нужна? конкретнее, чем в [0]. Есть какой-то код?
← →
default © (2005-11-02 19:05) [10]copy (02.11.05 18:54) [8]
создав ветку ты почти что дал заявку о покупке интеллектуальной собственности в виде решения задачи
тут есть два варианта: либо указанное выше либо попытаться что-то сделать самому и ждать с трепетом подсказки от других
← →
copy (2005-11-02 19:06) [11]
> а в чем помощь то нужна? конкретнее, чем в [0]. Есть какой-
> то код?
Помощь нужна в реализации данной задачи.
← →
Sergey Masloff (2005-11-02 19:09) [12]copy (02.11.05 19:06) [11]
>Помощь нужна в реализации данной задачи.
Еще раз. Если автором предпринимались попытки решить но есть затруднения в конкретных моментах - пожалуйста конкретный вопрос. Если все что соизволил сделать проситель это собственно попросить - тогда цену назвали. Не дураки ж все тут сидят.
← →
copy (2005-11-02 19:12) [13]Я избавлялся от пробелов, переписывая все числа в новую строку, после с помощью функции Val преобразовывал их в число и отбирал в массив, но этот прием не срабатывает для числе больше 9.
← →
Fay © (2005-11-02 19:14) [14]Один ничего не делает, а другие ему помогают 8)
← →
ali_tash (2005-11-02 19:21) [15]Назови число Пи.
← →
Baltika-33 (2005-11-02 19:22) [16]
s := "1 0 3 22 1 4 5 13 6 1 7";
P := 10;
Определи массив:var
DestArray: Array of Integer;
Необходимые перменные для цикла и поиска:var
i,pz,tmpI: Integer;
TmpS: String;
Далее в цикле обрабатывай строку примерно так:TmpS := Trim(s);
while Length(TmpS)>0 do
begin
pz := Pos(" ",tmpS);
if pz>0
then tmpI := StrToInt(Copy(tmpS,1,pz-1))
else
begin
tmpI := StrToInt(tmpS,1,pz-1);
tmpS := "";
end;
if tmpI<P then
begin
SetLength(DestArray,Length(DestArray)+1);
DestArray[High(DestArray)] := tmpI;
end;
Delete(tmpS,1,pz);
end;
← →
Baltika-33 (2005-11-02 19:23) [17]
> Один ничего не делает, а другие ему помогают 8)
Не так.
Один халявщик, а остальные - болтуны.
← →
Fay © (2005-11-02 19:32) [18]2 Baltika-33 (02.11.05 19:23) [17]
[16] - не помощь, а медвежья услуга.
← →
Baltika-33 (2005-11-02 19:38) [19]
> [16] - не помощь, а медвежья услуга.
Что тогда из себя остальные посты представляют?
← →
Sergey Masloff (2005-11-02 19:39) [20]Baltika-33 (02.11.05 19:38) [19]
>Что тогда из себя остальные посты представляют?
Глумление. А они - истиная помощь ибо человек или возьмется за ум и начнет глумиться сам над подобными вопросами или... что тоже благо ;-))
← →
Baltika-33 (2005-11-02 19:41) [21]
> Глумление.
Точное слово.
Слишком часто встречающееся.
← →
Lexer © (2005-11-02 19:42) [22]Copy, воспользуйся одноименной функцией? задача простая но развивает мышление у начинающих
← →
copy (2005-11-02 19:47) [23]
ТЕМА ЗАКРЫТА
← →
Anatoly Podgoretsky © (2005-11-02 21:34) [24]copy (02.11.05 19:47) [23]
Ошибаешься
← →
vrem (2005-11-02 21:44) [25]Может автор "Крутится внешним мотором"(с) :),
задали, а то накинулись все!
← →
Johnmen © (2005-11-02 23:01) [26]Хотелось бы услышать от болтуна Baltika-33, как он всё-таки видит решение проблемы "этот прием не срабатывает для числе больше 9".
Ведь вопрос в этом, а не в написании парсера, к тому же тормознутого....
← →
SergP. (2005-11-02 23:14) [27]
> Хотелось бы услышать от болтуна Baltika-33, как он всё-таки
> видит решение проблемы "этот прием не срабатывает для числе
> больше 9".
А что за проблема такая?
← →
(+|-)?[0-9] (2005-11-02 23:38) [28]Простейший конечный автомат с двумя состояниями.
Автор сабжа, в поисковиках можешь по ключу "конечные автоматы" найти кучу интересной инфы по твоему вопросу и с примерами , и даже на Delphi, и даже выполняющие точно то, что тебе нужно. Но зато поймёшь, а не просто скопируешь:)
← →
NORDmen © (2005-11-02 23:43) [29]это элементарная задача.
стандартная для олимпиад, где все входные данные из текстового файла.
цикл по строке
mas:array[1..n] o integer;//ваш будуший массив
s:string//строка
begin
....
if strtoint(copy(s,1,pos(" ",s)-1))<p then begin
mas[j]:=strtoint(copy(s,1,pos(" ",s)-1));
inc(j);
end;//основная часть, ну цикл по строке и т.д.
...
//отрезаете от строки простмотренную часть и идете далее до тех пор пока строка жива
как реализовать в деталях придумайте сами
← →
Baltika-33 (2005-11-02 23:44) [30]
> Ведь вопрос в этом, а не в написании парсера, к тому же
> тормознутого....
У Вас проблемы? Хотите поговорить об этом?
Могу помочь в написании нетормознутого, если удача в этом Вас покинула...
← →
Kerk © (2005-11-02 23:45) [31]NORDmen © (02.11.05 23:43) [29]
стандартная для олимпиад
Стандартная для тех ее участников, которые не умею функцией Read пользоваться :P
← →
Экспериментатор (2005-11-03 07:43) [32]Используй RxLibrary, в частности модуль RXStrUtils
Небольшая вырезка:
function WordCount(const S: string; const WordDelims: TCharSet): Integer;
{ WordCount given a set of word delimiters, returns number of words in S. }
function WordPosition(const N: Integer; const S: string;
const WordDelims: TCharSet): Integer;
{ Given a set of word delimiters, returns start position of N"th word in S. }
function ExtractWord(N: Integer; const S: string;
const WordDelims: TCharSet): string;
function ExtractWordPos(N: Integer; const S: string;
const WordDelims: TCharSet; var Pos: Integer): string;
function ExtractDelimited(N: Integer; const S: string;
const Delims: TCharSet): string;
{ ExtractWord, ExtractWordPos and ExtractDelimited given a set of word
delimiters, return the N"th word in S. }
function ExtractSubstr(const S: string; var Pos: Integer;
const Delims: TCharSet): string;
{ ExtractSubstr given a set of word delimiters, returns the substring from S,
that started from position Pos. }
function IsWordPresent(const W, S: string; const WordDelims: TCharSet): Boolean;
{ IsWordPresent given a set of word delimiters, returns True if word W is
present in string S. }
← →
Экспериментатор (2005-11-03 07:47) [33]И не надо изобретать всяких там парсеров, когда вот оно
WordCount - возвращает количество чисел в строке
WordDelims - это разделитель, в твоей строке это пробел
ExtractWord - возвращает число в указанной позиции
и т.д.
Используй на здоровье
← →
SergP © (2005-11-03 08:11) [34]
> Экспериментатор (03.11.05 07:43) [32]
> Используй RxLibrary, в частности модуль RXStrUtils
> Экспериментатор (03.11.05 07:47) [33]
> И не надо изобретать всяких там парсеров, когда вот оно
>
> WordCount - возвращает количество чисел в строке
> WordDelims - это разделитель, в твоей строке это пробел
> ExtractWord - возвращает число в указанной позиции
>
> и т.д.
> Используй на здоровье
Гы... А зачем всякие левые библиотеки использовать, если можно стандартными воспользоваться:
...
with TStringList.Create do
try
Delimiter:=#32;
DelimitedText:=S;
SetLength(DestArray,Count);
j:=0;
for i:=0 to count-1 do
begin
destarray[j]:=strtointdef(strings[i],P);
if destarray[j]<P then inc(j);
end;
SetLength(DestArray,j);
finally
free;
end;
...
← →
Экспериментатор (2005-11-05 11:05) [35]
> SergP © (03.11.05 08:11) [34]
> Гы... А зачем всякие левые библиотеки использовать, если
> можно стандартными воспользоваться:
RX между прочим не левая библиотека.
Для той задачи которую нужно выполнить господину "Copy" она дредлагает достаточно удобные средства
← →
SergP. (2005-11-05 11:15) [36]
> RX между прочим не левая библиотека.
Для меня левое - это все кроме стандартного.
Это может быть даже что-то суперклассное, но не входящее в стандартную поставку...
← →
Экспериментатор (2005-11-05 13:48) [37]Может оно так и есть, но если вам понадобится перевести N-ную подстроку в число то может лучше не изобретать велосипед.
RX Library - это притча во языцех, что называется MUST HAVE
У меня все.
← →
Virgo_Style © (2005-11-05 14:02) [38]Экспериментатор (05.11.05 13:48) [37]
если вам понадобится перевести N-ную подстроку в число то может лучше не изобретать велосипед
Это точно... Вместо десятка строк лучше скачаем сторонний компонент...
Народ уже FindFirst-FindNext брезгует, компоненты для этого ищет...
← →
Юрий Зотов © (2005-11-05 14:30) [39]> Virgo_Style © (05.11.05 14:02) [38]
> Вместо десятка строк лучше скачаем сторонний компонент...
Уточнение - не компонент, а их библиотеку. Причем немалую...
:о)
← →
Суслик © (2005-11-05 14:53) [40]офигеть...
вот она - суть форумОв.
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.013 c