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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2008, 23:46   #1
Rifler
Пользователь
 
Регистрация: 15.12.2007
Сообщений: 44
По умолчанию Выделение слов из строки // Pascal

Здрасьте
Есть строка s1, например "My name is Vasya". НУжно зеркально переставить слова в этой строке, т.е. "Vasya is name My"
Я сделал вот так, но что-то не хочет, т.е. выделяю слово и добавляю его в начало списка и получается, что просмотром списка они выводятся сразу в обратном порядке. Только где-то ошибка, наверно при выделении слов. HELP

Код:
 head:=nil;
 Reset(f2);
 while not(eof(f2)) do begin
  ReadLn(f2,s1);
  head:=nil;
  new(p); p^.next:=head; head:=p;
  for i:=1 to length(s1) do begin
   if s1[i]<>' ' then p^.data:=p^.data + s1[i]
                else begin new(p); p^.next:=head; head:=p; end;
  end;
  p:=head;
  while p<>nil do begin
    Write(f3,p^.data);
    p:=p^.next;
    end;
  WriteLn(f3); {переводим на новую строку}
  end;
Rifler вне форума Ответить с цитированием
Старый 02.07.2008, 00:10   #2
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Вот вроде работает
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
Slovo:string = 'My name is Vasya';
NewSlovo, s:string;
i: integer;

begin
for i:=1 to strlen(pchar(slovo)) do
 begin
  if slovo[i] <> ' ' then
   s:=s + slovo[i]
  else
   begin
    NewSlovo:=s + ' ' + NewSlovo;
    s:='';
   end;
 end;
NewSlovo:=s + ' ' + NewSlovo;
writeln(Slovo);
writeln(NewSlovo);
readln;

end.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 02.07.2008, 01:48   #3
Rifler
Пользователь
 
Регистрация: 15.12.2007
Сообщений: 44
По умолчанию

Спасибо большое
Rifler вне форума Ответить с цитированием
Старый 02.07.2008, 02:30   #4
Rifler
Пользователь
 
Регистрация: 15.12.2007
Сообщений: 44
По умолчанию

Новый вопрос - пользователь вводит комплексное число a+b*i
Нужно выделить a и b. ну т.е. -10-4*i, получится -10 и -4. Перед а знака может и не быть, т.е. 10-4*i, т.е. чтобы программа распознавала этот случай
Rifler вне форума Ответить с цитированием
Старый 02.07.2008, 08:22   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну например анализируй если первый знак - то получай подстроку до следующей нецифры начиная со второго знака, иначе с первого. Потом удаляй из строки полученное и повторяй все заново для второго числа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
CheckListBox Програмное выделение строки Yuran Общие вопросы Delphi 3 01.08.2008 15:44
Выделение строки (canvas) в StringGrid elfo Помощь студентам 1 24.06.2008 12:12
Выделение одной строки из двух одинаковых REMove Microsoft Office Excel 2 15.12.2007 16:03
Число перемен знака в массиве. Количество слов в тексте. Pascal. Cartman18 Помощь студентам 1 10.12.2007 12:58