- •О.Ф.Тарасов, о.В.Алтухов
- •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
- •Контрольні питання для підготовки і самостійної роботи
- •Віртуальні базові класи
- •Віртуальні деструктори
- •Хід роботи
4.4 Питання для контролю і самостійної роботи
Які вирази можна використовувати в операторі циклу ?
Як інтерпретуються значення Виразів 1, 2, 3 операторів циклу ? Якого типу можуть бути ці Вирази ?
Чи можна записати наступні оператори: for( ; ; ); while(); do {…} while(i - -); for( ; i && j; i++, j - -); for( int i, k; ; i += 2) j++; k -=5; ? Поясніть чому можна чи не можна ?
Поясніть результати роботи приведених операторів.
У чому різниця в роботі операторів із передумовою і з постумовою ?
Яке призначення виразів в операторі for ?
Навіщо використовуються складені оператори (операторні дужки) ?
Назвіть порядок обчислення й інтерпретації виразів в операторі for.
Поясніть роботу операторів у прикладах.
За допомогою якого оператора можна припинити виконання поточної ітерації в циклі ?
За допомогою яких операторів можна достроково завершити виконання операторів циклу ?
5 Заняття № 5
Розгалуження обчислювального процесу.
Оператори, які реалізують розгалуження: if... Else, switch,
Умовна операція ( ? : )
(2 години)
Ціль роботи: вивчити реалізацію в мові С обчислювальних процесів, які реалізують розгалуження; навчитися писати програми, використовуючи оператори: розгалуження if...else, переключення switch у сукупності з оператором розриву break та оператором переходу goto, а також тернарну умовну операцію ( ? : ).
5.1 Теоретичні відомості
Обчислювальний процес, що розгалужується, застосовується в тих випадках, коли необхідно зробити вибір одного з варіантів подальших дій чи обчислень у залежності від поточних значень перемінних і логічних умов. Наприклад, коли необхідно зробити обчислення з однієї чи з іншої формули.
Оператор if…else (якщо…інакше)
Формат оператора if…else приведений нижче:
If (<Вираз>) <Оператор_1> [else <Оператор_2>]
Дії оператора залежать від значення виразу. Реалізація різних можливостей виконується такими способами: якщо <Вираз> у дужках не дорівнює (“Істина”), то буде виконуватись <Оператор_1>, у противному випадку, якщо зазначений <Вираз> дорівнює (“Неправда”), то буде виконуватися <Оператор_2> у блоці else, якщо він присутній (таблиця 5.1).
У тілі оператора if може знаходитися один чи більше операторів. Якщо повинні виконуватися два чи більше операторів, то необхідно використовувати операторні дужки { … }. <Вираз> являє собою запис логічної умови чи умов.
Таблиця 5.1- Приклади застосування оператора if…else
№ |
Приклади |
|
№ |
Приклади |
1 |
if( i <= j)...; |
|
4 |
if( a ){…} else{…}; |
2 |
if( size = = a)...; |
|
5 |
if( !a ){…} else{…} |
3 |
if( t > 10 && v <3 ) ..; |
|
6 |
if( !t || v >5 ) ..; |
У першому випадку <Вираз> є “Істина”, якщо значення перемінної i буде меншим чи дорівнювати значенню перемінної j. У другому випадку умова буде істинною, якщо значення перемінних size і a будуть рівними. У третьому випадку істина буде дотримуватися, коли перемінна t буде більше десяти “ І ” (&&) перемінна v буде менше трьох. У четвертому випадку перший блок буде виконуватися при довільних а не рівних , у противному випадку виконується блок після else. У п'ятому виконуються дії, які є зворотними зазначеним в четвертому варіанті.
Замість перемінних можна використовувати вирази, що будуть безпосередньо обчислюватися, наприклад if((i + 2) / 3 < 4 * j ).
Основні операції відношення, що ставляться між перемінними, які порівнюються приведені в таблиці 5.2. Більш повна інформація приведена в занятті № 6.
Таблиця 5.2 – Операції відношення
Назва операції |
Назва операції |
= = - операція "дорівнює" (Не плутати з присвоюванням "=") |
<= - операція "менше чи дорівнює" |
! = - операція "не дорівнює" |
> - операція "більше" |
< - операція "менше" |
> = - операція "більше чи дорівнює" |
Основні логічні операції, що ставляться між виразами, які порівнюються (якщо їх два, як у прикладі 3, чи більше), приведені в таблиці 5.3.
Таблиця 5.3 – Логічні операції
Назва операції |
Приклади |
! - операція "НЕ" |
if( !(num%2) )...; //Істина, якщо num не є парною |
&& - операція "І" |
if( j >= 10 && !v ) ...; |
|| - операція "АБО" |
if( i + n*2 < с || i%2 = 0 )...; |
Детально логічні операції будуть розглянуті в наступній роботі. Нижче приведений фрагмент програми, що виконує наступні дії: запитує на введення три числа і видає в результаті порівняння найменше з них. Оператор if…else допускає можливість вкладеності при розгалуженні, що забезпечує гнучкість реалізації логіки і компактність запису операторів.
Приклад застосування оператора if…else
...
printf("Ввести три числа через пробіл: ");
scanf(" %d%d%d ", &a, &b, &c);
if (a<=b && a<=c) printf("\ n Найменше: %d", a);
else
if (b<=a && b<=c) printf("\ n Найменше: %d", b);
else printf("\ n Найменше: %d", c);
...