Нет индексного свойства по умолчанию для типа integer паскаль как исправить

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
type
  TWorkers = Record
    LastName: string[30]; {фамилия}
    Born: integer; {год рождения}
    Experience: integer; {стаж}
  end;
 
var
  i, j, nx, n, g: integer;
  TWorkersList: array[1..20, 1..20] of TWorkers;
 
{=======================================================================================================} 
 
procedure Merge(var TWorkersList, first, last: integer);
var
  middle, start, final, h: integer;
  mas: array[1..20, 1..20] of TWorkers;
begin
  middle := (first + last) div 2;
  start := first;
  final := middle + 1;
  for h := first to last do
    if (start <= middle) and ((final > last) or (TWorkersList[start].Born > TWorkersList[final].Born)) then
    begin
      mas[h] := TWorkersList[start];
      inc(start);
    end
    else
    begin
      mas[h] := TWorkersList[final];
      inc(final);
    end;
  for h := first to last do TWorkersList[h] := mas[h];
end;
 
procedure MergeSort(var TWorkersList, first, last: integer);
begin
  if first < last then
  begin
    MergeSort(TWorkersList, first, (first + last) div 2);
    MergeSort(TWorkersList, (first + last) div 2 + 1, last);
    Merge(TWorkersList, first, last);
  end;
end;
 
{==========================================================================================================}
 
begin
  write('Введите размерность квадратной матрицы: ');readln(nx);
  writeln('==============================================');
  for i := 1 to nx do
  begin
    for j := 1 to nx do
    begin
      write('Фамилия: ');readln(TWorkersList[i, j].LastName);
      write('Год рождения: ');readln(TWorkersList[i, j].Born);
      write('Стаж: ');readln(TWorkersList[i, j].Experience);
      writeln('===========================================');
    end;
  end;
  writeln('============Исходная матрица=============');
  for i := 1 to nx do
  begin
    for j := 1 to nx do
    begin
      writeln('Фамилия: ', TWorkersList[i, j].LastName, ' ', TWorkersList[i, j].Born, ' г.р', ' ', 'Стаж: ', TWorkersList[i, j].Experience, ' лет');
    end;
  end;
  writeln('========================================');
  for j := 1 to nx do MergeSort(TWorkersList, 1, n);
end.

Паскаль

выдает ошибку в процедуре : Нет индексного свойства по умолчанию для типа integer.

Помогите разобраться.

Procedure input (var n, m : integer ; var a : array of integer) ; var i, j : integer ;

begin clrscr ; write(‘input quantity of rows ‘) ; readln(n) ; write(‘input quantity of columns ‘) ; readln(m) ; for i : = 1 to n do begin for j : = 1 to m do begin write(‘ a[‘, i, ‘, ‘, j, ‘] = ‘) ; read (a[i][j]) ; writeln ; end ;

end ; end ;

Вы находитесь на странице вопроса Паскальвыдает ошибку в процедуре : Нет индексного свойства по умолчанию для типа integer? из категории Информатика.
Уровень сложности вопроса рассчитан на учащихся 10 – 11 классов. На странице
можно узнать правильный ответ, сверить его со своим вариантом и обсудить
возможные версии с другими пользователями сайта посредством обратной связи.
Если ответ вызывает сомнения или покажется вам неполным, для проверки
найдите ответы на аналогичные вопросы по теме в этой же категории, или создайте
новый вопрос, используя ключевые слова: введите вопрос в поисковую строку,
нажав кнопку в верхней части страницы.

Вы массив объявили с именем  ar, а пытаетесь его использовать с именем а
Исправленный код выглядит так:

var
  ar: array[1..10]of integer;
  a, c, i, n: integer;

begin
read(n);
  for i := 1 to n do
  begin
    read(ar[i]);
    if i = 1 then
      c := ar[i];
    if ar[i] > c then
      c := ar[i];
  end;
  writeln(c);
end.

 Вариант №2
program max;
const n = 10;
var
  ar: array[1..10]of integer;
  a, c, i: integer;

begin
  for i := 1 to n do
  begin
    read(ar[i]);
    if i = 1 then
      c := ar[i];
    if ar[i] > c then
      c := ar[i];
  end;
  writeln(c);
end.

Паскаль выдает ошибку в процедуре: Нет индексного свойства по умолчанию для типа integer. Помогите разобраться. procedure input (var n,m:integer; var a:array of integer); var i,j:integer; begin clrscr; write(‘input quanti…

Паскаль
выдает ошибку в процедуре: Нет индексного свойства по умолчанию для типа integer. Помогите разобраться.
procedure input (var n,m:integer; var a:array of integer);
var i,j:integer;
begin
clrscr;
write(‘input quantity of rows ‘);readln(n);
write(‘input quantity of columns ‘);readln(m);
for i:=1 to n do begin
for j:=1 to m do begin
write(‘ a[‘,i,’,’,j,’]=’);
read (a[i][j]);
writeln; end;
end;end;

Автор: Гость

Ответ(ы) на вопрос:

Гость:

Собака зарыта в строчках
var a:array of integer

read(a[i][j])
Смысл в том, что a, похоже, объявлен как одномерный массив, а по твоей задумке он двумерный. Поставь там инициализацию двумерных массивов.
(В PascalABC.Net, если ты тоже в этой среде и этом диалекте, то там я ручаюсь, что там правильно var a:array  [,] of integer. Хотя допускаю, что везде одинаково).

Добавить комментарий