Методичні вказівки до виконання курсових робіт з дисципліни Алгоритмізація та програмування, КПЕК Луцького НТУ
« НазадМіністерство освіти і науки УкраїниКовельський промислово-економічний коледж Луцького НТУ
Методичні вказівки до виконання курсових робіт з дисципліни Алгоритмізація та програмуванняНапрям підготовки: 6.050101 «Комп’ютерні науки» Спеціальність: 5.05010101 «Обслуговування програмних систем та комплексів»
Ковель 2014
ЗМІСТ ВСТУП.. 3 1. ПОРЯДОК ВИКОНАННЯ КУРСОВОЇ РОБОТИ.. 4 2. СТРУКТУРА ТА СКЛАД КУРСОВОЇ РОБОТИ.. 6 3 ЗАВДАННЯ НА ВИКОНАННЯ КУРСОВОЇ РОБОТИ.. 8 4. ОФОРМЛЕННЯ ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ.. 12 4.1. Загальні положення. 12 4.2. Вимоги до структурних елементів пояснювальної записки. 13 4.2.1. Вступна частина. 13 4.2.2. Основна частина. 14 4.2.3. Заключна частина. 18 4.2.4. Представлення блок-схем алгоритмів та лістингів програм. 19 ДОДАТКИ.. 25 Додаток А. Форма реферату курсової роботи. 26 Додаток В Умовні графічні позначення символів в схемах алгоритмів та програм. 27 Додаток Д. Зразки оформлення бібліографічного опису різних видів джерел. 29 Додаток Е. Прикладвиконання завдання з обробки символьних рядків. 31 Додаток К. Блок-схеми алгоритмів. 38 Додаток Л. Лістинг Л.1- Лістинг алгоритму розв’язання задачі з обробки символьних рядків. 40 Список рекомендованої літератури. 42
ВСТУПКурсова робота призначена для придбання практичних навичок розробки алгоритмів та програм на мові Сі для розв’язання найбільш важливих та поширених задач програмування, необхідних для кожного програміста. Метою курсової роботи є закріплення та поглиблення знань, отриманих студентами на лекційних, практичних заняттях з дисципліни «Алгоритмізація та рограмування», розвиток навичок при виборі представлення вхідних даних, розробці або виборі методу розв’язку задачі, використанні структурно-орієнтованого підходу при написанні програм на мові Сі, тестуванні та відладки програм, оформленні документації на програмну розробку. При виконанні курсової роботи студент повинен навчитися: використовувати набуті знання при розробці програм; працювати з літературними джерелами; розробляти алгоритми та створювати відповідні їм програми на мові Сі; проводити відладку та тестування програм; проводити аналіз результатів роботи програми; складати відповідне програмне супроводження для розроблених програмних проектів. В даному методичному виданні надаються відомості щодо порядку виконання курсових робіт та правил оформлення пояснювальної записки. В якості тем для завдань вибрані наступні типові задачі програмування: - розробка функцій для обробки символьних рядків; - обробка одномірних та двомірних масивів; - робота з динамічними структурами та файлами; - використання методів сортування та пошуку даних; Матеріали посібника структуровані таким чином, щоб студенти мали можливість ознайомитись з основними етапами розробки програм, починаючи від постановки задачі та закінчуючи документуванням результатів. Наводиться приклад виконання та оформлення завдання.
1. ПОРЯДОК ВИКОНАННЯ КУРСОВОЇ РОБОТИКурсова робота з дисципліни «Алгоритмізація та програмування» виконується кожним студентом індивідуально у відповідності з варіантом завдання, що видається керівником курсової роботи. Обов’язковим являється застосування структурно-орієнтованого підходу з використанням функцій та блоків. Тексти програм для реалізації завдань курсової роботи складаються на мові програмування Сі. Для введення/виведення даних використовуються функції з бібліотеки стандартних функцій Сі [1]. Дозволяється використання інших функцій бібліотеки, якщо це не заперечується умовою завдання або рекомендаціями до його виконання. Завдання до курсової роботи виконуються в середовищах розробки Turbo C++ або Borland C++. В процесі виконання курсової роботи студент повинен виконати наступні типові етапи: 1. Виконати постановку задачі у відповідності з варіантом завдання. Для цього: - уважно прочитати та уяснити умову завдання; - звернути увагу на рекомендації, які є на початку опису кожного завдання; - чітко визначити, що є початковими даними для задачі; яким буде результат розв’язання задачі; які основні співвідношення між вхідними та вихідними даними. 2. Ознайомитись з необхідним теоретичним матеріалом. 3. Створити математичну модель та вибрати метод розв’язування задачі. 4. Розробити алгоритм рішення задачі. Для запису алгоритмів може використовуватись природна мова або формальна мова з обмеженим словником. Для наочного зображення структури алгоритму представити його у вигляді блок-схеми. 5. Скласти свій варіант тексту програми, що реалізує представлену математичну модель. у відповідності з розробленим алгоритмом. 6. Відладити програму за допомогою комп’ютера. Передбачити обробку виключних ситуацій, що виникають під час роботи програми. 7. Провести тестування програми, встановити межі застосування та особливості функціонування програми при різних наборах вхідних даних. 8. Виконати розрахунки за умовою завдання та проаналізувати результати. На цьому етапі початкові дані готуються у форматі, передбаченому завданням, а для вихідних даних враховуються відповідні формати виводу. Аналіз результатів полягає у формулюванні висновків щодо достовірності отриманих результатів та повноти виконання завдання курсової роботи. 9. Скласти звіт. Консультації та контроль за ходом виконання курсової роботи здійснюються керівником курсової роботи.
2. СТРУКТУРА ТА СКЛАД КУРСОВОЇ РОБОТИЗвіт з курсової роботи повинен містити: - пояснювальну записку (складається у відповідності до даних методичних вказівок); - дискові файли, в яких зберігаються тексти програмних модулів та результати роботи програм [2]. Пояснювальна записка складається державною мовою та повинна включати такі основні розділи в наступному порядку: 1. Титульний аркуш. 2. Завдання на курсову роботу 3. Реферат; 4. Зміст. 5. Вступ. 6. Основна частина, що для кожного завдання містить такі підрозділи: а) умова завдання; б) стислі теоретичні відомості про особливості операторів та методів, що використовуються (теоретична частина). в) опис вхідних та вихідних даних для основної програми та кожної з функцій; г) опис логічної структури програми та функцій; д) опис алгоритмів програми та функцій, що використовуються, у вигляді блок-схем; ж) машинний лістинг (текст) програми; з) виклик та завантаження програми, організація вхідних та вихідних даних; и) тестові дані для перевірки роботи програми; і) результати тестування програми (в тому вигляді, в якому вони представлені на екрані після виконання програми) при різних наборах вхідних даних. к) аналіз одержаних результатів (перелік аномалій та допустимих значень вхідних даних, обґрунтування переваг чи недоліків обраного варіанта розв’язування задачі). 7. Висновки. 8. Список використаних джерел. 9. Додатки (структурний елемент не є обов’язковий). 10. Перелік умовних скорочень (структурний елемент не є обов’язковий). Всі матеріали курсової роботи можна умовно розділити на три частини: вступна частини (розділи 1-5), основна частина (розділ 6 ), заключна частина (розділи 7-10). Кожен зазначений структурний елемент необхідно починати з нової сторінки. Великі за обсягом розділи, такі як основна частина, необхідно ділити на підрозділи, пункти, підпункти.
3 ЗАВДАННЯ НА ВИКОНАННЯ КУРСОВОЇ РОБОТИЗавдання полягає у виконанні сукупності чотирьох задач (за вибором викладача) для кожного студента. Рішення цих задач має індивідуальний характер і складається з розробки таких питань: - розробка функцій з обробки символьних рядків; а) в форматі з індексами; б) в форматі з вказівниками. - обробка одномірних та двомірних масивів; - розробка функцій з використанням побітових операцій; - розробка алгоритмів та програм з використанням складних структур даних: - використання методів сортування та пошуку даних; - опанування засобів файлового введення/виведення; - реалізація методів передачі інформації з операційного середовища за допомогою аргументів командного рядка; - розробка алгоритмів з використанням засобів динамічного розподілення пам’яті. Приклад завдання на курсову роботу з дисципліни «Програмування» наведено нижче. Завдання 1. Робота з символьними рядками.Мета: Придбання практичних навичок в роботі з символьними рядками з викоританням індексних виразів та вказівників, забезпечення функціональної модульності. Постановка задачі Згідно з варіантом завдання скласти функцію для обробки символьних строк та програму для перевірки роботоспроможності функції. За зразок можна брати бібліотечні функції обробки рядків мови С, але не використовувати їх в своїй функції. Варіант індивідуального завдання: Функція StrSpn(s,s1) Призначення: визначення довжини тієї частини рядка s, яка містить тільки символи з рядка s1. Рекомендації для виконання 1-го завдання: 1. Рядки для тестування функції вводяться в головній програмі з клавіатури. 2. Передбачити обробку помилок в завданні параметрів та особливі випадки. 3. Розробити два варіанти заданої функції з використанням: а) індексованих масивів; б) вказівників. Завдання 2. Робота з масивами.Мета: Придбання практичних навичок в роботі з одномірними та двомірними масивами. Постановка задачі Заданий двомірний масив дійсних чисел (квадратна матриця A розміром N x N (6<=N<=10), що містить дійсні елементи. Реалізувати його обробку, як вказано в варіанті. Вхідні дані задати самостійно, враховуючи специфіку задачі. Варіант індивідуального завдання: Визначити для кожного елемента матриці позиції елементів з такою ж сумою цифр. Для визначення суми цифр цілого числа використовувати функцію. Рекомендації для виконання 2-го завдання: 1. В програмі повинні бути передбачені функції для введення/виведення елементів масиву та його обробки. 2. Для автоматичного заповнення масиву А даними використовувати генератор випадкових чисел. Завдання 3. Робота з побітовими операціямиМета: Придбання практичних навичок в роботі з порозрядними логічними операціями та операціями зсуву. Постановка задачі В завданні 3 передбачається використання порозрядних логічних операцій та операцій зсуву. Дані вводяться з файлу на диску та виводяться в файл та на екран. Імена вхідного та вихідного файлів задаються в командному рядку. Варіант індивідуального завдання: Скласти функцію, яка переставляє старший та молодший півбайти в заданому в якості параметра символі. Використовувати цю функцію в програмі, яка кодує текстовий файл, шляхом перестановки півбайтів в кожному символі текстового файлу. Передбачити можливість декодування. Режим роботи (кодування / декодування) вводяться з клавіатури. Рекомендації для виконання 3-го завдання: 1. При відкритті чи створенні будь-яких файлів необхідно перевіряти наявність помилок введення-виведення. 2. Результат виконання завдання повинен бути представлений в наочній формі, наприклад: Результат об’єднання значень 65535 = 11111111 11111111 та 1 = 00000000 00000001 операцією порозрядне «І» (&) дорівнює 1 = 00000000 00000001 Завдання 4. Робота зі структурами та файлами. Методи сортування та пошуку данихМета: Придбання практичних навичок в роботі зі складними типами даних, що зберігаються в файлах. Оволодіння методами сортування та пошуку даних. Постановка задачі Дані зберігаються в файлі на диску. Реалізувати їх обробку, як вказано в варіанті. Реалізувати заданий алгоритм сортування та пошуку даних. Варіант індивідуального завдання: Є масив із m структур, що містять інформацію про книги: прізвище та ініціали автора, назву, видавництво, та рік видання. Упорядкувати його методом вставки за першим полем, що є рядком. Методами послідовного та бінарного пошуку знайти заданий рядок (прізвище автора) у цьому масиві. Рекомендації для виконання 4-го завдання: 1. Ім’я файлу задається в командному рядку. Якщо воно там не було задано, то після відповідного запиту вводиться користувачем. 2. Використовувати динамічне виділення пам’яті (розмір масиву задається користувачем після відповідного запиту). Після використання обов’язково звільняти пам’ять.
4. ОФОРМЛЕННЯ ПОЯСНЮВАЛЬНОЇ ЗАПИСКИ4.1. Загальні положенняКурсова робота оформлюється відповідно до вимог державних та міждержавних стандартів, що діють на території України, а також відповідних стандартів ДНУ. Пояснювальну записку виконують машинним (за допомогою комп’ютерної техніки) способом на одному боці аркуша білого паперу формату А4 (210´297 мм) та зброшуровують [3]. Одна сторінка тексту вміщує не більше 40 рядків на сторінці за умови рівномірного її заповнення та висотою літер не менш, ніж 1,8 мм. Рекомендовані параметри оформлення тексту: шрифт Times New Roman, 14 pt., інтервал полуторний або подвійний, вирівнювання за шириною, абзацний відступ – 5 символів, поля: ліве, верхнє та нижнє – не менше 20 мм, праве — не менше 10 мм. Такі структурні елементи, як “ЗАВДАННЯ НА КУРСОВУ РОБОТУ”, “РЕФЕРАТ”, “RESUME“, “ЗМІСТ”, розділи, “ВСТУП”, “ВИСНОВКИ”, “СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ”, додатки, друкують з нової сторінки. Заголовки розділів розташовують посередині симетрично тексту великими літерами. Переноси слів у заголовках не допускаються. Крапку в кінці заголовка не ставлять. Підкреслювання заголовка не допускаються. Заголовки підрозділів, пунктів і підпунктів треба починати з абзацу, друкувати маленькими літерами, крім першої великої, не підкреслюючи, без крапки в кінці. Розділи і підрозділи повинні обов’язково мати заголовки. Пункти і підпункти можуть мати заголовки. Якщо заголовок містить два і більше речень, то їх розділяють крапкою. Відстань між заголовком та подальшим або попереднім текстом має бути не менш, ніж два рядки. Не можна розміщувати заголовок у нижній частині сторінки, якщо після нього є тільки один рядок тексту. Заголовки підрозділів, пунктів і підпунктів слід починати з абзацного відступу і друкувати маленькими літерами, крім першої великої, не підкреслюючи, без крапки в кінці. Заголовок будь-якого рівня повинен бути надрукований як один абзац, тобто для примусового розбиття тексту заголовка на рядки слід користуватися функцією „розрив рядка” (Shift+Enter), а не „кінець абзацу” (Enter) Сторінки курсової роботи нумерують арабськими цифрами впродовж усього тексту. Номер сторінки проставляють у правому верхньому куті сторінки без крапки у кінці. Титульний аркуш включають до загальної нумерації, але номер сторінки на ньому не проставляється. Ілюстрації й таблиці, розмішені на окремих сторінках, включають до загальної нумерації сторінок. Розділи повинні мати порядкову нумерацію в межах всієї роботи та позначатися арабськими цифрами без крапки в кінці. Інші структурні елементи, такі як “ЗАВДАННЯ НА КУРСОВУ РОБОТУ”, “РЕФЕРАТ”, “RESUME“, “ЗМІСТ”, “ВСТУП”, “ВИСНОВКИ”, “СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ”, не нумеруються [4]. Пояснювальна записка оформлюється охайно, текст не повинен містити орфографічних та пунктуаційних помилок. Помилки, описки та графічні неточності допускається виправляти зафарбовуванням білою фарбою і нанесенням на тому ж місці або між рядками виправленого тексту машинним способом або від руки. Виправлене повинно бути чорного кольору. Орієнтовний обсяг пояснювальної записки до курсової роботи - 40 сторінок.
4.2. Вимоги до структурних елементів пояснювальної записки4.2.1. Вступна частинаТитульний аркуш – це перша сторінкакурсової роботи. оформлюється відповідно стандарту ДНУ [3]. На титульному аркуші обов'язково повинні бути підписи виконавця та керівника. Зразок оформлення наведений у додатку А. Завдання на курсову роботу визначає керівник курсової роботи. Цей розділ повинен містити перелік питань, що підлягають розробці (умови задач з вказівкою номера завдання, номера варіанта та рекомендаціями щодо виконання завдань). Реферат повинен містити відомості про обсяг курсової роботи, кількість ілюстрацій, таблиць, використаних джерел, додатків, перелік ключових слів та текст реферату. Останній повинен відображати: об’єкт дослідження або розробки, мету роботи, методи дослідження, одержані результати, область використання. Ключові слова (5–10 слів або словосполучень) слід друкувати після тексту реферата прописними (великими) літерами в називному відмінку в рядок через кому. Зразок оформлення реферату наведено в додатку Б. Зміст включає послідовно перелічені назви усіх розділів та підрозділів (починаючи зі вступу) з наведенням номерів сторінок, на яких починаються матеріали розділу чи підрозділу. До змісту також включаються найменування додатків та номери відповідних сторінок. Назви розділів друкують великими літерами, назви підрозділів – малими літерами, починаючи з великої. Вступ повинен розкривати суть курсової роботи, обґрунтовувати її актуальність. У вступі повинні наводитись мета та задачі, що необхідно розв’язати для досягнення поставленої мети; коротко викладатись основний зміст роботи та результати, одержані в процесі виконання курсової роботи; визначатись практична цінність результатів або рекомендації до їх використання із зазначенням галузі застосування. У вступі не слід наводити історичні відомості, загальновідомі визначення, опис мови програмування та їн. Обсяг вступу не повинен перевищувати 1 сторінку.
4.2.2. Основна частина4.2.2.1. Текст роботиОсновна частина тексту курсової роботи складається з таких структурних елементів: - Розділ – перший ступінь поділу тексту, позначається номером та обов’язково має заголовок. - Підрозділ – частина розділу (також позначається номером та має заголовок). - Пункт – частина розділу чи підрозділу, позначена номером (може мати заголовок). - Підпункт - частина пункту, позначена номером (може мати заголовок). - Абзац – логічно виділена частина тесту (не має номера). Допускається поділяти текст курсової роботи на частини, поділ на частини виконується на рівні не нижче розділу [2]. Основна текстова частина роботи поділяється на окремі розділи, зміст яких зазвичай передбачає постановку задачі, теоретичну та експериментальну частину з висвітленням питань, що вказані у розділі 2 (п.7) цих методичних вказівок. Підрозділи нумерують арабськими цифрами в межах кожного розділу. Номер підрозділу складається із номера розділу та порядкового номера підрозділу, відокремлених крапкою. Після номера підрозділу крапку не ставлять, наприклад: “3.2” (другий підрозділ третього розділу). Номер пункту складається з номера розділу, номера підрозділу та порядкового номера пункту, відокремлених крапкою. Після номера пункту крапку не ставлять, наприклад: “1.2.3” (третій пункт другого підрозділу першого розділу), і т.д. Розподілення основного матеріалу за розділами та структурування за підрозділами визначаються студентом самостійно за узгодженням з керівником. Текст роботи складається коротко та чітко з використанням загальноприйнятих термінів та визначень. З метою виділення окремих понять допускається друкувати окремі слова або частини тексту шрифтом, відмінним від основного. В тексті роботи обов’язково необхідно робити посилання на джерела, з яких використовується інформація. Посилаючись у тексті роботи на джерело, необхідно вказувати його порядковий номер в списку використаних джерел, виділений двома квадратними дужками. 4.2.2.2 ІлюстраціїІлюстраціями є електричні, принципові, функціональні, логічні схеми, графіки, фотографії, креслення, діаграми. Ілюстрації розміщують безпосередньо в тексті роботи або в додатках. Ілюстрації позначаються словом "рисунок" (Рис. ) і нумеруються (якщо їх більше однієї) послідовно арабськими цифрами. Номер повинен складатися із номера розділу та порядкового номера рисунка, відокремлених крапкою, наприклад: Рисунок 2.3 (третій рисунок другого розділу). У додатках ілюстрації нумерують у межах кожного додатку. У роботі ілюстрації повинні бути розміщені так, щоб їх було зручно розглядати без повороту або з поворотом за годинниковою стрілкою. Ілюстрації повинні обов'язково мати назву, наприклад, «Рис. 2.3 - Блок-схема алгоритму функції factor», а також, за необхідності, пояснювальні дані (пояснювальний текст), які розміщують під ілюстрацією. Номер ілюстрації разом з назвою розміщують після пояснювальних даних. Ілюстрації слід розміщувати безпосередньо після тексту, де вони згадуються вперше, або на наступній сторінці. На всі ілюстрації мають бути посилання у тексті, які вказують його порядковий номер, наприклад «блок-схема алгоритму обчислення факторіалу показана на рисунку 2.3 (або на рис. 2.3) ». У повторних посиланнях на рисунки необхідно писати слово "дивись" скорочено, наприклад: "...див. рис. 3.2... ". 4.2.2.3 ТаблиціЦифровий матеріал, як правило, повинен оформлятися у вигляді таблиць. Нумерація таблиць проводиться арабськими цифрами за порядком наведення в межах розділу. Номер розміщується над таблицею і складається з номера розділу і порядкового номера таблиці, відокремлених крапкою, наприклад: "Таблиця 2.1" (перша таблиця другого розділу). Таблиця може мати назву, яку друкують малими літерами (крім першої великої) і вміщують над таблицею зразу після номера. Назва має бути стислою і відбивати зміст таблиці. Таблицю завжди розміщують після першого згадування про неї в тексті. При перенесенні частини таблиці на другу сторінку над перенесеною частиною таблиці пишуть слово „Продовження” із зазначенням номера таблиці, наприклад: „Продовження таблиці 2.1”. Заголовок над перенесеною частиною таблиці не розміщують. Таблиця 2.1 - Початкові дані для тестування функції delete
Посилання на таблицю в тексті роблять з допомогою вказування її номера без скорочення слова "таблиця", наприклад: "...в таблиці 2.1...". У повторних посиланнях на таблиці необхідно писати слово "дивись" скорочено, наприклад: "...див. таблицю 4.З...". 4.2.2.4 ФормулиНабір формул здійснюється у формульному редакторі Microsoft Equation 3.0. Якщо формул більше однієї, їх нумерують арабськими цифрами в межах розділу. Номер формули складається із номера розділу і порядкового номера формули в розділі, розділених крапкою. Номер пишуть на правому боці аркуша, на рівні формули в круглих дужках. Пояснення значень символів та числових коефіцієнтів, які входять у формулу, необхідно наводити одразу під формулою в тій же послідовності, в якій вони наведені у формулі. Значення кожного символу та числового коефіцієнта необхідно писати з нового рядка. Після формули ставлять кому, а перший рядок пояснення значень починають з абзацу словом "де" без двокрапки. Наприклад: «…елементи матриці B визначаються за формулою: де А – матриця розміром n´n, i, j =1,2,…..,n – індекси, що визначають номер рядку та стовпця відповідно.» Посилання на формулу вказують порядковим номером формули в круглих дужках, наприклад: "...у формулі (2.3) наводиться...". 4.2.3. Заключна частинаВисновки – містять повні та чіткі висновки за результатами виконаної роботи, оцінку повноти виконання завдання, висвітлюють особливості функціонування або межі застосування розроблених алгоритмів та програм, рекомендації щодо їх використання. Обсяг цієї частини не перевищує одну сторінку. Список використаних джерел є обов'язковою частиною курсової роботи. Його об'єм показує, наскільки глибоко обґрунтовані теоретичні положення, на яких базується робота. Він повинен бути оформлений відповідно до вимог ДСТУ ГОСТ 7.1:2006 [5]. Список наводиться на наступній сторінці після заключної частини. У верхній частині аркуша пишуть заголовок “СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ”. При цьому кожному джерелу присвоюють порядковий номер, який позначають арабською цифрою з крапкою праворуч. Джерела в переліку розташовують у порядку першого звернення до джерела в тексті роботи. Допускається складання списку в алфавітному порядку. У додатку Ж наведені зразки оформлення бібліографічного опису різних видів джерел відповідно до чинних стандартів. Посилання на джерела, що використовуються, обов’язково повинні розташовуватись у тексті пояснювальної записки. Для оформлення посилань використовують порядковий номер джерела у списку та виділяють двома квадратними дужками. Додатки містять додатковий матеріал до роботи: окремі рисунки, блок-схеми алгоритмів, таблиці, графіки, лістинги програм, текст допоміжного характеру і т.ін. Додатки оформлюють як продовження курсової роботи на наступних сторінках, розташовуючи їх згідно з порядком посилання на них у тексті. Додаток повинен починатись з нової сторінки і мати заголовок, надрукований угорі малими літерами з першої великої симетрично відносно тексту сторінки. Посередині рядка над заголовком малими літерами з першої великої друкується слово "Додаток___" і велика літера, якою позначається додаток. Додатки слід позначати послідовно великими літерами української абетки, за винятком літер Ґ, Є, І, Ї, Й, О, Ч, Ь, наприклад, додаток А, додаток Б тощо. Один додаток позначається як додаток А. Текст кожного додатка за необхідності може бути поділений на розділи й підрозділи, які нумерують у межах кожного додатка. У цьому випадку перед кожним номером розділу чи підрозділу вказують позначення додатка (літеру) і ставлять крапку, наприклад: А.2 – другий розділ додатка А, В.3.1 – підрозділ 3.1 додатка В. Ілюстрації, таблиці і формули, розміщені в додатках, нумерують у межах кожного додатка, наприклад: рис. Д.1.2 – другий рисунок першого розділу додатка Д. Нумерація сторінок тексту роботи й додатків має бути наскрізною. Посилання на додатки в тексті роботи мають бути обов’язково. При посиланні на додаток вказують його літеру без скорочення слова "додаток", наприклад: "...у додатку Б...". Усі додатки перелічують у розділі «Зміст».
4.2.4. Представлення блок-схем алгоритмів та лістингів програм4.2.4.1. Розробка алгоритму. Правила виконання схем алгоритмів та програмАлгоритм - це система формальних правил, розташованих в визначеному логічному порядку, які чітко й однозначно визначають процес виконання заданої роботи незалежно від її характеру та походження. Перед початком розробки алгоритму необхідно чітко уяснити, що програма повинна робити, яка інформація потрібна програмі (які дані є в наявності та які існують обмеження на ці дані), які обчислення та інші дії програма повинна виконати та яку інформацію видати користувачу в якості результату роботи. Після цього треба вирішити, як програма буде це робити. Яким буде інтерфейс користувача? Як повинна бути побудована програма? Необхідно також вирішити, як будуть представлені дані в програмі та які методи будуть використовуватись для обробки даних, щоб отримати остаточний результат. Алгоритм, як правило, будується у декілька етапів – спочатку він формулюється у загальних рисах, а потім уточнюється шляхом заміни складних дій більш простими. Цей метод називається методом покрокової деталізації або методом проектування «зверху вниз» [6]. При розробці алгоритму треба враховувати ресурсні обмеження щодо розв’язування задачі, наявність готових програм для реалізації відомих методів та алгоритмів, а також необхідно прагнути того, щоб алгоритм був більш універсальним, тобто придатним для широкого класу вхідних даних [2]. Найбільш поширені форми представлення алгоритмів: на звичайній мові, за допомогою псевдокоду (напівформалізований опис алгоритму), графічна форма та програмна (текст на алгоритмічній мові програмування). При графічному представленні алгоритм зображується у вигляді послідовності зв’язаних між собою функціональних блоків, кожний з яких відповідає виконанню однієї або декількох дій. Таке графічне представлення називається схемою алгоритму або блок-схемою. У блок-схемі кожному типу дій (введенню-виведенню даних, обчисленню значень виразів, перевірці умов, управлінню повторенням дій, закінченню обробки и т.ін.) відповідає один або декілька блочних символів у вигляді плоских геометричних фігур, в середині яких розміщується текст або формула, що пояснює дії, які виконуються. Блочні символи з’єднуються лініями переходів, що визначають порядок виконання дій. У додатку Д наведено перелік та умовні позначення символів, призначених для графічної ідентифікації функцій, які вони відображують, незалежно від тексту всередині цих символів [7]. Символи в тексті треба розташовувати рівномірно. Необхідно дотримуватись оптимальної довжини з’єднань та мінімальної кількості довгих ліній. Форми символів мають бути керівництвом до фактичного їх використання. Недопустимо змінювати кути та інші параметри, що впливають на відповідну форму символів. Символи можна креслити з будь-якою орієнтацією, але, якщо є змога, дотримуватись горизонтальної. Мінімальну кількість тексту, необхідного для розуміння функції даного символу, розміщують всередині символу, але якщо обсяг тексту перебільшує його розміри, то необхідно або використати символ–коментар, або текст розмістити на окремому аркуші (у цьому випадку необхідно навести перехресне посилання на символ). Якщо в схемах використовують ідентифікатор символів, то його необхідно розміщувати ліворуч від символу. Опис символу розміщують над ним праворуч. Потоки даних або потоки керування у схемах показують лініями. Напрямки потоку зліва направо та зверху вниз вважають стандартними. В окремих випадках, коли необхідно внести більшу ясність у схему (наприклад, у разі з’єднань), на лініях малюють стрілки. Якщо напрямок потоку відрізняє його від стандартного, то стрілки мають показувати цей напрямок. На схемах слід уникати перехрещення ліній — їм необхідно підходити до символу або з лівого боку, або зверху, а виходити або з правого боку, або знизу. Лінії завжди мають бути направлені до центра символу. У разі необхідності лінії на схемах слід розривати, щоб уникнути зайвих перехрещень або дуже довгих ліній, а також якщо схема розміщена на декількох сторінках. З’єднувач на початку розриву ліній називають зовнішнім, а на кінці розриву — внутрішнім. Посилання на сторінки можна наводити разом із символом для з’єднувачів. Декілька виходів із символу можна показувати кількома лініями від даного символу до інших символів або однією лінією, яку потім розгалужують на відповідну кількість ліній. Схеми можуть використовуватись на різних рівнях деталізації, кількість рівнів залежить від розмірів та складності задачі. Рівень деталізації повинен бути таким, щоб різні частини та взаємозв’язок між ними були зрозумілі в цілому. Зазначені правила діють відповідно до ГОСТ 19.701–90 «Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения» та розповсюджуються на схеми, які використовують для відображення різних видів задач обробки даних та засобів їх рішень. 4.2.4.1. Правила та стандарти оформлення лістингів програмПри оформленні кодів програм щоб зробити їх зрозумілими та такими, що легко читаються, рекомендується додержуватись наступних правил: 1. Наявність горизонтальних відступів в тексті програми для відокремлення кожного блоку та вкладених в нього блоків. Відступи робляться за допомогою табуляції (клавіша TAB). За стандартом відступ дорівнює 4 пробілам. 2. Наявність вертикальних відступів, якими для зрозумілості розділяються логічні блоки. До таких логічних блоків можна, наприклад, віднести блок підключення заголовочних файлів, блок об’явлення змінних, блоки операторів вибору та циклів, функції и т. ін. Зазвичай один вертикальний відступ – це один пустий рядок. 3. Супроводження програми коментарями. Їх треба розміщувати в тих місцях програми, де виконуються якісь складні дії. Також коментарями слід починати кожну програму або функцію, для того щоб пояснити, які дії вони виконують. Але коментарі не повинні перефразовувати текст програми, їх призначення - пояснювати мету використання групи операторів, а не описувати дії, що виконують ці оператори. 4. При роботі з консоллю необхідно обов’язково виводити повідомлення (підказку) для користувача про те, які дії він повинен виконати, і про те, що виводить програма. 5. Наявність пробілів у коді. Зазвичай їх роблять довільно для покращання «читабельності» програм. За стандартом пробіл повинен бути після коми, крапки з комою, між логічними та арифметичними блоками, наприклад, до та після операцій +, -, =, >, <= і т. ін. Використовують їх і для позначення пріоритету виконання операцій, наприклад, краще написати a + b*c, ніж a + b * c. 6. Розміщення в одному рядку одного оператора. Хоча мова С дозволяє використання в одному рядку декількох операторів, це недоцільно робити з таких причин: погіршується «читабельність» програми та виникають труднощі в визначенні синтаксичних помилок, оскільки повідомлення про синтаксичну помилку вказує на номер рядка. Також в цьому випадку незручно проводити відладку програми, зокрема покрокове виконання програми, здійснювати контроль за зміною значень змінних та ін. 7. Правильний вибір імен у програмі. Всі об’єкти програми (змінні, функції, типи, іменовані константи і т. ін. ) повинні мати обґрунтовані імена, що говорять про призначення того чи іншого об’єкту наприклад для позначення лічильника в програмі можна використати ім’я counter або increment. Не рекомендується іменувати об’єкти російським або українським транслітом. Хорошим тоном вважається використання англійських слів, наприклад краще використовувати імена maximum або max, а не maksimum. Якщо є обмеження на довжину імені, слід використовувати імена належної довжини. Не слід вживати однакові на вигляд імена, наприклад A10 та AIO. Лістинги повинні мати порядкову нумерацію в межах кожного розділу. Номер лістингу повинен складатись з номеру розділу та порядкового номеру лістингу, розділених точкою, наприклад «Лістинг 3.2» - другий лістинг третього розділу. Лістинги, розміщені в додатках, нумерують у межах кожного додатка, наприклад: «лістинг А.1.2 – другий лістинг першого розділу додатку А. При посиланні на лістинг необхідно писати слово «лістинг» з зазначенням його номеру. При оформленні лістингів слід використовувати шрифт Courier New, розмір – 12 пт, міжрядковий інтервал – одинарний. Назва лістингу друкується тим же шрифтом, що і основний текст, та розміщується над лістингом зліва, без абзацного відступу через тире після номеру лістингу. Крапка після назви не ставиться. Приклад оформлення наведений у додатку Ж. Лістинги розроблених студентом програм повинні розташовуватись в окремих додатках з обов’язковими посиланнями на них. Якщо розмір лістингу невеликий (не більше однієї сторінки) його можна розміщувати в основному тексті. В основній частині роботи для ілюстрації матеріалу, що викладається, повинні наводитись лістинги фрагментів програм, які треба розміщувати безпосередньо після тексту, в якому вони вперше згадуються або на наступній сторінці. На всі лістинги мають бути посилання в тексті роботи.
ДОДАТКИДодаток А. Форма реферату курсової роботиРЕФЕРАТ Курсова робота: ___ с., ___ рис., ___ табл., ___ джерел, ___додатки. Об’єктом дослідження є ………………………………………………….. Мета роботи ………………………………………………………………… Методика (метод дослідження) ………………………………………….. Одержані висновки та їх новизна………………………………………… Результати досліджень можуть бути застосовані при ………… Перелік ключових слів із тексту роботи, які характеризують зміст роботи ( друкуються у називному відмінку великими літерами в рядок через кому). Зразок реферату курсової роботиРЕФЕРАТ Курсова робота: 40 с., 6 рис., 4 табл., 8 джерел, 8 додатків. Об’єктом дослідження є типові оператори та базові конструкції мови програмування Сі. Мета роботи- отримати навички коректного використання операторів та конструкцій та побудова ефективних алгоритмів для розв’язку типових задач. Методика (метод дослідження): комп’ютерна реалізація та комп’ютерне тестування. Одержані висновки та їх новизна: розроблені алгоритми та складені програми для обробки символьних рядків, обробки масивів, здійснення побітових операцій, роботи зі структурами та файлами, ви Результати досліджень можуть бути рискання методів сортування та пошуку даних. Результати досліджень можуть бути застосовані при розробці алгоритмів та програм складних задач. Перелік ключових слів: АЛГОРИТМ, ПРОГРАМА, БЛОК-СХЕМА, ДАНІ, ЗМІННА, МАСИВ, СТРУКТУРА, ІНСТРУКЦІЯ, ФУНКЦІЯ.
Додаток В Умовні графічні позначення символів в схемах алгоритмів та програм(згідно з ГОСТ 19.701–90) Таблиця Д.1. Символи даних
Таблиця Д.2. Символи процесу
Закінчення табл. В.2
Таблиця Д.3. Символи ліній
Таблиця Д.4. Спеціальні символи
Додаток Д. Зразки оформлення бібліографічного опису різних видів джерел
Книги Один автор
1. Шпак З. Я. Програмування мовою С [Текст] / З. Я. Шпак - Львів: Оріяна-Нова, 2006. - 412 с. 2. Шилдт Г. Полный справочник по С [Текст] / Г. Шилдт – М.: Издательский дом “Вильямс”, 2002. - 704 с.
Два або три автори
1. Керниган Б. Язык программирования Си. [Текст] / Б. Керниган, Д. Ритчи – М. - СПб. – Киев: Издательскмй дом «Вильямс», 2009. – 289 с. 2. Дейтел Х. М. Как программировать на С. [Текст] / Х. М. Дейтел, П. Дж. Дейтел.. – М.: БИНОМ-ПРЕСС, 2009. – 912 с. 3. Бабак В. П. Обробка сигналів [Текст] / В. П. Бабак, В. С. Хандецький, Е. Шрюфер. – К.: Либідь, 1996. – 392 с. – ISBN 5-325-00631-2.
Чотири автори
Основы создания гибких автоматизированных производств [Текст] / Л. А. Пономаренко, Л. В. Адамович, В. Т. Музычук, А. Е. Гридасов / Под ред. Б. Б. Тимофеева. – К.: Техніка, 1986. – 144 с.
П’ять і більше авторів
Психология менеджмента [Текст] / П. К. Власов, А. В. Лепницкий, И. М. Лущихина и др. – Х.: Гуманит. центр, 2007. – 510 с.
Без автора
Українці у світовій цивілізації [Текст]: довідник / Упоряд. Т. В. Копань. – К.: Пульсари, 2006. – 350 с. Стандарти 1. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення[Текст]: ДСТУ 3008: 1995. – [Чинний від 1996 — 01— 01]. – К.: Держспоживстандарт України, 1995. – 36 с. – (Національний стандарт України). 2. Бібліографічний запис. Бібліографічний опис. Загальні вимоги та правила складання [Текст]: ДСТУ ГОСТ 7.1:2006. - Вид. офіц. - Вперше (зі скасуванням ГОСТ 7.1-84, ГОСТ 7.16-79, ГОСТ 7.18-79, ГОСТ 7.34-81, ГОСТ 7.40-82); введ. 2007-07-01. - К.: Держспоживстандарт України, 2007. - III, 47 с. - (Система стандартів з інформації, бібліотечної та видавничої справи). Статті в журналах на наукових збірках 1. Алпатов А. П. Интеллектуальные управляющие информационные системы [Текст] / А. П. Алпатов, Ю. А. Прокопчук., В. В. Костра., И. А. Пилипченко // Автоматика – 2000: межд. конф. по автоматическому управлению: сб. трудов. – Львов: ГосНИИ информационной инфраструктуры, 2000. – Т.6. – С. 20 ‑ 24. 2. Алпатов А. П. Информационные системы в образовании [Текст]: проект Е–школа / А. П. Алпатов, Ю. А. Прокопчук, В. В. Костра, С. В. Хорошилов // Информационные технологии в XXI веке: III–ий молодежный форум, апрель, 2005 г., Днепропетровск: сб. докладов и тезисов. – Днепропетровск: УГХТУ, 2005. – С. 14 – 17. Електронні ресурси 1. Золотарьова Т. В. Алгоритмізація процесу телемедичної консультації [Електронний ресурс] / Т. В. Золотарьова, Н. А. Вертило // Український журнал телемедицини та медичної телематики. – 2004. – Т. 2, № 2. – С. 166. – Режим доступу до журн. http://www.telemed.org.ua.
Додаток Е. Прикладвиконання завдання з обробки символьних рядків3.1. Розробка функцій з обробки символьних рядків 3.1.1. Умова завдання Скласти функцію substr(s1, s2, n, l) для обробки символьних строк та програму для перевірки роботоспроможності функції. Призначення функції: виділення з рядку s1 підрядку s2, починаючи з позиції n, довжиною l. 3.1.2. Опис методу рішення Символьний рядок у мові Cі представляється в пам'яті як масив символів, останнім елементом якого є символ ‘\0’ (байт із кодом 0) - ознака кінця рядку[8]. Рядок, як і будь-який інший масив можна обробляти або традиційним методом - з використанням операції індексації, або через вказівники, з використанням операцій адресної арифметики. Довжина рядку заздалегідь невідома, тому цикли повинні бути організовані не з лічильником, а до появи ознаки кінця рядку. Функція повинна реалізовувати поставлене завдання та мати універсальний характер. Це означає, що функцію можна буде, наприклад, перенести без змін у будь-яку іншу програму, якщо специфікації функції задовольняють умовам завдання. Це також означає, що при помилковому завданні параметрів або при якихось особливих випадках у їхніх значеннях функція не повинна аварійно завершувати програму або виводити якісь повідомлення на екран, але повинна повертати якесь прогнозоване значення, за яким та функція, що викликала нашу, може зробити висновок про помилку або про особливий випадок. Визначимо склад параметрів функції: int substr (src, dest, num, len); де - src — рядок, з якого вибираються символи; - dest — рядок, у який записуються символи; - num — номер першого символу в рядку src, з якого починається підрядок (нумерація символів ведеться з 0); - len — довжина вихідного рядку. Встановимо такі можливі значення, що буде повертати функція: 1 (завдання параметрів правильне) і 0 (завдання неправильне). Ці значення при звертаннях до функції можна буде інтерпретувати як «істина» або «неправда» ("вірно" або "невірно"). Позначимо через Lsrc довжину рядку src. Тоді можливі такі варіанти при завданні параметрів: - num+len <= Lsrc — повністю правильне завдання ( випадок 1 ); - num+len > Lsrc; num < Lsrc — правильне завдання, але довжина вихідного рядку буде менша, ніж len ( випадок 2 ); - num >= Lsrc — неправильне завдання, вихідний рядок буде порожнім ( випадок 3 ); - num < 0 або len <= 0 — неправильне завдання, вихідний рядок буде порожнім ( випадок 4 ). Функція повинна точно інтерпретувати задані параметри як правильні/неправильні та здійснювати вибір реакції на неправильне завдання параметрів. Можливий також випадок, коли вихідний рядок вийде більшої довжини, чим для нього відведено місця в пам'яті. Однак, оскільки функції невідомий розмір пам'яті, відведений для рядку dest, функція не може розпізнати і обробити цей випадок - так само поводяться і бібліотечні функції мови C [9]. 3.1.3. Опис логічної структури Програма складається з одного програмного модуля — файл LAB1.C. До складу модуля входять три функції — main, substr_mas і substr_ptr. Загальних змінних у програмі немає. Макроконстантою N визначена максимальна довжина рядку — 80. Опис алгоритму функції main() Функція main є головною функцією програми, вона призначена для введення початкових даних, виклику інших функцій і виводу результатів. У функції визначені такі змінні: - ss і dd — вхідний і вихідний рядки відповідно; - n — номер символу, з якого повинен починатися вихідний рядок; - l - довжина вихідного рядка. Функція запитує і вводить значення вхідного рядку ss, номери символу n та довжини l. Далі функція викликає функцію substr_mas, передаючи їй як параметри уведені значення. Якщо функція substr_mas повертає 1, виводяться на екран вхідний і вихідний рядки, якщо 0 — виводяться повідомлення про помилку і вхідний рядок. Потім вихідний рядок робиться порожнім і те ж саме виконується для функції substr_ptr. Блок-схема алгоритму функції main наведена у додатку К. Опис алгоритму функції substr_mas() Функція substr_mas виконує поставлене завдання методом масивів. Її параметри: — src і dest — вхідний і вихідний рядки відповідно, представлені у вигляді масивів ss[N] та dd[N], які функція отримує з головної програми. Внутрішні змінні i та j використовуються як індекси в масивах. Функція перевіряє значення параметрів у відповідності з випадком 4, якщо умови цього випадку виявлені, у перший елемент масиву dest записується ознака кінця рядку і функція повертає 0. Якщо випадок 4 не виявлений, функція переглядає num перших символів вхідного рядку. Якщо при цьому буде знайдена ознака кінця рядку, це - випадок 3, при цьому в перший елемент масиву dest записується ознака кінця рядку й функція повертає 0. Якщо ознака кінця в перших num символах не знайдена, виконується цикл, у якому індекс вхідного масиву починає мінятися від 1, а індекс вихідного - від 0. У кожній ітерації цього циклу один елемент вхідного масиву пересилається у вихідний. Якщо пересланий елемент є ознакою кінця рядку (випадок 2), то функція негайно закінчується, повертаючи 1. Якщо в циклі не зустрінеться кінець рядку, цикл завершиться після len ітерацій. У цьому випадку в кінець вихідного рядкаузаписується ознака кінця і функція повертає 1. Схема алгоритму функції substr_mas наведена у додатку К. Опис алгоритму функції substr_ ptr () Функція substr_ptr виконує поставлене завдання методом вказівників. Її параметри: — src і dest — вхідний і вихідний рядки відповідно, представлені у вигляді вказівників на початки цих рядків. Функція перевіряє значення параметрів у відповідності з випадком 4, якщо умови цього випадку виявлені, за адресою, що задає dest, записується ознака кінця рядку і функція повертає 0, ці дії виконуються одним оператором. Якщо випадок 4 не виявлений, функція пропускає num перших символів вхідного рядка. Це зроблено циклом while, умовою виходу з якого є зменшення лічильника num до 0 або поява ознаки кінця вхідного рядка. Важливо чітко представляти порядок операцій, які виконуються в цьому циклі: - вибирається лічильник num; - лічильник num зменшується на 1; - якщо обране значення лічильника було 0 - цикл завершується; - якщо обране значення було не 0 — вибирається символ, на який указує вказівник src; - вказівник src збільшується на 1; - якщо обране значення символу було 0, тобто ознака кінця рядка, цикл завершується, інакше - повторюється. Після виходу із циклу перевіряється значення *src:: якщо воно не 0, це означає, що вихід із циклу відбувся за ознакою нульового значення лічильника num (випадок 3), і за адресою, що задає dest, записується ознака кінця рядку, функція повертає 0. Якщо ознака кінця не знайдена, виконується цикл, подібний до першого циклу while, але за значенням лічильника len. У кожній ітерації цього циклу символ, на який вказує src переписується за адресою, що задається dest, після чого обидва вказівники збільшуються на 1. Цикл закінчиться, коли буде переписано len символів або зустрінеться ознака кінця рядку. У будь-якому варіанті завершення циклу по поточній адресі, що міститься у вказівнику dest, записується ознака кінця рядку і функція завершується, повертаючи 1. Лістингифункцій substr_mas та substr_ptr наведені у додатку Л. 3.1.4 Дані для тестування Тестування повинне забезпечити перевірку працездатності функцій для всіх варіантів вхідних даних. Вхідні дані, на яких проводилось тестування, зведені в таблицю З.1 Таблиця З.1 - Початкові дані для тестування функцій substr_mas та substr_ptr
Результати тестування програми у тому вигляді, в якому вони представлені на екрані після виконання програми наведені на рис. З.1 та З.2 a) Num=2 len=2 (випадок 1) б) Num=2 len=6 (випадок 2) Рис. 3.1. Результати тестування програми з коректними значеннями початкових даних: а – випадок 1 (num=2, len=2); б – випадок 2 (num=2, len=6) в) Num=8 len=2 (випадок 3) г) Num=5 len=-1 (випадок 4) Рис. З.2 Результати тестування програми з некоректними значеннями початкових даних: а – випадок 3 (num=8, len=2); б – випадок 4 (num=5, len=-1) Аналіз результатів проведеного тестування дозволяє зробити висновок, що програма коректно працює при всіх варіантах завдання початкових даних. Обмеження на роботу програми: вхідний та вихідний рядки не повинні перевищувати 80 символів.
Додаток К. Блок-схеми алгоритмів Рис. К.1 - Блок-схема алгоритму функції main() Рис. К.2 - Блок-схема алгоритму виділення підрядка з використанням методу індексованих масивів
Додаток Л. Лістинг Л.1- Лістинг алгоритму розв’язання задачі з обробки символьних рядків/********************************************************/ /* Файл LAB1.C */
/********************************************************/ #include <stdio.h> #include <clocale> #include <conio.h> #define N 80 int substr_mas(char src[N],char dest[N],int num,int len); int substr_ptr(char *src, char *dest, int num, int len);
/* Головна функція програми */
void main() { char ss[N], dd[N]; int n, l; setlocale(LC_ALL,"Russian"); printf("Введiть рядок:\n"); gets(ss); printf("початок="); scanf("%d",&n); printf("довжина="); scanf("%d",&l); printf("Масиви:\n"); if (substr_mas(ss,dd,n,l)) printf("%s\n%s\n",ss,dd); else printf("Помилка! %s\n",dd); dd[0]='\0'; printf("Адресна арифметика:\n"); if (substr_ptr(ss,dd,n,l)) printf("%s\n%s\n",ss,dd); else printf("Помилка! %s\n",dd); getch(); } /********************************************************/ /* Функція виділення підрядка (масиви) */
/********************************************************/ int substr_mas(char src[N],char dest[N],int num,int len) { int i,j; if ((num<0)||(len<=0)) //перевірка випадку 4 { dest[0]=0; return 0; } for (i=0; i<=num; i++) //вихід на num-ий символ if (src[i]=='\0') //перевірка випадку 3 { dest[0]=0; return 0; } for (i--, j=0; j<len; j++, i++) //перезапис символів { dest[j]=src[i]; if (dest[j]=='\0') //перевірка випадку 2 return 1; } dest[j]='\0'; //запис ознаки кінця у вихідний рядок return 1; }
/********************************************************/ /* Функція виділення підрядка (адресна арифметика) */
/********************************************************/ int substr_ptr(char *src, char *dest, int num, int len) { if ((num<0)||(len<=0)) //перевірка випадку 4 return dest[0]=0; //вихід на num-ий символ або на кінець рядка while (num-- && *src++) if (!*src) //перевірка випадку 3 return dest[0]=0; while (len-- && *src) //перезапис символів *dest++=*src++; *dest=0; //запис ознаки кінця у вихідний рядок return 1; }
Список рекомендованої літератури1. Шилдт Г. Полный справочник по С [Текст] / Г. Шилдт – М.: Издательский дом “Вильямс”, 2002. - 704 с. 2. ДСТУ 3008–95. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення [Текст]. — Чинний від 01.01.96. — К.: Держстандарт України, 1995. – 36 с. 3. ДСТУ ГОСТ 7.1: 2006. Бібліографічний запис. Бібліографічний опис. Загальні вимоги та правила складання [Текст]. Чинний від 01.07.2007. — К.: Держспоживстандарт України, 2007. - III, 47 с. 4. Дейтел Х. М Как программировать на С. [Текст] / Х. М. Дейтел, П. Дж. Дейтел.. – М.: БИНОМ-ПРЕСС, 2009. – 912 с. 5. ГОСТ 19.701–90. Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения [Текст]. — Переизд. Янв., 1990. — М.: Изд-во стандартов, 1989. – 34 с. 6. Керниган Б. Язык программирования Си. [Текст] / Б. Керниган, Д. Ритчи – СПб. – Киев: 2006. – 272 с. 7. Шпак З. Я. Програмування мовою С. [Текст] / З. Я. Шпак - Львів: Оріяна-Нова, 2006. - 412 с. |