Лабораторна робота 3
Тема: Обробка рядків.
Словами будемо називати лексеми. Речення – це певна послідовність слів. Серією називаються слова в однобуквеному алфавіті. Характеристика слова – це довжина максимальної серії, що міститься в ньому. Відстанню між двома словами називається кількість позицій, в яких розрізнюються ці слова. Два слова схожі, якщо множини їх букв співпадають.
Завдання.
Перевірити чи є дане слово симетричним. Знайти саме довге симетричне слово речення.
Перевірити чи є дане слово симетричним. Перевірити, чи вірно, що в реченні будь-яке несиметричне слово має непарну довжину.
Перевірити чи дане слово побудовано за допомогою не більше ніж 3 букв. Вилучити з речення всі слова, побудовані за допомогою більше ніж 3 букв.
Дзеркально перевернути дане слово. Відредагувати речення, перевернувши слова з парними номерами.
Знайти характеристику даного слова. Впорядкувати слова речення за зростанням їх характеристик.
Для двох даних слів перевірити чи є перше оберненням другого. Знайти в реченні пару слів, з яких одне є оберненням другого.
Знайти відстань між двома даними словами. В реченні знайти пару найвіддаленіших слів.
Перевірити чи є слово серією. Вилучити з речення слова-серії, а також слова, що зустрічалися в ньому раніше.
Перевірити чи схожі два даних слова. Вилучити з речення схожі слова, які вже раніше зустрічалися в ньому.
Знайти найбільше ціле число в реченні.
Знайти найбільше дійсне число в реченні.
Лексеми. (Див. 4.6)
Речення.
Кількість слів не більше 100.
Задається у вигляді ініціалізованого масиву слів. Нпр., char *Sentence[]={“This”, “is”,”sentence”, “!” }
Задається ініціалізованим рядком символів. Нпр., char Sentence[]=“This is sentence !” }
Вказівки:
провести автономне тестування та відлагодження всіх процедур і функцій та комплексне тестування всієї програми;
обробку слів оформити у вигляді функцій;
підготувати Звіт про виконання Лабораторної роботи.
Тема 5. Структури.
Структури як тип даних. Структури – параметри функцій. Покажчики на структури. Структури з полями - покажчиками на себе. Лінійні списки. Операції над лінійними списками.. Динамічні стеки. Черги. Об’єднання. Бітові поля
5.1. Структура struct date{int day;int month;int year;int year_day; char mon_name[4];} подає інформацію про дату відповідно: число, місяць, рік , порядковий номер дня в році та назву місяця. Написати функції:
a) void day_of_year(struct date *pd) для знаходження порядкового номера дня в даті *pd і занесення його в поле (*pd).year_day ;
б) void month_day(struct date *pd) для знаходження місяця та числа в даті *pd за порядковим його номером і занесення їх у відповідні поля структури *pd.
5.2 Раціональні числа можна податии у вигляді структур типу:
typedef struct { long n /* =чисельник*/;
long d /* =знаменник*/;
} racio;
Написати функції для основних арифметичних операцій над раціональими числами та відношень на них. Наприклад, для операції додавання функція могла б мати такий вигляд racio add(racio a, racio b)
{racio temp; long com; long gcd(long,long);
temp.n=a.n*b.d+a.d*b.n; temp.d=a.d*b.d;
com=gcd(temp.n,temp.d);temp.n/=com;temp.d/=com;
return temp;
}
Для обчислити значення виразів :
а) ;
б) , враховуючи тільки члени не менші від даного раціональго ;.
в) ;
г) .
5.3. Написати функції для виконання операцій над списками:
пошук к– го вузла списку та його модифікація;
вставка нового вузла після або до к -го вузла;
вилучення к -го вузла;
конкатенація кількох списків;
розбиття списку на кілька списків;
створення копії списку;
визначення довжини списку;
сортування списку;
пошук вузла (ів) списку з заданими властивостями.
5.4. Те саме, що і в 5.3 тільки для циклічних списків.
5.5. Написати функцію, яка читає з клавіатури дужковий вираз і перевіряє його на синтаксичну правильність: а) для пари дужок ( , ), б) для дужок (,),[,],{,}. Використати стек в динамічній пам’яті.
5.5. Написати функції для виконання наступних операцій над чергами:
заміна к– го вузла в черзі ;
вилучення к -го вузла з черги;
конкатенація кількох черг;
розбиття черги на кілька черг;
створення копії черги;
визначення довжини черги;
пошук вузла(ів) черги з заданими властивостями.