
- •1.Питання.(Поняття та складові архітектури комп’ютера)
- •2.Питання.(Поняття архітектури набору команд. Основні групи операцій архітектури набору команд.)
- •3.Питання.(Принципи архітектури фон Неймана)
- •4.Питання(Поняття та властивості алгоритмів)
- •5.Питання(Класифікація алгоритмів)
- •6.Питання(Форми запису алгоритму. Блок-схема алгоритму)
- •7. Основні структурні елементи блок-схеми алгоритму
- •9. Мови високого і низького рівнів програмування. Асемблер.
- •11. Змінна. Ім’я і значення змінної. Правила вибору імені для змінної
- •13. Оголошення та ініціалізація змінних
- •14. Глобальна і локальна змінна. Область дії змінної. Оператор ::
- •15. Оголошення та ініціалізація константи. Типи констант
- •16. Арифметичні операції. Оператор sizeof()
- •17. Оператори відношень. Логічні оператори
- •18. Оператори інкремент/декремент. Оператори присвоєння
- •20. Унарні, бінарні та тернарні оператори. Пріоритет операцій
- •26).Оператори while,do-while
- •27). Оператор for
- •28).Оператори break,continue,go to
- •29).Оператори exit,return
- •30). Структура програми згідно процедурно-орієнтованого підходу.
- •32) Інтерфейс та виклик функції
- •33) Параметри функції
- •35)Inline-функції
- •46)Арифметика вказівників
- •47)Динамічна пам'ять. Оператори new і delete
- •48. Поняття посилання. Оголошення та ініціалізація посилання
- •49. Використання посилання у якості параметру функції
- •50. Оголошення та створення динамічного масиву
- •65)Вкладены структури даних
- •78.Поняття та оголошення об'єднання. Анонімне об'єднання
- •79. Поняття та оголошення переліку
- •80. Типи даних для роботи з датою і часом. Структура tm
- •81. Функції бібліотеки ctime
- •82. Поняття та класифікація зв'язних списків
- •84..86 Оголошення зв’язних циклів
- •91.Навігація по зв’язному списку
- •92Реалізація деструктору зв’язного списку
- •97)Реалізація деструктору стеку
- •98Поняття дерева, ключового вузла, вузлів-нащадків. Висота і глибина дерева
- •99. Основні операції над деревом
- •103. Конструктор дерева
- •104. Дестуктор дерева
46)Арифметика вказівників
З показниками на дані можливі арифметичні операції можуть бути додавання і віднімання. приклад:
#include <iostream>
using std::cout;
int main(void) {
int a = 0;
int b = 0;
ptrdiff_t inInts = &a – &b;
ptrdiff_t inChars =
reinterpret_cast<char*>(&a)
– reinterpret_cast<char*>(&b);
cout<< inChars << ‘ ‘<< inInts << ‘\n’;
return 0;}
Одиниця виміру різниці між покажчиками - це кількість елементів указуваного типу. У наведеному прикладі у змінній inInts буде різниця в int-ах, а в inChars - в char-ах. Треба зауважити, що даний код може виводити на екран різні числа в залежності від:
1.компілятора2.розміру int3.виду збірки (debug / release)
Крім вирахування (обчислення різниці покажчиків), до покажчиків можна застосовувати операції додавання і віднімання з цілим числом. Якщо в наведеному вище прикладі скласти & b і inInts, то ми отримаємо & a.
Таким чином з двома покажчиками можна виробляти такі арифметичні операції:
- ==! = <> <=> =
а з одним покажчиком і числом такі:
+ - + + - + = - =
З арифметикою покажчиків пов'язана операція доступу до елементу масиву за індексом. У наведеному нижче прикладі, всі змінні отримають значення елемента масиву з індексом 3, тобто це все еквівалентні запису однієї і тієї ж ідеї.
47)Динамічна пам'ять. Оператори new і delete
Для роботи з динамічною памяттю використовують 2 операції – виділення і звільнення. Для виділення памяті використовують оператор “new”, який виділяє память для обєкту заданого типу і повертає вказівник на виділений блок памяті.
Char *str=new char [10]
За звільнення памяті відповідає оператор “delete”. Оператор “delete”, як аргумент приймає динамічну змінну(вказівник) і звільняє пам'ять на яку вказівник вказує.
Int *ptr = new int;
Char *str = new char[10]
Delete ptr;
Delete []str;
Кількість операторів new практично повинна бути рівною кількості операторів delete.
48. Поняття посилання. Оголошення та ініціалізація посилання
Посилання - це інше ім’я об’єкта(ярлик).
Оголошення посилання:
double num1 = 3.14;
double &num2 = num1;
Посилання повинно бути зразу ініціалізоване після оголошення. Найбільш поширене використання посилань – використання у якості параметрів ф-ї
49. Використання посилання у якості параметру функції
Найбільш поширеним використання посилання це використання з якості параметрів ф-ції(передача параметрів за посиланням).
Функція з параметром-посилання.
#include <iostream.h>
void sqr(int &);// прототип функції
int main() {
int t = 3;
cout << "Почат знач t:" << t; // буде 3
sqr(t);
cout<<"\nкінцеве знач t:" << t; // буде 9
return 0;}
void sqr(int&x){
x*= x;}
50. Оголошення та створення динамічного масиву
Динамічним називають масив, розмірність якого стає відомою в процесі виконання програми.
Оголошення
Int * Arr = new int [size]
Створення
1.Створити об'єкт класу-оболонки динамічного масиву, при цьому конструктор автоматично виділити пам'ять зазначеного розміру.2.Підключити бібліотеку динамічного масиву за допомогою команди # include. Для створення об'єкта використовувати клас vector. Переміщення по масиву відбувається так само, як і в звичайному випадку, за допомогою індексів. Особливими тут є функції додавання та видалення нових елементів, а також ряд допоміжних методів.
51. Робота з багатовимірним динамічним масивом
Виділяється динамічна пам’ять heap. Для роботи з динамічною пам ‘ятю використовують дві операції : виділення та звільнення. Для виділення пам’ яті використовують оператор new, який виділяє пам ‘ять для об ‘ єкту даного типу і виділяє вказівник на виділений блок динамічної пам ‘яті. Динамічна пам ‘ять обмежена, і тому коли не можна виділити пам‘ять, то new замість вказівника повертає 0. Оператор delete, як аргумент приймає як динамічну змінну і звільняє пам’ять на яку вказує даний вказівник.
Int *ptr = new int;
Delete ptr;
Кількість операторів new і delete має бути одинакова. Багатовимірний динамічний масив має доступ до елемента масиву.
52. Поняття та види стрічок
Стрічка – це послідовність символів, які зберігаються в пам’яті один за одним.
Види:
стрічки С;
Цю стрічку використовують як масив.
клас string.
Цю стрічку використовують як просту змінну.
53. Оголошення та ініціалізація С-стрічки
Ологолошується як масив символів.
Оголошення
char cat [5] ={‘b’, ‘f’, ’k’, ’a’, ’\0’};
Стрічка в мові програмуванні С має закінчуватись ось таким символом ’\0’- це є символ кінця стрічки.
Ініціалізація у С-стрічці- це оголошення змінної, у нашому випадку те що знаходиться у фігурних дужках.
54. Функції для роботи з С-стрічками
Strcpy - копіювання стрічки.
Strcat - об’єднання стрічок
Strtook - розбити стрічку на слова
Strstr – знай. Частину стрічки
Strlen – отрим. Розмір стрічки
Strrchr – знай. Ост. Поз. Сим. В стрічці
55. Основні операції над стрічками
В С++ можна додавання, присвоєння.
60) Cтруктура-це користувацький тип даних,який дозволяє об’єднати різний тип змінних.
1.Оголошення структури:
struct student {
string name , group;
bool male;
int age;
float rating;};
2.створення змінної
struct student {
} st;
61) Доступ до окремого елемента структури забезпечується оператором вибору : . (прямий селектор) або ->(не прямий селектор).
62) Масив структур- він подібний до звичайних масивів але його елементи мають структурований тип
Оголошення масива структур:
struct Data{
Int day;
Int month;
Int year;
}Date;
Date arr[100];
Доступ до полів структури подібний до доступу звичайних змінних , і використання індексу елементу у квадратних дужках.
Приклад:Arr[25].day=24
Arr[12].month=12
63) Доцільним є також зв’язок структур та вказівників який дозоляє обійти деякі складні моменти.
Приклад:
64) Створення і підтримання динамічних структур даних потребує динамічного розподілу пам’яті, тобто можливість у процесі виконання програми збільшувати ємність пам’яті для зберігання нових вузлів і звільнення пам’яті, у якій немає потреби.
Student*KN_11;
KN_11=new student[34];
Student*KN_11=new_student[34];
Cin>>KN_11[0].name;
KN_11.age=18
Delete[]st;
KN_11->name;
KN_11[0].name;