22. И Н Т Е Р В А Л Ь Н Ы Й Т И П Д А Н Н Ы Х

Отрезок любого порядкового типа

может быть определен как интервальный или ограниченный

тип. Отрезок задается диапазоном от минимального до максимального

значения констант, разделенных двумя точками. В качестве констант мо-

гут быть использованы константы, принадлежащие к целому, символьному,

логическому или перечисляемому типам. Скалярный тип, на котором стро-

ится отрезок, называется базовым типом.

Минимальное и максимальное значения констант называются нижней и

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

граница должна быть меньше верхней.

 {}

Над переменными, относящимися к интервальному типу, могут выпол-

няться все операции и применяться все стандартные функции, которые

допустимы для соответствующего базового типа.

При использовании в программах интервальных типов данных может осущест-

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

границы, введенные для этих переменных в описании интервального типа.

23. М А С С И В Ы

Массивы представляют собой ограниченную упорядоченную совокупность

однотипных величин. Каждая отдельная величина называется компонентой

массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ,

кроме файлового типа. Тип компонент называется базовым типом.

Вся совокупность компонент определяется одним именем. Для обозна-

чения отдельных компонент используется конструкция, называемая пере-

менной с индексом или с индексами:

A[5] S[k+1] B[3,5].

В качестве индекса может быть использовано выражение. Тип индексов

может быть только интервальным или перечисляемым. Действительный и

целый типы недопустимы. Индексы интервального типа, для которого ба-

зовым является целый тип, могут принимать отрицательные, нулевое и

положительные значения.{}

В операторной части

программы один массив может быть присвоен другому, если их типы иден-

тичны, например:

R1:=Z.

Для ввода или вывода массива в список ввода или вывода помещается

переменная с индексом, а операторы ввода или вывода выполняются в

цикле.

{}

Первый индекс определяет номер строки, второй - номер столбца.

Двумерные массивы хранятся в памяти ЭВМ по строкам.

Инициализация массивов (присвоение начальных значений всем компо-

нентам массивов) осуществляется двумя способами.

Первый способ - с использованием типизированных констант, напри-

мер:

type Dim10= Array[1..10] of Real;

const

raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );

При инициализации двумерных массивов значения компонент каждого из

входящих в него одномерных массивов записывается в скобках:

type Dim3x2= Array[1..3,1..2] of Integer;

const

iaM3x2: Dim3x2= ( (1, 2)

(3, 4)

(5, 6) );

Второй способ инициализации - использование разновидности процеду-

ры FillChar:

FillChar( var V; NBytes: Word; B: Byte );

Эта процедура заполняет участок памяти однобайтовым значением. Напри-

мер, для обнуления массива A[1..10] of Real можно записать:

FillChar(A, 40, 0);

или

FillChar(A, SizeOf(A), 0);

{}

24. С Т Р О К И

Особое место в языке ПАСКАЛЬ занимают массивы символов. Стандарт-

ный ПАСКАЛЬ допускает два способа хранения символьных массивов в па-

мяти ЭВМ: распакованный и упакованный. Распакованные массивы символов

хранятся в памяти ЭВМ по одному символу в машинном слове, упакованные

- по одному символу в байте. При описании упакованного массива симво-

лов используют служебное слово PACKED, например:

var MAS: Packed Array[1..20] of Char;

Описание распакованного массива символов имеет вид:

var M: Array[1..20] of char;

Для преобразования символьного массива из распакованной формы в

упакованную и наоборот, из упакованной в распакованную, в язык ПАС-

КАЛЬ введены две стандартные функции Pack, UnPack.

Упакованный массив символов образует символьную строку. Символьная

строка может быть либо строковой константой, либо строковой перемен-

ной. Строковая константа, или строка, представляет собой совокупность

символов, заключенную в апострофы. Строка - это элементарная конс-

трукция языка ПАСКАЛЬ. Строковые константы могут входить в состав вы-

ражений. Как и числовые константы, они могут быть описаны в разделе

описания констант.

Строковые переменные - это одномерные упакованные массивы симво-

лов, для описания которых в TURBO PASCAL введен тип String.

Например, если строка содержит до 30 символов, ее тип будет опре-

делен как

type s= String[30];

Длина строки не может содержать более, чем 255 символов.

В TURBO PASCAL определено понятие строки переменной длины, в этом

случае ее описание задается как

type s= String;

Тип String без указания длины совместим со всеми типами строк.

Особенностью строковых переменных является то, что к ним можно об-

ращаться как к скалярным переменным, так и к массивам. Во втором слу-

чае применяется конструкция "переменная с индексом", что обеспечивает

доступ к отдельным символам строки. При этом нижняя граница идекса

равна 1. Отдельный символ строки совместим с типом Char.

В памяти ЭВМ строка занимает количество байтов, на единицу большее

ее длины. Нулевой байт строки содержит ее длину.

Для строк определены операции присваивания, слияния (конкатенации)

и сравнения.

Для сравнения строк применяются все операции отношения. Сравнение

строк происходит посимвольно, начиная с первого символа. Строки рав-

ны, если имеют одинаковую длину и посимвольно эквивалентны.

Строки могут быть элементами списка ввода - вывода, при этом запи-

сывается имя строки без индекса.

При вводе строковых переменных количество вводимых символов может

быть меньше, чем длина строки. В этом случае вводимые символы разме-

щаются с начала строки, а оставшиеся байты заполняются пробелами. Ес-

ли количество вводимых символов превышает длину строки, лишние

символы отбрасываются.

Инициализация строк может производиться как с помощью типизирован-

ных констант:

const sName: String[9]= 'IBM PC/AT';

так и с использованием второй разновидности функции FillChar:

FillChar( var V; NBytes: Word; C: Char );

например:

FillChar(A, SizeOf(A), '0');

Для работы со строками в TURBO PASCAL включены процедуры и функ-

ции, которые обеспечивают редактирование и преобразование строк.

{}


Информация о работе «Основные понятия алгоритмического языка»
Раздел: Информатика, программирование
Количество знаков с пробелами: 91405
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
274963
85
0

... ячейка, а имя переменной превращается в адрес ячейки. Появление этого адреса происходит в результате работы специального оператора языка (NEW), однако его значение в большинстве случаев не используется при программировании на алгоритмических языках типа Паскаль. Условимся считать, что адрес ячейки, которая будет хранить переменную А, есть А. Или, другими словами, А - это общее имя переменной и ...

Скачать
112819
0
0

... . Объясните, для чего служат разрешения и привилегии в Windows NT. Зав. кафедрой --------------------------------------------------   Экзаменационный билет по предмету СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Билет № 22 Перечислите возможности и инструменты системы программирования Microsoft Developer Studio. Укажите для чего предназначается буфер в системах ввода-вывода, ...

Скачать
142378
5
0

... . Поэтому так легко путешествовать по Всемирной паутине (WWW — Worl Wide Web), переходя с сайта на сайт по гиперссылкам. Для отображения в «плоском* тексте смысловых связей между основными разделами или понятиями можно использовать гипертекст. Гипертекст позволяет структурировать документ путем выделения в нем слов-ссылок (гиперссылок). При активизации гиперссылки (например, с помощью щелчка мышью ...

Скачать
35650
0
0

... # будет тесно интегрирован с языком XML[1]. 2.2 Паскаль Паскаль [PASCAL - акроним с французского - Program Applique a la Selection et la Compilation Automatique de la Litterature] - Процедурно-ориентированный язык программирования высокого уровня, разработанный в конце 1960-х гг. Никлаусом Виртом, первоначально для обучения программированию в университетах. Назван в честь французского ...

0 комментариев


Наверх