Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Символьные строки. Подпрограммы

6.3K
09 января 2004 года
Long
2 / / 09.01.2004
Помогите пожайлуста...

Задание:
Для каждой введенной строки выделить и напечатать подстроки содержащие только цифры, точки, букву “Е”, знак плюс и минус.Среди выделенных подстрок найти подстроку начинающуюся с наибольшего русских букв. Если подстрока найдена, то преобразовать исходную строку следующим образом:удалить пробелы в начале и в конце строки.

Заранее спасибо.
1.6K
10 января 2004 года
Unexpected
137 / / 09.12.2002
Цитата:
Originally posted by Long
Для каждой введенной строки выделить и напечатать подстроки содержащие только цифры, точки, букву “Е”, знак плюс и минус.Среди выделенных подстрок найти подстроку начинающуюся с наибольшего русских букв. Если подстрока найдена, то преобразовать исходную строку следующим образом:удалить пробелы в начале и в конце строки.


1. Тебе нужны подстроки, содержащие числа в формате [+|-]111.111e[+|-]111.1111 или любую мешанину перечисленных выше символов?
2. Поточнее насчет русских букв.. Если я что-то в чём-то понимаю выбираемые подстроки ВОБЩЕ не содержат русских букв??? И насчет "наибольшего русских букв" тоже не очень дошло... Наибольшего числа букв или чего?

1.6K
10 января 2004 года
Unexpected
137 / / 09.12.2002
Если мешанину, то подойдет такой вариант:

[FONT=courier new][COLOR=darkblue]
var
     LastPos:integer;

function NextSubstr(S:String, Start:integer):string
var
     st:integer;

begin
st:=0;
for i:=start to s[0] do
     if s in ['0','1','2','3','4','5','6','7','8','9','+','-','.','e','E'] then
          begin
          if st=0 then st=i;
          end
     else
          begin
          if st>0 then break;
          end
     end;

LastPos:=i;

if st>0 then
     NextSubstr:=copy(s,st,i-st)
else
     NextSubstr:='';
end;
[/COLOR] [/FONT]

Если вернула пустую строку - запускаешь следующую
NextSubstr(S,1)
, если не пустую -
NextSubstr(S,LastPos)
1.6K
10 января 2004 года
Unexpected
137 / / 09.12.2002
Если нужно число - почти то же самое, но внутри вместо if s in [????] практичнее всего использовать конечный автомат. (к сожалению паскаль не знает регулярных выражений :))
6.3K
11 января 2004 года
Long
2 / / 09.01.2004
Спасиба большое!
Нада была так как вы написали.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог