Символен (char) и низов (string) тип данни

Задачите за тяхната обработка на текст (символна информация) включват задачи за редактиране, търсене на определени знаци или редове в съответните текстове, преброяване на броя на техните появявания и коригиране на някои места в текста.

За работа със символна информация в Turbo Pascal 7.0 се използват данни от символен тип (Char).

Тип знаци е тип данни, предназначен да съхранява един знак от 256 ASCII кодови знака. Символите в компютъра се представят чрез двоични кодове. За латинските букви кодовете са сортирани във възходящ ред според позицията им в азбуката от 'A' до 'Z', от 'a' до 'z'.

Променливите от символен тип се дефинират, както следва:

Всички релационни операции и 4 функции, които ви позволяват да работите със знаци, са приложими за стойности от тип знак:

Ord (знак) - изчислява поредния номер (кода) на знака;

Chr (код) - дефинира символ с зададен код;

Pred (знак) - указва знака, който има код пред този;

Succ (знак) – Указва знака, който има код след дадения.

Ord('A') => 65; Pred('C') => "Б"

Chr (66) => "B"; Succ('C') => 'Д'

За знаци от интервала 'a'..'z' е приложима функцията UpCase(C), която преобразува тези знаци в главни букви 'A'..'Z'.

Пример. Покажете кодовете на буквите от латинската азбука на екрана на монитора.

За Sim:= 'A' до 'Z' Направете

Знаковите масиви имат специално място в Turbo Pascal 7.0.

Съхраняват се масиви от знаци

1. Неопакованите символни масиви се съхраняват в паметта по един знак на машинна дума.

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

var M: масив [1..20] от char;

2. Опаковани, съхранени в паметта един по единсимвол в байт.

Когато се описва, се използва служебната дума PACKED, например:

var MAS: Пакетиран масив[1..20] от Char;

За преобразуване на масив от символи от неопакована форма в пакетирана форма и обратно, от пакетирана в неопакована, се въвеждат две стандартни функции Pack, UnPack.

Опакованият масив от знаци образувасимволен низ.

Символният низ може да бъде

1. Низова константа

Низова константа, илиниз, е колекция от знаци, затворени в апостроф.

Низовите константи могат да бъдат включени в изрази. Подобно на числовите константи, те могат да бъдат декларирани в секцията за деклариране на константи.

2. Низова променлива.

Низовите променливи са едномерни опаковани масиви от знаци, за описанието на които е въведен типът String.

Пример за дефиниране на променливи тип низ:

Думата String може да бъде последвана от максималната дължина на низа. Дължината на низа не може да съдържа повече от 255 знака.

Ако дължината не е посочена, тогава тя се счита за променлива и се определя от броя на символите, записани на мястото на променлива от тип String по време на въвеждане или присвояване. Това число се съхранява в нулевия байт на съответната променлива. Типът String без спецификация на дължина е съвместим с всички типове низове.

Важно е всеки един символ да е наличен в променлива тип низ. Достъпът се осъществява чрез посочване на неговия номер (индекс). В този случай долната граница на индекса е равна на 1. Единичен знак от низа е съвместим с типа Char.

Низовете могат да бъдат елементи на I/O списък и името на низа се записва без индекс. WriteIn(str);

Когато въвеждате низови променливи, броят на въведените знаци може да е по-малък от дължинаталинии. В този случай входните символи се поставят от началото на низа, а останалите байтове се запълват с интервали. Ако броят на въведените знаци надвишава дължината на низа, допълнителните знаци се отхвърлят.

За работа с низове Turbo Pascal 7.0 включва процедури и функции, които осигуряват редактиране и конвертиране на низове.

Има два начина за обработка на променливи от тип String:

1. Обработка на целия низ като цяло.

2. Обработка на линейни елементи поотделно.