Динамические массивы

  • 06 окт. 2010 г.
  • 545 Слова
Цель занятия:

Получить практические навыки в разработке:

1. Динамических одномерных массивов
2. Динамических двумерных массивов
3. Однонаправленных списков

ЗАДАНИЕ:

Ввести число nобрабатываемых элементов и значения элементов массива.
Изменить значения элементов массива. Данные хранить в дисковых файлах.

Алгоритм программы:

ТЕКСТ ПРОГРАММЫ:

program dyn_vect(res);
uses crt;type
Intptr=^integer;
var
n:integer;
p:intptr;
name_inp, name_out:string;
res:text;
s:string;
procedure inp_vect_class(name_inp:string; var n:integer; varp:intptr);
var
i, elsize: integer;
ntp: pointer;
segp, ofsp:word;
pi:intptr;
dat: text;
begin
assign (dat, name_inp); reset (dat);
readln(dat,n);elsize := sizeof(integer);
getmem (ntp, n* elsize);
p:= intptr (ntp);

segp:=seg(p^); ofsp:=ofs(p^);

for i:=0 to (n-1) do
begin
pi:=(ptr(segp,ofsp+ i*elsize));
readln(dat,pi^);
end;
close (dat);
end;

procedure inp_vect_modern (name_inp:string; var n:integer; var p:intptr);
var
i, elsize: integer;ntp: pointer;
plong: longint;
pi:intptr;
dat: text;
begin
assign (dat, name_inp); reset (dat);
readln(dat,n);

elsize := sizeof(integer);getmem (ntp, n* elsize);
p:= intptr (ntp);

plong:= longint(p);

for i:=0 to (n-1) do
begin
pi:=intptr (plong + i*elsize);
readln(dat,pi^);end;
close (dat);
end;

procedure out_vect (name_out:string; n:integer; p:intptr);
var
i, elsize: integer;
segp, ofsp:word;
pi:intptr;
res: text;begin
assign (res, name_out); append (res);
writeln(res,#10,' Число элементов =',n:3);

writeln(res, ' Значения элементов:',#10);
elsize := sizeof(integer);...