- •З м і с т
- •Частина 1. Алгоритмізація задачі Порядок виконання лабораторних робіт
- •Зміст звіту
- •Основні принципи розробки алгоритмів
- •Лабораторна робота 1 алгоритмізАцІя лінійного, розгалуЖеного Та циклічного обчислювального процесу
- •Загальні вказівки
- •Завдання для самостійної роботи
- •Знаходження екстремального значення
- •Формування одномірного робочого масиву
- •Сортування елементів масиву
- •Лабораторна робота 2 селективна обробка масивів
- •Загальні вказівки Селективна (вибіркова) обробка інформації
- •Завдання для самостійної роботи
- •Лабораторна робота 3 вкладені цикли. Обробка двовимірних масивів
- •Загальні вказівки Вкладені цикли
- •Обробка заданого рядка (стовпця) матриці
- •Обробка заданої діагоналі матриці
- •Селективна обробка рядка (стовпця) матриці, що задовольняє заданій умові
- •Завдання для самостійної роботи
- •Частина 2. Складання і налагодження програми. Обчислення й обробка результатів Порядок виконання лабораторних робіт
- •Зміст звіту
- •Оператор привласнювання
- •Оператори уводу-виводу
- •Завдання до лабораторної роботи
- •Лабораторна робота 2 програмування розгалуЖеного обчислювального процесу
- •Структура Паскаль–програми
- •Умовний оператор
- •Завдання до лабораторної роботи
- •Лабораторна робота 3
- •Завдання до лабораторної роботи
- •Програмування розгалуЖеного циклічного обчислювального процесу. Табулювання функцій
- •Табулювання функцій
- •Завдання до лабораторної роботи
- •Лабораторна робота 5 нестандартні й обмежені типи даних. Оператор варіанта
- •Нестандартні типи даних
- •Обмежені типи даних
- •Оператор вибору варіанта
- •Оператор циклу for
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 6 регулярні типи даних. Селективна обробка масивів
- •Регулярні типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 7 формування робочих масивів за допомогою операцій селекції вихідного масиву
- •Сортування масивів
- •Завдання до лабораторної роботи
- •Лабораторна робота 8 вкладені цикли. Обробка двовимірних масивів
- •Загальні вказівки
- •Завдання до лабораторної роботи
- •Лабораторна робота 9 процедури і функції
- •Процедури
- •Функції
- •Завдання до лабораторної роботи
- •Лабораторна робота 10 обробка символьних даних
- •Символьний тип даних
- •Завдання до лабораторної роботи
- •Лабораторна робота 11 обробка строкових даних
- •Строковий тип даних
- •Процедури
- •Функції
- •'Abcdef' copy(s,2,3) 'bcd';
- •'System' length(s) 6;
- •Завдання до лабораторної роботи
- •Лабораторна робота 12 комбіновані типи даних
- •Приклади виконання завдання лабораторної роботи
- •Завдання до лабораторної роботи
- •Лабораторна робота 13 файли і файлові типи даних
- •Файловий тип даних
- •Процедури обробки файлів
- •Завдання до лабораторної роботи
- •Список рекомендованої літератури
Лабораторна робота 10 обробка символьних даних
Мета роботи: виробити практичні навички в написанні та налагодженні програм при роботі із символьними даними.
Символьний тип даних
Змінна типу 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) – видають наступний і попередній символи послідовності.
Приклади виконання завдання лабораторної роботи
Приклад 31. У заданій послідовності символів, що передують першому символу ! (знак оклику), замінити усі символи + на *.
Програма має вид:
program pr31;
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.
Приклад 32. У заданій послідовності символів, що передують першій крапці, видалити усі цифри і подвоїти знаки + і *.
Програма має вид:
program pr32;
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.
Приклад 33. Дана послідовність символів х1, х2,...,хn. З’ясувати, чи є серед цих символів пари букв МА.
Програма має вид:
program pr33;
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. Задано послідовність символів, за якою стоїть крапка (у саму послідовність крапка не входить). Надрукуйте текст, <умова А>. Умова А наведена в таблиці 26.
Таблиця 26
|
n |
Умова А |
|
1 |
Видаливши з нього всі символи, що не є цифрами |
|
2 |
Видаливши з нього всі цифри |
|
3 |
Видаливши з нього всі букви від I до N |
|
4 |
Видаливши з нього всі знаки + і - |
|
5 |
Видаливши з нього всі знаки +, безпосередньо за якими йде цифра |
|
6 |
Видаливши з нього всі букви X і Y |
|
7 |
Видаливши з нього всі букви В, безпосередньо перед якими знаходиться буква С |
|
8 |
Замінивши в ньому всі пари АВ на С |
|
9 |
Видаливши з нього всі символи, що не є латинськими буквами |
|
0 |
Видаливши з нього всі знаки + і * |
Варіант 1n. Дана послідовність символів x1,x2,...,xn. <Умова Б>. Умова Б наведена в таблиці 27.
Таблиця 27
|
n |
Умова Б |
|
1 |
Підрахуйте, скільки разів серед даних символів зустрічаються символи + і * |
|
2 |
Перетворіть цю послідовність, замінивши у ній усі знаки оклику символом *, а кожну крапку – трьома крапками |
Продовження таблиці 27
|
n |
Умова Б |
|
3 |
Знайдіть перший номер i, для якого кожний із символів xi і xi+1 збігається з буквою А. Якщо такої пари символів немає, то відповіддю має бути НЕМАЄ |
|
4 |
З'ясуйте, чи є серед символів даної послідовності всі букви, що входять до слова П'ЯТЬ |
|
5 |
Визначте: а) кількість пробілів; б) чи входить у послідовність буква Р |
|
6 |
З'ясуйте, чи є серед цієї послідовності пари сусідніх букв НО або ОН |
|
7 |
Перетворіть цю послідовність, замінивши у ній символ + на -, а символ * на / |
|
8 |
З'ясуйте, чи є серед символів x1, x2,...,xn пари однакових символів, що сусідять. Якщо є, віддрукуйте їх, інакше - надрукуйте слово НЕМАЄ |
|
9 |
З'ясуйте, чи є серед символів цієї послідовності пари символів, « , » і « : » (кома і двокрапка), що сусідять |
|
0 |
Знайдіть номера i, для яких кожний із символів xi і xi+1 збігається з буквою К. Якщо такої пари символів немає, то відповіддю має бути НЕМАЄ |
Варіант 2n. Дана послідовність символів s1,s2,...,sn. <Умова В>. Умова В наведена в таблиці 28.
Таблиця 28
|
n |
Умова В |
|
1 |
Підрахуйте загальне число входжень символів +, -, * у цю послідовність |
|
2 |
Перетворіть цю послідовність, видаливши з неї всі цифри |
|
3 |
Знайдіть номери i, j, для яких si - перша, а sj - остання за порядком кома |
|
4 |
Знайдіть і виведіть на друк усі наявні пари однакових символів |
|
5 |
Перетворіть цю послідовність, видаливши з неї кожен символ * і повторивши кожен символ, відмінний від * |
|
6 |
Підрахуйте найбільшу кількість пробілів, що йдуть підряд |
Продовження таблиці 28
|
n |
Умова В |
|
7 |
З'ясуйте, чи є в послідовності п'ять букв a, що йдуть підряд |
|
8 |
Визначте число входжень груп букв abc |
|
9 |
Перетворіть цю послідовність, видаливши з неї усі коми, що передують крапці |
|
0 |
Визначте, чи входять до послідовністі усі букви слова МАША |
