Помощь - Поиск - Пользователи - Календарь
Полная версия: Массив записей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-=АнЮтА=-
    Program mas_rec;
    uses crt;
     type rec=record
     nam:string[20];
snam:string[15];
nom:integer;
end;
var zap:rec;
i,n:integer;
m:array[1..n] of zap;
begin
end.

При такой форме записи ругается на неизвестное n. Сама понимаю что в записи ошибка, но как сделать возможность n-мерного массива не могу дотумкать...подскажите плз.... blink.gif
volvo
Ругается как раз не на неизвестное n, а на то, что n - не константа...

Program mas_rec;
uses crt;
type
  rec=record
    nam:string[20];
    snam:string[15];
    nom:integer;
  end;

const n = 10;
var
  zap:rec;
  i:integer;
  m:array[1..n] of zap;

begin
end.


Ругаться не будет...

P.S.
Кстати, это не n - мерный массив, а одномерный, но длинны n
-=АнЮтА=-
Так я делала. Прошу прошения, неверно сформулировала вопрос. N хочу вводить с клавиатуры. Так ск-ть регулировать длину массива.
volvo
Ну, тогда тебе надо динамический массив:

{$R-}
type
  rec=record
    nam:string[20];
    snam:string[15];
    nom:integer;
  end;
  
  pmy_array = ^my_array;
  my_array = array[1 .. 1] of rec;

var
  dyn_array: pmy_array;

begin
  readln(n);
  getmem(dyn_array, n * sizeof(rec));

  { работать так: }
  dyn_arr^[1].nam := ...

  { удалять после окончания работы: }
  freemem(dyn_array, n * sizeof(rec));
end.

-=АнЮтА=-
Спасибо) Думаю мне пригодицца)) give_rose.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.