Главная страница

Лекции. Основные понятия и определения


Скачать 1.94 Mb.
НазваниеОсновные понятия и определения
Дата27.03.2018
Размер1.94 Mb.
Формат файлаdocx
Имя файлаЛекции.docx
ТипКонтрольные вопросы
#39570
страница8 из 58
1   ...   4   5   6   7   8   9   10   11   ...   58

3.2. Совокупности данных


Переменные любых типов могут быть объединены в совокупности. Если в совокупности все переменные одного типа и место каждой определяется номером (индексом), то это массив, если же разных, то – структура.

3.2.1. Массивы


Пример. Массив. Система линейных алгебраических уравнений.

a11*x1+a12*x2=b1

a21*x1+a22*x2=b2

В результате имеем 3 массива: {aij,i,j=1,2}, {xk,k=1,2}, {bl,l=1,2}.

Количество индексов определяет размерность массива. Различают одномерные (размерность равна 1) и многомерные (размерность > 1) массивы.

Расположение в памяти элементов многомерного массива в языках C и Basic лексикографическое, т.е. в следующем порядке: a11 a12 a21 a22.

Доступ к отдельным элементам производится по значениям индексов.

Пример.

i=1 j=2 aij=a12

Массивы должны быть объявлены в специальных инструкциях.
Объявления массивов
С

<элемент>:=<имя>[<длина>][,[<длина>]]…

<длина> - количество элементов массива в данном измерении.

Замечание. Жирным выделены символы языка, начертание которых совпадает с метаобозначениями.

Пример.

Page[10 ] Line[81] Screen[24][80] Vect[20] Matr[10][10]

Нижняя граница (минимальное значение) индекса в каждом измерении всегда равна 0, верхняя (максимальное значение) равна длина-1.

Пример.

В объявлении Matr[10][10] первый элемент – это Matr[0][0], последний – Matr[9][9]. Всего элементов 10*10=100. Многомерный массив можно рассматривать как массив, элементами которого являются массивы меньшей размерности.

Пример.

Matr[0] – первый элемент массива, элементом которого является массив из 10 элементов.

Длина измерения – целое постоянное выражение (пока будем считать, целое без знака).
Basic

<массив>:=<имя>(<индекс>[,<индекс>]...)

<индекс>:=[нижняя граница To] верхняя граница

<граница> - целое выражение >0

В данных версиях языка нижняя граница индекса массива всегда равна 0. Задать отличную от 0 нижнюю границу можно, но это только приведет к неиспользованию части отведенной под массив памяти.

Пример.

A(1,1) X(1) DaysOfMonth(1 To 12) Etap(1 To 20, 1) Matr(m-1, n-1)

Замечание 1. Старайтесь не использовать нижнюю границу при объявлении массива, поскольку нижняя граница измерения всегда равна 0. В результате в массивах DaysOfMonth и Etap память используется неполностью.

DaysOfMonth: выделено памяти под 12+1=13 элементов, используется 12,

Etap: выделено памяти под (20+1)*(1+1)=42 элемента, используется 40.

В отличие от языка C, где в объявлении массивов используется понятие длина или количество элементов в данном измерении массива, понятие верхняя граница означает максимальное значение индекса в данном измерении и, следовательно, объявление A(1,1) определяет массив данных из 4 элементов: A(0,0), A(0,1), A(1,0), A(1,1). Как видно из примера, многомерные массивы аналогично языку C располагаются в памяти построчно.

Замечание 2. Весьма важно! Границы массивов в языке Basic могут быть выражениями, включающими имена переменных, и их объявления могут располагаться в произвольном месте кода до 1-го употребления их имен. Следовательно, можно сначала задать размеры массивов, а затем объявить их, используя заданные размеры. Это дает возможность использовать динамические массивы, размеры которых неизвестны до начала выполнения программы, что существенно повышает универсальность реализуемых алгоритмов (свойство массовости).

Пример.

…………………..……………………….

Ввод размеров m n

………..…………………………………..

' Объявление динамических массивов

a(m - 1), b(n - 1), c(m + n - 1) …
Обращение к элементу массива

С

<имя>[ i1 ][[ i2 ]]…, где i1, i2 – целые выражения.

Пример.

Page[ 5 ] Line[ i ] Screen[ j ][ k ] Matr[ i-1 ][ j+i-1]

Basic

<имя>(i1[,i2]...), где i1, i2 – целые выражения.

Пример.

Page( 5 ) Line( i ) Etap( j, k ) Matr( i-1, j+i-1)

3.2.2. Структуры


Структура (запись) – составной объект, содержащий 1 или более элементов любых типов, кроме функций. Структура может содержать массив любого типа и другую структуру (подструктуру).

Пример. Структура "Работник" (worker):

- таб. номер;

- Фамилия И.О.;

- должность;

- сумма к выдаче.

В языке C для определения структур применяется ключевое слово struct, в языке Basic - Structure. Работа со структурами будет рассмотрена позже.


1   ...   4   5   6   7   8   9   10   11   ...   58


написать администратору сайта