АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. Access. Базы данных. Определение ключей и составление запросов.
  2. B. Основные принципы исследования истории этических учений
  3. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  4. Decide which answer А, В, С or D best fits each space. Подумайте, какие из предложенных ответов лучше подходят для данных выражений.
  5. I. ОСНОВНЫЕ ПОНЯТИЯ (ТЕРМИНЫ) ЭКОЛОГИИ. ЕЕ СИСТЕМНОСТЬ
  6. I. ОСНОВНЫЕ СПОСОБЫ ПЕРЕДВИЖЕНИЯ И ПРЕОДОЛЕНИЯ ПРЕПЯТСТВИЙ
  7. I. Разработка структуры базы данных.
  8. I. Саморазрушение Структуры
  9. I.3. Основные этапы исторического развития римского права
  10. II Съезд Советов, его основные решения. Первые шаги новой государственной власти в России (октябрь 1917 - первая половина 1918 гг.)
  11. II. ИСЧИСЛЕНИЕ БЕСКОНЕЧНО–МАЛЫХ И ЕГО ОСНОВНЫЕ КАТЕГОРИИ
  12. II. Основные задачи и функции

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

Вопросы представления данных часто разбиваются на различные уровни детализации. Уровню языков программирования соответствуют абстрактные типы и структуры данных. Рассмотрим их реализацию в языке программирования 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;


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)