Лабораторна робота № 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 бал).