Основы программирования на C++, PASCAL
Пример 1. Создать вещественный массив из 10000 чисел, заполнить его случайными числами в диапазоне от 0 до 1. Вычислить среднее значение массива. Очистить динамическую память. Создать целый массив размером 10000, заполнить его случайными целыми числами в диапазоне от -100 до 100 и вычислить его среднее значение.
Program Sr;
Const NMax=10000;
Type Diapazon=l..NMax;
MasInt=Array[Diapazon] Of Integer;
MasReal=Array[Diapazon] Of Real;
Var Flint: ^Masint;
PReal: ^MasReal;
I,Midint: Longint;
MidReal: Real;
Begin
MidReal:=0; Midlnt:=0;
Randomize;
NEW(PReal);
{Выделение памяти под вещественный массив}
{Вычисление и суммирование массива}
For I:=1 То NMax Do
Begin PReal^[I]:=Random;
MidReal:=MidReal+PReal^[I]
End;
DISPOSE(PReal);{Удаление вещественного массива}
NEW(Pint); (Выделение памяти под целый массив}
{Вычисление и суммирование целого массива)
For I:=l To NMax Do
Begin
PInt^[I]:=Random(200)-100;
MidInt:=MidInt+PInt^[I]
End;
{Вывод средних значений}
WriteLn('среднее целое равно:',MidInt DivMax);
WriteLn('среднее вещественное равно:', (MidReal/NMax):10:6)
End.
Связанные списки. Обсудим вопрос о том, как в динамической памяти можно создать структуру данных переменного размера.
Разберем следующий пример. В процессе физического эксперимента многократно снимаются показания прибора (допустим, термометра) и записываются в компьютерную память для дальнейшей обработки. Заранее неизвестно, сколько измерений будет произведено.
Если для обработки таких данных не использовать внешнюю память (файлы), то разумно расположить их в динамической памяти. Во-первых, динамическая память позволяет хранить больший объем информации, чем статическая. А во-вторых, в динамической памяти эти числа можно организовать в связанный список, который не требует предварительного указания количества чисел, подобно массиву. Что же такое связанный список? Схематически он выглядит так:
Каждый элемент списка состоит из двух частей: информационной части (x1, x2 и т.д.) и указателя на следующий элемент списка (p2, р3, и т.д.). Последний элемент имеет пустой указатель Nil. Связанный список такого типа называется однонаправленной цепочкой.
Для сформулированной выше задачи информационная часть представляет набор вещественных чисел: x1 — результат первого измерения, x2 — результат второго измерения и т