Не получается вызвать SetLength для операнда данного типа - Pascal

Узнай цену своей работы

Формулировка задачи:

program  Kursa4;
uses crt;
var X: array[1..10] of  integer;
    n,i,j,z,y,m: integer;
begin
  writeln('Enter n');{Длина массива}
  readln(n);
  SetLength(X,n);  {Задаем длину массива}
  randomize; 
  for i:=0 to n-1 do
    X[i]:=random(40)+1;{Заполняем массив}
  for i:=0 to n do {Упорядочиваем его по убыванию}
  for j:=i to n-1 do
  if X[i]<X[j] then
  begin
    z:=X[i];
    X[i]:=X[j];
    X[j]:=z;
  end;   
  write('Array X: ');{Полученный массив}
  for i:=0 to n-1 do
  write (X[i]:4);
  writeln();
  writeln('Enter y');
  readln(y);
  m:= n-1;
  i := 0;
  while i <= m do
  if X[i] = y then
  begin
    for j := i to m - 2 do {удаляем}
        X[j] := X[j+2];
    m := m -2
  end else i := i + 1;
  write('Result: ');{Ответ}
  for i:= 0 to m do
  write(X[i]:4);
  readln;
end.
Когда запускаю программу в Pascal ABC Program100.pas(8) : Не могу вызвать SetLength для операнда данного типа

Решение задачи: «Не получается вызвать SetLength для операнда данного типа»

textual
Листинг программы
var x:array of integer;
    n,i,j,z,y: integer;
begin
write('ведите размер массива n');
readln(n);
randomize;
setlength(x,n);
for i:=0 to n-1 do
x[i]:=random(40)+1;{Заполняем массив}
for i:=0 to n-2 do {Упорядочиваем его по убыванию}
for j:=i+1 to n-1 do
if x[i]<x[j] then
 begin
  z:=x[i];
  x[i]:=x[j];
  x[j]:=z;
 end;
write('Array X: ');{Полученный массив}
for i:=0 to n-1 do
write (x[i]:4);
writeln;
write('Enter y=');
readln(y);
i:=0;
while i < n do
if x[i] = y then
 begin
  for j := i to n - 2 do {удаляем}
  x[j] := x[j+1];
  n :=n-1
 end
else i := i + 1;
write('Result: ');{Ответ}
for i:= 0 to n-1 do
write(x[i]:4);
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • x: массив целых чисел (array of integer)
    • n, i, j, z, y: целые числа
  2. Ввод размера массива:
    • Выводится сообщение ведите размер массива n
    • Считывается значение n с клавиатуры
  3. Заполнение массива случайными числами:
    • Генерируются случайные значения для каждого элемента массива x
  4. Упорядочивание массива по убыванию:
    • Применяется алгоритм сортировки, где каждый элемент сравнивается с другими и меняется, если необходимо, чтобы массив был упорядочен по убыванию
  5. Ввод значения y:
    • Выводится сообщение Enter y=
    • Считывается значение y с клавиатуры
  6. Удаление элемента из массива x с заданным значением y:
    • Происходит проверка каждого элемента массива на равенство значению y
    • Если значение y найдено, оно удаляется из массива путем сдвига всех элементов после удаленного элемента
    • Размер массива n уменьшается
  7. Вывод результата:
    • Выводится сообщение Result: за которым следует полученный массив x после удаления элемента
    • Выводятся все элементы массива x в виде упорядоченной последовательности.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы