Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Лабораторна робота №3. 3.1 Стислі теоретичні відомості





Рядки у мові Pascal

3.1 Стислі теоретичні відомості

В Borland Pascal мається можливість розробки програм з розвинутими алгоритмами обробки текстової інформації завдяки підтримці мовою стандартного символьного (Char) та спеціального строкового (String) типів.

Значення типу Char – не пустий символ із алфавіту ПЕОМ. Його можна представити:

- в одинарних лапках (наприклад ‘а’);

- кодом ASCII за допомогою префікса # (наприклад #97);

- за допомогою функції Chr (наприклад Chr (97)).

Управляючі (керуючі) символи (коди 1…31) можуть бути також представлені знаком ^ і літерою алфавіту з тим самим номером (коди 1…26) або службовим знаком (коди 27…31), наприклад ^A – код 1 або ^[ - код 27.

Рядки – це динамічні структури, які мають довжину в межах границь, оголошених при їх описанні, наприклад:

Var

S1: String[10]; { довжина рядка до 10 символів }

S2: String; { довжина рядка до 255 символів }

 

Максимальна довжина рядка – 255 символів. Опис String без вказівки довжини відповідає опису String[255].

Рядки можна описувати як типізовані константи.

Описані в Var рядки необхідно ініціалізувати, так як спочатку вони утримують сміття’.

Рядки містяться в одинарних лапках. Можна також формувати рядки із символів, а також із підрядків (окремих рядків) впереміжку з символами, записаними по ASCII коду через префікс #, або керуючими кодами, наприклад:

 

#7#32#179#32#32#179

^G’Після сигналу натисніть ’^J’ клавішу пропуску ’^M^J

‘Ф.И.О. ’#179’ група ’#179

‘’ { пустий рядок }

 

Взагалі, рядок можна розглядати як масив символів, де будь-який символ можна вилучити по його номеру. Символ S[0] утримує код, який дорівнює числу символів у значенні S.

При записі у змінну типа String рядка більшої довжини, ніж оголошено, надлишок “відсікається”.

Рядки різної довжини сумісні по привласненню і порівнянню.

В підпрограмах, працюючих з рядками різної довжини, рекомендується формальні параметри описувати виключно як String та компілювати програму у режимі {$V-}. При описі параметрів підпрограм похідним строковим типом (наприклад String[n]) конструювання типів в описі підпрограм не допускається.

Операції над символами. Символи можна привласнювати та порівнювати одне з одним. Символи вважаються рівними, якщо рівні їх ASCII коди; більшим є символ з більшим ASCII кодом.

Символи можна розглядати як елементи множини Set of Char та застосовувати для неї операцію перевірки на включення in:

 

Var

ch:Char;

BEGIN

...

ch:=‘a’;

if ch in [‘a’..’z’] then...

...

END.

 

Стандартні функції, які застосовуються до символьних значень та змінних, подаються нижче:

Chr(X: Byte): Char -повертає символ ASCII-коду X;

Ord(C: Char): Byte -повертає ASCII-код символу С;

Pred(C: Char): Char -видає попередній С символ;

Succ(C: Char): Char -видає наступний після С символ;

UpСase(C: Char): Char - переводить латинські символи до

верхнього регістру.

 

 

Операції над рядками. Рядки можна привласнювати, об’єднувати та порівнювати.

При привласнені рядків використовується складний символ:=.

При об’єднані рядків використовується символ +.

Порівнювання рядків відбувається посимвольно. Рядки вважаються рівними, якщо мають однакову довжину та посимвольно еквівалентні. Якщо при посимвольному порівнянні виявиться, що один символ більший іншого (його код більший), то рядок, який його утримує, також вважається більшим. Залишки рядків та їх довжини не грають при цьому ролі.

Стандартні підпрограми для роботи з рядками подаються нижче:

Length(S:String):Byte –видає поточну довжину рядка;
Concat(S1,..., Sn):String –повертає об’єднання рядків;
Copy(S:String; Start,Len:Integer):String - повертає підрядок довжиною Len, який починається з позиції Start рядка S;
Delete(Var S:String; Start,Len:Integer) - вилучає із S підрядок довжиною Len, який починається з позиції Start рядка S;
Insert (Var S:String; SubS:String;Start:Integer) - вставляє в S підрядок SubS, починаючи з позиції Start;
Pos(SubS,S:String):Byte - шукає входження підрядка SubS у рядку S та повертає номер першого символу SubS в S або 0, якщо S не містить SubS
Str (X[:F[:n]];Var S:String) - перетворює чисельне значення Х у строкове S. Можливо задання формату для Х;  
Val(S:String;Var X; Var ErrCode:Integer) - перетворює строкове значення S (рядок цифр) у чисельне значення Х.

Рядки, які завершуються нулем, або ASCIIZ-рядки. При такому способі реалізації рядків поточна довжина рядка фіксується спеціальним останнім символом - ознакою, у якості якої в Borland Pascal використовується символ з нульовим кодом, або “нуль –символ”. Він позначається \0 або NULL. Такий засіб вказання поточної довжини обмежує максимальну допустиму довжину рядка лише розміром в один сегмент пам’яті (65534 байт).

 

                              . . . . . . . .
B O R L A N D \0                              

® нуль-символ

ASCIIZ-рядки зберігаються у вигляді символьних масивів з нульовою базою (тобто нижня границя яких дорівнює 0), наприклад:

 

Const

Ln=765;

Type

Str5=Array[0..5] of Char;

Str78=Array[0..78] of Char;

StrLn=Array[0..Ln] of Char;

 

Крім того, в Borland Pascal мається предвизначений тип PСhar, який являє собою показник на ASCIIZ-рядок та визначається наступним чином:

Type

PChar=^Char;

 

При встановленій директиві розширеного синтаксису {$X+} (приймається по умовчанню) символьний масив з нульовою базою являється сумісним з типом PChar. Сумісні по привласненню з типом PChar також і строкові константи, наприклад:

 

Const

Str91:Array [0..91] of Char='Рядок типу PChar';

Var

Date: 2015-10-19; view: 269; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию