русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Множества


Дата добавления: 2013-12-23; просмотров: 899; Нарушение авторских прав


Записи

Массивы

Основные структуры данных

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

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

Наряду с массивами и записями существует еще один структурированный тип множество. Этот тип используется не так часто, хотя его применение в некоторых случаях является вполне оправданным.

Тип множество соответствует математическому понятию множества в смысле операций, которые допускаются над структурами такого типа. Множество допускает операции объединения множеств (+), пересечения множеств (*), разности множеств (-) и проверки элемента на принадлежность к множеству (in). Множества также как и массивы объединяют однотипные элементы. Поэтому в описании множества обязательно должен быть указан тип его элементов.

Var

RGB, YIQ, CMY : Set of string;

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

CMY:= [‘M ‘,’C ‘,’Y ‘];

RGB:= [‘R’,’G’,’B’];

YIQ:=[ ‘Y ‘,’Q ‘,’I ‘];

Writeln (‘Пересечение цветовых систем RGB и CMY ‘, RGB*CMY);

Writeln (‘Пересечение цветовых систем YIQ и CMY ‘,YIQ*CMY);

Операции выполняются по отношению ко всей совокупности элементов множества. Можно лишь добавить, исключить или выбрать элементы, выполняя допустимые операции.



<== предыдущая лекция | следующая лекция ==>
Ввод и вывод русских символов | Линейные списки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.