БНФ, очередь и стек |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
БНФ, очередь и стек |
.*Pas |
Сообщение
#1
|
Гость |
вот условие:
Используя очередь и стек из входного текстового файла F проанализировать текст сбалансированный по скобкам <Текст>::=<пусто> | <элемент><текст> <элемент>::=<буква> | (<текст>) Напечатать упорядоченные пары номеров открывающих скобок. в общем вот пример входного файла a(b©) объясните или сделайте пожалуйста мне эту задачу,очень срочно надо |
.*Pas |
Сообщение
#2
|
Гость |
вот правильный пример входного файла a(b (с) ),выше был неправильный
|
Guest |
Сообщение
#3
|
Гость |
у меня есть решение на Делфях,а как эту задачу сделать на Турбо Паскале?
файл читается без очереди. А из Мемо. но нужно чтобы обязательно была очередь Есть входной файл : 123456789(1234(6789(123456789)sdfs)df) Код unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; OpenDialog1: TOpenDialog; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var i,y:integer; stek:Integer; //Для стека достаточно одного символа str:string; begin IF openDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName); stek:=-1; For i:= 0 to MEmo1.Lines.Count-1 do For y:= 1 to Length(Memo1.Lines[i]) do Begin str:=Memo1.Lines[i]; If ( str[y]='(' ) then if ( stek<0 ) then Begin Stek:=y; end else Begin Label1.Caption:=Label1.Caption+IntToStr(stek)+'-'+IntToStr(y)+' '; Stek:=-1; end; End; end; end. Результатом будет : 10-15 |
.*Pas |
Сообщение
#4
|
Гость |
в общем я уже голову себе сломал с этими Дельфями,помогите пожалуйста...пост выше мой
|
Guest |
Сообщение
#5
|
Гость |
вот ещё есть на Паскале решение,но мне надо на Турбовом решить
Код procedure TForm1.Button1Click(Sender: TObject); var i,y:integer; stek:Integer; //Для стека достаточно одного символа str:string; begin IF openDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName); stek:=-1; For i:= 0 to MEmo1.Lines.Count-1 do For y:= 1 to Length(Memo1.Lines[i]) do Begin str:=Memo1.Lines[i]; If ( str[y]='(' ) then if ( stek<0 ) then Begin Stek:=y; end else Begin Label1.Caption:=Label1.Caption+IntToStr(stek)+'-'+IntToStr(y)+' '; Stek:=-1; end; End; end; end. |
volvo |
Сообщение
#6
|
Гость |
Ну, так в чем дело? Есть ведь алгоритм, ну и реализуй его на Турбо-Паскале:
function intToStr(x: integer): string; Вместо того, чтобы работать напрямую со строкой, можешь загнать ее в очередь, и работать с очередью символов, если это тебе нужно... Алгоритмы и исходники работы с очередями - в FAQ (или поиск)... В общем, смотри мою подпись |
*.pas |
Сообщение
#7
|
Гость |
спасибо за совет,но кто-нибудь может мне здесь помочь с реализацией на Турбо Паскаль этого алгоритма?
|
volvo |
Сообщение
#8
|
Гость |
Ты по-русски не понимаешь? Сказано, все это есть в FAQ-е...
FAQ: Стеки FAQ: Очереди В Поиске посмотри... Ты думаешь, только тебе это нужно сделать? Или тебе самому думать "в лом", хочется получить все готовое? Тогда ты ошибся... |
*.pas |
Сообщение
#9
|
Гость |
да ладно постараюсь сам
Продолжай изобретать колесо (даже НЕ велосипед, именно колесо !!!) и лезть в окно, когда дверь - то открыта. Я же тебе и адреса дал, что, ВСЁ надо сделать и выложить на блюдечке? Этого не будет... Закрыто Сообщение отредактировано: volvo - |
Текстовая версия | 14.05.2024 15:10 |