- •З м і с т
- •Лабораторна робота 13. Робота з множинними типами даних . . . 76 Лабораторна робота 14. Створення й обробка файлів . . . . . . . . . . 79
- •Порядок виконання лабораторних робіт
- •Оператор привласнювання
- •Оператори уводу-виводу
- •Завдання до лабораторної роботи
- •Лабораторна робота 2 програмування розгалуЖеного обчислювального процесу
- •Структура Паскаль–програми
- •Умовний оператор
- •Завдання до лабораторної роботи
- •Програмування розгалуЖеного циклічного
- •Завдання до лабораторної роботи
- •Лабораторна робота 4 нестандартні й обмежені типи даних. Оператор варіанта
- •Нестандартні типи даних
- •Обмежені типи даних
- •Оператор вибору варіанта
- •Оператор циклу for
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 5 регулярні типи даних. Селективна обробка масивів
- •Регулярні типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 6 формування робочих масивів за допомогою операцій селекції вихідного масиву
- •Сортування масивів
- •Завдання до лабораторної роботи
- •Лабораторна робота 7 вкладені цикли. Обробка двовимірних масивів
- •Загальні вказівки
- •Завдання до лабораторної роботи
- •Лабораторна робота 8 процедури і функції
- •Процедури
- •Функції
- •Завдання до лабораторної роботи
- •Лабораторна робота 9 обробка символьних даних
- •Символьний тип даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 10 обробка строкових даних
- •Строковий тип даних
- •Процедури
- •Функції
- •'Abcdef' copy(s,2,3) 'bcd';
- •'System' length(s) 6;
- •Завдання до лабораторної роботи
- •Лабораторна робота 11 комбіновані типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 12 файли і файлові типи даних
- •Файловий тип даних
- •Процедури обробки файлів
- •Завдання до лабораторної роботи
- •Лабораторна робота 13 робота з множинними типами даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 14 створення й оброблення файлів
- •Файли з типом
- •Процедури для роботи з файлами з типом
- •Функції для обробки файлів з типом
- •Завдання до лабораторної роботи
- •Лабораторна робота 15 коректування файлів
- •Завдання до лабораторної роботи
- •Лабораторна робота 16 робота з екраном у текстовому режимі засобами мови паскаль
- •Загальні вказівки
- •Процедури роботи з екраном
- •Процедури установлення текстових режимів I управління кольором
- •Процедури управління курсором
- •Процедура установлення текстових вікон
- •Завдання до лабораторної роботи
- •Лабораторна робота 17 перевірка достовірності даних
- •Вибір критеріїв достовірності
- •Типові алгоритми уводу I перевірки достовірності даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 18 графічні засоби мови паскаль
- •Графічні процедури мови Паскаль
- •Завдання до лабораторної роботи
- •Розрахунок масштабу I зрушення графіка
- •Процедура для креслення графіка
- •Завдання до лабораторної роботи
- •Порядок виконання роботи
- •Зміст звіту
- •Список рекомендованої літератури
- •Додаток а
Лабораторна робота 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 |
Визначте, чи входять до послідовністі усі букви слова МАША |
