Меню
Разработки
Разработки  /  Информатика  /  Презентации  /  Прочее  /  Организация динамической памяти в Turbo Pascal

Организация динамической памяти в Turbo Pascal

Организация динамической памяти в Turbo Pascal
31.05.2023

Содержимое разработки

Организация динамической памяти в Turbo Pascal

Организация динамической памяти в Turbo Pascal

Статическая память Динамическая память Указатель Величина Значение Адрес

Статическая память

Динамическая память

Указатель

Величина

Значение

Адрес

Адрес величины — это номер первого байта поля памяти, в ко­тором располагается величина. Размер поля однозначно определя­ется типом.  Величина ссылочного типа (указатель) описывается в разделе описания переменных следующим образом: Var :

Адрес величины это номер первого байта поля памяти, в ко­тором располагается величина. Размер поля однозначно определя­ется типом. Величина ссылочного типа (указатель) описывается в разделе описания переменных следующим образом:

Var :

Каждый указатель может ссылаться на ве­личину только одного определенного типа, который называется базовым  для указателя. Имя базового типа и указывается в описа­нии в следующей форме: :=^

Каждый указатель может ссылаться на ве­личину только одного определенного типа, который называется базовым для указателя. Имя базового типа и указывается в описа­нии в следующей форме:

:=^

Например: Type Massiv=Array[1..100] of integer; Var P1: ^integer;  P2: ^char;   PM: ^massiv;

Например:

Type Massiv=Array[1..100] of integer;

Var P1: ^integer;

P2: ^char;

PM: ^massiv;

Память под динамическую величину, связанную с указателем, выделяется в результате выполнения стандартной про­ цедуры new. Формат обращения к этой процедуре выглядит так: NEW ();

Память под динамическую величину, связанную с указателем, выделяется в результате выполнения стандартной про­ цедуры new. Формат обращения к этой процедуре выглядит так:

NEW ();

Считается, что после выполнения этого оператора создана ди­намическая величина.  Пусть в программе, в которой имеется приведенное выше опи­сание, присутствуют операторы NEW(P1); NEW(P2); NEW(PM);

Считается, что после выполнения этого оператора создана ди­намическая величина. Пусть в программе, в которой имеется приведенное выше опи­сание, присутствуют операторы

NEW(P1); NEW(P2); NEW(PM);

После их выполнения в динамической памяти оказывается выделенным место под три величины (две скалярные и один мас­сив), которые имеют идентификаторы P1 ^, P2 ^, PM ^ Например, обозначение Р1^ можно расшифровать так: дина­ мическая переменная, на которую ссылается указатель Р1.

После их выполнения в динамической памяти оказывается выделенным место под три величины (две скалярные и один мас­сив), которые имеют идентификаторы

P1 ^, P2 ^, PM ^

Например, обозначение Р1^ можно расшифровать так: дина­ мическая переменная, на которую ссылается указатель Р1.

Статическая память Динамическая память Указатель Величина P1 P1^(2 байта) P1^(2 байта) P1^(1 байта) P2 PM^(100 байта) PM

Статическая память

Динамическая память

Указатель

Величина

P1

P1^(2 байта)

P1^(2 байта)

P1^(1 байта)

P2

PM^(100 байта)

PM

P1^:-25; P2^:=“W“;\ For I:=1 to 100 do PM^ [I]:=I;

P1^:-25;

P2^:=“W“;\

For I:=1 to 100 do PM^ [I]:=I;

В качестве ссылочного выражения можно использовать:  указатель;  ссылочную функцию (т. е. функцию, значением которой яв­ляется указатель);  константу Nil.

В качестве ссылочного выражения можно использовать: указатель; ссылочную функцию (т. е. функцию, значением которой яв­ляется указатель); константу Nil.

DISPOSE();

DISPOSE();

Type Pe=^Elem; Elem=Rerord T: Real; P: Pe End;

Type Pe=^Elem;

Elem=Rerord

T: Real;

P: Pe

End;

Создать вещественный массив из 10000 чисел, заполнить его случайными числами в диапазоне от 0 до 10000. Вычислить среднее значение массива. Очистить динамическую память.

Создать вещественный массив из 10000 чисел, заполнить его случайными числами в диапазоне от 0 до 10000. Вычислить среднее значение массива. Очистить динамическую память.

Program f1;  Const n=10000;  Type  Mas=array[1..n] of real;  Var p: ^mas;  I: integer; s: real;  Begin  S:=0;  Randomize;  New(p);  For i:=1 to n do begin  P^[i]:=random;  S:=s+p^[i]; end;  S:=s/n;  Writeln(‘Сумма элементов массива равна’, s:7:4);  End.

Program f1; Const n=10000; Type Mas=array[1..n] of real; Var p: ^mas; I: integer; s: real; Begin S:=0; Randomize; New(p); For i:=1 to n do begin P^[i]:=random; S:=s+p^[i]; end; S:=s/n; Writeln(‘Сумма элементов массива равна’, s:7:4); End.

-80%
Курсы профессиональной переподготовке

Учитель, преподаватель физики и информатики

Продолжительность 600 или 1000 часов
Документ: Диплом о профессиональной переподготовке
17800 руб.
от 3560 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Организация динамической памяти в Turbo Pascal (131.45 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт