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

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

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

Листинг программы
  1. program Kursa4;
  2. uses crt;
  3. var X: array[1..10] of integer;
  4. n,i,j,z,y,m: integer;
  5. begin
  6. writeln('Enter n');{Длина массива}
  7. readln(n);
  8. SetLength(X,n); {Задаем длину массива}
  9. randomize;
  10. for i:=0 to n-1 do
  11. X[i]:=random(40)+1;{Заполняем массив}
  12. for i:=0 to n do {Упорядочиваем его по убыванию}
  13. for j:=i to n-1 do
  14. if X[i]<X[j] then
  15. begin
  16. z:=X[i];
  17. X[i]:=X[j];
  18. X[j]:=z;
  19. end;
  20. write('Array X: ');{Полученный массив}
  21. for i:=0 to n-1 do
  22. write (X[i]:4);
  23. writeln();
  24. writeln('Enter y');
  25. readln(y);
  26. m:= n-1;
  27. i := 0;
  28. while i <= m do
  29. if X[i] = y then
  30. begin
  31. for j := i to m - 2 do {удаляем}
  32. X[j] := X[j+2];
  33. m := m -2
  34. end else i := i + 1;
  35. write('Result: ');{Ответ}
  36. for i:= 0 to m do
  37. write(X[i]:4);
  38. readln;
  39. end.
Когда запускаю программу в Pascal ABC Program100.pas(8) : Не могу вызвать SetLength для операнда данного типа

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

textual
Листинг программы
  1. var x:array of integer;
  2.     n,i,j,z,y: integer;
  3. begin
  4. write('ведите размер массива n');
  5. readln(n);
  6. randomize;
  7. setlength(x,n);
  8. for i:=0 to n-1 do
  9. x[i]:=random(40)+1;{Заполняем массив}
  10. for i:=0 to n-2 do {Упорядочиваем его по убыванию}
  11. for j:=i+1 to n-1 do
  12. if x[i]<x[j] then
  13.  begin
  14.   z:=x[i];
  15.   x[i]:=x[j];
  16.   x[j]:=z;
  17.  end;
  18. write('Array X: ');{Полученный массив}
  19. for i:=0 to n-1 do
  20. write (x[i]:4);
  21. writeln;
  22. write('Enter y=');
  23. readln(y);
  24. i:=0;
  25. while i < n do
  26. if x[i] = y then
  27.  begin
  28.   for j := i to n - 2 do {удаляем}
  29.   x[j] := x[j+1];
  30.   n :=n-1
  31.  end
  32. else i := i + 1;
  33. write('Result: ');{Ответ}
  34. for i:= 0 to n-1 do
  35. write(x[i]:4);
  36. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы