![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
.*Pas |
![]()
Сообщение
#1
|
Гость ![]() |
вот условие:
Используя очередь и стек из входного текстового файла F проанализировать текст сбалансированный по скобкам <Текст>::=<пусто> | <элемент><текст> <элемент>::=<буква> | (<текст>) Напечатать упорядоченные пары номеров открывающих скобок. в общем вот пример входного файла a(b©) объясните или сделайте пожалуйста мне эту задачу,очень срочно надо |
![]() ![]() |
Guest |
![]()
Сообщение
#2
|
Гость ![]() |
у меня есть решение на Делфях,а как эту задачу сделать на Турбо Паскале?
файл читается без очереди. А из Мемо. но нужно чтобы обязательно была очередь Есть входной файл : 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 |
![]() ![]() |
![]() |
Текстовая версия | 2.09.2025 19:04 |