Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб.работы.doc
Скачиваний:
17
Добавлен:
28.03.2016
Размер:
1.78 Mб
Скачать

Лабораторна робота 9 обробка символьних даних

Мета роботи: виробити практичні навички в написанні та налагодженні програм при роботі із символьними даними.

Символьний тип даних

Змінна типу char (символьна перемінна) може набувати значення з визначеної упорядкованої сукупності символів, дозволених транслятором Паскаля на даній ЕОМ. Символьні змінні описуються ідентифікатором char, наприклад:

var c,b:char; a:array[1..10]of char;

Літери, вязті в апострофи, є константами символьного типу. Множина літер упорядкована:

A < B < C < … < Z < А < Б < … < Я.

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

- ord(x) – видає номер символу x;

- chr(i) – видає i-й символ послідовності;

- succ(x), pred(x) – видають наступний і попередній символи послідовності.

Приклади виконання завдання лабораторної роботи

Приклад 30. У заданій послідовності символів, що передують першому символу ! (знак оклику), замінити усі символи + на *.

Програма має вид:

program pr30;

uses crt; var x:char;

begin clrscr;

WRITELN(‘УВЕДИ ПОСЛІДОВНІСТЬ СИМВОЛІВ’); read(x);

while x <> ‘!’ do begin

if x =’+’ then write(‘*’) else write(x);

read(x) end;

writeln;

x:=readkey

end.

Приклад 31. У заданій послідовності символів, що передують першій крапці, видалити усі цифри і подвоїти знаки + і *.

Програма має вид:

program pr31;

uses crt;

VAR C:CHAR;

BEGIN CLRSCR;

WRITELN(‘УВЕДИ ПОСЛІДОВНІСТЬ СИМВОЛІВ’); READ(С);

repeat

if (c=’+’) or (c=’*’) then write(c,c)

else if (c<’0’) or (c>’9’) then

WRITE(C); READ(C)

until c=’.’; writeln;

c:=readkey

end.

Приклад 32. Дана послідовність символів х1, х2,...,хn. З’ясувати, чи є серед цих символів пари букв МА.

Програма має вид:

program pr32;

uses crt;

label 1;

const n=30;

type mas=array[1..n] of char;

var x:mas; i:integer; c:char;

BEGIN CLRSCR;

WRITELN(‘УВЕДИ ПОСЛІДОВНІСТЬ СИМВОЛІВ’);

FOR I:=1 TO N DO READ(X[I]); WRITELN;

WRITELN(‘ПОСЛІДОВНІСТЬ СИМВОЛІВ:’);

for i:=1 to n do write(x[i]); writeln;

for i:=1 to n-1 do

if (x[i]=’m’) and (x[i+1]=’a’) then

BEGIN

WRITELN(‘MA-Є’); GOTO 1

END;

WRITELN(‘MA-НЕМАЄ’);

1: c:=readkey

end.

Завдання до лабораторної роботи

Складіть програми для розв’язання наступних задач обробки послідовності символів.

Варіант 0n та 3n. Задано послідовність символів, за якою стоїть крапка (у саму послідовність крапка не входить). Надрукуйте текст, <умова А>. Умова А наведена в таблиці 12.

Таблиця 12

n

Умова А

1

Видаливши з нього всі символи, що не є цифрами

2

Видаливши з нього всі цифри

3

Видаливши з нього всі букви від I до N

4

Видаливши з нього всі знаки + і -

5

Видаливши з нього всі знаки +, безпосередньо за якими йде цифра

6

Видаливши з нього всі букви X і Y

7

Видаливши з нього всі букви В, безпосередньо перед якими знаходиться буква С

8

Замінивши в ньому всі пари АВ на С

9

Видаливши з нього всі символи, що не є латинськими буквами

0

Видаливши з нього всі знаки + і *

Варіант 1n. Дана послідовність символів x1,x2,...,xn. <Умова Б>. Умова Б наведена в таблиці 13.

Таблиця 13

n

Умова Б

1

Підрахуйте, скільки разів серед даних символів зустрічаються символи + і *

2

Перетворіть цю послідовність, замінивши у ній усі знаки оклику символом *, а кожну крапку – трьома крапками

Продовження таблиці 13

n

Умова Б

3

Знайдіть перший номер i, для якого кожний із символів xi і xi+1 збігається з буквою А. Якщо такої пари символів немає, то відповіддю має бути НЕМАЄ

4

З'ясуйте, чи є серед символів даної послідовності всі букви, що входять до слова П'ЯТЬ

5

Визначте: а) кількість пробілів; б) чи входить у послідовність буква Р

6

З'ясуйте, чи є серед цієї послідовності пари сусідніх букв НО або ОН

7

Перетворіть цю послідовність, замінивши у ній символ + на -, а символ * на /

8

З'ясуйте, чи є серед символів x1, x2,...,xn пари однакових символів, що сусідять. Якщо є, віддрукуйте їх, інакше - надрукуйте слово НЕМАЄ

9

З'ясуйте, чи є серед символів цієї послідовності пари символів, « , » і « : » (кома і двокрапка), що сусідять

0

Знайдіть номера i, для яких кожний із символів xi і xi+1 збігається з буквою К. Якщо такої пари символів немає, то відповіддю має бути НЕМАЄ

Варіант 2n. Дана послідовність символів s1,s2,...,sn. <Умова В>. Умова В наведена в таблиці 14.

Таблиця 14

n

Умова В

1

Підрахуйте загальне число входжень символів +, -, * у цю послідовність

2

Перетворіть цю послідовність, видаливши з неї всі цифри

3

Знайдіть номери i, j, для яких si - перша, а sj - остання за порядком кома

4

Знайдіть і виведіть на друк усі наявні пари однакових символів

5

Перетворіть цю послідовність, видаливши з неї кожен символ * і повторивши кожен символ, відмінний від *

6

Підрахуйте найбільшу кількість пробілів, що йдуть підряд

Продовження таблиці 14

n

Умова В

7

З'ясуйте, чи є в послідовності п'ять букв a, що йдуть підряд

8

Визначте число входжень груп букв abc

9

Перетворіть цю послідовність, видаливши з неї усі коми, що передують крапці

0

Визначте, чи входять до послідовністі усі букви слова МАША

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]