Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Организация стека через динамическую структуру (http://www.tehnari.ru/f41/t104084/)

Asya_inter 03.09.2015 17:28

Организация стека через динамическую структуру
 
Помогите пожалуйста, найти ошибки. Дан текстовый файл, в котором записаны строки, размер которых не превышает [80]. Нужно, используя стек переписать строки в обратом порядке ( не символы, а именно строки). Осуществить стек на основе динамической структуры - списка.
Код:

program g;

type
  tData = string[80];
  tHtd = ^Htd;
  Htd = record
      data: tData;
      next: tHtd;
  end;
  stek = tHtd;

var
  d: tData;
  s: stek;
  f1,f2:text;

procedure puch(var s: stek; d: tData);
var
  p: stek;
begin
  new(p);
  p^.data := d;
  p^.next := nil;
  s := p;
end;
 
 
procedure pop(var s: stek; d: tData);
var
  p: stek;
begin
  d := s^.data;
  writeln(f2,d);
  p := s;
  s := s^.next;
  dispose(p);
end;
 
begin
  Assign(f1, 'словарь.txt');
  Reset(f1);
  assign(f2,'g.txt');
  Rewrite(f2);
  while eof(f1) do
      readln(f1, d);
  puch(s, d);
  while s<>nil do
  pop(s,d);
end.


Asya_inter 03.09.2015 19:30

Уже всё получилось! Вот как должно быть:
Код:

program g;

type
  tData = string[80];
  tHtd = ^Htd;
  Htd = record
      data: tData;
      next: tHtd;
  end;
  stek = tHtd;

var
  d: tData;
  s: stek;
  f1, f2: text;

procedure Init(var s: stek);
begin
  s := nil;
end;

function IsE(s: stek): Boolean;
begin
  Result := s <> nil;
end;

procedure puch(var s: stek; d: tData);
var
  p: stek;
begin
  new(p);
  p^.data := d;
  p^.next := s;
  s := p;
end;


procedure pop(var s: stek; var d: tData);
var
  p: stek;
begin
  d := s^.data;
  p := s;
  s := s^.next;
  dispose(p);
end;

begin
  Assign(f1, 'словарь.txt');
  Reset(f1);
  assign(f2, 'g.txt');
  Rewrite(f2);
  Init(s);
  while not eof(f1) do
  begin
      readln(f1, d);
      puch(s, d);
  end;
  close(f1);
  while Ise(s) do
  begin
      pop(s, d);
      writeln(f2,d);
  end;
  close(f2);
end.



Часовой пояс GMT +4, время: 20:09.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.