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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2016, 10:59   #1
Gohych
 
Регистрация: 16.04.2016
Сообщений: 7
По умолчанию Объектно-ориентированное программирование PascalABC - удаление из списка

Помогите сделать так,чтобы моя программа удаляла заданное число N из списка,который находится в файле
Модуль для создания списка:
Код:
unit ModulSpisok;

interface

type
  Tlist = class
    info: Integer;
    next: Tlist;
    First, plus, min: Tlist;
    constructor Create;
    function IsEmpty: boolean;
    procedure Tobegin;
    function Active: Integer;
    function IsEnd: boolean;
    procedure Step;
    procedure Insert(a: Integer);
    procedure Delete;
  end;

implementation

constructor Tlist.Create;
begin
  next := nil;
  First := nil;
  min := nil;
  plus := First;
end;

function Tlist.IsEmpty: boolean;
begin
  IsEmpty := (First = nil);
end;

procedure Tlist.Tobegin;
begin
  min := nil;
  plus := First;
end;

function Tlist.Active: Integer;
begin
  Active := plus.info;
end;

function Tlist.IsEnd: boolean;
begin
  IsEnd := (plus = nil);
end;

procedure Tlist.Step;
begin
  min := plus;
  plus := plus.next;
end;

procedure Tlist.Insert(a: Integer);
var
  q: Tlist;
begin
  q := new Tlist;
  q.info := a;
  if min = nil then
    First := q
  else
    min.next := q;
  q.next := plus;
  plus := q;
end;

procedure Tlist.Delete;
var
  q: Tlist;
begin
  q := plus;
  plus := plus.next;
  if min = nil then 
    First := plus
  else 
    min.next := plus;
end;

begin
  Writeln('Использован модуль ModulSpisok');
end.

а вот сама программа
Код:
uses
  ModulSpisok;

var
  Info, n, s: integer;
  A, C: TList;
  F, F1: Text;

begin
  writeln('Введите число ,которое нужно удалить из спиcка'); 
  readln(n); 
  assign(F, 'A1.txt');
  assign(F1, 'out');
  reset(F);
  Rewrite(F1);
  A := new TList;
  while not eof(F) do
  begin
    read(F, Info);
    A.Insert(Info);
    A.Step;
  end; 
  A.Tobegin;
  if A.plus.info = n then
    A.Delete else A.step;
  while (not A.IsEnd) do
  begin
    write(A.Active);
    write(' ');
    A.Step;
  end; 
  Close(F);
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 28.12.2016 в 11:18.
Gohych вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объектно-ориентированное программирование Zhaniya C++ Builder 0 13.05.2014 19:16
объектно-ориентированное программирование maxim93dd Помощь студентам 6 12.10.2012 23:48
Объектно-ориентированное программирование Solnze2 Паскаль, Turbo Pascal, PascalABC.NET 2 14.06.2010 13:42
Объектно-ориентированное программирование 4ika Помощь студентам 2 04.04.2010 20:27
Объектно-ориентированное программирование dzhI Помощь студентам 8 19.03.2009 13:38