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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2009, 13:44   #1
5nizza77
 
Регистрация: 15.10.2009
Сообщений: 9
По умолчанию Строки

Прошу помочь.
Дана строка из нескольких слов, которые отделяются друг от друга пробелами. Вывести слова, задающие в виде строки целые числа (они могут быть и отрицательными). Например, для строки “аbс-90w 567u io ” должны быть выведены строки “-90”, “567”.
5nizza77 вне форума Ответить с цитированием
Старый 15.10.2009, 13:53   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,875
По умолчанию

Цитата:
Сообщение от 5nizza77
Дана строка из нескольких слов, которые отделяются друг от друга пробелами. Вывести слова, задающие в виде строки целые числа (они могут быть и отрицательными). Например, для строки “аbс-90w 567u io ” должны быть выведены строки “-90”, “567”.
Пример не корректен. Судя по условию, число должно быть словом, а не частью другого слова.
Arigato вне форума Ответить с цитированием
Старый 15.10.2009, 13:53   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и что тут сложного?
Проходи себе по символам и определяй цифры это или нет
Код:
   var e,s:string;i:integer;
begin
 s:='аbс-90w 567u io';
 i:=1; while i<length(s) do begin
   if s[i] in ['-','0'..'9'] then e:=e+s[i] else begin
    write(e,' ');e:='';
   end;
  inc(i)
 end;
 Readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.10.2009, 14:22   #4
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

Все так, только не будет работать если "-" будет в середине цифр (првпр88-554 ппр54 -45)
Тогда так:
Код:
var e,s:string;
     i:integer;
begin
s:='првпр88-554 ппр54 -45';
i:=1; 
while i<length(s) do 
    begin
    if s[i] in ['0'..'9'] then 
        begin
        if  (i-1)>1 then
           if s[i-1] ='-' then e:='-'; 
        e:=e+s[i] 
      else 
          begin
          write(e,' ');
          e:='';
          end;
    inc(i)
    end;
Readln;
end.
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 16.10.2009, 14:43   #5
5nizza77
 
Регистрация: 15.10.2009
Сообщений: 9
По умолчанию

Момогите найти проблему.


Код:
var
e,s,a:string;
i,k:integer;
begin
  readln(s);
  i:=1;
  while i<=length(s)+1 do
    begin
      if s[i] in ['-','0'..'9',' '] then
      e:=e+s[i];
      i:=i+1;
    end;
  {i:=2;
  writeln(e);
  repeat

     while not (e[i] in [' ']) do
      begin
        if e[i] in ['-'] then
          if  (e[i+1] in [' ','-']) or (e[i-1] in ['-','0'..'9']) then e:='';
          inc(i);
      end;
      //inc(i);
  until i>length(e);
   // end ;
 // end;
              }

  i:=1;
  //writeln(e);
     k:=length(e)+1;
  while i<=k do
    begin
      if e[i] in ['-'] then
        if  (e[i+1] in [' ','-','0']) {or (e[i-1] in ['-','0'..'9']) }then e:='';
      if e[i] in ['-','0'..'9'] then
        if e[i+1] in [' '] then
      begin
       a:=a+e[i];
       a:=a+', ';
      end else
      a:=a+e[i];
      i:=i+1;
    end;
  writeln(a,'.');
  readln; 
end.
5nizza77 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45