|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Основные структуры данных. Программируя решение любой задачи, необходимо выбрать уровень абстрагированияПрограммируя решение любой задачи, необходимо выбрать уровень абстрагирования. Иными словами, определить множество данных, представляющих предметную область решаемой задачи. При выборе следует руководствоваться проблематикой решаемой задачи и способами представления информации. Здесь необходимо ориентироваться на те средства, которые предоставляют системы программирования и вычислительная техника, на которой будут выполняться программы. Во многих случаях эти критерии не являются полностью независимыми. Вопросы представления данных часто разбиваются на различные уровни детализации. Уровню языков программирования соответствуют абстрактные типы и структуры данных. Рассмотрим их реализацию в языке программирования Turbo-Pascal. Простейшим типом данных является переменная. Существуют несколько встроенных типов данных. Например, описание Var i, j: integer; x: real; s: string; объявляет переменные i, j целочисленного типа, x - вещественного и s - строкового. Переменной можно присвоить значение, соответствующее ее типу I:=46; X:=3.14; S:=’строка символов’; Такие переменные представляют собой лишь отдельные элементы. Для того чтобы можно было говорить о структурах данных, необходимо иметь некоторую агрегацию переменных. Примером такой агрегации является массив. Массивы Массив объединяет элементы одного типа данных. Более формально его можно определить как упорядоченную совокупность элементов некоторого типа, адресуемых при помощи одного или нескольких индексов. Частным случаем является одномерный массив Var l: array [1..100] of integer; В приведенном примере описан массив l, состоящий из элементов целочисленного типа. Элементы могут быть адресованы при помощи индекса в диапазоне значений от 1 до 100. В математических расчетах такой массив соответствует вектору. Массив не обязательно должен быть одномерным. Можно описать в виде массива матрицу 100*100 Var M: array [1..100,1..100] of real; В этом случае можно говорить уже о двумерном массиве. Аналогичным образом можно описать массив с большим числом измерений, например трехмерный Var M_3_d: array [0..10,0..10,0..10] of real; Теперь можно говорить уже о многомерном массиве. Доступ к элементам любого массива осуществляется при помощи индексов как к обычной переменной. М_3_d [0,0,10]:=0.25; M[10,30]:=m_3_d[0,0,10]+0.5; L[i]:=300; Записи Более сложным типом является запись. Основное отличие записи заключается в том, что она может объединять элементы данных разных типов. Рассмотрим пример простейшей записи Type Person = record Name: string; Address: string; Index: longint; end; Запись описанного типа объединяет три поля. Первые два из них символьного типа, а третье – целочисленного. Приведенная конструкция описывает тип записи. Для того чтобы использовать данные описанного типа, необходимо описать сами данные. Один из вариантов использования отдельных записей – объединение их в массив, тогда описание массива будет выглядеть следующим образом Var Persons: array[1..30] of person; Следует заметить, что в Turbo-pascal эти два описания можно объединить в виде описания так называемого массива записей Var Persons: array[1..30] of record Name: string; Address: string; Index: longint; end; Доступ к полям отдельной записи осуществляется через имя переменной и имя поля. Persons[1]. Name:=’Иванов’; Persons[1]. Adress:=’город Санкт-Петербург’; Persons[2]. Name:=’Петров’; Persons[2]. Adress:=’город Москва’; Разумеется, что запись можно использовать в качестве отдельной переменной, для этого соответствующая переменная должна иметь тип, который присвоен описанию записи Type Person = record Name: string; Address: string; Index: Longint; end; Var Person1: person; Begin Person1.index:=190000; Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |