Символен (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. Обработка на линейни елементи поотделно.