Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Символьні та рядкові величини у мові Паскаль



 

Символьні та рядкові величини у мові Паскаль

У мові Паскаль викор. 2 типи текстових даних:

1) символьні (char);

2) рядкові (string).

Симв. стала – це 1 симв. кодової табл. ПК, записаний в апострофах. Він займає 1Б памяті. Напр.: ‘h’, ’7’, ’(’, ‘_’, ‘’.

Симв. змінна може набувати значень різних символів.

Приклад опису симв. змінних:

Var S, t:char;

Симв. змінна може отримати значення:

1) через присвоєння: S:='*';

2) введенням з клавіатури: Read(S);

Симв. тип – впорядкований, тобто для кожного значення типу можна назвати як попереднє, так і наступне, напр. для ' Q' попереднім є 'P', а наступним – 'R'.

Тому симв. змінні можна також використ. як параметр циклу.

Пр. 1:

For s:='a' to 'z' do

Write(s,' ');

Writeln(Сhr(66));

Writeln(Ord('B'));

Для роботи із Char використ. функції Сhr i Ord.

Сhr видає символ за його кодом у кодовій таблиці ПК.Приклад: Сhr(66)='B'

Ord видає код символа у кодовій таблиці ПК. Приклад: Ord('B')=66

З-ча 2. Вивести на екран таблицю кодування

Var k:byte;

begin

For k:=0 to 255 do

Write(k,' ',Chr(k),' ');

End.

Символьні дані можна обєднувати в масиви.

Приклад опису:

var P: array [1..50] of char;

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

 

Рядок (стрічка символів - string) – послідовність символів довжиною не більше 255 символів.

Пр. викор. рядк. сталих:

1) write (‘Введіть х ’);

2) write (‘S=’, S);

3) const R=’No’;

Для опису рядкових змінних вказ. тип – string і максимально можлива кількість символів значення величини.

Приклади опису:

1) var St: string; - максим. можл довж. – 255;

2) var R1, R2: string[20]; - максим. можл. довж. – 20;

3) var im: string[10]; - максим. можл. довж. – 10;

Порожній рядок має довжину 0 (‘’).

Рядкові вирази – це вирази, які складаються із рядкових даних: сталих, змінних, знаків операцій, функцій.

Зокрема, над даними string допустимі операції склеювання та відношення (порівняння).

Приклад склеювання:

Х:=’ін’+’форма’+’тик’;

write(X);

Результат:

інформатик

var x, y: string[15];

begin

Y:= ’форма’;

Х:=’ін’+Y+’тик’;

write(X);

end.

Заув. Максим. довж. не має перевищувати 255 симв.

Порівняння рядків відбувається посимвольно зліва направо до першого неоднакового символа і той рядок вважається більшим, в якому перший із неоднакових символів має більший код у кодовій таблиці. Результат порівняння – true (істина) або false (хибність).

Приклади:

‘RL’=’RL’ true

‘RL’=’rl’ false

‘RL’>’rl’ false

‘YYY’ >’YY’ true

‘R’>’З’ false

Функції опрацювання рядків.



Нехай St – рядок, тобто в програмі є опис

Var St: string;

Length(St) – видає ціле число, що є кількістю символів, тобто довжиною рядка St.

Якщо і> Length(St), то результат – пропуск (' '), і>255 – помилка

Пр.: 1) Length('1.2,3,4')=7 -

2) St:=''; {порожній рядок}

write(Length(St));

Рез.: 0

Copy(St, i, k) – формує новий рядок довжиною k, починаючи з і-го символа рядка St.

Якщо і> Length(St), то результат – пропуск (' '), і>255 – помилка

Приклади

St

Вираз

Результат

'каліграфія'

Copy(St, 5, 4)

'граф'

'каліграфія'

Copy(St, 1, 8)

'каліграф'

'інформатика'

Copy(St, 12, 4)

_

'інформатика'

Copy(St, 3, 5)

‘форма’

 

З-ча 1. Нап. та вик. пр. визн. ск. разів і введ. тексті зустр символ 'k'.

begin

n:=0;

For i:=1 to length(st) do

if St[i]=’k’ then n:=n+1

З-ча 2. Нап. та вик. пр. визн. ск. разів у введ тексті зустр.

буквосполучення ‘net’

begin

n:=0;

For k:=1 to length(st)-2 do

if Copy(St, k, 3)=’net’ then n:=n+1

Pos (St1, St2) – визначає чи входить рядок St1 в рядок St2. Результатом функції є ціле число, яке дорівнює номеру позиції, починаючи з якої St1 входить в St2.

Приклади

St

Вираз

Результат

'мороз'

Pos('р', St)

 

'мороз'

Pos('ор', St)

 

'мороз'

Pos('я', St)

 

З-ча 6. Визначити чи є задане буквосполучення у введеному з клавіатури тексті.

Var St:string; Sl:string[12]; k:byte;

begin

write ('Введи буквосполучення ');

readln(Sl);

write ('Введи текст ');

readln(St);

k:= pos(Sl, St);

if k>0 then writeln('Входить')

else writeln('Не входить')

end.

 

Upcase(S) – функція перетворення символа S із нижнього регістра у верхній. Символи поза інтервалом 'a','b',…,'z' залишаються без змін

 

З-ча 5. Замінити у введеному тексті перші букви слів на великі.

For k:=1 to length(St) do

If (St[k]<>' ') and (St[k-1]=' ') then St[k]:=Upcase(St[k]);

 

Процедури опрацювання рядків

Delete(St, i, k) – вилучає з рядка St k символів, починаючи з і -го.

Пр.: Delete(St, 2, 1); - вилучає з рядка St 1 символ, починаючи з 2-го.

Insert(St1,St2,k) – вставляє рядок St1 в St2, починаючи з k-ї позиції рядка St2.

Пр.: S1:='MS ';

S2:='ЕТ Excel';

Insert(S1,S2,4);

Write(S2);

ЕТ MS Excel

Peзультат:

 

З-ча 5. Підрахувати у введеному рядку кількість слів

 

З-ча 7. Написати програму заміни у введеному тексті слова Sl1 на слово Sl2.

 

Const Sl1='OgO'; Sl2='AyA';

Var ST:string;

k: byte;

begin

Write ('Vvedit text ');

Readln(ST);

K:=pos(Sl1, ST);

While k<>0 do begin

Delete (ST, k, length(Sl1));

Insert(Sl2,ST,k);

K:=pos(Sl1, ST);

End;

Writeln(ST);

End.

 

 

З-ча 6. Замінити у введеному тексті перші букви слів на великі.

 

З-ча 7. Визначити у введеному тексті найбільше слово.

 

 

З-ча 6. Визначити, чи задане слово є паліндромом (однаково читається зліва направо і навпаки, напр. Пилип)

 

З-ча 9. Визначити, скільки у тексті є слів-паліндромів

 


Дата добавления: 2015-08-27; просмотров: 746 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
1. Система сил при свободном резании | Синтез архитектуры и монументального искусства

mybiblioteka.su - 2015-2024 год. (0.018 сек.)