Как преобразовать статический массив в динамический? - Pascal
Формулировка задачи:
uses crt; const nmax=100; var a:array[1..nmax] of integer; n,i,i1,k:byte; begin clrscr; randomize; repeat write('Размер массива А от 2 до ',nmax,' n='); readln(n); until n in [2..nmax]; writeln('Массив A'); for i:=1 to n do begin a[i]:=random(10); write(a[i]:4) end; writeln; i1:=0; i:=n; while(i>=1)and(i1=0)do if a[i]=0 then i1:=i else i:=i-1; if i1=0 then writeln('В массиве нет нулевых элементов') else begin if i1=n then n:=n-1 else begin for i:=i1 to n-1 do a[i]:=a[i+1]; n:=n-1 end; writeln('Удаление последнего нулевого элемента'); for i:=1 to n do write(a[i]:4); writeln end; repeat write('Введите индекс для вставки от 1 до ',n,' k='); readln(k); until k in [1..n]; n:=n+1; if k=n-1 then a[n]:=100 else begin for i:=n downto k+2 do a[i]:=a[i-1]; a[k+1]:=100; end; writeln('Вставка числа 100 после элемента с индексом ',k); for i:=1 to n do write(a[i]:4); readln end.
Решение задачи: «Как преобразовать статический массив в динамический?»
textual
Листинг программы
var a: array of Integer; begin ... SetLength(a,n); for i:=0 to n-1 do a[i]:=Random(10);
Объяснение кода листинга программы
В данном коде используется статический массив a
типа array of Integer
.
- Сначала объявляется переменная
a
типаarray of Integer
. - Затем выполняется некоторый код, который не виден в данном контексте.
- Далее вызывается функция
SetLength(a,n)
, гдеa
- это наш массив, аn
- это количество элементов, которое мы хотим добавить в массив. Эта функция изменяет длину массива на значениеn
. - После этого выполняется цикл
for i:=0 to n-1
, который заполняет элементы массиваa
значениями, полученными с помощью функцииRandom(10)
. Таким образом, данный код преобразует статический массивa
в динамический, изменяя его длину с помощью функцииSetLength
и заполняя его элементами с помощью циклаfor
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д