Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_pr1_4567C.doc
Скачиваний:
1
Добавлен:
16.11.2019
Размер:
155.65 Кб
Скачать

Лабораторна робота 3

Тема: Обробка рядків.

Словами будемо називати лексеми. Речення – це певна послідовність слів. Серією називаються слова в однобуквеному алфавіті. Характеристика слова – це довжина максимальної серії, що міститься в ньому. Відстанню між двома словами називається кількість позицій, в яких розрізнюються ці слова. Два слова схожі, якщо множини їх букв співпадають.

Завдання.

  1. Перевірити чи є дане слово симетричним. Знайти саме довге симетричне слово речення.

  2. Перевірити чи є дане слово симетричним. Перевірити, чи вірно, що в реченні будь-яке несиметричне слово має непарну довжину.

  3. Перевірити чи дане слово побудовано за допомогою не більше ніж 3 букв. Вилучити з речення всі слова, побудовані за допомогою більше ніж 3 букв.

  4. Дзеркально перевернути дане слово. Відредагувати речення, перевернувши слова з парними номерами.

  5. Знайти характеристику даного слова. Впорядкувати слова речення за зростанням їх характеристик.

  6. Для двох даних слів перевірити чи є перше оберненням другого. Знайти в реченні пару слів, з яких одне є оберненням другого.

  7. Знайти відстань між двома даними словами. В реченні знайти пару найвіддаленіших слів.

  8. Перевірити чи є слово серією. Вилучити з речення слова-серії, а також слова, що зустрічалися в ньому раніше.

  9. Перевірити чи схожі два даних слова. Вилучити з речення схожі слова, які вже раніше зустрічалися в ньому.

  10. Знайти найбільше ціле число в реченні.

  11. Знайти найбільше дійсне число в реченні.

Лексеми. (Див. 4.6)

Речення.

Кількість слів не більше 100.

  1. Задається у вигляді ініціалізованого масиву слів. Нпр., char *Sentence[]={“This”, “is”,”sentence”, “!” }

  2. Задається ініціалізованим рядком символів. Нпр., 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. Написати функції для виконання операцій над списками:

  1. пошук к– го вузла списку та його модифікація;

  2. вставка нового вузла після або до к -го вузла;

  3. вилучення к -го вузла;

  4. конкатенація кількох списків;

  5. розбиття списку на кілька списків;

  6. створення копії списку;

  7. визначення довжини списку;

  8. сортування списку;

  9. пошук вузла (ів) списку з заданими властивостями.

5.4. Те саме, що і в 5.3 тільки для циклічних списків.

5.5. Написати функцію, яка читає з клавіатури дужковий вираз і перевіряє його на синтаксичну правильність: а) для пари дужок ( , ), б) для дужок (,),[,],{,}. Використати стек в динамічній пам’яті.

5.5. Написати функції для виконання наступних операцій над чергами:

  1. заміна к– го вузла в черзі ;

  2. вилучення к -го вузла з черги;

  3. конкатенація кількох черг;

  4. розбиття черги на кілька черг;

  5. створення копії черги;

  6. визначення довжини черги;

  7. пошук вузла(ів) черги з заданими властивостями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]