ОПРАЦЮВАННЯ СИМВОЛЬНИХ РЯДКІВ



Мета роботи: Øзакріпити теоретичні знання про властивості та особливості зберігання символьних рядків у мові С; Øздобути практичні навики програмного опрацювання символів та текстової інформації.

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

1. Прочитати умову задачі індивідуального завдання. Розробити загальний алгоритм її розв’язування.

2. Продумати, які дані будуть опрацьовуватися в програмі, якими є їхні типи, які додаткові змінні та масиви доцільно включити в програму. Дуже важливо правильно визначити розмірності символьних рядків і масивів та забезпечити, щоби в процесі введення даних і виконання програми не вийти за їхні межі. Звернути увагу, що для збереження одиночних символів найкраще використовувати тип int.

3. Скласти програму, відповідну до розробленого алгоритму, стараючись не застосовувати бібліотечних функції із заголовних файлів <ctype.h>, <string.h> чи <stdlib.h>

4. Для звертання до окремих символів або частин рядка в програмі треба використати як вказівникову, так і індексну форму виділення елементів. У процесах (циклах) опрацювання символьних рядків обов’­язково врахувати їхню основну властивість – закінчення рядка нуль-символом.

5. Для організації введення-виведення символьних рядків і окремих символів вибрати найвідповідніші бібліотечні функції із <stdio.h>. Обов’язково супроводити кожну операцію введення-виведення відповідною підказкою або заголовком.

6. Перевірити коректність роботи програми для різнотипних прикладів вхідних даних і занотувати результати.

7. У звіті до лабораторної роботи вказати: • задачу індиві­ду­аль­ного завдан­ня; • короткий опис алгоритму її розв’язування; • текст розробленої програми; • результати виконання програми; • висновок.

Варіанти індивідуальних завдань

1. З клавіатури ввести символьний рядок, в якому крім тексту можуть бути також числа: цілі та дійсні, в яких дробова частина відокремлюється комою. Знайти і надрукувати всі числа, які є у цьому рядку або вказати, що чисел у рядку немає.

2. З клавіатури ввести речення. Надрукувати ті слова з введеного речення, в яких є подвоєння літер (наприклад, слово подвоєння), або вивести повідомлення про відсутність таких слів.

3. З клавіатури ввести символьний рядок, який задає арифметичний вираз: А ± В, де А та В – два довільні цілі числа, ± знак арифме­тичної операції: + або - , яку треба виконати над цими числами. Виділити з введеного рядка операнди і знак операції та обчислити й надрукувати значення виразу (приклад: 121 - 74 = 47).

4. З клавіатури ввести довге ціле беззнакове число. Сформувати символьний рядок, у який занести цифри 16-го коду цього числа. Надрукувати рядок із 16-м кодом і перевірити його правильність, вивівши значення введеного числа у 16-му форматі (специфікація %#x ). Підказка: 16-ві цифри заносити у рядок, починаючи від наймолодшої, а потім виконати реверсування рядка.

5. З клавіатури ввести речення і слово. Вставити введене слово в речення, зробивши його п’ятим за порядком. Якщо в реченні менше, ніж чотири слова, то додаткове слово має стати останнім у реченні. Надрукувати доповнене речення. Підказка: скористатись додатковим рядком, вміст якого потім переписати на місце введеного рядка.

6. З клавіатури ввести два символьні рядки, у кожному з яких записано 8-розрядний двійковий код цілого беззнакового числа. Сформувати третій рядок, у який занести двійковий код суми цих чисел. Урахувати, що сума може бути на один розряд довшою. Надрукувати у стовпчик введені числа та їхню суму.

7. З клавіатури ввести речення. Вилучити друге слова цього речення та зробити його останнім у реченні. Надрукувати результат заміни (приклад:
Я виконую завдання ® Я завдання виконую).

8. З клавіатури ввести символьний рядок, що має форму a3b4c2… . Сформувати новий рядок, що матиме вигляд aaabbbbcc… (цифра після символа у введеному рядку задає кількість повторень цього символа). Скопіювати новий рядок на місце введеного і надрукувати його. Підказка: оголошуючи початковий рядок, передбачити, що його розмір зросте щонайменше п’ятикратно.

9. Перевірити, чи введений з клавіатури символьний рядок є правильним записом беззнакового цілого числа у системі числення з основою 5 (з можливими символами пропуску перед числом і після нього). Якщо так, то визначити і надрукувати десяткове значення цього числа.

10. З клавіатури ввести символьний рядок, який задає повне ім’я файла (із зазначенням шляху до цього файла). Замінити розширення файла на *.new (якщо файл не мав розширення, то додати його). Надрукувати нове ім’я, вказавши шлях великими літерами, а саме ім’я файла – малими літерами.

11. У введеному з клавіатури україномовному реченні визначити середню довжину слова у літерах (розділові знаки, апостроф, дефіс, цифри та інші небуквенні символи не враховувати). Додатково визначити, яка з літер зустрічається у цьому реченні найчастіше. Підказка: скористатись масивами (рядками) великих і малих літер української абетки.

12. З клавіатури ввести речення. Вилучити з нього всі слова, які містять задану двосимвольну комбінацію. Надрукувати скорочене речення і вказати, скільки слів вилучено.

13. З клавіатури ввести речення. Сформувати нове речення з тих слів введеного речення, в яких немає заданої літери. Врахувати, що задана літера в слові може бути як малою, так і великою.

14. З клавіатури ввести речення. Замінити в ньому слово, порядковий номер якого задає користувач, відповідною кількістю символів *("замалювати" слово зірочками). Якщо номер заданого слова перевищує кількість слів у введеному реченні, то вивести відповідне повідомлення.

15. З клавіатури ввести символьний рядок з 2-10-м кодом цілого числа (між тетрадами має бути записаний один символ пробілу). Обчислити й надрукувати десяткове значення цього числа.

16. З клавіатури ввести речення. Видалити найдовше слово з введеного речення. Надрукувати скорочене речення.

17. З клавіатури ввести символьний рядок та кодову трилітерну комбінацію символів. Визначити, скільки разів ця комбінація повторюється у введеному рядку або вивести повідомлення про її відсутність. Одночасно замінити всі входження заданої комбінації одним символом Х. Надрукувати рядок після заміни. Підказка: скористатись додатковим рядком, вміст якого потім переписати на місце введеного рядка.

18. Символьний рядок, довжиною 16 символів, заповнити випадковим чином 0 та 1. Сформований рядок є 16-розрядним двійковим кодом цілого числа зі знаком: найстарший біт задає знак числа, а від’ємні числа вважаються записаними у доповнювальному коді. Обчислити й надрукувати десяткове значення згенерованого числа. Підказка: скористатись бібліотечними функціями генерування випадкових чисел.

19. З клавіатури ввести речення. Визначити і надрукувати слово з цього речення, в якому найбільше разів зустрічається задана літера (враховувати малі й великі літери). Якщо таких слів декілька, то вказати одне з них, зазначивши, скільки ще є таких слів.

20. З клавіатури ввести символьний рядок, в якому крім слів можуть бути цілі числа та дійсні числа, в яких дробова частина відокремлена комою. Вилучити з цього рядка всі числа. Надрукувати скорочений рядок. Підказка: для видалення чисел треба зсувати всі наступні слова ліворуч.

21. З клавіатури ввести символьний рядок. Перевірити, чи він є паліндромом, тобто однаково читається зліва направо та справа наліво (великі й малі літери у паліндромах не розрізняються, а пробіли не враховуються).

22. З клавіатури ввести речення. Сформувати нове речення зі зворотним порядком слів, при цьому замінити у першому й останньому словах велику літеру на малу та навпаки. Надрукувати створене речення.

23. З клавіатури ввести ціле беззнакове число. Сформувати символьний рядок, у який занести цифри трійкового коду цього числа. Надрукувати рядок із трійковим кодом і зазначити, скільки разів у ньому повторюється кожна з цифр. Підказка: трійкові цифри заносити у рядок, починаючи від наймолодшої, а потім виконати реверсування рядка.

24. З клавіатури ввести символьний рядок, в якому записано 2-10-й код цілого беззнакового числа (між тетрадами не повинно бути пробілів). Створити новий рядок, у який занести цифри десяткового коду (значення) цього числа. Надрукувати створений рядок.

25. З клавіатури ввести символьний рядок, який задає булів вираз у формі:

                                                       число 1 Ä число 2

де число 1 та число 2 – двійкові коди двох довільних цілих чисел, Ä – знак булевої операції: & , | або ^ , яку треба виконати над цими числами. Виділити з введеного рядка обидва операнди і знак операції та обчислити й надрукувати двійкове значення виразу (приклад: 101 ^ 1100 = 1001).

26. З клавіатури ввести символьний рядок. Перевірити, чи збігається третє слово цього рядка з його останнім словом. Якщо так, то вилучити з рядка третє слово (якщо третє слово останнє у рядку, то воно не видаляється). Надрукувати відповідне повідомлення, а в разі вилучення слова вивести також скорочений рядок.

27. З клавіатури ввести два символьні рядки, у кожному з яких записано шестирирозрядний код цілого п’ятіркового числа. Сформувати третій рядок, у який занести код суми цих чисел у п’ятірковій системі . Врахувати, що сума може бути на один розряд довшою. Надрукувати у стовпчик введені числа та їхню п’ятіркову суму.

28. З клавіатури ввести речення. Замінити в ньому k-те слово довільним іншим (значення k та слово для заміни задає користувач). Передбачити, що в реченні може бути менше, ніж  k слів – тоді заміна не виконується. Надрукувати змінене речення або повідомлення про відсутність k-го слова. Підказка: скорис­татися додатковим рядком, вміст якого потім переписати на місце введеного рядка.

29. Ввести символьний рядок, який містить 16-й код довгого цілого числа (перед числом і за ним можуть бути записані пробіли). Визначити і надрукувати десяткове значення цього числа. Якщо в рядку помилково записані символи, що не є 16-ми цифрами, то вивести повідомлення про помилку в коді.

30. З клавіатури ввести українське речення. Надрукувати слова введеного речення, які містять задану літеру. Врахувати, що ця літера в слові може бути як малою, так і великою. Підказка: скористатись масивом великих і малих літер української абетки.

 

 

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

ЗАСТОСУВАННЯ БІБЛІОТЕЧНИХ ФУНКЦІЙ
РОБОТИ ЗІ СИМВОЛАМИ ТА СИМВОЛЬНИМИ РЯДКАМИ

Мета роботи: опанувати стандартні бібліотечні функції перевірки та перетворення символів і символьних рядків для швидкого програмування задач опрацювання текстової інформації.

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

1. Продумати алгоритм розв’язування задачі, вказаної в індивідуальному завданні.

2. Визначити, які дані будуть опрацьовуватися в програмі, встановити їхні типи та обсяги пам’яті, які потрібно виділити для символьних рядків і масивів. Нагадаємо, що для роботи з одиночними символами раціональним є застосування типу  int.

3. Переглянути стандартні функції із бібліотек <ctype.h>, <string.h> та <stdlib.h> і вибрати ті з них, які дають змогу спростити програмування дій, передбачених алгоритмом розв’язування задачі.  

4. Розробити два варіанти програми: в одному мінімізувати кількість звертань до бібліотечних функцій, а в іншому застосувати доцільні функції. В обох програмах введення-виведення даних здійснювати за допомогою відпо­відних бібліотечних функцій.

5. Реалізувати обидві програми та порівняти отримані  результати.

6. Оформити звіт згідно з вимогами. У висновках до лабораторної роботи зазначити переваги та недоліки кожного з варіантів програми.


Дата добавления: 2018-04-15; просмотров: 2189; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!