Електронний довідник у С++
Функції можуть приймати аргументи за посиланням. Наприклад, функція void f (int& x) {x=3;} присвоює своєму аргументу значення 3. Функції також можуть повертати результат за посиланням, і посилання можуть бути поза всяким зв’язком з функціями. Наприклад, {double&b=a; b=sin (b);} еквівалентно а=sin (а);. Посилання певною мірою схожі з вказівниками, з такими особливостями: при описі посилання… Читати ще >
Електронний довідник у С++ (реферат, курсова, диплом, контрольна)
Зміст Вступ
1. Основні теоретичні відомості
1.1 Призначення та область використання програми електонний довідник
2. Структура програмного забезпечення
2.1 Розробка алгоритму програми
2.2 Обгрунтування вибору мови і системи програмування
3. Опис програмного продукту
3.1 Опис програми
3.2 Тестування програмного продукту Висновки Список використаної літератури Додаток
Вступ програма електронний довідник алгоритм Постійне збільшення обсягу інформації та обмеженість навчального часу обумовлюють необхідність інтенсифікації навчання, розробки та впровадження нетрадиційних технологій, що базуються на використанні обчислювальної техніки із застосуванням активних методів навчання у всьому їх різноманітті та комплексності. Реалізація активних методів навчання — одна з основних завдань дидактики, яка передбачає активізацію всього процесу, виявлення системи, способів, прийомів, що сприяють підвищенню активності учнів через формування позитивної мотиваційної структури навчально-пізнавальної діяльності.
Розвиток активного, діяльнісного начала в навчанні, розкриття та використання творчих здібностей кожного, хто навчається здійснюються через формування пізнавальних потреб шляхом організації пошуку знань у процесі вивчення навчального матеріалу і задоволення цих потреб, що може бути забезпечено створенням спеціальних електронних навчальних посібників. Що забезпечить структурування навчальної інформації на різних рівнях, систематизації процесу пред’явлення інформації, спеціальної організації інтерактивного спілкування.
Це актуалізує проблему організації професійної підготовки фахівця в процесі вивчення різних освітніх областей допомогою електронних довідкових посібників з різних дисциплін, що й обумовлює вибір теми проекту.
Електронний довідковий посібник — це віртуальна система, призначена для автоматизованого навчання, що охоплює повний або частковий обсяг навчальної дисципліни. Основні переваги електронних довідників над паперовими аналогами, полягають в економії біоресурсів, можливості користувачів самостійно створювати довідники із застосуванням спеціальних програм і використовувати їх. Тому розробка електронного довідника для ефективного вивчення дисципліни «Програмування» є актуальною.
Предмет досліження — розробка програмного продукту для швидкого пошуку потрібної користувачу інформації.
Мета роботи полягає в тому, щоб підвищити ефективність, якість і доступність освітніх ресурсів, електронних посібників, що забезпечують розвиток особистості учнів. Для досягнення зазначеної мети в курсовій роботі поставлені і вирішені такі завдання:
а) вивчення літературних джерел і проведення теоретичного аналізу особливостей дисципліни «Програмування»;
б) розгляд класифікації довідників;
в) розробка алгоритму програми;
г) обгрунтування вибору мови і системи програмування;
д) розробка програмного забезпечення, яке реалізує алгоритм електронного довідника;
е) проведення порівняльного аналізу результатів, формулювання висновків.
Отже, актуальність цієї теми полягає у тому що, електронний довідник — це спосіб як можна швидше знайти дані визначення які розглядаються в курсові роботі. Тому розробка програмного продукту для ефективного і швидкого пощуку певної інформації в даному випадку це визначення із дисципліни «Програмування»
1. Основні теоретичні відомості
1.1 Призначення та область використання програми електонний довідник Переваги використання електронного довідника:
а) у електронному довіднику представлені не тестові варіанти, а саме поняття з докладними поясненнями; б) працюючи з електронним довідковим посібником, учень може звернутися до різних поняттям; в) використання електронного довідника підвищує мотивацію навчання, розвиває інтерес до предмету.
Сьогодні поряд з традиційними друкованими виданнями широко застосовуються електронні довідкові посібники (ЕСП). Це обумовлено в першу чергу тим, що в державних стандартах вищої освіти в кожному циклі передбачаються дисципліни національно-регіонального компонента і предмети за вибором студентів, що встановлюються радою вузу, а централізоване забезпечення навчальною літературою з цих курсів, як правило, утруднено. В результаті зростає роль ЕСП, видаваних провідними викладачами вузу. Мультимедіа — технології дозволяють у повному обсязі реалізувати дидактичні можливості ЕСП, надаючи опосередковане інформаційне, управлінське, емоційний вплив на учня.
При розробці сценарію мультимедійного ЕСП, конструюванні та поданні навчального матеріалу в електронному вигляді, включаючи проектування інтерфейсу, доводиться вирішувати цілий ряд методичних і технологічних завдань з урахуванням особливостей, властивим електронним виданням. Для оптимізації процесу виконання цих завдань розглянемо систему конструктивних критеріїв створення ЕСП, виділяючи групи ціннісних, дидактичних, методичних і технологічних критеріїв і їх взаємозв'язку.
Вихідним у процедурі відбору навчального матеріалу є ціннісний критерій. Бурхливий розвиток науки і інформатизація всіх областей діяльності супроводжуються лавиноподібним збільшенням інформації, в результаті чого виникає непросте завдання по викладу системи знань досліджуваної предметної області, при цьому необхідно відсікати другорядну інформацію і не перевантажувати навчальний матеріал приватними подробицями.
У процесі відбору навчального матеріалу слід враховувати дидактичні критерії його складності і труднощі. Складність може розглядатися як співвідношення досвіду учня і матеріалу підручника в термінах ступенів абстракції підручника і коефіцієнта науковості. Тому перехід до більш високих рівнів абстракції слід порівнювати з підготовленістю учнів, щоб уникнути непереборних перешкод при самостійному вивченні дисципліни.
Важливо дотримуватися й інші дидактичні критерії: застосовності (частоти використання понять), новизни інформації, доступності та придатності обираних форм подання навчального матеріалу. Слід враховувати, що в технологічному аспекті введення великої кількості анімованих сцен і складних об'єктів призводить до перевантаження навчального матеріалу другорядною інформацією і відволікають учнів.
При проектуванні ЕСП також слід звернути увагу на дотримання такого методичного критерію, як об'ємний критерій, навчального матеріалу. У вузівської середовищі склалася багаторічна практика планування обсягів підручників, але використання технології гіпертексту в електронних підручниках і довідкових посібниках дозволяє істотно розширювати кількість матеріалу за рахунок введення додаткових і пояснювальних текстів. У авторів виникає бажання включити якомога більше інформації в навчальне видання і при цьому не враховується, що час, що відводиться на підготовку фахівців, обмежено навчальними планами спеціальності.
Досвід створення електронних довідкових посібників показує, що найбільш ефективним є модульний метод побудови курсу. Тому в групі методичних критеріїв, в якості основного слід виділити критерій модульності ЕСП, який визначає структуру всього навчального видання і враховує особливості навчання із застосуванням комп’ютерів.
Критерій модульності забезпечує методичну основу для оперативного оновлення навчальної інформації та поетапного впровадження ЕСП в навчальний процес, але його реалізація повною мірою можлива тільки при дотриманні критерію модифікованості навчального матеріалу, що відноситься до групи технологічних. Проходження цим критерієм забезпечує можливість внесення змін у навчальний матеріал, дозволяє удосконалювати ЕСП без значних витрат часу і ресурсів.
Хочеться зупинитися на більш конкретних аспектах створення електронного посібника, таких як цільова група учнів і вимоги до змістовної частини допомоги.
2. Структура програмного забезпечення
2.1 Розробка алгоритму програми Алгоритмом називається метод розв’язку задачі записаний по визначених правилах, які забезпечують однозначність трактування алгоритму. Існують такі способи опису алгоритму:
а) словесно-формульний (за допомогою слів і формул);
б) графічний (блок-схема);
в) псевдокоди — це інтерпритація кроків алгоритму на звичайній мові, яка описує дії команд.
В залежності від побудови алгоритми поділяються на лінійні, розгалужені і циклічні. Види алгоритмів розрізняють зазвичай не за складністю виконуваних дій, не за їхньою кількістю, а за складністю організації алгоритмічного процесу.
Алгоритми найпростішого виду — лінійні - це такі алгоритми, в яких дії виконуються послідовно, одна за одною. Кожна дія лінійного алгоритму обов’язково виконується, і виконується тільки один раз.
Складнішими за організацією є алгоритми, в яких треба не просто виконувати всі підряд задані дії, а приймати рішення, які саме дії виконувати. Алгоритм, в якому та чи інша серія команд реалізується в залежності від виконання заданої умови, називається алгоритмом з розгалудженням. Розрізняють повну і коротку форму розгалудження. В короткій формі при невиконанні умови ніякі дії не передбачаються. Повну форму розгалуження можна прочитати так: «Якщо умова виконується, то виконати дію 1, інакше виконати дію 2». А коротко так: «Якщо умова виконується, то виконати дію».
Третій вид алгоритмів — такі, котрі передбачають неодноразове виконання певної дії або кількох дій — це циклічні алгоритми. Дії, які мають повторюватись, називаються тілом циклу. Умова, яка визначає кількість повторень циклу, називається умовою циклу. Зазначена команда виконується до того моменту, поки наведений логічний вираз справджується.
Правила побудови алгоритму:
а) при побудові алгоритму, насамперед, враховуються потрібні об'єкти, з якими буде відбуватися робота;
б) для роботи алгоритму потрібна пам’ять, в якій розміщуються вхідні проміжні і вихідні дані;
в) кожний алгоритм створюється з окремих кроків — операцій, команд, дій;
г) після кожного кроку вказується наступний крок або ж здійснюється зупинка алгоритму;
д) алгоритм повинен завершувати роботу після останнього кроку. При цьому, потрібно вказати, що саме вважається результатом роботи алгоритму.
Для опису алгоритму у курсовій роботі використано графічний спосіб.
Блок-схема алгоритму — це графічне представлення логічної структури алгоритму, де кожний етап обробки інформації зображається у вигляді геометричних символів (блоків).
Існують правила зображення блок-схем алгоритмів. Кожен алгоритм має початок та кінець. Кожна команда алгоритму представляється у вигляді геометричних символів, які мають певну конфігурацію, в залежності від характеру дій, що будуть виконуватись. Геометричні символи з'єднуються між собою лініями або стрілками, які вказують порядок виконання дій. Основні графічні символи блок-схем описані у таблиці 2.1.
Таблиця 2.1 — Основні графічні символи блок-схем
Вигляд блоку | Призначення | |
Початок алгоритму. | ||
Вивід на екран або друк. | ||
Блок вводу вхідних даних. | ||
Блок обробки інформа-ції. В даному блоці записуться формули. | ||
Блок умови. В цьому блоці записується умова, в залежності від якої вибираються напрямки дії алгоритму. | ||
Заголовок циклу FOR. | ||
Блок виведення резуль-тату. | ||
Кінець алгоритму. | ||
Отже, Алгоритмом називається метод розв’язку задачі записаний по визначених правилах, які забезпечують однозначність трактування алгоритму. Існують такі способи опису алгоритму:
а) словесно-формульний (за допомогою слів і формул);
б) графічний (блок-схема);
в) псевдокоди — це інтерпритація кроків алгоритму на звичайній мові, яка описує дії команд.
В залежності від побудови алгоритми поділяються на лінійні, розгалужені і циклічні. Види алгоритмів розрізняють зазвичай не за складністю виконуваних дій, не за їхньою кількістю, а за складністю організації алгоритмічного процесу.
Алгоритми найпростішого виду — лінійні - це такі алгоритми, в яких дії виконуються послідовно, одна за одною. Кожна дія лінійного алгоритму обов’язково виконується, і виконується тільки один раз.
2.2 Обгрунтування вибору мови і системи програмування Мова програмування — це знакова система для опису алгоритмів програм, орієнтованих на конкретних виконавців.
Можна виділити п’ять основних поколінь мов програмування:
а) 1 покоління: початок 1950;х років — мови перших комп’ютерів. Перша мова асемблера, створена за принципом «одна інструкція — одна стрічка»;
б) 2 покоління: кінець 1950;х — початок 1960;х р. Розроблено символьний асемблер, в якому з’явилося поняття змінної. Це перша повноцінна мова програмування;
в) 3 покоління: 1960;ті р. — мови програмування високого рівня. Їх характеристики: відносна простота, незалежність від конкретного комп’ютера, можливість використання потужних синтаксичних конструкцій. Простота мов дає змогу писати невеликі програми і людям, які не є професійними програмістами;
г) 4 покоління: початок 1970;х р. Створюються мови, призначені для реалізації великих проектів. Проблемно-орієнтовані мови, що оперують конкретними поняттями вузької галузі. У такі мови вбудовують потужні оператори, що дозволяють одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні-тисячі рядків початкового коду;
д) 5 покоління: з середини 1990;х р. — до теперішнього часу. Це системи автоматизованого проектування програмного забезпечення (САПР ПЗ). Створення прикладних програм, редакторів, САПРів для людей, які не знайомі з програмуванням: Word, Excel, PcAD, OrCAD, PSPICE, MathCad, ACAD і т. д.
Існує три основні класифікації мов програмування:
а) за функціональною силою: універсальні мови (в них можна змоделювати будь-який алгоритм); спеціалізовані мови (орієнтовані на певні класи задач);
б) за предметною орієнтацією: кожна мова програмування виникла в процесі розв’язання певного класу задач, наприклад, мови програмування для розв’язання задач символьної обробки (Lisp, Cobol) і т. ін.;
в) за рівнем абстракції: мови низького рівня (машинно-залежні) — Assembler і т. ін.; мови високого рівня (орієнтовані на користувача (людину) до певної міри) — Pascal, C, Fortran і т. ін.
Як окремий напрямок виділяють мови програмування баз даних, призначені для маніпуляції великими централізованими масивами даних і отримання з них інформації. Багато з цих мов (Access, FoxPro, 4GL та ін.) мають розвинені процедурні елементи. Фактичним стандартом стала мова запитів до баз даних SQL.
Мова С++ багато в чому є надмножиною С. Нові можливості С++ включають оголошення у вигляді виразів, перетворення типів у вигляді функцій, оператори new і delete, тип bool, посилання, розширене поняття константності та змінності, функції, що підставляються, аргументи за замовчанням, перевизначення, простори імен, класи (включаючи і всі пов’язані з класами можливості, такі як успадкування, функції-члени (методи), віртуальні функції, абстрактні класи і конструктори), перевизначення операторів, шаблони, оператор «:», обробку винятків, динамічну ідентифікацію і т. ін. У С++ з’явилися коментарі у вигляді подвійної косої риски («//»), які були в попереднику С++ - мові BCPL. Деякі особливості С++ пізніше були перенесені в С, наприклад ключові слова const і inline, оголошення в циклах for і коментарі в стилі С++. У пізніших реалізаціях С також були представлені можливості, яких немає в С++, наприклад макроси vararg і покращена робота з масивами-параметрами.
Головні особливості мови програмування С++:
а) швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали нові можливості і нові засоби;
б) на мові C++ розробляють програми для найрізноманітніших платформ і систем;
в) можливість роботи на низькому рівні з пам’яттю, адресами, портами;
г) можливість створення узагальнених алгоритмів для різних типів даних, їхня спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів;
д) підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси).
Отже, Мова програмування — це знакова система для опису алгоритмів програм, орієнтованих на конкретних виконавців.
Мова програмування «С++» — це універсальна мова програмування, для якої характерні сучасний потік управління і структури даних, великий набір операторів.
Історія назви
Назва «Сі++» була вигадана Ріком Масситті (Rick Mascitti) і вперше було використана в грудні 1983 року. Раніше, на етапі розробки, нова мова називалася «Сі з класами». Ім'я, що вийшло у результаті, походить від оператора Сі «++» (збільшення значення змінної на одиницю) і поширеному способу присвоєння нових імен комп’ютерним програмам, що полягає в додаванні до імені символу «+» для позначення поліпшень. Згідно зі Страуструпом, «ця назва указує на еволюційну природу змін Ci». Виразом «С+» називали ранішню, не пов’язану з Сі++, мову програмування.
Деякі програмісти на Сі можуть відмітити, що якщо виконуються вирази x=3; y=x++; то в результаті вийде x=4 і y=3, тому що x збільшується тільки після присвоєння його у. Проте якщо другий вираз буде y=++x; то вийде x=4 і y=4. Виходячи з цього, можна зробити висновок, що логічніше було б назвати мову не Сі++, а ++Сі. Проте обидва вирази c++ і ++c збільшують с, а крім того вираз c++ поширеніший.
Педанти також можуть відмітити, що введення мови Сі++ не змінює самого Сі, тому найточнішим ім'ям було б «С+1».
Технічний огляд
В 1998 році мова Сі++ була стандартизована Міжнародною організацією стандартизації під номером 14 882:1998 — Мова Програмування Сі++. Поточний стандарт — C++11, він був прийнятий у 2011 році робочою групою МОС після десятирічної підготовки.
Стандарт Сі++ на 1998 рік складається з двох основних частин: ядра мови і стандартної бібліотеки. Стандартна бібліотека Сі++ увібрала в себе бібліотеку шаблонів STL, що розроблялася одночасно із стандартом. Зараз назва STL офіційно не вживається, проте в колах програмістів на Сі++ ця назва використовується для позначення частини стандартної бібліотеки, що містить визначення шаблонів контейнерів, ітераторів, алгоритмів і функторів.
Стандарт Сі++ містить нормативне посилання на стандарт Сі від 1990 року і не визначає самостійно ті функції стандартної бібліотеки, які запозичуються із стандартної бібліотеки Сі.
Поза тим, існує величезна кількість бібліотек Сі++, котрі не входять в стандарт. У програмах на Сі++ можна використовувати багато бібліотек Сі.
Стандартизація визначила мову програмування Сі++, проте за цією назвою можуть ховатися також неповні, обмежені достандартні варіанти мови. Спочатку мова розвивалася поза формальними рамками, спонтанно, у міру завдань, що ставилися перед ним. Розвиток мови супроводив розвиток кросс-компілятора Cfront. Нововведення в мові відбивалися в зміні номера версії кросс-компілятора. Ці номери версій кросс-компілятора розповсюджувалися і на саму мову, але стосовно теперішнього часу мову про версії мови Сі++ не ведуть.
Стандартна бібліотека
Стандартна бібліотека Сі++ включає стандартну бібліотеку Сі з невеликими змінами, які роблять її відповіднішою для мови Сі++. Інша велика частина бібліотеки Сі++ заснована на Стандартній Бібліотеці Шаблонів (STL). Вона надає такі важливі інструменти, як контейнери (наприклад, вектори і списки) і ітератори (узагальнені вказівники), що надають доступ до цих контейнерів як до масивів. Крім того, STL дозволяє схожим чином працювати і з іншими типами контейнерів, наприклад, асоціативними списками, стеками, чергами.
Використовуючи шаблони, можна писати узагальнені алгоритми, здатні працювати з будь-якими контейнерами або послідовностями, доступ до членів яких забезпечують ітератори.
Так само, як і в Сі, можливості бібліотек активізуються використанням директиви #include для включення стандартних файлів. Всього в стандарті Сі++ визначено 50 таких файлів.
STL до включення в стандарт Сі++ була сторонньою розробкою, на початку — фірми HP, а потім SGI. Стандарт мови не називає її «STL», оскільки ця бібліотека стала невід'ємною частиною мови, проте багато людей досі використовують цю назву, щоб відрізняти її від решти частини стандартної бібліотеки (потоки введення/виведення (Iostream), підрозділ Сі тощо). Проект під назвою STLport, заснований на SGI STL, здійснює постійне оновлення STL, IOstream і рядкових класів. Деякі інші проекти також займаються розробкою приватних застосувань стандартної бібліотеки для різних конструкторських завдань. Кожен виробник компіляторів Сі++ обов’язково поставляє якусь реалізацію цієї бібліотеки, оскільки вона є дуже важливою частиною стандарту і широко використовується.
Причиною успіху STL, зокрема її вхід до стандартної бібліотеки С++, була націленість на широке коло завдань і узагальнена структура. В цьому сенсі, близькою за духом STL на сьогодні є бібліотека Boost. Boost теж є бібліотекою загального застосування і теж впливає на формування стандартної бібліотеки С++.
Нові можливості в порівнянні з Сі
Мова Сі++ багато в чому є надмножиною Сі. Нові можливості Сі++ включають оголошення у вигляді виразів, перетворення типів у вигляді функцій, оператори new і delete, тип bool, посилання, розширене поняття константності та змінності, функції, що підставляються, аргументи за замовчанням, перевизначення, простори імен, класи (включаючи і всі пов’язані з класами можливості, такі як успадкування, функції-члени (методи), віртуальні функції, абстрактні класи і конструктори), перевизначення операторів, шаблони, оператор, обробку винятків, динамічну ідентифікацію і багато що інше. Сі++ є також мовою строгого типування і накладає більше вимагань щодо дотримання типів, порівняно з Сі.
У Сі++ з’явилися коментарі у вигляді подвійної косої риски («//»), які були в попереднику Сі — мові BCPL.
Деякі особливості Сі++ пізніше були перенесені в Сі, наприклад ключові слова const і inline, оголошення в циклах for і коментарі в стилі Сі++ («//»). У пізніших реалізаціях Сі також були представлені можливості, яких немає в Сі++, наприклад макроси vararg і покращена робота з масивами-параметрами.
Не об'єктно-орієнтовані можливості
В цьому розділі описуються можливості, безпосередньо не пов’язані з об'єктно-орієнтованим програмуванням (ООП). Багато які з них, проте, особливо важливі у поєднанні з ООП.
Ключове слово inline означає, що функція є хорошим кандидатом на оптимізацію, при якій в місцях звернення до функції компілятор вставить тіло цієї функції, а не код виклику. Приклад: inline double Sqr (double x) {return x*x;}
Замість функцій malloc і free, введені нові оператори new і delete. Якщо T — довільний тип, то:
а) new T виділяє пам’ять, достатню для розміщення одного об'єкта типу Т; після завершення виклику оператора, компілятор здійснює ініціалізацію об'єкта (викликаючи його конструктор, якщо такий був визначний) і повертає вказівник типу Т*.
б) new T[n] виділяє пам’ять, достатню для розміщення n об'єктів типу Т; після завершення виклику оператора, компілятор здійснює ініціалізацію кожного з n об'єктів і повертає вказівник типу Т*.
в) delete p — звільняє пам’ять, на яку посилається вказівник p, виділену для нього раніше операцією new T. Деініціалізація об'єкта (викликаючи деструктора) забезпечується компілятором ще до виклику оператора delete.
г) delete [] p — звільняє область пам’яті, виділену для цього масиву раніше операцією new T[n]. Деініціалізація кожного елементу масиву забезпечується компілятором ще до виклику оператора.
Як видно, однією з принципових відмінностей операторів new та delete від своїх попередників, malloc і free, є обов’язковість ініціалізації об'єктів, пам’ять під які було призначено. Іншою відмінністю є те, що загальна реалізація (тобто визначена за умовчанням) оператора new не повертає нулеву вартість вказівника в випадку помилки призначення пам’яті (наприклад з причини її браку). Натомість, new кидає виняток (наприклад, std: bad_alloc в ситуації браку пам’яті). Так само як і для free, якщо вартістю аргументу оператора delete є 0, ані звільнення пам’яті, ані деініціація не відбувається (при тому, подібна ситуація не вважається помилковою).
Функції можуть приймати аргументи за посиланням. Наприклад, функція void f (int& x) {x=3;} присвоює своєму аргументу значення 3. Функції також можуть повертати результат за посиланням, і посилання можуть бути поза всяким зв’язком з функціями. Наприклад, {double&b=a[3]; b=sin (b);} еквівалентно а[3]=sin (а[3]);. Посилання певною мірою схожі з вказівниками, з такими особливостями: при описі посилання ініціалізувалися вказівкою на існуюче значення даного типу; посилання довічно указує на одну і ту ж адресу; при зверненні до посилання операція читання пам’яті за адресою посилання проводиться автоматично. На відміну від вказівників, посилання не може бути константним саме по собі, однак може посилатися на константний об'єкт. Наприклад, int const & const ref = a[3]; на відміну від int const * const ref = &a[3]; — є некоректним, з точки зору С++, виразом; в свою чергу, і int const & ref = a[3];, і int const * ref = &a[3]; — є цілком прийнятними.
Можуть бути декілька функцій з одним і тим же ім'ям, але різними типами або кількістю аргументів (перевантаження функцій; при цьому тип значення, що повертається, на перевантаження не впливає). Наприклад, цілком можна писати:
void Print (int x);
void Print (double x);
void Print (int x, int y);
Один або декілька останніх аргументів функції можуть задаватися за умовчанням. Наприклад, якщо функція описана як void f (int x, int y=5, int z=10), виклики f (1), f (1,5) і f (1,5,10) еквівалентні.
При описі функцій відсутність аргументів в дужках означає, на відміну від Сі, що аргументів немає, а не те, що вони невідомі. Якщо аргументи невідомі, треба користуватися багатокрапкою, наприклад int printf (const char* fmt …). Тип першого аргументу повинен бути заданий.
Можна описувати оператори над новими типами. Наприклад, так:
struct Date {int day, month, year;};
void operator ++(struct Date& date);
Оператори нічим не відрізняються від (інших) функцій. Не можна описувати оператори над зумовленими типами (скажімо, перевизначати множення чисел); не можна вигадувати нові операції, яких немає в Сі++ (скажімо **); арність (кількість параметрів) і пріоритет операцій зберігається (скажімо, у виразі a+b*c спочатку виконуватиметься множення, а потім складання, до яких би типів не належали а, b і с.) Можна перевизначити оператор [] (з одним параметром) і () (з будь-яким числом параметрів).
Додані простори імен namespace. Наприклад, якщо написати
namespace Foo {
const int x=5;
typedef int** T;
void f (y) {return y*x};
double g (T);
}
то поза фігурними дужками ми повинні звертатися до T, x, f, g як Foo: T, Foo: x, Foo: f, Foo: g. Якщо ми в якійсь одиниці трансляції (файл основного коду, наприклад myFile. cpp, та всі заголовкові файли що він включає) хочемо звертатися до них безпосередньо, ми можемо написати
using namespace Foo;
Або ж
using Foo: T;
Також можна створити синонім на вже існуючий простір імен (наприклад, аби уникнути постійно повторювати довгу назву простору)
namespace MyVeryOwnNameSpace {
typedef std: vector< std: string > StringTable;
}
namespace My = MyVeryOwnNameSpace;
Простори імен потрібні, щоб не виникало колізій між пакетами, що мають однакові імена глобальних змінних, функцій і типів. Спеціальним випадком є безіменний простір імен
namespace {
…
}
Всі імена, описані в ньому, доступні в поточній одиниці трансляції і більше ніде, неначебто ми до кожного опису приписали static.
Доданий новий тип bool, що має значення true і false. Операції порівняння повертають тип bool. Вирази в дужках після if, while приводяться до типу bool.
// означає, що вся частина рядка, що залишилася, є коментарем.
Додані шаблони (template). Наприклад, template T Min (T x, T у) {return x struct Array{int len; T* val;}; визначає масив значень будь-якого типу, після чого ми можемо писати Array x;
Введена стандартна бібліотека шаблонів (STL, англ. Standard Template Library), що визначає шаблони і функції для векторів (одновимірних масивів довільної довжини), множин, асоціативних масивів (map), списків, символьних рядків, потоків введення-виводу і інші шаблони і функції.
Якщо описана структура, клас (про класи див. нижче), об'єднання (union) або перерахування (enum), її ім'я є ім'ям типу, наприклад:
struct Time{int hh, mm, ss;};
Time t1, t2;
Усередині структури або класу можна описувати нові типи, як через typedef, так і через опис інших структур або класів. Для доступу до таких типів поза структурою або класу, до імені типу додається ім'я структури і дві двокрапки: struct S {typedef int** T; T x;}; S: T у;
Переваги мови C++
а) Швидкодія. Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби.
б) Масштабованість. На мові C++ розробляють програми для найрізноманітніших платформ і систем.
в) Можливість роботи на низькому рівні з пам’яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік.)
г) Можливість створення узагальнених алгоритмів для різних типів даних, їхня спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів;
д) Підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси).
Недоліки мови C++
а) Наявність безлічі можливостей, що порушують принципи типобезпеки приводить до того, що в С++ програми може легко закрастися важковловима помилка. Замість контролю з боку компілятора розробники вимушені дотримуватися вельми нетривіальних правил кодування. По суті, ці правила обмежують С++ рамками якоїсь безпечнішої підмови. Більшість проблем типобезпеки С++ успадкована від С, але важливу роль в цьому питанні грає і відмова автора мови від ідеї використовувати автоматичне управління пам’яттю (наприклад, збірку сміття). Так візитною карткою С++ стали вразливості типу «переповнювання буфера».
б) Погана підтримка модульності. Підключення інтерфейсу зовнішнього модуля через препроцесорну вставку заголовного файлу (#include) серйозно уповільнює компіляцію, при підключенні великої кількості модулів. Для усунення цього недоліку, багато компіляторів реалізують механізм прекомпіляциі заголовних файлів (англ. Precompiled Headers).
в) Недостача інформації про типи даних під час компіляції (CTTI).
г) Мова C++ є складною для вивчення і для компіляції.
д) Деякі перетворення типів неінтуїтивні. Зокрема, операція над беззнаковим і знаковим числами видає беззнаковий результат.
е) Препроцесор С++ (успадкований від C) дуже примітивний. Це приводить з одного боку до того, що з його допомогою не можна (або важко) здійснювати деякі завдання метапрограмування, а з іншою, в наслідку своєї примітивності, він часто приводить до помилок і вимагає багато дій з обходу потенційних проблем. Деякі мови програмування (наприклад, Scheme і Nemerle) мають набагато могутніші і безпечніші системи метапрограмування (також звані макросами, але макроси С/С++ вони мало нагадують).
ж) З кінця 1990;х в співтоваристві С++ набуло поширення так зване метапрограмування на базі шаблонів. По суті, воно використовує особливості шаблонів C++ в цілях реалізації на їхній базі інтерпретатора примітивної функціональної мови програмування, що виконується під час компіляції. Сама по собі ця можливість вельми приваблива, але, внаслідкок вище згаданого, такий код вельми важко сприймати і зневаджувати. Мови Lisp/Scheme, Nemerle і деякі інші мають могутніші і водночас простіші для сприйняття підсистеми метапрограмування. Крім того, в мові D реалізована порівнянна за потужністю, але значно простіша в застосуванні підсистема шаблонного метапрограмування.
з) Хоча декларується, що С++ мультипарадигмена мова, реально в мові відсутня підтримка функціонального програмування. Частково, даний пропуск усувається різними бібліотеками (Loki, Boost) що використовують засоби метапрограмування для розширення мови функціональними конструкціями (наприклад, підтримкою лямбд/анонімних методів), але якість подібних рішень значно поступається якості вбудованих у функціональні мови рішень. Такі можливості функціональних мов, як зіставлення зі зразком взагалі украй складно емулювати засобами метапрограмування.
C++ успадкувала багато проблем мови C:
а) Операція присвоювання позначається як =, а операція порівняння як ==. Їх легко сплутати, і така конструкція буде синтаксично правильною, але приведе до важковломимого багу. Особливо часто це відбувається в операторах if і while, наприклад, програміст може написати if (i=0) замість if (i==0) (Разом з тим, основна маса компіляторів видає в таких випадках попередження.) Уникнути помилку такого типу можна, якщо писати всі операції порівняння у такому вигляді: if (0==i). До того ж багато мов (Бейсик, Паскаль) використовують символ «=» саме в операціях порівняння.
б) Операції присвоювання (=), інкрементації (++), декрементації (—) та інші повертають значення. У поєднанні з великою кількістю операцій це дозволяє, але не зобов’язує, програміста створювати код, що важко читається. З іншого боку, один з основних принципів мов C і C++ — дозволяти програмістові писати в будь-якому стилі, а не нав’язувати «хороший» стиль. До того ж це іноді дозволяє компілятору створювати оптимальніший код.
в) Макроси (#define) є могутнім, але небезпечним засобом. У мові C++, на відміну від C, необхідність в небезпечних макросах з’являється значно рідше завдяки шаблонам і вбудованим функціям. Але в успадкованих стандартних С-бібліотеках багато потенційно небезпечних макросів.
Дехто вважає недоліком мови C++ відсутність системи збірки сміття. З іншого боку, в C++ є достатньо засобів (класи з конструкторами і деструкторами, стандартні шаблони, передача параметрів за посиланням), що дозволяють майже виключити використання небезпечних вказівників. Проте, відсутність вбудованої збірки сміття дозволяє користувачеві самому вибрати стратегію управління ресурсами.
Крім того, збірка сміття серйозно уповільнює роботу програми, і це недолік там, де продуктивність є критично важливою.
3. Опис програмного продукту
3.1 Опис програми При написанні програмного продукту для тестування знань перш за все необхідно під'єднати бібліотеки:
#include «stdafx.h»
#include
#include
#include
Ці бібліотечні файли відносяться до директив препроцесора. Препроцесор — це програма, яка опрацьовує директиви. Директиви препроцесора — це команди компілятора відповідної мови програмування, які виконуються на початку компіляції програми. Директиви мови С та С++ починаються із символу #. Директива #include означає, що до програми необхідно приєднати програмний код із зазначеного після неї файлу.
Файли, які приєднують директивою #include, називаються файлами заголовків, header — файлами, бібліотеками, модулями. У таких файлах зазвичай оголошують сталі й змінні, заголовки функцій тощо. Усі стандартні команди та функції мови С++ визначені у файлах заголовків. Щоб приєднати модуль до програми користувача, директиву препроцесора необхідно зазначити на початку програми так:
#include <�назва файлу. розширення> або
#include «шлях до файлуназва файлу. розширення».
Зазвичай усі стандартні бібліотеки розміщені у папці INCLUDE середовища С++. Директива #include під'єднує бібліотечний файл iostream. Саме у цьому файлі описані функції, які дають змогу виконувати операції введення-виведення даних.
#include — за допомогою цього бібліотечного файлу очищують дисплей монітора від попередніх результатів, і отримують можливість побачити результати операції.
#include — інклуд-файл, який служить для генерації файлу заголовків. Використовують це для того, щоб пришвидшити компіляцію проекту.
#include — заголовний файл стандартної бібліотеки мови програмування С, який надає прототипи функцій, розроблених для виконання простих математичних операцій. Більшість функцій використовує числа з плаваючою комою. C++ також реалізовує дані функції для забезпечення сумісності, усі вони містяться у заголовному файлі cmath.
Після оголошення бібліотек оголошуються прототипи функцій. Прототипи оголошуються для того, щоб мати змогу у будь-якому місці коду програми вписати код функції. В протилежному випадку потрібно вписати цю функцію перед функцією main.
Функція — це сукупність оголошень і операторів призначена для розв’язку певної задачі. Функція має ім'я, яке використовується для її оголошення і виклику. З функцією зв’язано 3 поняття: визначення функції; оголошення функції; виклик функції. При виклику у функцію можуть передаватися деякі значення (параметри, які використовуються при роботі з функцією). Функція повертає тільки одне значення. Після заголовку функції йде тіло функції. Визначення функції відрізняється від оголошення, тим що в оголошенні задається тільки заголовок функції, в кінці якого ставиться символ «;». За прототипами функцій йде оголошення структури.
У курсовій роботі використано прототипи таких функцій:
а) int ZastBeg ();
б) void ZastEnd ();
в) int Exit ();
г) int Putannja ();
Для виведення на екран головного вікна програми використано функцію int ZastBeg ().
У програмі реалізовано виведення на екран повідомлення про завершення роботи з програмою за допомогою функції void ZastEnd ().
Підтвердження виходу з програми забезпечується функцією int Exit (). Тестування знань реалізовано у функції int Putannja ().
3.2 Тестування програмного продукту Головне меню програми зображене на рис. 1.1
Рисунок 1.1 — Вікно головного меню програми При натисненні клавіші здійснюється вихід з програми, а при використанні будь-якої іншої клавіші - перехід до функції int Main (), яка забезпечує перехід до меню і вибору розділів, або ж редагування довідника із дисципліни «Програмування». Одне з таких визначень програми електронний довідник має такий вигляд (рис. 1.2):
Рисунок 1.2 — Меню програми При переході до пункту перегляд довідника ми побачимо наступне вікно (рис. 1.3):
Рисунок 1.3 — Перегляд довідника При переході пункту створення довідника термінів ми побачимо наступне вікно (рис. 1.4):
Рисунок 1.4 — Створення довідника термінів
При переході на пункт додати визначення в довідник ми побачимо (рис. 1.5):
Рисунок 1.5 — Додати визначення в довідник Програмою передбачено вибір потрібного вам пункту. Якщо натиснути на пункт «Пошук визначення по розділах» то нам слід буде ввести номер розділу від 1 до 9, у цих розділах посортовані дані визначення із дисципліни «Програмування» Вікно демонстрації розділів із дисципліни «Програмування» має такий вигляд (рис. 1.6):
Рисунок 1.6 — Вигляд вводу розділів
При натисненні потрібної вам цифри з’явится вікно із визначеннями, де знаходитеметься дане визначення (рис. 1.7):
Рисунок 1.7 — Вікно із даним визначенням При виході в меню з’явиться меню, вибравши там пункт — «вихід із програми» в вас появиться наступне вікно (рис. 1.8):
Рисунок 1.8 — Вікно підтвердження завершення роботи Для повного виходу з програмного середовища електронного довідника необхідно натиснути на будь-якій клавіші.
Висновки Сучасний стан науки та техніки потребує інтенсивного поповнення кількості спеціалістів, зокрема в області програмування. З огляду на це постає проблема розробки ефективних засобів навчання, які не тільки гарантують якість знання, але й економію часу та докладених зусиль на засвоєння матеріалу.
З моменту появи комп’ютерів, вони не тільки самі стали об'єктами вивчення, але й представили можливості легкого отримання знань з різних галузей науки. Результатом цього стали спроби представити інформацію у зручному для користувача вигляді і розробки різних типів навчальних систем, починаючи з гіпертекстових документів і закінчуючи інтелектуальними навчальними системами.
Мова програмування «С++» — це універсальна мова програмування, для якої характерні сучасний потік управління і структури даних, великий набір операторів. Мова «С++» не зв’язана з конкретними апаратними засобами чи системами, тому дуже зручна і ефективна для написання програм широкого профілю. Хоча її називають мовою системного програмування, так як вона зручна для написання системних програм, вона з рівним успіхом використовується для написання великих обчислювальних програм, програм для обробки текстів і баз даних.
Основне завдання курсової роботи полягало у створенні електронного довідника дисципліни «Програмування».
Дану програму можна використовувати в навчальних закладах, яка є досить зручною у використанні.
Електрoнні енциклопедії та довідники як і їх паперові аналоги, містять систематизований матеріал, присвячений конкретній темі, групі тем чи певній предметній галузі, проте мають ряд переваг, що дозволяє їх ширше використовувати:
а) можливість представлення окрім текстового матеріалу та зображень значної кількості анімацій, відеоматеріалів, аудіо записів;
б) можливість швидкого доступу до потрібної інформації, наявність пошуку за ключовими словами;
в) наявність матеріалу, який значно розширює рамки навчальної програми;
г) зручність у використанні.
На даний час існує велика кількість програмних засобів даного типу, що відрізняються тематикою, інтерфейсом та можливостями, проте, більшість з них легкі у використанні, що дозволяє користуватися їх як викладачу під час пояснення, закріплення, узагальнення, систематизації чи повторенні навчального матеріалу, так і студенту під час самостійної підготовки до уроку.
Електронні словники призначені для швидкого пошуку слів з певними властивостями. Найпоширенішими є електронні тлумачні словники, словники фразеологізмів, синонімів, словники — перекладачі. Головною їх перевагою над паперовими аналогами є те, що для того, щоб отримати переклад чи тлумачення потрібного слова, користувачу не потрібно знати алфавіт, шукати його серед великої кількості слів, а досить лише ввести його в стрічку пошуку. Такий спосіб пошуку дозволяє як і учневі, так і вчителі економити навчальний час, не витрачаючи його на механічну роботу.
Типовим представником електронних словників, і досить поширеним вданий час, є сучасний англо-український та українсько-англійський словник видавничого дому Школа. Даний програмний продукт містить простий та зручний інтерфейс, дає можливість отримати миттєвий перегляд перекладу введеного користувачем слова, пошуку слів за алфавітом та містить коротку граматичну довідку.
До переваг даного програмного продукту можна також віднести незначні системні вимоги та просту інсталяцію. Звичайно, коли йдеться мова про використання під час навчального процесу електронних словників, довідників та енциклопедій слід зазначити, що даний процес ускладнюється за рахунок слабкого забезпечення закладів освіти комп’ютерною технікою, а також відсутність її в частини школярів. Також виникає проблема недостатньої кількості якісних програмних продуктів даного типу, які б повністю відповідали вимогам сучасної школи.
Список використаної літератури
1. Бек Л. С. Введення в системне програмування. — / М. Світ, 2008. — 345с.
2. Бочков С. О. Язык программирования Си для персонального
компьютера. — К.: Мир, 2006. 231с.
3. Вальвачев А. Н. Программирование на языке ПАСКАЛЬ для персональних ЭВМ ЕС.- / Мн.: Выш. шк., 2007. 223с.
4. Гринчишин Я. Т. Алгоритми і програми на С++ Учеб. посібник. — / М.: Просвещение, 2001. — 160 с.
5. Грис Д. Наука программирования.- / М.: Мир, 2003. 416с.
6. Дейтел Х. М., / Дейтел П.Дж. Как программировать на C++. — / М.: БИНОМ, 2004. -24с.
7. Зубенко В. В. Програмування: навчальний посібник (гриф МОН України) / В. В. Зубенко, Л. Л. Омельчук. / К. ВПЦ «Київський університет», 2011. — 623 c.
8. Кнут Д. Искусство программирования для ЭВМ: В 3-х т.- /М.: Мир, t.1, 2009. 735с., т.2, 1977. 724c.
9. Лавров С. С. Програмирование. Математические основи, средства, теория / С. С. Лавров. — СПб.: БХВ-Петербург, 2001. — 251с.
10. Носов О.І. Радио и связь, 2001.-160с.
11. Непейвода Н. Н. Основания програмирования: учеб. Пособие Н. Н. Непейвода, И. Н. Скопин. — Ижевск, 2003.-213с.
12. Нікітченко М.С. Теоретичні основи програмування: навчальний посібник / М.С. Нікітченко — Ніжин: Видавництво НДУ імені Миколи Гоголя, 2010. — 121с.
13. Нога Л. В. Конспект лекцій з дисципліни «Основи програмування та алгоритмічні мови» Частина 1 і 2 / Нога Л. В. — Херсон: Веселка, 2006. — 134 с.
14. Перминов О. Н. Программирование на языке Паскаль.- / М.: Радио и связь, 2009. — 220с.
15. Проценко B.C. Техника программирования. — К.: Вища школа. 2006. 183с.
16. Рафа Т. М. Методичні вказівки до лабораторних та практичних занять з програмування. Паскаль. Частина 1 / Т. М. Рафа, Л. Б. Чорна. — Тернопіль: ТДТУ ім. І. Пулюя, 2008. — 94 с.
17. Семотюк В. Програмування в середовищі Турбо Паскаль / Семотюк В. — Львів: БаК, 2008. — 248 с.
18. Страуструп Б. Язык программирования С++. — / М.: БИНОМ, 2001. — 990 с.
19. Уэйт М., /Мартин Д., Пратта С. Язык Си. Руководство для начинающих.- / М.: Мир, 2004. 512с.
20. Фаронов В. В. TurboPascal 7.0. Начальный курс / Фаронов В. В. — М.: Колидж, 2008. — 238 с.
21. Фаронов В. В. Турбо Паскаль 7.0. Начальный курс: Учеб.пособие. — М.: Нолидж, 2010. -612с.
22. Фаронов В. В. Турбо Паскаль 7.0.Практика программирования: Учеб.пособие. — / М.: Нолидж, 2013. -429 с.
23. Хэнкок Л.,/ Кригер М.
Введение
в программирование на языке Си.- / М.: Радио и связь, 2006.-220с.
24. Шикова О. М. Основи програмування мовою С++ у прикладах і завданнях: навч. посібник / Шикова О. М. — / К.: МАУП, 2004. — 112 с.
Додаток, А Код пронрами
// k5. cpp: определяет точку входа для консольного приложения.
#include «stdafx.h»
#include
#include
#include
#include
#ifdef WIN32
#include
#endif
//prototipyi functsiy
int ZastBeg ();
void ViewDB ();
void CreateDB ();
void AddToDB ();
void SearchInDB ();
void SortDB ();
int Exit ();
void ZastEnd ();
int Get (int min, int max);
struct record
{
int num;
char surn[20];
char name[300];
int ats;
};
//—————————————————————MENU———————————————;
#ifdef WIN32
int wherey (void)
{
CONSOLE_SCREEN_BUFFER_INFO conScrBufInfo;
GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE), &conScrBufInfo);
return conScrBufInfo.dwCursorPosition.Y — conScrBufInfo.srWindow.Top;
}
void gotoxy (short x, short y) {
HANDLE hConsoleOutput;
COORD Cursor_Pos = {x, y};
hConsoleOutput = GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleCursorPosition (hConsoleOutput, Cursor_Pos);
}
void clrscr (void) {
CONSOLE_SCREEN_BUFFER_INFO csbi;
HANDLE hStdOut = GetStdHandle (STD_OUTPUT_HANDLE);
COORD coord = {0, 0};
DWORD count;
GetConsoleScreenBufferInfo (hStdOut, &csbi);
FillConsoleOutputCharacter (hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);
SetConsoleCursorPosition (hStdOut, coord);
}
#endif
int Menu ()
{ setlocale (LC_ALL," Russian");
clrscr ();
printf («*Mеню*»);
printf («n-> Перегляд довiдника»);
printf («n Створення довiдника термiнiв»);
printf («n Додати визначення в довiдник»);
printf («n Пошук визначення по розділах»);
printf («n Сортування даних у довіднику по роздiлах»);
printf («n Вихiд iз програми»);
printf («nnn Перемiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
int p = 1;
int m = getch ();
if (m == 13) ViewDB ();
do{
if (m == 80) p++;
if (m == 72) p—;
do{
if (p<=0) p = p+6;
}while (p<=0);
do{
if (p>=7) p = p-6;
}while (p>=7);
if (p == 1){
clrscr ();
printf («*Mеню*»);
printf («n-> Перегляд довiдника»);
printf («n Створення довiдника термiнiв»);
printf («n Додати визначення в довiдник»);
printf («n Пошук визначення по розділах»);
printf («n Сортування даних у довіднику по роздiлах»);
printf («n Вихiд iз програми»);
printf («nnnПеремiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
m = getch ();
}
if (p == 2){
clrscr ();
printf («*Mеню *»);
printf («n Перегляд довiдника»);
printf («n-> Створення довiдника термiнiв»);
printf («n Додати визначення в довiдник»);
printf («n Пошук визначення по розділах»);
printf («n Сортування даних у довіднику по роздiлах»);
printf («n Вихiд iз програми»);
printf («nnnПеремiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
m = getch ();
}
if (p == 3){
clrscr ();
printf («*Меню*»);
printf («n Перегляд довiдника»);
printf («n Створення довiдника термiнiв»);
printf («n-> Додати визначення в довiдник»);
printf («n Пошук визначення по розділах»);
printf («n Сортування даних у довіднику по роздiлах»);
printf («n Вихiд iз програми»);
printf («nnnПеремiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
m = getch ();
}
if (p == 4){
clrscr ();
printf («*Меню*»);
printf («n Перегляд довiдника»);
printf («n Створення довiдника термiнiв»);
printf («n Додати визначення в довiдник»);
printf («n-> Пошук визначення по розділах»);
printf («n Сортування даних у довіднику по роздiлах»);
printf («n Вихiд iз програми»);
printf («nnnПеремiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
m = getch ();
}
if (p == 5){
clrscr ();
printf («*Меню*»);
printf («n Перегляд довiдника»);
printf («n Створення довiдника термiнiв»);
printf («n Додати визначення в довiдник»);
printf («n Пошук визначення по розділах»);
printf («n-> Сортування даних у довіднику по роздiлах»);
printf («n Вихiд iз програми»);
printf («nnnПеремiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
m = getch ();
}
if (p == 6){
clrscr ();
printf («*Меню*»);
printf («n Перегляд довiдника»);
printf («n Створення довiдника термiнiв»);
printf («n Додати визначення в довiдник»);
printf («n Пошук визначення по розділах»);
printf («n Сортування даних у довіднику по роздiлах»);
printf («n-> Вихiд iз програми»);
printf («nnnПеремiщення — стрiлки вверх i вниз»);
printf («n Вибiр пункту меню — «);
m = getch ();
}
}while (m≠13);
return p;
}
//———————————————————-ZAST_BEG——————————————-;
int ZastBeg ()
{
printf («nnnnn tttt Курсова робота»);
printf («n ttt з дисциплiни 'Програмування'»);
printf («n tttt на тему:»);
printf («n t`Створення електронного довідника дисципліни 'Програмування''»);
printf («n ttt виконав студент групи ОКСМ-21»);
printf («n tttt Ковдра Василь»);
printf («nnnn t — вихiд, продовжити роботу — будь-яка iнша клавiша nnnnnnnnn»);
int c = getch ();
return c;
}
//———————————————————ZAST_END———————————————;
void ZastEnd ()
{
clrscr ();
printf («nnnnn t Електронний довiдник з дисциплiни `Програмування'»);
printf («n t успiшно закритий. Дякую за його використання!»);
printf («nnnn t Для виходу з програми натиснiть будь-яку клавiшу.»);