Индекс находится вне границ массива - PascalABC.NET (25120)
Формулировка задачи:
Не могу понять, где идёт числовое переполнение.
Листинг программы
- uses
- crt;
- type
- mass = array [1..10000]of integer;
- var
- a: mass;
- n, i: integer;
- procedure MPV(var a: mass);
- var
- i, j, k, x, pr, sr: integer;
- begin
- pr := 0; {присваивания*}
- sr := 0; {сравнения*}
- j := i;
- for i := 2 to n do
- begin
- x := a[i];
- j := i - 1;
- inc(pr);
- inc(sr);
- while ((x < a[j]) and (j >= 1)) do
- begin
- a[j + 1] := a[j];
- j := j - 1;
- inc(sr);
- end;
- a[j + 1] := x;
- inc(pr);
- end;
- writeln('Отсортированный массив:');
- for i := 1 to n do
- write(a[i], ' ');
- writeln;
- writeln;
- writeln('Количество присваиваний=', pr);
- writeln('количество сравнений=', sr);
- end;
- begin
- clrscr;
- randomize;
- write('n=');
- readln(n);
- writeln('Исходный массив:');
- for i := 1 to n do
- begin
- a[i] := random(51);
- write(a[i], ' ');
- end;
- writeln;
- writeln;
- MPV(a);
- readln;
- end.
Решение задачи: «Индекс находится вне границ массива»
textual
Листинг программы
- while ((j >= 1) and (x < a[j])) do
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д