Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна


НазваВказівники, динамічні змінні й масиви Максименко Марина Миколаївна
Дата конвертації19.02.2013
Розмір445 b.
ТипПрезентации


Вказівники, динамічні змінні й масиви

  • Максименко Марина Миколаївна

  • вчитель інформатики вищої категорії, вчитель-методист

  • Конотопської гімназії

  • Конотопської міської ради Сумської області

  • 2008 р.


Зміст

  • Статичні та динамічні дані

  • Робота з динамічними даними

  • Приклади

  • Завдання

  • Багатовимірні масиви

  • Приклад

  • Завдання

  • Література



Статичні та динамічні дані

  • У С++ змінні можуть бути розміщені або статично – під час компіляції, або динамічно – під час виконання програм, шляхом виклику відповідних функцій зі стандартної бібліотеки.

  • Статичне розміщення більш ефективне, тому що виділення пам'яті відбувається до виконання програми, але ми повинні заздалегідь знати тип і розмір розташовуваної змінної.

  • Завдання, у яких потрібно зберігати й обробляти заздалегідь невідоме число елементів, зазвичай вимагають динамічного виділення пам'яті. Після того як потреба у динамічній змінній зникає, місце, яке вона займала, можна звільнити для інших динамічних об'єктів.



Робота з динамічними даними

  • Виділення динамічної пам'яті здійснюється операцією new. За допомогою new виділяється пам’ять, і адреса, з якої вона починається, заноситься у вказівник на потрібний тип:

  • int *n=new int;

  • int *m=new int (10);

  • У зразку 1 виконується виділення достатньої для розміщення величини типу int ділянки динамічної пам'яті й записує адресу початку цієї ділянки в змінну n. Пам’ять під саму змінну n виділяється на етапі компіляції.

  • У зразку 2, крім описаних вище дій, проводиться ініціалізація виділеної пам'яті значенням 10.



Робота з динамічними даними Виділення динамічної пам'яті

  • int n=100;//розмірність масиву float *p=new float [n];

  • У зразку 3 створюється динамічний масив, але p – не його ім'я, а вказівник , що зберігає адресу початку безперервної області динамічної пам'яті, достатньої для розміщення 100 елементів дійсного типу.

  • Увага! Динамічні масиви при створюванні ініціювати не можна, і вони не заповнюються нулями.

  • Доступ до елементів динамічного масиву здійснюється так само, як до статичного: p[5] або *(p+5)



Робота з динамічними даними Звільнення динамічної пам'яті

  • Для звільнення пам'яті, виділеної за допомогою операції new, використовують операцію delete:

  • delete n;

  • delete m;

  • delete [] p;



Приклади

  • З клавіатури вводиться ціле число n, а потім ще n цілих чисел. Розмістити уведені n чисел у динамічному масиві, після чого вивести їх на екран, відокремивши пропусками.

  • # include< iostream.h> # include int main () {int n, *a; //розмір та масив cout<<“n=”; cin>>n; a=new int [n]; for(int i=0; i>a[i]; //уведення масиву cout<<“masic:\n”; for (int i=0; i



Приклади (продовження)

  • Скласти програму, яка реалізує такі функцій для роботи з масивами:

  • Уведення елементів;

  • Виведення елементів;

  • Сортування масиву.

  • # include< iostream.h> # include //прототипи void _Input(int*, int); void _Sort(int*, int); void _Print(int*, int); int main () {int n, *a; //розмір та масив cout<<“n=”; cin>>n; a=new int [n]; _Input(a, n); cout<<“masic:\n”; _Print(a, n); _sort(a, n); cout<<“ sort \n”; _Print (a, n); delete []a; //вивілненя пам'яті getch(); return 0; }



Завдання

  • Скласти програму, яка реалізує такі функцій для роботи з масивами:

  • Уведення елементів;

  • Виведення елементів;

  • Пошук максимального елементу масиву.

  • Скласти програму, яка реалізує такі функцій для роботи з масивами:

  • Уведення елементів;

  • Виведення елементів;

  • Обчислення суми додатних елементів масиву.



Багатовимірні масиви

  • Статичні масиви

  • Опис

  • float a[5][4];

  • Початкові значення

  • int c[3][2]={{4,2},{6,7},{5,8}}; //початкові значення групуються в рядки

  • int d[2][2]={{10},{9,14}}; // d[0][0]=10, d[0][1]=0

  • Звернення до елементу a[i][j]



Багатовимірні масиви

  • Динамічні масиви

  • Опис

  • int ryad, stovp; cin>>ryad>>stovp;

  • int **a=new int *[ryad]; //вказівник на вказівник на int, виділяється пам’ять під масив вказівників на рядки масиву

  • for (int i=0; i

  • Звільнення пам'яті

  • delete [] a;



Приклад

  • Написати програму, в якій для двовимірного масиву цілих чисел визначається номер крайнього стовпця, розташованого ліворуч, що містить тільки додатні елементи. Якщо такого стовпця немає, виводиться відповідне повідомлення.

  • # include< iostream.h> # include # include int main () {int ryad, stovp; cin>>ryad>>stovp; int i, j;

  • int **a=new int *[ryad]; for (i=0; i>a[i][j]



Завдання

  • Випробуйте програму прикладу. Переробіть її так, щоб визначити номер крайнього стовпця, розташованого ліворуч, що містить тільки від'ємні елементи. Якщо такого стовпця немає, виводиться відповідне повідомлення.

  • Цілочисельний масив з 8 рядків та 15 стовпців заповнити випадковими одноцифровими числами. Скільки разів у масиві зустрічається число 5?

  • Доповнити програму-розв'язок попередньої задачі виведенням таблиці кількості входжень у масив кожного з чисел (наприклад: 0->5 raz, 1->8 raz, …)

  • Заданий одновимірний масив цілих чисел. Вивести значення елементів масиву:

  • У зворотному порядку

  • З парними індексами

  • З непарними індексами

  • Які є парними числами

  • Які є непарними числами



Література

  • Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007.

  • Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006.

  • Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006.

  • Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003

  • Лисенко Т.І. Поглиблене вивчення програмування в школі. – К.:ТОВ Редакція “Комп'ютер”, 2007.



Схожі:

Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconТипи даних. Змінні в С++. Присвоєння значень змінним Максименко Марина Миколаївна
...
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconВступ до мови програмування С++ Максименко Марина Миколаївна
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconВпорядкування масивів Максименко Марина Миколаївна
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconОператор розгалуження Максименко Марина Миколаївна
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconРядкові величини в С++ Максименко Марина Миколаївна
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconФайлові операції у С++ Максименко Марина Миколаївна
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconВказівники та динамічна пам’ять План Поняття про динамічну пам'ять, вказівники та динамічні змінні
...
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconФункції у С++ Максименко Марина Миколаївна
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconМасиви Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист
Вказівники, динамічні змінні й масиви Максименко Марина Миколаївна iconОператори для організації циклів. Мова С++ Максименко Марина Миколаївна
Оператори для організації циклів. Мова С++ Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка