Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 15.02.2016
Сообщений: 11
1

Как преобразовать статический массив в динамический?

13.04.2016, 09:45. Показов 1891. Ответов 2
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2016, 09:45
Ответы с готовыми решениями:

Статический в динамический массив
Помогите переписать программу(чтобы использовался динамический массив) Var A:array of integer; ...

Дан массив с 50 именами, используя сортировку, преобразовать его в динамический массив и использовать бинарный поиск
Помогите пожалуйста! Дан массив с 50 именами, используя сортировку, преобразовать его в...

Последовательность и статический массив
помогите пожалуйста . навалилось очень много заданий , и со всеми справиться не могу помогите с...

Заменить статический массив на динамический
program massiv; type mass=array of real; var m: mass; var i,x: integer; var min: real; begin...

2
Эксперт Pascal/Delphi
6750 / 4528 / 4797
Регистрация: 05.06.2014
Сообщений: 22,351
13.04.2016, 09:55 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
program dinarray;
 
uses crt;
const nmax=100;
var a:array of integer;
    n,i,i1,k:byte;
begin
clrscr;
randomize;
repeat
write('Размер массива А от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
setlength(a,n+1);
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;
setlength(a,0);
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5758 / 3462 / 2449
Регистрация: 22.11.2013
Сообщений: 9,725
Записей в блоге: 1
13.04.2016, 11:59 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
type
  PIntArr = ^TIntArr;
  TIntArr = array [1..nmax] of Integer;
var
  a: PInteger;
begin
  ...
  GetMem(a,SizeOf(a[Low(a)])*n);
  for i:=1 to n do a^[i]:=Random(10);
  ...
  FreeMem(a,SizeOf(a[Low(a)])*n); { не в TP второй параметр м.б. не нужен }
Если тот факт, что в FPC динамический массив является указателем, считается допустимым по условию:
Pascal
1
2
3
4
5
6
var
  a: array of Integer;
begin
  ...
  SetLength(a,n);
  for i:=0 to n-1 do a[i]:=Random(10);
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.04.2016, 11:59

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как создать динамический массив?
Ребят, как создать примерно такой динамический массив var N :integer; mas : array og integer...

Как удалить динамический массив?
Как удалить динамический массив? В Pascal ABC Net нету функции FreeMem...

Как создать динамический двухмерный массив?
Количество элементов в массиве не известно и оно может изменяться.

Как считать информацию из текстового файла и записать в динамический массив?
По заданию нужно сортировать поразрядной сортировкой данные из текстовых файлов разной величины,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.