- •Тема 1.1. Поняття алгоритму. Базові структури алгоритмів.
- •Способи подання алгоритмів.
- •Базові структури алгоритмів
- •Розгалужені (умови):
- •Тренувальні вправи
- •Контрольні запитання
- •Лекція №2 (2 години)
- •Тема 1.2. Побудова блок-схем алгоритмів. Опорний конспект Основні символи схем алгоритмів.
- •Контрольні запитання
- •Література до розділу
- •Лекція №3 (2 години)
- •Опорний конспект
- •Алфавіт
- •Коментарі
- •Ключові слова
- •Директиви препроцесора
- •Загальна структура програми.
- •Сталі та змінні.
- •Контрольні запитання
- •Лекція №4 (2 години)
- •Тема 2.2. Головна функція main (). Типи даних. Опорний конспект Головна функція main ().
- •Типи даних.
- •Цілі типи
- •Дійсні типи
- •Символьний тип (char)
- •Логічний тип (bool)
- •Типи користувача
- •Контрольні запитання
- •Лекція №5 (2 години)
- •Опорний конспект
- •Команда присвоєння. Правила узгодження типів.
- •Вирази Арифметичні операції
- •Команда присвоєння, суміщена з арифметичною операцією.
- •Математичні функції.
- •Контрольні запитання
- •Практична робота №1 (2 години)
- •Хід роботи Домашнє завдання
- •Виконання завдань
- •Додаткові завдання
- •Контрольні запитання
- •Висновки до практичної роботи №3
- •Лекція №6 (2 години)
- •Тема 2.4. Потоки введення - виведення даних. Адреси даних, вказівники, динамічна пам'ять. Опорний конспект Потоки.
- •Команда введення даних.
- •Команда виведення даних.
- •Керуючі послідовності.
- •Адреси даних.
- •Вказівники.
- •Динамічна пам’ять. Команди new і delete.
- •Контрольні запитання
- •Лабораторна робота№1 (2 години)
- •Виконання завдань
- •Результати роботи програми:
- •Результати роботи програми:
- •Результати роботи програми:
- •Тестові приклади
- •Результати роботи програми:
- •Контрольні запитання
- •Висновки до лабораторної роботи №1
- •Лекція №7 (2 години)
- •Тема 2.5. Файли. Опорний конспект
- •Зчитування даних із файлу.
- •Виведення даних у файл.
- •Ознаки.
- •Контрольні запитання
- •Лабораторна робота №2 (4 години)
- •Хід роботи
- •Контрольні запитання
- •Висновки до лабораторної роботи №2
- •Тема 3.1.Умовні оператори. Оператори вибору switch.
- •Кома як команда.
- •Логічні вирази та логічні операції.
- •Логічні операції
- •Команда розгалуження if (якщо).
- •Команда вибору (switch).
- •Команда безумовного переходу goto.
- •Контрольні запитання
- •Лабораторна робота №3 (4 години)
- •Хід роботи
- •Контрольні запитання
- •Висновки до лабораторної роботи №3
- •Лекція №9 (2 години)
- •Тема 3.2. Оператори циклу Опорний конспект
- •Команда циклу з лічильником for.
- •Контрольні запитання
- •Лабораторна робота №4 (4 години)
- •Контрольні запитання
- •Висновки до лабораторної роботи №4
Адреси даних.
Для розв’язання специфічних для мови С++ задач (робота з масивами, побудова графічних зображень і динамічних ефектів) потрібно знати не тільки значення деякої змінної, але й її адресу в оперативній пам’яті. Для визначення адреси даного у пам’яті є операція визначення адреси
& <назва даного> |
Приклад 4. Розглянемо фрагмент програми
int a = 25;
cout << "znachen zmin a =" << a << "\n";
cout << "adresa zmin a is " << &a;
У результаті виконання цих команд на екрані одержимо:
Адреси зображуються шістнадцятковими числами і під час кожного виконання програми можуть бути різними.
Вказівники.
Вказівник – це змінна, значенням якої є адреса. Вона вказує на початок області оперативної пам’яті, де зберігається дане. Вказівники дають змогу оперувати не з іменами даних, а з їх адресами. Вказівники утворюють так:
<тип даного> * <назва вказівника>; |
Можна створювати вказівники на сталі, змінні, функції, інші вказівники тощо. Особливо ефективною є робота з вказівниками на рядки та масиви.
Надати значення вказівникам можна так:
<назва вказівника> = <адреса змінної>; |
Приклад 5. Нехай маємо наступний фрагмент програми:
int main()
{
int *nomer;___________________________________________________________
float *rist, *prtA;______________________________________________________
int n = 10;____________________________________________________________
float stud1=34.9, stud2, stud3;___________________________________________
nomer = &n;_________________________________________________________
prtA = &stud1;________________________________________________________
cout << "nomer = " << nomer << "\n";_____________________________________
cout << "stud1= " <<*prtA<< "\n";________________________________________
rist = &stud2;_________________________________________________________
*rist = 1.65;__________________________________________________________
cout << "stud2= " << stud2;_____________________________________________
getch();______________________________________________________________
}
Отримаємо наступний результат:
Приклад 6.Обчислити довжини (в байтах) вказівників на різні типи даних можна так:
int *prt_i; double *prt_d; char *ptr_c;
cout << "\n na tsiliy tip = " << sizeof(prt_i);
cout << "\n na diusniu tip = " << sizeof(prt_d);
cout << "\n na simvolniu tip = " << sizeof(ptr_c);
Отримаємо:
Вказівники можна переадресовувати.
Сталий вказівник, що вказуватимемо на одну і ту ж адресу, оголошують так:
const int *rik;
Для вказівників залежно від операційної системи та версії компілятора резервується 2 або 4 байти в оперативній пам’яті.
Таблиця 6. Операції, визначені над вказівниками
Операція |
Приклади і пояснення |
==, !=, >=, <=, >, < |
Порівнює значення двох вказівників (адреси, на які вони вказують). Наприклад, якщо вказівники вказують на одне і те ж саме дане, то результатом порівняння vk1 == vk2 беде істина, інакше – хибність. |
- |
vk1 - vk2. Використовується для визначення кількості елементів, які наявні між двома вказівниками. |
+, - |
vk1 + k, vk1 – k. Знаходить вказівник, який зміщений відносно даного на k одиниць. |