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

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Динамические структуры и записи. (http://www.tehnari.ru/f41/t42253/)

citrus 18.11.2010 23:21

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


Код:

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;



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

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