Необхідні ДЛЯ ЗБЕРІГАННЯ МАСИВІВ ПАМ’ЯТЬ

У стандарті Бейсика (в мінімальному підмножині) передбачається, що індекси починаються з 0, і ця угода прийнято для більшості систем У цьому випадку оператор DIM P (4) зарезервує 5 осередків:

Р (0), Р (1), Р (2), Р (3), Р (4)

а оператор DIM A (2, 3) 12 осередків:

А (0,0), А (0, 1), А (0,2), А (0,3) А (1,0), А (1,1), А (1,2), А ( 1,3)

А (2,0), А (2,1), А (2,2), А (2,3)

Так як для одновимірного масиву за замовчуванням максимальний індекс дорівнює (10), то для нього буде зарезервовано 11 осередків і індекси можуть приймати значення від 0 до 10 Аналогічно для двовимірного масиву за замовчуванням максимальний індекс дорівнює (10,10) і для індексу буде зарезервована 121 осередок

У тих системах, в яких початковий індекс дорівнює 1, оператор DIM P (4) зарезервує 4 осередки:

Р (1), Р (2), Р (3), Р (4) а оператор DIM A (2, 3) 6 осередків:

А (1,1), А (1,2), А (1,3)

А (2, 1), А (2, 2), А (2, 3)

У більшості систем (крім ВВС) є оператор OPTION BASE, що дозволяє змінювати встановлюється за замовчуванням початкове значення індексу Так, в системі, де початкове значення індексу спочатку дорівнює 0, оператор

10  OPTION BASE 1

зменшить обсяг памяті, резервований оператором DIM A (2, 3), з 12 до 6 осередків

Загальна форма запису:

OPTION BASE N де N одно або 0, або 1

Встановлює початкове значення індексу для всіх використовуваних у програмі масивів рівним 0

або 1 У програмі може бути не більше одного оператора OPTION

Вибір між 0 і 1 в якості початкового значення індексу має визначатися характером розвязуваної задачі Скажімо, у наведеному вище примі-

ре з рознесенням молока дні тижня природніше ідентифікувати числами від 1 до 7, ніж від 0 до

6 Тому в цьому завданні вибір 1 в якості початкового значення індексу цілком виправданий

Якщо Ви бажаєте не замислюватись над вибором початкового значення індексу і, працюючи з системою, де це значення дорівнює 0, використовуєте тільки значення індексу від 1 до максимального, то тим самим марно витрачаєте частина памяті ЕОМ Наприклад, для масиву дійсних чисел, описаного оператором DIM A (100, 100), потрібно за 4 байт (у Бейсике ВВС – по 5 байт) на кожен елемент масиву, тобто всього 4 * 101 * 101 = 40 804 байт при початковому значенні індексу, що дорівнює 0 (у Бейсике ВВС 51005 байт) Якщо ж працювати з індексами від 1 до максимального, то реально використовується память обємом в 4 * 100 * 100 = 40000 байт (у Бейсике ВВС 50 000 байт) Таким чином, 804 байт (у Бейсике ВВС 1005 байт) ніколи не будуть використовуватися і виявляться недоступними і для інших потреб, наприклад для зберігання команд програми або рядків символів У цьому випадку вказівка ​​на початку програми оператора OPTION BASE 1 збереже чималий обсяг памяті

У деяких системах передбачені спеціальні функції для роботи з матрицями імена цих функцій починаються з МАТ, наприклад MAT INPUT Всі ці функції оперують елементами масиву, індекси яких змінюються від 1 до максимального, незалежно від того, чи існують елементи з нульовими індексами (див гл 7)

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*