Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторн_робот_Ч2.doc
Скачиваний:
19
Добавлен:
03.11.2018
Размер:
2.12 Mб
Скачать

Вступ

Мова програмування Сі створена в 1972 р. співробітником фірми Bell Laboratories Деннісом Річчі (Dennis M. Ritchie) при розробці операційної системи UNIX. Мова проектувалася як інструмент для системного програмування з орієнтацією на розробку добре структурованих програм. Вдале поєднання лаконічності конструкцій і багатства можливостей дозволило мові Сі швидко розповсюдитися і стати найпопулярнішою мовою прикладного і системного програмування. Компілятори мови Сі працюють майже на всіх типах сучасних ЕОМ в операційних системах UNIX, MS-DOS, Mac OS, OS/2, Windows, Windows NT, Solaris.

На відміну від багатьох мов програмування (Ада, Алгол-60, Алгол-68 і т.д.), які набували чинності після ухвалення відповідних національних і міжнародних стандартів, мова Сі спочатку була створена як робочий інструмент, що не претендує на широке використання. Стандарту на мову Сі до 1989 р. не існувало, і як формальний опис розробники компіляторів використовували перше видання книги Б.Кернігана і Д.Річчі, що вийшло в США в 1978 р. (перекладена на російську мову в 1985 р.). Роль неформального стандарту мови Сі збереглася за цією книгою і в даний час. Не випадково в літературі і документації по компіляторах посилання на цю роботу позначається спеціальним скороченням К&R.

Друге видання книги Б.Кернігана і Д.Річчі описує мова Сі в стандартизованому Американським інститутом національних стандартів вигляді (стандарт ANSI мови Сі). В даний час, окрім стандарту ANSI С, розроблений міжнародний стандарт ISO С (International Standard Organization С). Обидві версії стандарту близькі одна до одної, і на відмінностях між стандартами немає необхідності зупинятися до виникнення розбіжностей в тлумаченні тієї або іншої мови або при оцінці стандартності конкретного компілятора. Ці ситуації виходять за рамки курсу по програмуванню на мові Сі. У разі потреби отримання довідок за стандартами мови Сі слід звертатися до спеціальних публікацій, наприклад до "Тлумачного словника стандарту мови Сі" Р. Жешке. Неформальне використання книги K&R як стандарт до 1989 р. і подальша її переробка авторами відповідно до прийнятого стандарту ANSI призвели до того, що її і зараз можна розглядати як достовірне джерело при отриманні довідок по мові Сі.

Метою справжнього посібника є викладення методики і принципів коректного, структурованого програмування на мові Сі. Програми, що ілюструють конструкції і можливості мови, написані максимально зрозуміло для читача. Автори ніде не бігли за ефективністю коду в збиток його структурованості і простоти. Можливості сучасних компіляторів мови Сі такі, що вони дозволяють генерувати вельми ефективний код по тексту добре структурованої програми без спеціальних хитрощів програміста, направлених на підвищення швидкодії або незначну економію пам'яті.

Матеріал посібника відповідає учбовій програмі дисципліни "Алгоритмічні мови і програмування". Вивчення вказаної дисципліни, зокрема мови Сі, служить основою для курсів по математичному забезпеченню ЕОМ і мереж, по операційних системах, побудові компіляторів і системному програмуванню.

Автори сподіваються, що книга допоможе ліквідувати розрив між широко публікованим технічним керівництвом по реалізації мови Сі і потребами в методичному забезпеченні учбового процесу. Для читання книги достатньо знати основи інформатики. Тому допомогу можна використовувати як у вузі, так і в курсах інформатики шкіл, гімназій, ліцеїв і технікумів. Необхідною умовою освоєння матеріалу книги є виконання приведених в ній прикладів і рішення задач практикуму на будь-якій ЕОМ, забезпеченій транслятором з мови Сі.

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

Тема: Основи структурного програмування. Особливості розробки функцій користувача

Мета: набуття навичок створення функцій користувача

Порядок виконання роботи

  1. Ознайомитись з теоретичними відомостями.

  2. Розробити описовий алгоритм, схему алгоритму та програму для виконання завдання 1.

  3. Розробити описовий алгоритм, схему алгоритму та програму для виконання завдання 2.

  4. Для правильної роботи програм розробити 4-6 тестів.

  5. Скласти звіт за результатами лабораторної роботи.

  6. Зробити висновки.

1. Варіанти завдання

Завдання 1

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

Варіант 2. Розробити функцію та програму, яка її використовує для інвертування заданого рядка і тести, що підтверджують правильність роботи програми.

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

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

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

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

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

Варіант 8. Розробити функцію та програму, яка її використовує для пошуку в рядку STR кількість входжень підстроки STR1 і тести, що підтверджують правильність роботи програми.

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

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

Завдання 2

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

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

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

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

Варіант 5. Розробити функцію та програму, яка її використовує, для визначення кількості входжень даного символу в кожен елемент(строку) масиву і тести, що підтверджують правильність роботи програми.

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

Варіант 7. Розробити функцію, яка міняє і-ту стрічку з і+1, де і змінюється від 1 до N, N–кількість елементів масиву, та програму, яка її використовує, і тести, що підтверджують правильність роботи програми.

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

Варіант 9. Розробити функцію яка її використовує, яка визначає довжину стрічки, яка кратна 3 та замінює її на перші 5 символів наступної стрічки, і тести, що підтверджують правильність роботи програми.

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