- •Лабораторна робота № 1. Форматний ввід/вивід
- •Лабораторна робота № 4. Вказівники та операції над ними
- •Завдання 4.3. Арифметичні дії над вказівниками
- •Лабораторна робота № 5. Одновимірні масиви Рекомендації до виконання лабораторної роботи
- •Лабораторна робота № 6. Двовимірні масиви
- •Лабораторна робота № 7. Символьна інформація та рядки
- •Лабораторна робота № 8. Передача масивів у функцію
- •Лабораторна робота № 9. Перевантаження функцій. Функції зі змінною кількістю параметрів.
- •Лабораторна робота № 10. Структури
- •Список використаної літератури
Лабораторна робота № 7. Символьна інформація та рядки
Рекомендації до виконання лабораторної роботи
Пам’ятайте, що рядок - це і масив, і вказівник на перший його елемент (char str[80], char * S1). Для звернення до елементів рядка достатньо записати ім’я символьного масиву і в квадратних дужках індекс елементу (str[2], S1[i]), або до імені масиву додавати константу (відповідний індекс), і застосовувати операцію розіменування для доступу до потрібного елементу (*(str+2), *(S1+i)). При роботі зі словами в рядку деколи зручно використовувати масив вказівників на ці слова.
Для пошуку у рядку конкретних символів, наприклад, знаків пунктуації, цифр, великих або маленьких літер, пробілів тощо зручно користуватися стандартними функціями для роботи з символами, описаними у файлі-заголовку <ctype.h>.
Ознакою кінця рядка є нульовий символ “\0”, який зручно використовувати при проходженні по рядку в пошуку потрібних символів.
Оскільки рядки не належать до змінних стандартного типу мови С++, для роботи з ними існують спеціальні функції, опис яких розміщений у заголовочному файлі <string.h>. Результати застосування таких функцій розглянемо на прикладі:
char College []=”Computer Sciences”, F[]=”Faculty of ”;
char * p, * r=””;
int n;
-
Застосування функцій
Результат
n= strlen(College);
n=17
r=strcat( F, College);
r=”Faculty of Computer Sciences”
r=strncat( F, College, 8);
r=”Faculty of Computer ”
strcpy( r, College);
r= “Computer Sciences”
strncpy( r, College, 8);
r= “Computer”
p=strchr(College, ‘S’);
p=”Sciences”
p=strrchr(College, ‘e’);
p=”es”
p=strstr(College, “put”);
p=”puter Sciences”
p=strupr(“Happy New Year”);
p=” HAPPY NEW YEAR”
p=strlwr(“Happy New Year”);
p=”happy new year”
p=strrev(“retupmoc”);
p=”computer”
n=strcmp(“Funny”,”funny”);
n=-32
n=strcmp(“funny”, “Funny”);
n=32
n=strcmp(“Funny”, “Funny”)
n=0
n=stricmp(“funny”, “Funny”);
n=0 (не розрізняються малі і великі літери)
Слово – це послідовність алфавітно-цифрових символів, перед або (та) після яких слідує або знак пунктуації, або розділювач, або ознака кінця рядка.
Слово={початок рядка | знак пунктуації | пропуск } символи, що складають слово, {кінець рядка| знак пунктуації | розділювач }
Шукане слово може входити до складу інших слів (“сон”: фасон, соната, персона).
При зчитування тексту з файлу не забувайте перевіряти правильність його відкриття, підключайте необхідні заголовочні файли функцій зі стандартних бібліотек.
Практикуйте проміжний контрольний друк на різних стадіях виконання програми.
При виведенні результату додавайте текстові пояснення до того, що виводиться на екран. Бажано виводити як вихідний, так і новий тексти задля порівняння.
Довжина рядка, який зчитується з текстового файлу, не перевищує 80 символів, між словами пропуски і допускаються знаки пунктуації, натиснення „enter” – ознака кінця файлу.
Програма повинна передбачати будь-які варіанти текстових файлів.
Варіанти індивідуальних завдань
Варіант 7.1
Напишіть програму, яка визначає:
а) скільки пропусків є в цьому тексті (3 бали);
б) чи зустрічається в тексті слово, що вводиться з клавіатури (+1 бал);
в) виводить слова рядка у інший текстовий файл в зворотному порядку (+1 бал).
Варіант 7.2
Написати програму, яка визначає:
а) скільки знаків пунктуації є в цьому тексті (3 бали);
б) чи зустрічається в тексті слова, що починаються з цифр (+1 бал);
в) виводить рядок у інший текстовий файл але без слів, що починаються з цифр (+1 бал).
Варіант 7.3
Напишіть програму, яка визначає:
а) скільки великих літер є в цьому тексті (3 бали);
б) замінити пропуски у тексті на знак ’+’ (+1 бал);
в) виводить рядок у інший текстовий файл, міняючи місцями два сусідні слова (+1 бал).
Варіант 7.4
Напишіть програму, яка визначає:
а) скільки маленьких літер є в цьому тексті (3 бали);
б) слова, до складу яких входить слово, введене з клавіатури (+1 бал);
в) виводить рядок у інший текстовий файл, змінивши на протилежний, порядок букв в кожному слові (Наприклад: „наприклад” – „далкирпан”) (+1 бал).
Варіант 7.5
Напишіть програму, яка визначає:
а) скільки знаків пунктуації є в цьому тексті (3 бали);
б) скільки разів зустрічається в тексті слово, що вводиться з клавіатури (+1 бал);
в) виводить рядок інший текстовий файл без слова, що вводиться з клавіатури (+1 бал).
Варіант 7.6
Напишіть програму, яка визначає:
а) скільки цифр є в цьому тексті (3 бали);
б) чи зустрічається в тексті окремо двозначне число, що вводиться з клавіатури (+1 бал);
в) виводить слова рядка, що знаходяться до та після цього числа, у інший текстовий файл (+1 бал).
Варіант 7.7
Напишіть програму, яка визначає:
а) скільки пропусків і символів пунктуації є в цьому тексті (3 бали);
б) чи зустрічається в тексті трьохзначне число, що вводиться з клавіатури (+1 бал);
в) виводить рядок у інший текстовий файл, записуючи цифри від 0 до 9 словами, тобто „нуль”, „один” тощо (+1 бал).
Варіант 7.8
Напишіть програму, яка визначає:
а) скільки пропусків і цифр є в цьому тексті (3 бали);
б) чи зустрічається у тексті підрядок, введений з клавіатури (+1 бал);
в) виводить рядок, у якому найбільше слів-поліндромів, у інший текстовий файл (+1 бал).
Варіант 7.9
Напишіть програму, яка визначає:
а) скільки великих букв є в цьому тексті і замінює їх на маленькі (3 бали);
б) найдовше слово у тексті (+1 бал);
в) виводить рядок, у якому немає однакових слів, в інший текстовий файл (+1 бал).
Варіант 7.10
Напишіть програму, яка визначає:
а) скільки маленьких букв є в цьому тексті і замінює їх на великі (3 бали);
б) слова, які не містять деякої, обраної Вами, букви (+1 бал);
в) у інший текстовий файл виводить кожне слово речення з нового рядка (+1 бал).
Варіант 7.11
Напишіть програму, яка визначає:
а) скільки пропусків і ком є в цьому тексті (3 бали);
б) найкоротше слово у тексті (+1 бал);
в) у інший текстовий файл виводить рядок, у якому найбільше однакових слів (+1 бал).
Варіант 7.12
Напишіть програму, яка визначає:
а) чи є введений з клавіатури рядок довшим за текстовий приклад (3 бали);
б) слова, які містять введену Вами букву (+1 бал);
в) у інший текстовий файл виводить рядок, додавши до нього його дзеркальну копію (+1 бал).
Варіант 7.13
Напишіть програму, яка визначає:
а) скільки цифр і пропусків є в цьому тексті (3 бали);
б) слова, першими символами яких є цифри від 0 до 5 (+1 бал);
в) у інший текстовий файл виводить рядок, з якого вилучено слова, знайдені у попередньому пункті (+1 бал).
Варіант 7.14
Напишіть програму, яка визначає:
а) скільки разів у тексті зустрічається буква, що вводиться з клавіатури
(3 бали);
б) слова-поліндроми (+1 бал);
в) у інший текстовий файл виводить рядок, до якого додається цей самий рядок, слова у якому записані в зворотному порядку (+1 бал).
Варіант 7.15
Напишіть програму, яка визначає:
а) скільки разів задана цифра зустрічається в цьому тексті (3 бали);
б) слова, довші за введене слово (+1 бал);
в) у інший текстовий файл виводить рядок, з якого вилучено слова, знайдені у попередньому пункті (+1 бал).
Варіант 7.16
Напишіть програму, яка визначає:
а) скільки великих літер зустрічається в цьому тексті (3 бали);
б) слова, коротші за введене слово (+1 бал);
в) у інший текстовий файл виводить рядок, в якому у словах, знайдених у попередньому пункті, подвоюється остання літера (+1 бал).
Варіант 7.17
Напишіть програму, яка визначає:
а) скільки разів задана літера зустрічається в цьому тексті (3 бали);
б) найдовше та найкоротше слова у рядку (+1 бал);
в) у інший текстовий файл виводить рядок, у якому всі пробіли замінені на три крапки (+1 бал).
Варіант 7.18
Напишіть програму, яка визначає:
а) скільки разів у цьому тексті зустрічаються парні цифри (3 бали);
б) слова, які не містять більше трьох голосних (+1 бал);
в) у інший текстовий файл виводить рядок, з якого вилучено перше і останнє слова (+1 бал).
Варіант 7.19
Напишіть програму, яка визначає:
а) скільки разів у цьому тексті зустрічаються цифри, кратні трьом (3 бали);
б) слова, які співпадають з першим словом (+1 бал);
в) у інший текстовий файл виводить рядок, у якому спочатку друкуються всі літери, а потім всі цифри без зміни порядку їх розташування у вихідному рядку (+1 бал).
Варіант 7.20
Напишіть програму, яка визначає:
а) скільки речень є в цьому тексті (3 бали);
б) слова, у яких підряд стоять дві однакові літери (book, pass, express, Гаага, масса) (1 бал);
в) у інший текстовий файл виводить рядок, який містить лише цитати з вихідного тексту, тобто вислови у лапках (+1 бал).
Варіант 7.21
Напишіть програму, яка визначає:
а) скільки цифр і літер зустрічається в цьому тексті (3 бали);
б) слова, які починаються з голосних (+1 бал);
в) у інший текстовий файл виводить рядок, у якому всі літери відсортовані за зростанням, а дублікати вилучаються (+1 бал).
Варіант 7.22
Напишіть програму, яка:
а) замінює всі знаки з кодами менше 060 на позначку ’*’ (3 бали);
б) знаходить власні назви (+1 бал);
в) у інший текстовий файл виводить рядок, у якому всі символи замінено на їх ASCII-коди (+1 бал).
Варіант 7.23
Напишіть програму, яка:
а) замінює кожен пробіл у цьому тексті на його номер ( наприклад, “На1панщині2пшеницю3жала.”) (3 бали);
б) знаходить кількість слів, які закінчуються на “ing” (+1 бал);
в) у інший текстовий файл виводить текст, який містить рядки, які починаються з тире, перед яким можуть знаходитися лише символи пропуску (+1 бал).
Варіант 7.24
Напишіть програму, яка визначає:
а) скільки пар лапок є в цьому тексті (3 бали);
б) слова, які не можуть бути ідентифікаторами (починаються з цифри) (+ 1 бал);
в) у інший текстовий файл виводить рядок, у якому спочатку розміщуються слова, що складаються лише з літер, далі ті, що містять крім літер ще й цифри, а в кінці - лише числа (+1 бал).
Варіант 7.25
Напишіть програму, яка визначає:
а) скільки пар дужок є в цьому тексті (3 бали);
б) слова, у яких немає повторень літер (+1 бал);
в) у інший текстовий файл виводить рядок, який містить слова вихідного тексту, розташовані за зростанням їх довжини (+1 бал).
Варіант 7.26
Напишіть програму, яка визначає:
а) кількість позначок підкреслення в цьому тексті (3 бали);
б) слова, за якими не стоїть кома (+1 бал);
в) у інший текстовий файл виводить текст, у якому слова однакової довжини замінено на введене з клавіатури слово (+1 бал).
Варіант 7.27
Напишіть програму, яка визначає:
а) кількість тире в цьому тексті (3 бали);
б) слова, за якими стоїть кома або крапка (+1 бал);
в) у інший текстовий файл виводить закодований текст, тобто для позначення кожної літери і цифри оберіть код за власним бажанням і організуйте заміну (+1 бал).
Варіант 7.28
Напишіть програму, яка визначає:
а) кількість позначок арифметичних операцій у цьому тексті (3 бали);
б) слова, які містять апостроф (+1 бал);
в) у інший текстовий файл виводить текст, у якому всі літери і цифри замінені на їх попередників (тобто 1 на 0, b на a, a на z, 0 на 9 тощо) (+1 бал).
Варіант 7.29
Напишіть програму, яка визначає:
а) кількість позначок логічних операцій в цьому тексті (3 бали);
б) слова, довжина яких не перевищує деякої заданої величини (+1 бал);
в) у інший текстовий файл виводить текст, у якому всі слова пронумеровані (+1 бал).
Варіант 7.30
Напишіть програму, яка визначає:
а) кількість позначок інкременту і декременту в цьому тексті (3 бали);
б) слова, довжина яких більша за задану величину (+1 бал);
в) у інший текстовий файл виводить рядок, який містить лише слова різної довжини (решта слів видаляється) (+1 бал).