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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2008, 21:36   #1
Foky
Пользователь
 
Регистрация: 14.03.2008
Сообщений: 32
По умолчанию Стек

Помогите пожалуйста довести программу до ума. Нужно сделать, чтобы слова были записаны в обратном порядке.Например, было мир дружба солнце, а стало солнце дружба мир. В моей программе строка читается просто слева направо. Может быть как-нибудь задать условие на вхожднние в строку пробела?(
Вот программка:

Program foky;
Type
EXST = ^ST;
ST = record
Data : char;
Next : EXST;
End;
Var
Stack : EXST; {Текущая переменная}
i : integer;
f : text;
Stroka : string;
c : char;
Procedure writeStack(Var u : EXST; Simvol : char);
Var
x : EXST;
Begin
new(x);
x^.Data := Simvol;
x^.Next := u;
u := x;
End;
Procedure Print(Var u : EXST);
Begin
while u <> Nil
Begin
write (u^.Data);
u := u^.Next;
End;
End;
Begin
Stack := Nil;
Assign(f, 'c:\autoexec.bat');
Reset(f);
while Not Eof(f) do
Begin
readln (f, Stroka);
For i := 1 to Length(Stroka) do
writeStack(Stack, Stroka[i]);
End;
close(f);
Print(Stack);
End.
Foky вне форума Ответить с цитированием
Старый 08.05.2008, 21:44   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Нужно делить строку на слова и уже их проталкивать в стек.
alexBlack вне форума Ответить с цитированием
Старый 08.05.2008, 21:50   #3
Foky
Пользователь
 
Регистрация: 14.03.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
Нужно делить строку на слова и уже их проталкивать в стек.
А делить по пробелам?
Foky вне форума Ответить с цитированием
Старый 08.05.2008, 21:54   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Foky Посмотреть сообщение
А делить по пробелам?
Это смотря что у Вас в задании считается словом. Судя по примеру по пробелам. Т.е. встречается очередной пробел- все символы до предыдущего пробела - слово - его помещаем в стек. Когда будем извлекать из стека, добавим между словами пробелы.
alexBlack вне форума Ответить с цитированием
Старый 11.05.2008, 22:54   #5
Foky
Пользователь
 
Регистрация: 14.03.2008
Сообщений: 32
По умолчанию

А как это сделать для произвольного числа слов? И вообще как это будет выглядеть?
Foky вне форума Ответить с цитированием
Старый 11.05.2008, 23:26   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Посмотрите, например, в этой теме строку на слова делили:

http://programmersforum.ru/showthrea...8925#post98925

или так:
Код:
Stroka := Stroka + ' '; 
S1 := '';
For i := 1 to Length(Stroka) do begin
    if stroka[i] = ' ' then begin
       // Обрабатываем слово S1
       ......
       // S1 := '';
    end else S1 := S1 + Stroka[i];
end;
alexBlack вне форума Ответить с цитированием
Старый 12.05.2008, 19:24   #7
Foky
Пользователь
 
Регистрация: 14.03.2008
Сообщений: 32
По умолчанию

Спасибо, но мне уже ничего не помогает.(
Foky вне форума Ответить с цитированием
Старый 13.05.2008, 11:10   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Foky
Спасибо, но мне уже ничего не помогает.(
ну... просто крик души... А почему?..
И что именно Вам должно помогать? Примеры не помогают? Книги?...
Или Вы таким образом намекаете, что неплохо бы написать Вам готовый завершённый код?...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.05.2008, 18:39   #9
Foky
Пользователь
 
Регистрация: 14.03.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну... просто крик души... А почему?..
И что именно Вам должно помогать? Примеры не помогают? Книги?...
Или Вы таким образом намекаете, что неплохо бы написать Вам готовый завершённый код?...
Нет, я никоем образом ни на что не намекала и не собираюсь. Возможно, кто-то понял меня не совсем правильно. Мне никто ничего не должен.
Foky вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стек и очередь. (Delphi) Olgasato Помощь студентам 8 02.04.2010 08:08
про СТЕК anco Паскаль, Turbo Pascal, PascalABC.NET 5 06.07.2008 22:29
что такое стек?Отзовитесь,люди Еленка Помощь студентам 5 08.06.2008 13:39
Стек Еленка Помощь студентам 2 06.06.2008 18:58
Стек Dr.zlo Работа с сетью в Delphi 6 09.07.2007 07:59