🗊 Презентация Покажчики та масиви

Нажмите для полного просмотра!
Покажчики та масиви, слайд №1 Покажчики та масиви, слайд №2 Покажчики та масиви, слайд №3 Покажчики та масиви, слайд №4 Покажчики та масиви, слайд №5 Покажчики та масиви, слайд №6 Покажчики та масиви, слайд №7 Покажчики та масиви, слайд №8 Покажчики та масиви, слайд №9 Покажчики та масиви, слайд №10 Покажчики та масиви, слайд №11 Покажчики та масиви, слайд №12 Покажчики та масиви, слайд №13 Покажчики та масиви, слайд №14 Покажчики та масиви, слайд №15 Покажчики та масиви, слайд №16 Покажчики та масиви, слайд №17 Покажчики та масиви, слайд №18 Покажчики та масиви, слайд №19 Покажчики та масиви, слайд №20 Покажчики та масиви, слайд №21 Покажчики та масиви, слайд №22 Покажчики та масиви, слайд №23 Покажчики та масиви, слайд №24

Содержание

Вы можете ознакомиться и скачать презентацию на тему Покажчики та масиви. Доклад-сообщение содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Покажчики та масиви
Описание слайда:
Покажчики та масиви

Слайд 2


Покажчики Покажчики (вказівники) призначені для збереження адрес областей пам`яті й дозволяють маніпулювати об`єктом, що розташований в цій пам`яті....
Описание слайда:
Покажчики Покажчики (вказівники) призначені для збереження адрес областей пам`яті й дозволяють маніпулювати об`єктом, що розташований в цій пам`яті. В С++ розрізняють покажчики: на об`єкт, на функцію, на void. Зараз мова буде йти про покажчики на об`єкт (змінні). Масиви та покажчики в С++ дуже тісно пов`язані. Покажчики дозволяють виконати довільну операцію з масивами. Ім`я масиву розглядається як константний покажчик на початок відповідної області пам`яті. Покажчики використовуються в С++ дуже інтенсивно й не тільки для роботи з масивами. Одне з основних застосувань покажчиків полягає в роботі з динамічно створеними об`єктами: динамічними масивами, списками, деревами. Покажчики дозволяють передавати в функції “великі” об`єкти.

Слайд 3


Покажчики Кожний покажчик асоціюється з деяким типом даних. Область пам`яті, що адресується покажчиком, інтерпретується як значення відповідного...
Описание слайда:
Покажчики Кожний покажчик асоціюється з деяким типом даних. Область пам`яті, що адресується покажчиком, інтерпретується як значення відповідного типу. Визначення покажчика має вигляд: *; Наприклад: int *a, b, *c; Покажчик може бути змінною, або константою, а також вказувати на змінну, або константу.

Слайд 4


Приклади int i; //ціла змінна const int ci=1; //ціла константа int *pi; //покажчик на цілу змінну const int *pci; //покажчик на цілу константу int...
Описание слайда:
Приклади int i; //ціла змінна const int ci=1; //ціла константа int *pi; //покажчик на цілу змінну const int *pci; //покажчик на цілу константу int *const cp = &i; //покажчик-константа на цілу //змінну const int *const cpc=&ci; //покажчик-константа на цілу //константу

Слайд 5


Ініціалізація покажчиків При визначенні покажчика бажано здійснити його ініціалізацію. Способи ініціалізації: Присвоювання адреси існуючого об`єкта:...
Описание слайда:
Ініціалізація покажчиків При визначенні покажчика бажано здійснити його ініціалізацію. Способи ініціалізації: Присвоювання адреси існуючого об`єкта: операцією & int a = 5; //ціла змінна a int *p = &a; //покажчик - адреса змінної a int *p (&a); //теж саме, інший спосіб іншим ініційованим покажчиком int *r = p; //p отримав значення за допомогою масиву int b[10]; //масив int *p = b; //присвоювання адреси початку масиву

Слайд 6


Ініціалізація покажчиків Присвоювання адреси пам`яті в явному вигляді: char *p = (char *)0xB80000000; Присвоювання порожньої адреси: int *pnt = NULL;...
Описание слайда:
Ініціалізація покажчиків Присвоювання адреси пам`яті в явному вигляді: char *p = (char *)0xB80000000; Присвоювання порожньої адреси: int *pnt = NULL; int *pp = 0; Виділенням динамічної пам`яті: int *pnt = new int; int *pp = new int (10); int *qq = new int [10]; вимагає явного звільнення пам`яті за допомогою операції delete delete pnt; delete [] qq;

Слайд 7


Покажчики Можна описувати складні типи. Діють правила: За означенням (), [] мають однаковий пріоритет більший за пріоритет *, розглядаються...
Описание слайда:
Покажчики Можна описувати складні типи. Діють правила: За означенням (), [] мають однаковий пріоритет більший за пріоритет *, розглядаються зліва-направо. Якщо праворуч від імені [] – це масив, якщо () – функція. Якщо ліворуч від імені * - це покажчик на проінтерпретовану раніше конструкцію. Якщо праворуч ) – потрібно застосувати правила для внутрішньої частини () , а потім переходити до зовнішньої частини. В останню чергу інтерпретується специфікатор типу. Наприклад: int *(*p[10])(); // ???

Слайд 8


Операції з покажчиками * - розіменування, & - отримання адреси, new – виділення та delete – звільнення пам`яті: *pi = abs(*pi); присвоювання: pi =...
Описание слайда:
Операції з покажчиками * - розіменування, & - отримання адреси, new – виділення та delete – звільнення пам`яті: *pi = abs(*pi); присвоювання: pi = pnt; порівняння: pi == pnt арифметичні мають сенс при роботі з структурами послідовно розташованими в пам`яті (наприклад - масиви) : додавання константи (pi + 5) віднімання константи (pi - 2) різниця покажчиків (pi - ri) інкременту (++) (pi++) (++pi) декременту (--) (pi--) (--pi) фактично дії відбуваються з одиницями виміру sizeof().

Слайд 9


Масиви та покажчики В результаті визначення масиву у змінній зберігається адреса його першого елементу. Ім`я змінної-масиву – покажчик на перший...
Описание слайда:
Масиви та покажчики В результаті визначення масиву у змінній зберігається адреса його першого елементу. Ім`я змінної-масиву – покажчик на перший елемент. Тому звернення до елементів можливі як за індексами, так й за результатами “адресної арифметики”. Наприклад: int arr[3] = {1, 2, 3}; наступні вирази еквівалентні: arr[1] *(arr + 1) *(1 + arr) 1[arr]

Слайд 10


Масиви та покажчики const short size = 3; int *p = 0; int arr[size] = {1, 2 ,3}; p = arr; p = &arr[0]; //еквівалентні //перебір елементів for (int...
Описание слайда:
Масиви та покажчики const short size = 3; int *p = 0; int arr[size] = {1, 2 ,3}; p = arr; p = &arr[0]; //еквівалентні //перебір елементів for (int i=0; i

Слайд 11


Масиви та покажчики //копіювання масиву const int k = 100; void copy_arr(int n, double a[k], double b[k]) {int *pa = a; int *pb = b; for (; n>0; n--)...
Описание слайда:
Масиви та покажчики //копіювання масиву const int k = 100; void copy_arr(int n, double a[k], double b[k]) {int *pa = a; int *pb = b; for (; n>0; n--) *pb++ = *pa++; } //звернення double aa[k]; double bb[k]; ... copy_arr(k,aa, bb);

Слайд 12


Приклад //бінарний пошук int bin_search(int key, const int *arr, int count) { if (count < 1 || !arr) return -1; int beg = 0, end = count - 1, i = 0;...
Описание слайда:
Приклад //бінарний пошук int bin_search(int key, const int *arr, int count) { if (count < 1 || !arr) return -1; int beg = 0, end = count - 1, i = 0; while (beg

Слайд 13


Масиви покажчиків Можна визначати масиви покажчиків: * []; Наприклад: int *p[3]; int x=10, y=20, z=30; p[0] = &x; p[1] = &y; p[2] = &z; cout
Описание слайда:
Масиви покажчиків Можна визначати масиви покажчиків: * []; Наприклад: int *p[3]; int x=10, y=20, z=30; p[0] = &x; p[1] = &y; p[2] = &z; cout

Слайд 14


Динамічні масиви Попередні масиви – “статичні масиви”. Кількість елементів задавалась при визначенні масиву (до виконання програми) й не підлягала...
Описание слайда:
Динамічні масиви Попередні масиви – “статичні масиви”. Кількість елементів задавалась при визначенні масиву (до виконання програми) й не підлягала змінам. Є можливість динамічного виділення пам`яті: = new []; Звільнення пам`яті: delete [] ; При звільненні пам`яті кількість елементів не вказується. Відповідальним за повернення пам`яті є програміст.

Слайд 15


Приклад int main(){ int n; int *p = 0, *q = 0; cout > n; cout
Описание слайда:
Приклад int main(){ int n; int *p = 0, *q = 0; cout > n; cout

Слайд 16


Динамічні масиви Потрібно враховувати, що при виділенні пам`яті може виникнути ситуація неможливості надати заявлений обсяг пам`яті. В сучасному...
Описание слайда:
Динамічні масиви Потрібно враховувати, що при виділенні пам`яті може виникнути ситуація неможливості надати заявлений обсяг пам`яті. В сучасному стандарті С++ активується виключення bad_alloc , що визначено у файлі . Приклад

Слайд 17


Багатовимірні динамічні масиви При створенні в операції new потрібно вказувати всі виміри (лівий вимір може бути змінною). Наприклад: int ind1 = 5;...
Описание слайда:
Багатовимірні динамічні масиви При створенні в операції new потрібно вказувати всі виміри (лівий вимір може бути змінною). Наприклад: int ind1 = 5; int **parr = (int **) new int [ind1][10];

Слайд 18


Багатовимірні динамічні масиви Більш безпечний та універсальний спосіб виділення пам`яті, без вказаного обмеження на виміри: int ind1, ind2; cout >...
Описание слайда:
Багатовимірні динамічні масиви Більш безпечний та універсальний спосіб виділення пам`яті, без вказаного обмеження на виміри: int ind1, ind2; cout > ind1 >> ind2; int **a = new int *[ind1]; for (int i = 0; i < ind2; i++) a[i] = new int[ind2];

Слайд 19


Багатовимірні динамічні масиви
Описание слайда:
Багатовимірні динамічні масиви

Слайд 20


Зауваження Дотримуватись розглянутих правил використання спефицікаторів при визначенні покажчиків та масивів покажчиків (наприклад, int *p[10] –...
Описание слайда:
Зауваження Дотримуватись розглянутих правил використання спефицікаторів при визначенні покажчиків та масивів покажчиків (наприклад, int *p[10] – масив з 10 покажчиків). Використовуючи явні механізми для виділення пам`яті на забувати про необхідність звільнення виділеної пам`яті. Враховувати, що при звільненні відповідний покажчик не змінюю свого значення. При виділення пам`яті враховувати можливість відсутності потрібного обсягу вільної пам`яті. Не порушувати правил “адресної арифметики” та порівнянь покажчиків. Не виходити покажчику за межі пам`яті об`єкту. Не допускати ситуацій з “втраченою пам`яттю”.

Слайд 21


Підсумки Розглянули лише покажчики на змінні, їх зв`язок з масивами, використання покажчиків для доступу до елементів масивів. Використання...
Описание слайда:
Підсумки Розглянули лише покажчики на змінні, їх зв`язок з масивами, використання покажчиків для доступу до елементів масивів. Використання покажчиків дозволяє отримувати більш гнучкі та ефективні рішення, але при нехтуванні правилами може бути джерелом чималих проблем. Можливості використання покажчиків не вичерпуються лише розглянутими питаннями. Бібліотеки С надають також інші можливості для явного керування пам'яттю.

Слайд 22


Задачі (використовуючи розглянуті можливості) Пошук заданого значення у масиві з цілих: масив одновимірний; масив одновимірний впорядкований; масив...
Описание слайда:
Задачі (використовуючи розглянуті можливості) Пошук заданого значення у масиві з цілих: масив одновимірний; масив одновимірний впорядкований; масив двовимірний; масив двовимірний впорядкований; Перевірити, чи є задане число паліндромом. Записати функцію для “бульбашкового” сортування масиву. Записати функцію для визначення чи є квадратна матриця симетричною. Записати функцію для транспонування квадратної матриці.

Слайд 23


Задачі Для заданої дійсної матриці знайти індекси всіх її “сідлових точок” (елементи, що є одночасно найменшими у рядку й найбільшими у стовпчику,...
Описание слайда:
Задачі Для заданої дійсної матриці знайти індекси всіх її “сідлових точок” (елементи, що є одночасно найменшими у рядку й найбільшими у стовпчику, або навпаки.) Визначити чи є ціла квадратна матриця “магічним квадратом” (суми елементів у всіх рядках та стовпчиках однакові). В місті М діє p-ічна система числення, а номери тролейбусних квитків містять 2k розрядів. Квиток вважається щасливим, якщо сума перших k розрядів дорівнює сумі останніх k розрядів. Вхід: Значення p та k. Вихід: Кількість щасливих квитків.

Слайд 24


Задачі Обчислити масив А[100], який містить 100 перших елементів (у зростаючому порядку) множини М, що визначається наступним чином: 1. 1 належить М;...
Описание слайда:
Задачі Обчислити масив А[100], який містить 100 перших елементів (у зростаючому порядку) множини М, що визначається наступним чином: 1. 1 належить М; 2. якщо x належить М, то y=2*x+1 та z=3*x+1 належать М; 3. ніякі інші числа не належать М. Побудувати перші N натуральних чисел дільниками яких є тільки числа 2, 3, 5. Задані А, В, N. Знайти всі натуральні числа, що не перевищують N, які представляються у вигляді суми довільної кількості доданків, кожен з яких А або В.



Похожие презентации
Mypresentation.ru
Загрузить презентацию