IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> БНФ, очередь и стек
сообщение
Сообщение #1


Гость






вот условие:
Используя очередь и стек из входного текстового файла F проанализировать текст
сбалансированный по скобкам
<Текст>::=<пусто> |
<элемент><текст>
<элемент>::=<буква> |
(<текст>)
Напечатать упорядоченные пары номеров открывающих скобок.

в общем вот пример входного файла a(b©)

объясните или сделайте пожалуйста мне эту задачу,очень срочно надо
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
сообщение
Сообщение #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
 К началу страницы 
+ Ответить 

Сообщений в этой теме


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.09.2025 19:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name