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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 20.03.2012, 22:56   #1
Rediska512
Пользователь
 
Регистрация: 16.02.2012
Сообщений: 16
По умолчанию Паскаль. Стек

Помогите пожалуйста.
Задача: Создать текстовый файл, между словами запятая, в конце точка.
За один просмотр файла вывести самые длинные слова (с помощью стека)

Вот код процедуры обработки программы

Код:
procedure obrabotka(var f:text; var head:ptr);
var s,slovo:string; i,j:byte;
begin
   reset(f)
   while not(eof(f)) do
   begin
      readln(f,s);
      slovo:='';
      for i:=1 to length(s) do
      begin
      if s[i]<>',' then slovo:=slovo+s[i]
      else
      begin
         if head=nil then begin add(head,slovo); slovo:=''; end
         else
         if length(slovo)=length(head^.data) then begin add(head,slovo); slovo:=''; end
         else if length(slovo)>length(head^.data) then
         begin
            del(head);
            add(head,slovo); slovo:='';
         end;
      end;
      end;
   end;
   close(f);
end;
все хорошо если самое длинное слово одно, а когда 2 и больше то начинаются непонятки, выводит что угодно кроме того что надо
и мне кажется что проблема в строчке

Код:
   if length(slovo)=length(head^.data) then begin add(head,slovo); slovo:='';
а вот что именно не пойму
ЗЫ Процедуры add и del работают правильно (проверял в другой программе)
Помогите пожалуйста
ЗЗЫ Условие про точку пропустил и ставил в конце строчки запятую все равно не работала как надо
Rediska512 вне форума
Старый 20.03.2012, 23:09   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Так а ну ка алгоритм ваш! В чём его суть?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума
Старый 21.03.2012, 09:59   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

кросспост!
Serge_Bliznykov вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПАСКАЛЬ. СТЕК loki_man Паскаль, Turbo Pascal, PascalABC.NET 8 03.03.2012 03:56
Паскаль стек - уравнять количество открывающих и закрывающих скобок в строке stacytwo Помощь студентам 4 27.10.2011 23:21
Паскаль стек stacytwo Помощь студентам 3 27.10.2011 21:45
Паскаль Стек и сортировка MIKE11IPME Помощь студентам 1 12.11.2010 15:32