Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/56: Рейтинг темы: голосов - 56, средняя оценка - 4.84
1 / 1 / 0
Регистрация: 25.04.2016
Сообщений: 25

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

08.06.2016, 14:04. Показов 10654. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При написании программы Pascal выдает такую ошибку
Program2.pas(23) : Нет индексного свойства по умолчанию для типа integer
. Вот код программы
Pascal
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.
Задача программы: построчная сортировка в матрице по возрасту от молодого к старому
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2016, 14:04
Ответы с готовыми решениями:

Нет индексного свойства по умолчанию для типа integer
Program Massivi; uses crt; Type Digit=array of integer; Matrix=array of byte; var i,j,s,k,c: integer; A: Digit; B:Matrix; ...

Нет индексного свойства по умолчанию для типа integer
var n, m, x, y, a, i:integer; begin readln(n,m); for i:=1 to n do a:=i; for i:=1 to m do begin readln(x,y); ...

Нет индексного свойства по умолчанию для типа integer
В общем дошел до процедур и функций и решил попрактиковаться в них, написав простую программу,которая формирует двухмерный массив и...

11
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
08.06.2016, 14:27
23-я строка
TWorkersList[start].Born <-- массив TWorkersList двумерный. А вы обращаетесь к нему, как одномерному.
0
1 / 1 / 0
Регистрация: 25.04.2016
Сообщений: 25
08.06.2016, 14:38  [ТС]
ZX Spectrum-128, как же мне исправить программу?
0
Заблокирован
03.09.2016, 17:09
Цитата Сообщение от Galbine Посмотреть сообщение
как же мне исправить программу?
Это матрица))Понимаешь таблица с элментами ,обращаться так
TWorkersList[1,2];
Или же просто переделай в начале на TWorkersList: array[1..40] of TWorkers;
Миниатюры
"Нет индексного свойства по умолчанию для типа integer"  
0
Заблокирован
03.09.2016, 17:21
Цитата Сообщение от Galbine Посмотреть сообщение
procedure Merge(var TWorkersList, first, last: integer);
Ты используешь одну переменную ,а не матрицу

Добавлено через 6 минут
Ппц ,это полнейший бред ты хочешь переполнение стека???
Pascal
1
2
3
4
5
6
7
8
9
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;
Какого черта ты вызываешь в процедуре саму себя,понимаешь ?В MergeSort вызываешь MergeSort.Займись чем нибудь попроще,например с работы с массивами двумерными
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
03.09.2016, 17:24
Нафига тут квадратная матрица? Обычный линейный массив записей.

Добавлено через 1 минуту
Количество строк в таблице=количеству записей, колонок 3, по количеству полей. Или наоборот.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
04.09.2016, 01:14
Цитата Сообщение от АнатолийРАЕ Посмотреть сообщение
Какого черта ты вызываешь в процедуре саму себя,понимаешь ?В MergeSort вызываешь MergeSort
Если кто-то не слышал про рекурсивные процедуры - это не проблема рекурсии, это проблема того, кто не слышал. И при этом еще пытается учить других, что делать, сам не зная ничего.
0
Заблокирован
04.09.2016, 09:46
Цитата Сообщение от volvo Посмотреть сообщение
И при этом еще пытается учить других, что делать, сам не зная ничего.
Это частный случай,здесь я абсолютно прав.Вот что - что ,а вы модераторы,отличаетесь особой язвительностью!
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
04.09.2016, 10:09
Цитата Сообщение от АнатолийРАЕ Посмотреть сообщение
Это частный случай,
Судя по Вашим сообщениям это клиника.
0
Заблокирован
04.09.2016, 10:24
Цитата Сообщение от Puporev Посмотреть сообщение
частный случай
Как в геометрии,своеобразное исключение(и не нужно мне тут говорить что программирование не геометрия и без вас это ясно как день,|-это речь,сравнение ,эпитеты ,метафоры).
И остроты такого типа,я бы не стал использовать,сам порежешься.
Если ты не понял.То проще,зачем так резко,а если ты не прав?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
04.09.2016, 10:32
АнатолийРАЕ, Тебе же написали
Цитата Сообщение от volvo Посмотреть сообщение
Если кто-то не слышал про рекурсивные процедуры - это не проблема рекурсии, это проблема того, кто не слышал.
Почитайте про рекурсию, рекурсивнык методы сортировки и поиска.

Добавлено через 1 минуту
А будете дальше флудить, буду раздавать награды в виде красных карт, пока не расстаемся.
0
Заблокирован
04.09.2016, 14:55
Цитата Сообщение от Puporev Посмотреть сообщение
буду раздавать награды в виде красных карт, пока не расстаемся.
Жду не дождусь!

Добавлено через 3 минуты
Цитата Сообщение от volvo Посмотреть сообщение
рекурсивные процедуры
Хорошо ,хорошо.Сразу не разглядел,что поделать думал о других ошибках.

Добавлено через 4 часа 6 минут
Цитата Сообщение от Galbine Посмотреть сообщение
Задача программы: построчная сортировка в матрице по возрасту от молодого к старому
А обычный массив тебе подойдет?
Если да то вот:
Pascal
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
type
  TWorkers = Record
    LastName: string[30]; {фамилия}
    Born: integer; {год рождения}
    Experience: integer; {стаж}
  end;
 
var
  i, j, nx, n, g: integer;
  TWorkersList: array[1..40] of TWorkers;//вместо матрицы
 
{=======================================================================================================} 
 
procedure Merge( first, last: integer);//Убрал парметр ,почему?Он мне не понравился)
var
  middle, start, final, h: integer;
  mas: array[1..40] 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(first, last: integer);//Здесь тоже убрал
begin
  if first < last then
  begin
    MergeSort(first, (first + last) div 2);
    MergeSort( (first + last) div 2 + 1, last);
    Merge(first, last);
  end;
end;
 
{==========================================================================================================}
 
begin
  write('Введите размерность: ');readln(nx);//Размерность == количеству вводимого юзером
  writeln('==============================================');
  for i := 1 to nx do//теперь же обычный массив
    begin
      write('Фамилия: ');readln(TWorkersList[i].LastName);
      write('Год рождения: ');readln(TWorkersList[i].Born);
      write('Стаж: ');readln(TWorkersList[i].Experience);
      writeln('===========================================');
    end;
    
  for j := 1 to nx do MergeSort( 1, n);//Отсортируем прежде чем вывести
  writeln('============Записанное=============');
  var Year:string;
  for i := 1 to nx do
  begin
  IF TWorkersList[i].Experience<4 then Year:=' Год' else Year:=' Лет';//Для красоты)
      writeln('Фамилия: ', TWorkersList[i].LastName, ' ', TWorkersList[i].Born, ' г.р', ' ', 'Стаж: ', TWorkersList[i].Experience,Year);
    end;
  writeln('========================================');
end.
Я проверял сортирует правильно.Но все же рекурсия-Что может быть хуже?

Добавлено через 7 минут
Но все же если тебе так въелись эти матрицы ,то в процедуре MERGE ,должен быть двойной цикл, по строкам и столбцам так сказать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.09.2016, 14:55
Помогаю со студенческими работами здесь

Нет индексного свойства по умолчанию для типа integer (поиск крайних точек)
Всю плешь выела чёртова задача. День думал над тем как реализовать, день писал и переписывал с нуля. В общем, помогите, ребятки. Итак,...

Нет индексного свойства по умолчанию для функционального типа
Ошибка в строке 42, помогите исправить. За ранее спасибо program test; const s0 = '00000001'; var s, ss: string; ...

Нет индексного свойства по умолчанию для типа real
uses graphABC; type point = record x, y: integer; end; var doodler, background, platform: picture; Left,...

Ошибка: Нет индексного свойства по умолчанию для типа char
program kajdiuvtoroi; var a, b : string; begin writeln('введите строку:'); readln (a); b := delete(a); writeln (a); ...

Program1.pas(144) : Нет индексного свойства по умолчанию для типа real
При компиляции программы выводит ошибку в 144 строке : Нет индексного свойства по умолчанию для типа real.Как исправить? Const ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru