Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Основы типизации и структуризации данных



 

Информацию, относящуюся к решаемой задаче, принято подразделять на данные (исходные данные, промежуточные и конечные результаты) и программу (информация, задающая алгоритм решения задачи). В алгоритме данные описываются в предписании: «Список данных:...».

Все данные по своему виду подразделяются на константы и переменные (рис. 19). Константы — это данные, которые при выполнении алгоритма (программы) всегда определены и неизменны. Запись константы полностью определяет ее назначение, тип, форму представления и фактическое значение. Переменные — это условные обозначения данных, которые в процессе выполнения программы не меняют своего типа, но могут менять свое фактическое значение.

    Данные    
         
         
Константы   Переменные   Массивы
         
         
Арифметические   Символьные   Управляющие
       
       
Вещественные   Комплексные  
       
       
С фиксированной точкой   С плавающей точкой  
               

 

Рис. 19. Классификация данных

 

По своему назначению данные делятся на арифметические, символьные и управляющие. Управляющие данные применяются для управления выполнением программы. Значениями арифметических данных являются числа, а символьных — строки символов, заключенные в апострофы, например: Конец решения, Проверка и т.п. Арифметические данные по своему типу делятся на вещественные (действительные) и комплексные. В том случае, если в вещественном числе отсутствует дробная часть, мы будем определять тип таких данных как целый. По форме представления данные делятся на данные с фиксированной точкой (например, 78.5) и с плавающей точкой (с масштабным множителем, например, 7.85Е + 01 = 7.85 ٠ 101).

Переменные, применяемые в алгоритмах и программах, могут образовывать упорядоченные структуры. Широкое применение находит упорядочение переменных в виде массивов.

Массивы и работа с ними

Описание массивов

Массив — это упорядоченное множество однотипных переменных (элементов массива), объединенных общим именем и отличающихся номерами (индексами). Массивы сходны с такими понятиями в математике, как векторы и матрицы.

Например, на метеостанции каждый час измеряется температура воздуха, и значения записываются в табл. 5.

Таблица 5

Температура воздуха

Время измерения, ч
Температура, °С 17.5

 

Этот массив (таблица) содержит 24 элемента, пронумерованных от 1 до 24. Так, второй элемент массива имеет значение 16, а двадцать третий — 18.

Примеры таких массивов есть не только в математике. Всем хорошо известна пушкинская строка: «И тридцать витязей прекрасных...». Имен витязей и их отличительных характеристик мы не знаем. Для нас все тридцать вполне могут выступать под одним именем «Дружина». Таким образом, если у простых переменных имя относится только к одной ячейке, то у массивов одно имя обозначает множество ячеек памяти, отличающихся только номерами (индексами). Значения индексов указываются в скобках справа от имени массива и однозначно определяют положение переменной в массиве. Например:

а(1: 5) — массив (вектор) из пяти элементов: а(1), а(2), а(3), а(4), а(5);

b(1: 2, 1: 3) — массив (матрица) из шести элементов: b(1, 1), b(l, 2), b(l, 3), b(2, l), b(2, 2), b(2, 3).

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

Диапазон изменения индексов на каждой позиции определяется парой чисел — минимальным и максимальным значениями индекса, разделенными двоеточием. Если нижняя граница (минимальное значение) равна единице, то ее можно не указывать.

Длина массива равна количеству элементов в массиве.

Размерность массива — это число индексов в списке индексов. Чаще всего на практике используются одно-, двух- и трехмерные массивы, графическая интерпретация которых показана на рис. 20 и 21. Из рисунков видно, что одномерный массив (рис. 20, а)можно представить «линией», состоящей из столбцов ячеек памяти. Двухмерный (рис. 20, б)массив — это «плоскость», состоящая из строк и столбцов ячеек памяти. Трехмерный (см. рис. 21) массив — это «куб», состоящий из плоскостей, строк и столбцов ячеек памяти. Кстати, одну ячейку памяти можно в общем случае представить одномерным массивом, состоящим из одного столбца, и обращаться к ней как к Х(1).

Существуют массивы и большей размерности — четырехмерные, пятимерные и т.д. Например, в алгоритмическом языке ПЛ/1 допускается применение массивов размерностью до шестидесяти четырех. Как представить себе многомерные массивы? — Очень просто: четырехмерный массив — это «линия», состоящая, в свою очередь, из столбцов «кубов» (трехмерных массивов) или, другими словами, «линия кубов». Пятимерный массив — это «плоскость», состоящая из строк и столбцов «кубов», или «плоскость кубов». Шестимерный массив — это «куб», состоящий из плоскостей, строк и столбцов «кубов», или «куб кубов» («куб второй степени»). Продолжив градацию, можно сказать, например, что девятимерный массив — это «куб кубов кубов», или «куб кубов второй степени» («куб третьей степени»).

Рис. 20. Массивы: а — одномерный; б — двухмерный

Рис. 21. Трехмерный массив

 

Для того чтобы «объяснить» компьютеру, что мы будем работать с массивами, необходимо в специальном предписании «Список данных...» указать имя и границы изменения индексов массива. Предписание «Список данных» может включать в себя константы, переменные и массивы. В нем указывается, сколько ячеек памяти следует выделить в машине, чтобы записать все необходимые данные.

Например:

...Список данных:

Константы: Pi=3.14159;

Q=1.5678;

Переменные: а, b — целый;

х — вещественный;

с — символьный;

Массивы: у (1: 2, 1: 3) — вещественный;...

В разделах «Переменные» и «Массивы» желательно указать тип используемых переменных и массивов.

Выборка элементов массивов

Работа с массивами сводится к работе с его элементами. Обращение к элементам массива осуществляется с помощью переменной с индексом. Так, х(1, 5) — элемент массива х, расположенный на пересечении первой строки и пятого столбца.

Пример. Заданы два двухмерных массива х(1: 2, 1: 2) и у(1: 2, 1: 2):

Определить значение: Н: = х(1, 1) • у(2, 1) + х(2, 2).

После выборки указанных элементов и выполнения операции присваивания получим: Н=14.

Следует особо отметить, что х(1) не равно xl, т.е. первый элемент массива х не имеет никакого отношения к переменной xl.

Некоторые языки высокого уровня дают возможность обрабатывать массивы целиком; в этом случае для обозначения массива достаточно указать только его имя. При одинаковой размерности, типе и длине массивов можно записать

с: = а + b; с: = а • b; с: = а – b,

что означает соответственно суммирование, умножение и вычитание элементов массивов а и b (с одинаковыми индексами) и запись результатов в массив с.

Для того чтобы задать всем элементам массива одинаковые значения, например 5, можно записать: а: = 5, где а массив. В дальнейшем мы будем пользоваться такой записью, чтобы сократить, упростить написание алгоритма, считая элементарными предписания: ввод и вывод всего массива, присваивание всему массиву каких-либо значений и т.д. На самом деле, за редким исключением, такие операции можно осуществить только при работе с каждым элементом массива в отдельности, используя для этого циклические операторы.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 507; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь