Постановка завдання

Мета роботи

Лабораторна робота № 9

обробка символьної інформації

 

Дослідити роботу операторів обробки символьної інформації мови програмування С++, засвоїти методику складання та налагодження програм з опрацюванням символьної інформації на ПЕОМ.

 

Скласти схему алгоритму, таблицю символічних імен та програму мовою С++ відповідно до заданого варіанта. Налагодити та розв’язати задачу на ПЕОМ.

Теоретичні відомості

 

У сімействі персональних комп’ютерів IBM PC використовуються 256 різноманітних символи. Вони мають свої числові коди, значення котрих лежать у діапазоні від 0 до 255, тобто загальна кількість символів дорівнює 256.

Коли Ви натискаєте клавішу на клавіатурі, це приводить до того, що у комп'ютер надсилається сигнал у виді двійкового числа, яке ставиться у відповідність до кодової таблиці, тобто внутрішнього представлення символів у комп'ютері. Як стандарт прийнята таблиця ASCII (American Standard Code for Information Interchange – Американський стандартний код обміну інформацією). Вона указує на відповідність між зображеннями або умовними позначеннями символів та їх внутрішніми числовими кодами. Ознайомитися з цією таблицею можна в додатку 1.

Мова С++ дає змогу визначати тип рядка двома різними способами і у першому використовується масив символів, а в другому - покажчик на перший символ масиву:

char array[6] = "РЯДОК";

char s[ ] = {'Р', 'Я', 'Д', 'О', 'К', '\0'}; // при

визначенні масиву з одночасною ініціалізацією

кінцеве значення можно не подавати;

char *b; // другий спосіб визначення рядка - це використання

покажчика на символ. Він задає змінну b, де може

бути адреса певного об’єкта (де міститься рядок).

 

Під час виконання завдань до лабораторної роботи можна використовувати функції, призначені для роботи з рядками (їх прототипи – у файлі stdio.h, string.h):

scanf( ), gets( ) - уведення рядків символів;

printf(), puts( ) - виведення рядків символів;

strcpy( рядок1, рядок2) – копіювання змісту рядка2 у рядок1;

strcat(рядок1, рядок2 ) – рядок2 дописується до рядка1, рядок2

не змінюється;

strlen(рядок1 ) – повертає розмір рядка1, не враховуючи нульовий

байт;


strcmp(рядок1, рядок2) – порівнює рядок1 з рядком2 та повер-

тає нуль, якщо вони однакові.

Рядок можна привласнюватимасиву, використовуючи операцію cin (взяти з потоку):

char word [20];

cin>>word;

Уведений програмістом рядок зберігається у змінній word. Зчитуються символи доти, поки не зустрінеться символ нового рядка або кінець файлу. Кількість уведених символів не повинно перевищувати 19, для того, щоб залишилося місце під символ кінця строки ‘\0’.

Якщо в рядок необхідно вводити слова, розділені пропусками, використовується функція cin.getline() з трьома аргументами.

char sentense [80];

cin.getline(sentense, 80,’\n’);

де sentense масив символів для тексту, 80 довжина масиву, ‘\n’ символ – обмежник (ним може бути будь-який символ).

Ввід припиняється, якщо зустрінеться символ ‘\n’, кінець файлу або кількість лічених символів виявилась на один менше, ніж вказано в дрегому аргументі(з урахуванням ‘\0’).

Інформацію про найбільш вживані операції для роботи з рядками можна знайти у додатку 2.