Практическое задание N 1. 23. Создать базу данных для десяти учащихся класса с оценками по трем предметам

Создать базу данных для десяти учащихся класса с оценками по трем предметам. Вывести на экран таблицу учащихся в алфавитном порядке с оценками по всем предметам. Вывести на экран таблицу в порядке увеличения средней оценки ученика.

Работа с большими массивами

Поскольку суммарный размер всех переменных, описанных в программе, не может превышать длины сегмента (64 К), то использование массивов больших размеров вызывает определенные трудности. Опишем известный способ "разбиения" двумерного массива с использованием переменных типа ссылка.

program Big_Mas;

CONST N1= 30; N2= 50;

type M1= array [1.. N1 ] of REAL; { тип M1 - массив переменных вещественного типа}

M2= array[1..N2] of ^M1; { тип M2 - массив ссылок на начальные адреса

элементов массивов типа M1}

var a1, a2: M2; { двумерные массивы N1xN2 переменных вещественного типа }

i, j: word;

BEGIN

for i:=1 to N2 do New(a1[i]); { размещение массива в оперативной памяти }

for i:=1 to N2 do New(a2[i]);

for j:= 1 to N1 do

for i:= 1 to N2 do begin

a1[i]^[j]:= j + Sin(Pi*i/N2); { пример расчета значений }

a2[i]^[j]:= j - Cos(Pi*i/N2) { элементов двумерных массивов }

end;

for i:= 1 to N2 do Dispose(a1[i]); { освобождение оперативной памяти }

for i:= 1 to N2 do Dispose(a2[i]);

Readln;

END.

Таким образом в оперативной памяти отводится место не под двумерные массивы "a1" и "a2" размером N1xN2, а под одномерные массивы (размером N2) адресов первых элементов линейных массивов (размером N1). Операция a1[i]^[j] (a2[i]^[j]) называется разыменование переменной (элемента массива).

Большие двумерные массивы часто применяются при решении "сеточных" задач.

1, 1 1, 2 1, 3 1, 4 Пусть дана сетка, узлы которой пронумерованы

* * * * двумя цифрами, каждая из цифр равна номеру узла

2, 1 2, 2 2, 3 2, 4 в соответствующем направлении.

* * * * При решении задачи требуется хранить значения

3, 1 3, 2 3, 3 3, 4 некоторых функций в узлах, т. е. использовать

* * * * элементы двумерных массивов. Значения индексов

элементов показывают расположение узла на сетке.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: