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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2014, 13:02   #1
Василий_0110
 
Регистрация: 05.11.2013
Сообщений: 8
По умолчанию Стек на основе файла, Паскаль.

Я написал программу, но не понимаю, что значит использовать стек на основе файла.
Поискал, но ничего вразумительного не нашел. Вот задание целиком:
"Составить программу, определяющую правильность следования скобок в строке символов, используя для этой цели стек на основе файла. " (При выполнении заданий все преобразования производить только над исходным файлом без использования промежуточных файлов). Помогите, пожалуйста.
Код Паскаль:
Код:
Program balans_skobok;
 var posl:string;
     f1:text;
     st:string;
     balance,i,j,k:integer;
begin
 
 assign (f1, 'skobki.txt');
 writeln ('Vvedite posledov:');
 readln(posl);
 rewrite(f1);
 writeln(f1, posl);
 reset(f1);
 
while not eof (f1) do
 begin
  readln(f1, st);
  writeln('Vy vvely:');
  writeln(st);
 end;
 
 while not eof (f1) do
  begin
  reset(f1);
  readln(f1, st);
   end;
 
  balance:=0;
for i:=1 to length(st) do
 begin
  if st[i]=')' then Dec(balance);
  if st[i]='(' then Inc(balance);
  if (balance<0) then
    begin
    writeln('Balance is broken. ) is before (, or more.');
      close(f1);
       halt;
          end;
  end;
  
if (balance>0) then
  writeln('Balance is broken. ( more then )');
   if (balance=0) then
    writeln ('Balance is not broken');
 
close(f1);
end.
Василий_0110 вне форума Ответить с цитированием
Старый 01.03.2014, 15:36   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

У меня такая постановка задачи, да еще и для скобок вызывает -
Между тем:
Стек - хранилище структурированных данных.
В Вашем случае будет правильным использовать типизированный файл, а не текстовый.
1. Операция создать стек - Открыть файл для записи, записать структуру.
2. Операция добавления в стек - Открыть файл для добавления данных, записать структуру.
3. Операция чтения из стека - Открыть файл на добавление данных, откатить на одну структуру назад (seek), прочитать структуру.
Можно и так - открыть файл на шаге создания стека и закрыть файл в конце программы.
В этом случае можно поступать так:
1. Создать стек - открыть файл для записи, записать структуру.
2. Добавить в стек - записать структуру
3. Чтение из стека - откатить на одну запись назад, прочитать данные, вновь откатить на одну запись назад.
Т.е. "указатель" будет всегда устанавливаться в конце действующих записей.
Можно модифицировать, например, указатель всегда устанавливается перед последней записью.
1. Записали, откатили на одну запись (встали в начало файла)
2. Пропустили одну запись вперед, записали, откатили на одну запись назад
3. Прочитали, откатили на две записи назад.

Оформить п/п для работы со стеком можно через функции, которые возвращают логическое значение: True - успешно, False - ошибка.
В качестве параметров - строка с указанием имени файла и переменная с заданной структурой.
Если файл в качестве стека должен быть открытым все время, то, так думаю, переменная файлового типа должна быть глобальной: описанной в самом начале программы. Ее надо инициализировать в программе и там же закрыть.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Стек Rediska512 Помощь студентам 2 21.03.2012 09:59
ПАСКАЛЬ. СТЕК loki_man Паскаль, Turbo Pascal, PascalABC.NET 8 03.03.2012 03:56
Паскаль стек stacytwo Помощь студентам 3 27.10.2011 21:45
Открытие файла и создание графика на основе чисел из файла Simon..14 Общие вопросы C/C++ 8 09.06.2009 10:18
Создать файл с данными на основе другого файла. Паскаль)) ТРОЯН=) Помощь студентам 13 16.04.2009 18:51