• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Динамические структуры и записи.

  • Автор темы Автор темы citrus
  • Дата начала Дата начала

citrus

Новые
Регистрация
29 Сен 2009
Сообщения
32
Реакции
0
Баллы
0
Динамические структуры и записи.

Помогите пожалуйста, нужно написать создание динамического списка с добавлением в элементов в конец. элементами является запись с полями название, цвет, цена, кол-ва, ширина, страна. Вот что сделал я, но, что-то там не так..(


Код:
 Program SPISOK;
   uses crt;
   Type
   color1=(red,white,black);
   M=record
     name:string[15];
       color:color1;
       price:word;
       kolvo:word;
       wide:byte;
       country:string[15];
       end;

    FF=file of M;

    Ptr=^Elem;
    elem=record
    inf:M;
    next:ptr;
    end;



   procedure Add_Beg (Var FirstPtr:Ptr; Val:M);
   Var k:ptr; i,j:Byte; q:color1; x:M;
        Begin
        
 new(k);       
For i:=1 to N do
begin
WriteLn ('Vvedite name');
ReadLn (x[i].name);
WriteLn ('Vvedite color: 0 - red; 1 - white; 2 - black;');
ReadLn (j);
x[i].color:=color1(j);
WriteLn ('Vvedite price');
ReadLn (x[i].price);
WriteLn ('Vvedite kolvo');
ReadLn (x[i].kolvo);
WriteLn ('Vvedite wide');
ReadLn (x[i].wide);
WriteLn ('Vvedite country');
ReadLn (x[i].country);
WriteLn;
WriteLn;
end;  
   k^.inf:=M;
   k^.next:=FirstPtr;
   FirstPtr:=k;
   end;



Procedure Add_End (FirstPtr:Ptr; Val:M; var LastPtr:ptr);
 Var k:ptr;
 begin
 k:=firstPtr;
 While k^.next<>nil do
 k:=k^.next;
 LastPtr:=k;
 New(k);
 LastPtr^.next:=k;
 For i:=1 to N do
begin
WriteLn ('Vvedite name');
ReadLn (x[i].name);
WriteLn ('Vvedite color: 0 - red; 1 - white; 2 - black;');
ReadLn (j);
x[i].color:=color1(j);
WriteLn ('Vvedite price');
ReadLn (x[i].price);
WriteLn ('Vvedite kolvo');
ReadLn (x[i].kolvo);
WriteLn ('Vvedite wide');
ReadLn (x[i].wide);
WriteLn ('Vvedite country');
ReadLn (x[i].country);
WriteLn;
WriteLn;
end;  
 k^.inf:=Val;
 LastPtr:=k;
 end;
 
 
 procedure creat_beg (var n:byte; var firstptr:ptr);
  var
     i,j:Byte; q:color1;
        Begin
  firstptr:=nil;
  for i:=1 to n do
  begin
begin
WriteLn ('Vvedite name');
ReadLn (x[i].name);
WriteLn ('Vvedite color: 0 - red; 1 - white; 2 - black;');
ReadLn (j);
x[i].color:=color1(j);
WriteLn ('Vvedite price');
ReadLn (x[i].price);
WriteLn ('Vvedite kolvo');
ReadLn (x[i].kolvo);
WriteLn ('Vvedite wide');
ReadLn (x[i].wide);
WriteLn ('Vvedite country');
ReadLn (x[i].country);
WriteLn;
WriteLn;
end;  
  add_end(firstptr,x);
   end;
   end;
 
 
 procedure print_list(var firstptrtr);
var q:ptr;
begin
   q:=firstptr;
  while q<>nil do
    begin
     Write(q^.inf.name);
    case q^.inf.color of
    red:writeln('red');
    white:writeln('white');
    black:writeln('black');
    end;
     write(q^.inf.price);
     write(q^.inf.kolvo);   
     write(q^.inf.wide);
     write(q^.inf.country);
     q:=q^.next;
    end;
end;
 
Назад
Сверху