- •О.Ф.Тарасов, о.В.Алтухов
- •1 Заняття № 1 Вивчення інтегрованого середовища с
- •1.1 Теоретичні відомості
- •1.2 Хід роботи
- •1.3 Вимоги до звітів
- •1.4 Питання для контролю і самостійної роботи
- •2 Заняття № 2 Функції введення/виведення даних printf( ), scanf( ). Лінійні обчислювальні процеси
- •2.1 Теоретичні відомості
- •2.2 Хід роботи
- •2.3 Індивідуальне завдання до заняття №2
- •2.4 Питання для контролю і самостійної роботи
- •3 Заняття № 3 Розробка програм зі скалярними типами даних
- •3.1 Теоретичні відомості
- •Приклад
- •3.2 Хід роботи
- •3.3 Індивідуальне завдання до заняття № 3
- •3.4 Питання для контролю і самостійної роботи
- •4 Заняття № 4 Розробка програм з циклічними обчислювальними процесами
- •4.1 Теоретичні відомості
- •Алгоритм роботи оператора циклу for ( )
- •4.2 Хід роботи
- •4.3 Індивідуальне завдання до заняття № 4
- •4.4 Питання для контролю і самостійної роботи
- •5 Заняття № 5
- •Розгалуження обчислювального процесу.
- •Оператори, які реалізують розгалуження: if... Else, switch,
- •Умовна операція ( ? : )
- •5.1 Теоретичні відомості
- •Умовна тернарна операція ( ? : )
- •Оператор варіанта switch
- •Приклад
- •5.2 Хід роботи
- •5.3 Індивідуальне завдання до заняття № 5
- •5.4 Питання для контролю і самостійної роботи
- •6 Заняття № 6 Операції с, їхні пріоритети і використання. Перетворення типів
- •Пріоритет операцій і порядок виконання (асоційованість)
- •(Новий_тип) Операнд
- •Приклад
- •6.2 Хід роботи
- •6.3 Індивідуальне завдання до заняття № 6
- •6.4 Питання для контролю і самостійної роботи
- •7 Заняття № 7
- •7.1 Теоретичні відомості
- •Оголошення функцій (створення прототипів)
- •([ Список_типів_параметрів ])
- •Синтаксис визначення функцій
- •[ Return Значення_типу_що_повертається ]
- •Використання локальних і глобальних перемінних у функціях. Виклик функції
- •Приклад
- •7.2 Хід роботи
- •7.3 Індивідуальне завдання до заняття № 7
- •7.4 Питання для контролю і самостійної роботи
- •8 Заняття № 8
- •8.1 Теоретичні відомості
- •Основні операції з покажчиками
- •Покажчики і цілі величини
- •Динамічне розміщення покажчиків у пам'яті
- •Приклад
- •Приклад
- •8.2 Хід роботи
- •8.3 Індивідуальне завдання до заняття № 8
- •8.4 Питання для контролю і самостійної роботи
- •9 Заняття № 9
- •9.1 Теоретичні відомості
- •Приклад
- •9.2 Хід роботи
- •9.3 Індивідуальне завдання до заняття №9
- •9.4 Питання для контролю і самостійної роботи
- •10 Заняття № 10
- •10.1 Теоретичні відомості
- •Приклад
- •10.2 Хід роботи
- •10.3 Індивідуальне завдання до заняття № 10
- •10.4 Питання для контролю і самостійної роботи
- •Заняття №11 Обробка символьних даних
- •Теоретичні відомості
- •Індивідуальне завдання до заняття №11
- •Питання для контролю і самостійної роботи
- •Приклад
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Теоретичні відомості
- •Приклад
- •Індивідуальне завдання до завдання №13
- •Питання для контролю і самостійної роботи
- •Заняття № 14 Розробка програм зі складеними типами даних
- •Структури
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Заняття № 15 Використання покажчиків для роботи зі складеними типами даних (2години)
- •Теоретичні відомості
- •Приклад
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Використання покажчиків для роботи з функціями
- •Покажчики як параметри функції
- •[Const ] Тип * Ім'я_покажчика
- •Приклад
- •Хід роботи
- •Індивідуальне завдання до заняття №16
- •Питання для контролю і самостійної роботи
- •Використання функцій високого і низького рівня для роботи з потоками (файлами)
- •Функції для роботи з файлами
- •Хід роботи
- •Індивідуальне завдання до заняття №17
- •Питання для контролю і самостійної роботи
- •Розробка програм із багатофайловою структурою. Заголовочні файли. Класи пам'яті перемінних і функцій
- •Керування многофайловими проектами
- •Використання адміністратора проектів
- •Приклад
- •Основний файл проекту
- •Заголовний файл
- •Хід роботи
- •Індивідуальне завдання до заняття №18
- •Питання для контролю і самостійної роботи
- •Графічні функції
- •Графічні примітиви
- •Хід роботи
- •Індивідуальне завдання до заняття №19
- •Питання для контролю і самостійної роботи
- •Заняття№20 Розробка програм з використанням класів
- •Теоретичні відомості
- •Оголошення і визначення класу
- •Тіло класу
- •Інкапсуляція. Керування доступом до членів класу
- •Використання даних-членів класу
- •Хід роботи
- •Індивідуальне завдання до заняття №20
- •Питання для контролю і самостійної роботи
- •Заняття№21 Використання конструкторів і деструкторів у класах
- •Теоретичні відомості
- •Ініціалізація об'єктів класу
- •Деструктори
- •Виклик деструкторів
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •"Друзі" класів (friend)
- •Хід роботи
- •Індивідуальне завдання до заняття №22
- •Контрольні питання для підготовки і самостійної роботи
- •Віртуальні базові класи
- •Віртуальні деструктори
- •Хід роботи
Питання для контролю і самостійної роботи
Приведіть загальний формат оголошення функцій.
Приведіть формат визначення функцій.
Які класи пам'яті використовуються при оголошенні функцій.
Охарактеризуйте формальні параметри приведених функцій.
Що означає запис FILE* ?
Що означає термін “потік” ?
Скільки і які стандартні потоки відкриваються при виконанні програми ?
Які існують режими роботи з файлами ?
Які заголовочні файли містять оголошення бібліотечних функцій для роботи з потоками.
Які функції забезпечують форматизоване введення/виведення даних?
Що таке буферизація і чи можна нею керувати ?
Що таке дескриптор ? Які дескриптори мають стандартні потоки ?
Як установити положення покажчика поточної позиції у файлі ?
Заняття№ 18
Розробка програм із багатофайловою структурою. Заголовочні файли. Класи пам'яті перемінних і функцій
(4 години)
Ціль роботи: ознайомитися з написанням програм із многофайловою структурою, заголовочними файлами, вивчити класи пам'яті перемінних і функцій, навчитися створювати модульні програми і заголовочні файли. Вивчити область дії і час життя перемінних і функцій з різними класами пам'яті.
Теоретичні відомості
Керування многофайловими проектами
Оскільки більшість програм складається з декількох файлів, бажано мати можливість автоматичної ідентифікації тих файлів, що повинні бути перекомпільовані і скомпоновані. Ці і багато інших обов'язків виконує убудований адміністратор (менеджер) проектів системи Borland C.
Адміністратор проектів дозволяє задавати ті файли, які відносяться до проекту, що розробляється. Коли здійснюється перекомпіляція проекту, адміністратор проектів автоматично обновляє інформацію, що зберігається у файлі проекту. У файл проекту входить наступна інформація:
імена усіх файлів, що входять у проект;
шляхи для пошуку файлів;
які файли залежать від інших файлів, які повинні бути відкомпільовані в першу чергу (зважуються питання, що стосуються залежностей, які автоматично відслідковуються);
які компілятори і параметри командного рядка повинні використовуватися при створенні кожної з частин програми;
куди варто помістити результуючу програму;
розмір коду, розмір даних і число рядків, отриманих у результаті останньої компіляції.
Використання адміністратора проектів
Використання адміністратора проектів не представляє утруднень. Для побудови проекту нелбхідно:
вибрати ім'я файлу проекту (за допомогою команди Project / Open Project);
додати до проекту імена вихідних файлів (за допомогою команди Project| Add Item);
задати системі Borland C компіляцію файлу (за допомогою команди Compile / Make EXE).
Потім, коли в меню Project стануть доступні команди ведення проекту, можна:
додавати імена файлів у проект чи видаляти їх з нього;
задавати параметри файлів, що входять у проект;
переглядати зміст файлів, включених у конкретний проект.
Приклад роботи з адміністратором проектів.
Мається програма, що складається з основного вихідного файлу з ім'ям mymain.c, додаткового файлу myfuncs.c, що містить визначення функції і дані, звертання до яких маються в основному файлі, і файлу myfuncs.h, де знаходяться оголошення функцій.
Файл mymain.c має наступний вигляд:
#include <stdio.h> // Заголовочний файл у стандартному каталозі
#include "myfuncs.h" // Заголовочний файл в активному каталозі
main (int argc, char *argv[ ]) // Передача у функцію main( ) параметрів з
//навколишнього середовища: argc – кількість параметрів,
// argv[ i ] - масив строкових параметрів, розділених пробілом,
//argv[0] – ім'я програми
{
char *s; // Клас пам'яті за умовчанням auto
if (argc > 1)
s = argv[ 1 ]; // Вибір другого строкового параметра з масиву
else
s = " Миру "; // Ініціалізація покажчика рядковою константою
printf("%s %s.\n", GetString( ), s); //Виведення результату роботи
// функції GetString( ) і рядка, зв'язаного з покажчиком s
}
Файл myfuncs.c має наступний вигляд:
char ss[ ] = "Притулок на границі"; //Масив ss[ ], ініціалізований
// рядковою константою
char * GetString(void); // Визначення функції GetString( )
{
return ss; // Доступ до масиву з функції дозволений,
// тому що клас пам'яті по умовчанню extern
}
А файл myfuncs.h має наступний вигляд:
extern char *GetString(void); // Оголошення функції з глобальним
// класом пам'яті - extern.