Особливості використання динамічних змінних
Особливості використання динамічних змінних порівняно зі статичними такі:
1) замість опису динамічних змінних описують вказівки -статичні змінні вказівного типу, які ставлять у відповідність динамічним змінним;
2) для створення динамічних змінних, що відповідають уведеним вказівним, використовують процедуру new, фактичним параметром якої задають відповідну вказівну змінну.
3) доступ до динамічних змінних відбувається за допомогою змінних з вказівником.
Множина операцій над змінними з вказівником визначена типом цих динамічних змінних.
Розглянемо приклад про застосування динамічних структур даних для підвищення швидкодії програми. Нехай задано деякий текст, розділений на слова завдовжки до 100 символів, комами. В кінці тексту є крапка. Визначити, скільки разів трапляється деяка буква в першому за порядком слові максимальної довжини.
Програмна реалізація алгоритму матиме вигляд
program chyslovhodz(input,output); type
mas=array [1..100] of char;
s=^mas;
var
r,rez,biz: s;
max,i,k: integer; c: char;
begin
max:=-1; i:=0;
new(biz); new(rez);
{читання тексту}
repeat
read(c);
if (c<>',') and (c<>.) then
begin
i:=i+1;
biz^[i]:=c
end
else {порівняння слів} if i>max then
begin {поточне слово —> місце результату}
max:=i; r:=rez; rez:=biz; biz:=r; i:=0;
end
until c='.';
{читання заданої букви}
read(c);
{обчислення кількості заданої літери у слові}
k:=0; for i:=1 to max do
if c=rez^[i]then k:=k+1; writeln('cлово');
for i:=1 to max do
write(rez^[i]);
writeln;
writeln('містить букву',c,k:1,' разів')
end.
Зрозуміло, що для реалізації цього алгоритму можна було б не використовувати вказівних змінних і динамічних структур, однак тоді замість пересилання вказівних змінних треба було б пересилати самі масиви, що значно трудомісткіше.