- •О.Ф.Тарасов, о.В.Алтухов
- •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
- •Контрольні питання для підготовки і самостійної роботи
- •Віртуальні базові класи
- •Віртуальні деструктори
- •Хід роботи
9.4 Питання для контролю і самостійної роботи
З якого числа починається індексація масивів у мові С ?
Як розташований у пам'яті одномірний масив?
Які типи мови С можна і не можна використовувати при оголошенні масивів ?
У яких випадках розмірність масиву при оголошенні можна не вказувати?
Який тип має ім'я масиву ?
Як здійснюється ініціалізація елементів масиву ?
Чи можна здійснювати неповну ініціалізацію елементів масиву ?
Як можна виконати ініціалізацію масивів з елементами типу char ?
Скільки елементів масиву типу char буде виділено при ініціалізації для рядка з трьох символів ?
Чи можна використовувати засіб typedef для оголошення типу “масив” ?
Які альтернативні форми запису елементів масиву можна використовувати ? Приведіть приклади.
Які вирази називають індексними і які правила використання індексних виражень ?
Чи існують операції роботи з масивами, як об'єктами?
Які класи пам'яті можна використовувати при оголошенні масивів?
10 Заняття № 10
Формування робочих масивів за допомогою операцій селекції вихідного масиву
(2 години)
Ціль роботи: вивчити і навчитися застосовувати обробку масивів по заданих логічних умовах, формування нових масивів.
10.1 Теоретичні відомості
Дивися теоретичні відомості по попередній роботі.
Приклад
/* ЗАНЯТТЯ N 10
Розробив Петров О.Д.
Оголосити масиви заданої розмірності, виконати їхню
ініціалізацію з застосуванням функції random( ) і явно.
Одержати доступ до елементів масивів з використанням
операторів організації циклу. Переписати позитивні
елементи масивів x[1], x[2], ... , x[N] у масив y[ t ],
а негативні - у масив z[ p ]. Елементи в масивах y[ t ]
і z[ p ] розташовувати підряд, елементи масиву y1[ t ]
розрахувати для позитивних x[і] по формулі
y1[t] = y1[ t ] + 2 * exp( b * y[ t ] - y[ t ] ^ 2), де b = N / 5 */
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
# define N 20
main( )
{ clrscr( );
randomize( );
int і, t = 0, p = 0, b = N / 5;
int x[N], y[N], z[N]; //Оголошення одномірного масиву (вектора)
float y1[N] = {2.3, 3.4, 4.0, 5.2, 6.6, 7.9, 8.34, 9.8, 10.4, 11.2,\
10.1, 9.9, 8.7, 7.5}; //Ініціалізація перших 14 елементів, інші - 0
printf("\n Виведення елементів вихідного масиву y1[ ]\n");
for(i = 0; i < N; i ++)
{printf(" y1[%2d] = %4.1f ", i + 1, y1[ i ] );
if ((i + 1) % 5 = = 0) printf("\n");
}
printf("\n Ініціалізація одномірного масиву x[N] \n");
for(і = 0; і < N; і ++)
{ x[ і ] = random(40) - 20;
printf(" x[%2d] = %2d ", i + 1, x[ i ] ); //Виведення елементів
if ((i + 1) % 5 = = 0) printf("\n"); //масиву x[ ]
if (x[ i ] >= 0) //Вибір позитивних значень
{ y[ t ] = x[ i ]; //Розрахунок елементів масиву y1[ ]
y1[ t ] = y1[ t ] + 2 * exp( b * y[ t ] - y[ t ] * y[ t ] );
t ++;
}
else {z[ p ] = x[ i ]; p++;} //Вибір негативних значень
}
printf("\n Виведення елементів масиву y[ ] > 0\n");
i = 0;
while ( i < t )
{ printf(" y[%2d] = %2d ", i + 1, y[ i ] );
if ((i + 1) % 5 = = 0) printf("\n");
i ++;
}
printf("\n");
printf("\n Виведення елементів масиву y1[ ] після розрахунку \n");
i = 0;
do
{ printf(" y1[%2d] = %3.2f ", i + 1, y1[ i ] );
if ((i + 1) % 5 = = 0) printf("\n");
i ++;
} while ( i < t );
printf("\n");
printf("\n Виведення елементів масиву z[ ] < 0\n");
for(i = 0; i < p; i ++)
{ printf(" z[%2d] = %2d ", i + 1, z[ i ] );
if ((i + 1) % 5 = = 0) printf("\n");
}
getch( );
return 1;
}
/* Виведення елементів вихідного масиву y1[ ]
y1[ 1]= 2.3 y1[ 2]= 3.4 y1[ 3]= 4.0 y1[ 4]= 5.2 y1[ 5]= 6.6
y1[ 6]= 7.9 y1[ 7]= 8.3 y1[ 8]= 9.8 y1[ 9]=10.4 y1[10]=11.2
y1[11]=10.1 y1[12]= 9.9 y1[13]= 8.7 y1[14]= 7.5 y1[15]= 0.0
y1[16]= 0.0 y1[17]= 0.0 y1[18]= 0.0 y1[19]= 0.0 y1[20]= 0.0
Ініціалізація одномірного масиву x[N]
x[ 1]= 8 x[ 2]= 10 x[ 3]=- 7 x[ 4]= 13 x[ 5]=- 1
x[ 6]=-14 x[ 7]= 5 x[ 8]= 17 x[ 9]=-14 x[10]=-19
x[11]= 13 x[12]= 8 x[13]=-10 x[14]=-16 x[15]= 5
x[16]= 9 x[17]=-11 x[18]=-12 x[19]=-16 x[20]=- 3
Виведення елементів масиву y[ ]>0
y[1]= 8 y[2]=10 y[3]=13 y[4]= 5 y[5]=17
y[6]=13 y[7]= 8 y[8]= 5 y[9]= 9
Виведення елементів масиву y1[ ] після розрахунку
y1[1]=2.30 y1[2]=3.40 y1[3]=4.00 y1[4]=5.21 y1[5]=6.60
y1[6]=7.90 y1[7]=8.34 y1[8]=9.81 y1[9]=10.40
Виведення елементів масиву z[ ]<0
z[ 1]=- 7 z[ 2]=- 1 z[ 3]=-14 z[ 4]=-14 z[ 5]=-19
z[ 6]=-10 z[ 7]=-16 z[ 8]=-11 z[ 9]=-12 z[10]=-16
z[11]=- 3 */