Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 14

Символьні та рядкові

величини
Символьні величини
Символ — це цифра, літера або інший знак клавіатури. Кожний символ має свій унікальний
двійковий код. Нині для кодування символів найчастіше застосовують кодові таблиці ASCII і Unicode.
Латинські літери розташовані у першій половині таблиці ASCII. Їхні коди збігаються з кодами цих літер у
таблиці Unicode і є обов’язковими для всіх країн світу. Для кодування національних символів
використовується друга половина таблиці ASCII (коди від 128 до 256), а також таблиця Unicode, у якій
кожний символ кодується двома байтами.
Для роботи із символами використовується тип даних char. Символьні змінні оголошуються в
розділі оголошення змінних, наприклад: var z, a_1: char.
У більшості застосувань комп'ютера алфавітно-цифрова інформація використовується поряд з
числовою інформацією. Для їх подання в мові програмування Паскаль передбачено тип даних char.
Так як char - порядковий тип, то до його значенням застосовні наступні функції:
 Succ - повертає наступний символ літерної множини;
 Pred - повертає попередній символ літерної множини;
 Ord - повертає значення коду літери;
 Chr - повертає значення літери, є зворотною по відношенню до функції Ord.
Наприклад:
 Succ (0 ") = '1 '- символ, наступний за символом 0, дорівнює символу 1.
 Pred ('3 ') = '2' - символ, що передує символу 3, дорівнює 2;
 Chr (65) = 'A' - символ, що відповідає коду 65, дорівнює А;
 Ord ('A') = 65 - код символу А дорівнює 65
Рядкові величини
Рядок — це набір символів. Кількість символів у рядку називають його
довжиною. Основним типом для роботи з рядками є тип даних string. Порядок
оголошення рядкових змінних принципово не відрізняється від порядку
оголошення інших типів даних, наприклад var bas, b_1: string;.
Рядкові й символьні константи беруться в одинарні лапки, наприклад: 'а',
'Символ' '21'. Значення символьним і рядковим змінним присвоюються за
допомогою оператора присвоювання, наприклад: a_1:='K; bJI—'Інформатика'.
Довжина символьного рядка може бути обмежена. У цьому випадку під час
оголошення змінної у квадратних дужках вказується максимальна кількість
символів, які може містити ця змінна, наприклад: var str1: string [25]; (змінна
str1 може містити до 25 символів). Якщо довжина змінних типу string під час
їх оголошення не вказана, максимальна кількість символів може осягати 255.
Однією з основних операцій над рядковими даними є їх об'єднання. Ця
операція позначається символом «+» (приклад 1).
Рядок фактично є масивом символів, з якого можна отримати будь-який
символ, вказавши його номер у квадратних дужках (приклад 2).
Приклад 3. Два учні грають у таку гру. Один учень каже: «Назви четверту
літеру у назві найулюбленішої в усьому світі спортивної гри». Другий учень
називає відповідну літеру. У будь-якому випадку повідомляється про
правильність відповіді, а також загадане слово — футбол. На рис. 1 наведено
код моделювання цієї гри у консольному режимі.
Якщо рядки мають різну довжину, але в загальній частині символи збігаються, вважається, що
більш короткий рядок менший, ніж довший.
Рядки вважаються рівними, якщо вони збігаються по довжині і містять одні й ті ж символи на
відповідних місцях в рядку.
Для присвоювання рядковій змінні результату рядкового виразу використовується оператор
присвоювання. Якщо значення змінної після виконання оператора присвоювання перевищує по
довжині максимально допустиму при описі величину, то всі зайві символи справа відкидаються.
Допускається змішування в одному виразі операндів рядкового і символьного типу.
До окремих символів рядка можна звернутися за номером (індексом) даного символу в рядку.
Для обробки рядових даних можна використовувати вбудовані процедури і функції:
 Delete (Str, Poz, N) - видалення N символів рядка Str, починаючи з позиції Poz.
 Insert (What, Where, Poz) - вставка рядка What в рядок Where, починаючи з позиції Poz.
 Copy (Str, Poz, Nstr) - виділяє рядок довжиною Nstr, починаючи з позиції Poz, з рядка Str.
 Concat (Str1, Str2,..., StrN) - виконує зчеплення рядків у тому порядку, в якому вказані в списку
параметрів.
 Poz (What, Where) - виявляє перша поява підрядка What в рядку Where.
 UpCase (Ch) - перетворює малу літеру в прописну.
 Str (Number, Stroka) - перетворює число в рядок.
 Val (Stroka, Number, Code) - перетворює рядок у число і видає код правильності перетворення.
Для рядкових величин визначені
такі функції та процедури:
1.Функція Concat.  Функція Concat здійснює об’єднання рядків R1; R2,
R3 в один рядок в такому порядку, в якому вони записані. 

Формат Concat(Rl,R2,R3); або R1+R2+R3 (string) 

Приклад.

Program Fconcat; 
Const R1='Moвa '; R2='програмування '; R3=’Turbo Pascal'; Var
R:string[35]; 
begin 
R:=concat(Rl,R2,R3); 
writeln(R); 
end. 
2. Функція Length. Функція Length видає фактичну довжину
рядка, який міститься в даній змінній. 

При підрахуванні довжини рядка враховуються всі символи, в тому


числі і проміжки!!! 

Формат: Length(R); (integer) 

Приклад.

Program Flength; 
Const R=’Turbo Pascal’; 
Var N: integer; 
begin 
N:=length(R); 
writeln('n=',N); 
end. 
3. Функція Copy. Функція Copy копіює фрагмент довжиною N
рядка R, починаючи з позиції Poz. 

Формат Copy(R, Poz, N); (string) 

Приклад.

Program Fcopy; 
const R='Turbo Pascal'; 
var R1: string[6]; 
begin 
R1:=Copy(R, 7, 6); 
writeln(R1); 
end. 
4. Функція Pos. Функція Pos знаходить номер позиції Р, з якої
починається перше входження слова C в рядку R. Якщо слово C в
рядку R не знайдено, то буде надруковано число 0. 

Формат Pos(C,R); (integer) 

Приклад.

Program Fpos; 
Const R=‘інформатика';
C=‘форма'; 
Var P: integer; 
begin 
P:=Pos(C, R); 
writeln('P=',P); 
end. 
5. Процедура Insert. Процедура Insert вставляє слово R1 в рядок
R, починаючи з позиції Poz. 

Формат Insert(R1, R, Poz); (string) 

Приклад.

Program PInsert; 
Var Poz: integer; 
R, R1: string[35]; 
begin 
R:='Moвa Pascal'; 
R1:=’Turbo ‘; 
insert(R1, R, 6); 
writeln(R); 
end. 
6. Процедура Delete. Процедура Delete знищує слово, яке
починається з вказаної позиції Poz і має задану довжину N в рядку
R. 

Формат Delete(R, Poz, N); (string) 

Приклад.

Program PDelete; 
Var R:string[35]; 
begin 
R:='Moвa Turbo Pascal'; 
delete(R, 6, 6); 
writeln(R); 
end. 
Ввести довільний текст. Перевірити, чи в ньому кількість
відкритих дужок дорівнює кількості закритих дужок. Вивести
повідомлення “так” або “ні”. 

Program Sumvol; 
uses crt; 
var R:string[100]; 
i,k1,k2,l:integer; 
begin 
clrscr; 
writeln('Vvestu text:'); 
readln(r); 
k1:=0; 
k2:=0; 
l:=length(R); 
for i:=1 to l do 
begin 
if copy(R,i,1)='(' then k1:=k1+1; 
if copy(R,i,1)=')' then k2:=k2+1; 
end; 
if k1=k2 then write('yes') else write('no'); 
readln; 
end.
Рядок містить віршований рядок. Після кожної коми
вставити в нього символ переходу на новий рядок.

program replace;
var frase:string;
ind:byte;
BEGIN
writeln(' Введіть фразу');
readln(frase);
ind:=pos(', ', frase);
while ind<>0 do
Begin
delete(frase, ind+1,1);
insert(#10#13, frase, ind+1);
ind:=pos(', ', frase);
end;
writeln(frase);
Readln;
END.

You might also like