Не получается вызвать 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.
Решение задачи: «Не получается вызвать 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.
Объяснение кода листинга программы
- Объявление переменных:
x
: массив целых чисел (array of integer)n, i, j, z, y
: целые числа
- Ввод размера массива:
- Выводится сообщение
ведите размер массива n
- Считывается значение
n
с клавиатуры
- Выводится сообщение
- Заполнение массива случайными числами:
- Генерируются случайные значения для каждого элемента массива
x
- Генерируются случайные значения для каждого элемента массива
- Упорядочивание массива по убыванию:
- Применяется алгоритм сортировки, где каждый элемент сравнивается с другими и меняется, если необходимо, чтобы массив был упорядочен по убыванию
- Ввод значения
y
:- Выводится сообщение
Enter y=
- Считывается значение
y
с клавиатуры
- Выводится сообщение
- Удаление элемента из массива
x
с заданным значениемy
:- Происходит проверка каждого элемента массива на равенство значению
y
- Если значение
y
найдено, оно удаляется из массива путем сдвига всех элементов после удаленного элемента - Размер массива
n
уменьшается
- Происходит проверка каждого элемента массива на равенство значению
- Вывод результата:
- Выводится сообщение
Result:
за которым следует полученный массивx
после удаления элемента - Выводятся все элементы массива
x
в виде упорядоченной последовательности.
- Выводится сообщение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д