Обучение начальных курсов методам программирования на языке Turbo Pascal

    Дисциплина: Программирование
    Тип работы: Реферат
    Тема: Обучение начальных курсов методам программирования на языке Turbo Pascal

    Краткая теория

    Строковые типы

    Значением строкового типа является последовательность симво-

    лов с динамическим атрибутом длины (в зависимости от действитель-

    ного числа символов при выполнении программы) и постоянным

    атри-

    бутом размера в диапазоне от 1 до 255.

    Текущее значение атрибута

    длины можно получить с помощью стандартной функции Length.

    +------+

    +------+

    +---+

    +-----+

    +---+ |

    +-| ] +-+

    +---+

    | без |

    +---+

    |знака|

    +-----+

    Отношение между

    любыми двумя строковыми значениями устанав-

    ливается согласно отношению порядка между значениями

    символов

    соответствующих позициях. В двух строках разной длины каждый сим-

    вол более длинной строки без соответствующего символа в более ко-

    роткой строке принимает значение \"больше\"; например, \'Xs\' больше,

    чем \'X\'.

    Нулевые строки могут быть равны только

    другим

    нулевым

    строкам, и они являются наименьшими строковыми значениями.

    К идентификатору

    строкового

    типа

    и к ссылке на переменную

    строкового типа можно применять стандартные функции Low и High. В

    этом случае

    функция Low возвращает 0,

    а High возвращает атрибут

    размера (максимальную длину) данной строки.

    Параметр-переменная, описанная

    помощью

    идентификатора

    OpenString и

    ключевого слова string в состоянии {$P+},

    является

    открытым строковым параметром.

    Открытые строковые параметры поз-

    воляют

    передавать одной и той же процедуре или функции строковые

    переменные изменяющегося размера.

    Конкретный элемент

    массива обозначается с помощью ссылки на

    переменную массива,

    за которой указывается индекс,

    определяющий

    данный элемент.

    Конкретный символ

    в строковой переменной обозначается с по-

    мощью ссылки на строковую переменную,

    за которой указывается ин-

    декс, определяющий позицию символа.

    +---+

    +---------+

    +---+

    +---+

    +---------+

    +---+

    +---+

    +-------+

    , |-------+

    +---+

    Индексные выражения обозначают компоненты

    в соответствующей

    размерности

    массива.

    Число

    выражений не должно превышать числа

    индексных типов в описании массива. Более того, тип каждого выра-

    жения

    должен

    быть совместимым по присваиванию с соответствующим

    индексным типом.

    В случае многомерного массива можно

    использовать

    несколько

    индексов или несколько выражений в индексе. Например:

    Matrix[I][J]

    что тождественно записи:

    Matrix[I,J]

    Строковую переменную

    можно

    проиндексировать с помощью оди-

    ночного индексного выражения, значение которого должно быть в ди-

    апазоне

    0...n,

    где n - указанный в описании размер строки.

    Это

    дает доступ к каждому символу в строковом значении, если значение

    символа имеет тип Char.

    Первый символ строковой переменной (индекс 0) содержит дина-

    мическую длину строки,

    то есть Length(S) тождественно Ord(S[0]).

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

    веряет, является ли это значение меньшим описанного размера стро-

    ки. Вы можете указать индекс строки и вне ее текущей динамической

    длины.

    В этом случае считываемые

    символы

    будут

    случайными,

    присваивания вне текущей длины не повлияют на действительное зна-

    чение строковой переменной.

    Когда с помощью директивы компилятора {$X+} разрешен

    расши-

    ренный синтаксис,

    значение PChar может индексироваться одиночным

    индексным выражением типа Word. Индексное выражение задает смеще-

    ние, которое

    нужно

    добавить

    к символу перед его разыменованием

    для получения ссылки на переменную типа Char.

    Открытые параметры

    позволяют передавать одной и той же про-

    цедуре или функции строки и массивы различных размеров.

    Открытые строковые параметры могут описываться двумя

    спосо-

    бами:

    - с помощью ключевого слова string в состоянии {$P+}.

    Идентификатор OpenString описывается

    модуле

    System.

    Он

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

    ся только в описании строковых параметров.

    В целях обратной сов-

    местимости OpenString

    не является зарезервированным словом и мо-

    жет, таким образом,

    быть переопределен как идентификатор, задан-

    ный пользователем.

    Когда обратная совместимость значения не имеет,

    для измене-

    ния смысла ключевого слова string

    можно

    использовать

    директиву

    компилятора {$P+}. В состоянии {$P+} переменная, описанная с клю-

    чевым словом string, является открытым строковым параметром.

    Для открытого строкового параметра фактический параметр

    мо-

    жет быть переменной любого строкового типа. В процедуре или функ-

    ции атрибут размера (максимальная

    длина)

    формального

    параметра

    будет тем же, что у фактического параметра.

    Открытые строковые

    параметры

    ведут себя также как парамет-

    ры-переменные строкового типа,

    только их нельзя

    передавать

    как

    обычные переменные

    другим

    процедурам или функциям.

    Однако,

    их

    можно снова передать как открытые строковые параметры.

    В следующем примере параметр S

    процедуры

    AssignStr

    это

    открытый строковый параметр

    begin

    Так как S - это открытый строковый параметр, AssignStr можно

    передавать переменные любого строкового типа:

    begin

    { S1 := \'0123456789\' }

    { S2 := \'0123456789ABCDEF\' }

    В AssingStr максимальная длина параметра S та же самая,

    что

    у фактического

    параметра.

    Таким

    образом,

    первом

    вызове

    AssingStr при присваивании параметра S строка усекается,

    так как

    максимальная длина S1 равна 10.

    При применении к открытому строковому

    параметру стандартная

    функция Low

    возвращает

    стандартная

    функция High возвращает

    описанную максимальную длину фактического

    параметра,

    функция

    SizeOf возвращает размер фактического параметра.

    В следующем

    примере

    процедура

    FillString заполняет строку

    заданным символом до ее максимальной длины.

    Обратите внимание на

    использование функции

    High для получения максимальной длины отк-

    рытого строкового параметра

    begin

    { задает длину строки

    FillChar(S[1], High(S), Ch);

    { устанавливает число

    символов }

    Значения и

    параметры-константы,

    описанные с использованием

    идентификатора OpenString или ключевого слова string в

    состоянии

    {$P+}, не

    являются

    открытыми строковыми параметрами.

    Они ведут

    себя также,

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

    кового типа

    255,

    функция

    Hingh

    для таких параметров всегда

    возвращает 255.

    uses crt,dos;

    var i,j,i1,x:integer;

    procedure music;

    begin

    end;

    procedure myerror (s:string);

    var c:char;

    begin

    write(\'...

    Забрать файл

    Похожие материалы:


ПИШЕМ УНИКАЛЬНЫЕ РАБОТЫ
Заказывайте напрямую у исполнителя!


© 2006-2016 Все права защищены