- •О.Ф.Тарасов, о.В.Алтухов
- •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
- •Контрольні питання для підготовки і самостійної роботи
- •Віртуальні базові класи
- •Віртуальні деструктори
- •Хід роботи
3.4 Питання для контролю і самостійної роботи
Які перемінні відносяться до скалярних, арифметичних, складених, символьних ?
Що означають символи: ’\r’, ’\f ’, ’\b’, ’\а’, ’\n’, ’\\’, ’\’’ ’, ’\’ ’, ’\000’, ’\0x00’, ’\0x0а’, ’\0x5с’ ?
Чому в рядку ’’c:\\bc\\test\\f.с'’ знак \ повторюється два рази ?
Що означає ключове слово signed ?
Що означає ключове слово #define, для чого воно використовується ?
Як застосувати #define для створення макровизначення з параметрами ?
Що означає ключове слово const, для чого воно використовується ?
Що означає ключове слово typedef, для чого воно використовується?
Що означає ключове слово #include, для чого воно використовується ?
Чи є правильним вирази #include ’’c:\bc\test\my.h’’ ?
Що означають записи: 1254L, 34l, 0xf9ac, 0875, 76678UL ?
Які скалярні типи даних С Ви знаєте, чим вони відрізняються ?
Який розмір у байтах мають базові типи С ?
Який діапазон значень перемінних різних типів ?
Де можна оголосити перемінну? Який тип має перемінна за умовчанням ?
Які класи пам'яті використовуються при оголошенні перемінних ?
Назвіть клас пам'яті перемінної за умовчанням. Чи залежить він від місця оголошення ?
Як виконується множинне оголошення перемінних ?
Як визначити розмір типу в байтах ?
Чи відбувається ініціалізація перемінної за умовчанням ? У яких випадках ?
Чи відбувається ініціалізація перемінної при оголошенні ? У яких випадках ?
Для чого використовуються функції: getchar( ), getche( ), putchar( ) ?
Що означає ключове слово enum, для чого використовують перемінні цього типу ?
Приведіть синтаксис оголошення перемінних типу enum.
Як виконується ініціалізація перемінних типу enum ?
Для чого використовуються і який формат оголошення мають функції: printf( ), scanf( ) ?
Роз‘ясніть приклади, наведені у теоретичній частині.
4 Заняття № 4 Розробка програм з циклічними обчислювальними процесами
(2 години)
Ціль роботи: вивчити написання програм мовою С, використовуючи ітераційні (циклічні) методи освоїти основні оператори, що підтримують роботу з циклами (for, while, do...while); навчитися писати програми, використовуючи приведені оператори.
4.1 Теоретичні відомості
Кожен оператор С закінчується оператором (;), що є порожнім оператором. Організація циклічних (ітераційних) процедур за допомогою операторів for, while, do...while дозволяє виконувати окремі оператори чи блоки операторів (складені оператори { … }). Число повторів визначається <Виразом> у дужках, яке використовується разом з названими операторами і значення якого порівнюється з ( - означає припинення циклу). Цикли бувають з перевіркою значення <Виразу> перед початком виконання тіла циклу (з передумовою), а також після закінчення виконання тіла (з постумовою) чи усередині тіла циклу. У С визначено три види операторів циклу: оператор циклу із передумовою - while, оператор циклу з постумовою do... while і оператор циклу for. Розглянемо ці оператори детально.
Цикл while має наступний формат:
while (<Вираз>) <Оператор>
Умова виконання ітерації в циклі while попередньо перевіряється, й у випадку істинності <Виразу> (не дорівнює ) виконуються ті оператори, що описані в тілі циклу. У противному випадку цикл закінчується і програма продовжує своє виконання з того місця, де закінчилося тіло циклу. Якщо тіло циклу містить декілька операторів, воно обмежується операторними дужками "{ … }" і називається складеним оператором.
Припинити виконання циклу можна, використовуючи оператори: break, goto, return. Нижче продемонстровано два приклади роботи з циклом while у вигляді фрагментів програм (таблиця 4.1).
Таблиця 4.1- Приклади застосування оператора while
Приклад 1 |
Приклад 2 |
… int i=10, k, s =; printf ("Ввести крок збільшення\ до: "); scanf("%i", &k ); |
... char ch =’a’; while (ch!=’у' && ch != 'n') { // Почати цикл while |
Продовження таблиці 4.1
Приклад 1 |
Приклад 2 |
while (i) { //Виконувати цикл, //поки i не дорівнює s+=k; //Збільшити s на k i- - ; //Зменшити i на 1 if (i == k) break; //Вийти, якщо }... // виконається умова: i=k
|
рrintf("\n Відповідайте yes чи no\ (y/n):"); scanf("%c", &ch ); … } //Виконувати цикл доти, поки //не буде натиснута буква ‘у' чи ‘n’
|
Перший приклад демонструє застосування операторів while і break, що припиняє цикл, якщо виконається умова i = k. Другий приклад показує використання циклу while для перевірки відповіді (буква ‘у' чи ‘n’ ), що вводиться з клавіатури.
Оператор циклу do…while є циклом з постумовою. У цьому випадку тіло циклу завжди виконується хоча б один раз, а перевірка логіки припинення проводиться після закінчення виконання тіла циклу.
Формат оператора циклу з постумовою do…while наступний:
do <Оператор> while(<Вираз>)
Тілом циклу, як і у наступному випадку, може бути один чи декілька операторів (складений оператор). Нижче (таблиця 4.2) приведені приклади реалізації циклу з постумовою.
Таблиця 4.2- Приклади застосування оператора do…while
Приклад 1 |
Приклад 2 |
int i=10, k, s=; printf ("Увести крок збільшення \ до: "); scanf("%i", &k); do { //Почати цикл do while s += k; //Збільшити s на k i - - ; //Зменшити i на 1 if (i = = k) break; //Вийти, якщо // виконується умова: i = = k } while (i); //Виконувати цикл, //поки i не дорівнює |
... char ch = ’a’; do { // Почати цикл do while printf("\n Відповідайте yes чи no\ (y/n):"); scanf("%c", &ch ); … } while (ch != ’у' && ch != 'n'); //Виконувати цикл доти, поки не //буде натиснута буква ‘у' чи ‘n’ |
Оператор циклу for є найбільш зручним і гнучким засобом організації циклічних обчислень у С.
Формат оператора циклу for
for( [<Вираз_1>]; [<Вираз_2>]; [<Вираз_3>]) <Оператор>
Елементи цього виразу мають наступне призначення :
<Вираз_1> - робить ініціалізацію тих перемінних, котрі будуть безпосередньо змінюватися в циклі, зокрема, задається початкове значення перемінних-лічильників;
<Вираз_2> - визначає умову виходу з циклу. При рівності його значення цикл припиняється;
<Вираз_3> - задає зміну на кожному кроці перемінних, які проініціалізовані у <Виразі_1>. Можна задавати також зміну інших перемінних, не зв'язаних з <Виразом_1>.
Кожний з описаних виразів може бути відсутнім. Оператор циклу for, заданий як for( ; ; ) { <Тіло_циклу> }, є нескінченним циклом.