Главная » Каталог    
рефераты Разделы рефераты
рефераты
рефератыГлавная

рефератыБиология

рефератыБухгалтерский учет и аудит

рефератыВоенная кафедра

рефератыГеография

рефератыГеология

рефератыГрафология

рефератыДеньги и кредит

рефератыЕстествознание

рефератыЗоология

рефератыИнвестиции

рефератыИностранные языки

рефератыИскусство

рефератыИстория

рефератыКартография

рефератыКомпьютерные сети

рефератыКомпьютеры ЭВМ

рефератыКосметология

рефератыКультурология

рефератыЛитература

рефератыМаркетинг

рефератыМатематика

рефератыМашиностроение

рефератыМедицина

рефератыМенеджмент

рефератыМузыка

рефератыНаука и техника

рефератыПедагогика

рефератыПраво

рефератыПромышленность производство

рефератыРадиоэлектроника

рефератыРеклама

рефератыРефераты по геологии

рефератыМедицинские наукам

рефератыУправление

рефератыФизика

рефератыФилософия

рефератыФинансы

рефератыФотография

рефератыХимия

рефератыЭкономика

рефераты
рефераты Информация рефераты
рефераты
рефераты

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


Программа написана студентом МГГТК группы 432
Гарбузовым Константином Сергеевичем
Программа предназначена для обучения начальных курсов
методам программирования на языке Turbo Pascal, и в частности работе со
строками.
1
Краткая теория
Строковые
типы
Значением строкового типа является последовательность
симво­лов с динамическим атрибутом длины (в зависимости от действитель­ного
числа символов при выполнении программы) и постоянным атри­бутом размера в
диапазоне от 1 до 255. Текущее значение атрибута длины можно получить с помощью
стандартной функции Length.
--------
строковый тип
--->|string---------------------------------->
--------  |                                                                                     ^
|  -----  
-------   ----- |
-->| [
--->|целое--->| ] ---
-----   | без |  
-----
|знака|
-------
Отношение между любыми двумя строковыми значениями устанав­ливается
согласно отношению порядка между значениями символов в соответствующих
позициях. В двух строках разной длины каждый сим­вол более длинной строки без
соответствующего символа в более ко­роткой строке принимает значение
"больше"; например, '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.
Открытые параметры позволяют передавать одной и той же
про­цедуре или функции строки и массивы различных размеров.
Открытые строковые параметры могут описываться двумя
спосо­бами:
- с помощью
идентификатора OpenString;
- с помощью ключевого слова string в
состоянии $P+.
Идентификатор OpenString описывается в модуле System. Он обозначает
специальный строковый тип, который может использовать­ся только в описании
строковых параметров. В целях обратной сов­местимости OpenString не является
зарезервированным словом и мо­жет, таким образом, быть переопределен как
идентификатор, задан­ный пользователем.
Когда обратная совместимость значения не имеет, для
измене­ния смысла ключевого слова string можно использовать директиву
компилятора $P+. В состоянии $P+ переменная, описанная с клю­чевым словом
string, является открытым строковым параметром.
Для открытого строкового параметра фактический
параметр мо­жет быть переменной любого строкового типа. В процедуре или функ­ции
атрибут размера (максимальная длина) формального параметра будет тем же, что у
фактического параметра.
Открытые строковые  параметры 
ведут себя также как парамет-
ры-переменные строкового
типа,  только их нельзя  передавать 
как
обычные переменные  другим 
процедурам или функциям. 
Однако,  их
можно снова передать
как открытые строковые параметры.
В следующем примере параметр S процедуры AssignStr - это открытый
строковый параметр:
procedure
AssignStr(var S: OpenString);
begin
S := '0123456789ABCDEF'; end;
Так как S - это открытый строковый параметр, AssignStr можно передавать
переменные любого строкового типа:
var
S1: string[10];
S1: string[20]; begin
AssignStr(S1);                                        S1 :=
'0123456789'
AssignStr(S2);                                        S2 :=
'0123456789ABCDEF'
end;
В AssingStr максимальная длина параметра S та же самая, что у
фактического параметра. Таким образом, в первом вызове AssingStr при
присваивании параметра S строка усекается, так как максимальная длина S1 равна
10.
При применении к открытому строковому параметру
стандартная функция Low возвращает 0, стандартная функция High возвращает
описанную максимальную длину фактического параметра, а функция SizeOf
возвращает размер фактического параметра.
В следующем примере процедура FillString заполняет строку заданным
символом до ее максимальной длины. Обратите внимание на использование функции
High для получения максимальной длины отк­рытого строкового параметра.
procedure FillStr(var
S: OpenString; Ch: Char);
begin
S[0]
:= Chr(High(S));                                           
задает длину строки
FillChar(S[1], High(S), Ch);  устанавливает число символов
end;
Значения и параметры-константы, описанные с
использованием идентификатора OpenString или ключевого слова string в состоянии
$P+, не являются открытыми строковыми параметрами. Они ведут себя также, как
если бы были описаны с максимальной длиной стро­кового типа 255, а функция
Hingh для таких параметров всегда возвращает 255.
Для передвижения по тексту используются клавиши управления
курсором и клавиши PgUp и PgDown.
Необходимую информацию о программе можно получить
воспользовавшись пунктом меню "О программе".
Выход из программы производится выбором пункта меню
"Выход".
Для просмотра теории по теме "Строковый тип
данных" производится выбором пункта меню "Теория".
рефераты Рекомендуем рефератырефераты

     
Рефераты @2011