Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4360_С++_мас.doc
Скачиваний:
8
Добавлен:
11.11.2019
Размер:
429.06 Кб
Скачать

Тема: Практична робота “Впорядкування масивів”

Мета:

  1. Розвиток навичок роботи опрацювання масивів

  2. Розвиток навичок аналізу та локалізації помилок

  3. Формування самостійності

Тип: Розвиток навичок

Обладнання:

  1. Презентація “Впорядкування масивів”

  2. Програми, що були збережені на попередньому уроці

Епіграф “Глаза бояться – руки делают” /народна мудрість/

Хід уроку

Етап уроку

Діяльність учителя

Діяльність учнів

1

Організаційний момент

Оголошення теми та плану уроку. Мотивація.

Визначення стратегії роботи:

  1. Тестові приклади – обов’язкові!

  2. Кожна пара учнів реалізує по 3 задачі слайду № 8 або, кожна пара реалізує одну задачу, а потім міні-турнір (тобто, доповідь, рецензування, робота опонента)

Записують у зошит

Обирають варіант роботи

2

Самостійна практична робота

Спостереження.

Надання допомоги в разі необхідності.

Перевірка виконання завдань

Розв’язування задач та їх реалізація.

Міні-турнір (оцінка від кожної пари учнів)

3

Домашнє завдання

Доопрацювати завдання з урахуванням зауважень

Записати в зошит

Запитання по виконанню завдань

Урок № 29

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

Мета:

  1. Ознайомити учнів з прийомами роботи з динамічними змінними

  2. Розвиток навичок аналізу кодів наведених програм

  3. Формування уважності, наполегливості, комунікативної компетентності

Тип: Засвоєння нового матеріалу, розвиток навичок

Обладнання:

  1. Лєхан С. А. Інформатика. С++. Спецкурс 10-12 клас. с.92

  2. Презентація “Вказівники, динамічні змінні й масиви” слайд № 1-9

  3. Картки “Одновимірні масиви”

Епіграф “Напимание хороших программ требует ума, вкуса и терпения” /Б. Страуструп/

Хід уроку

Етап уроку

Діяльність учителя

Діяльність учнів

1

Організаційний момент

Оголошення теми та плану уроку. Мотивація.

Записують у зошит

2

Засвоєння нового матеріалу

Лекція з використанням презентації

План:

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

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

  3. Приклади

  4. Завдання

Конспектування

Розібрати дію кожного оператора

3

Виконання тренувальних вправ

Спостереження. Надання допомоги в разі необхідності.

Реалізувати будь-яку програму з прикладів

4

Закріплення

Розібрати завдання слайду № 9

Якщо вистачає часу – картки “Одновимірні масиви” реалізувати з використанням динамічного масиву

Занотувати.

Складання та реалізація програм

3

Домашнє завдання

Розв’язати завдання слайду № 9

Записати в зошит

Теоретичний матеріал до уроку «Вказівники, динамічні змінні й масиви»

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

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

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

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

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

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

  1. int *n=new int;

  2. int *m=new int (10);

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

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

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

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

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

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

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

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

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

  1. delete n;

  2. delete m;

  3. delete [] p;

Приклади

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

# include< iostream.h> # include<conio.h> int main () {int n, *a; //розмір та масив cout<<“n=”; cin>>n; a=new int [n]; for(int i=0; i<n; i++) cin>>a[i]; //уведення масиву cout<<“masic:\n”; for (int i=0; i<n; i++) cout<<a[i]<<“ “; cout<<endl; //виведення масиву delete []a; // вивільнення пам'яті getch(); return 0; }

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

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

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

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

# include< iostream.h> # include<conio.h> //прототипи 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; }

//--------функції------------------ void _Input(int*a, int n); { for(int i=0; i<n; i++) cin>>a[i]; } //----------------------------- void _Print(int*a, int n); { for(int i=0; i<n; i++) cout<<a[i]<<“ “; cout<<endl; } //----------------------------- void _Sort(int*a, int n); { int temp; bool fl=true; for(int j=1; ;j++) { for(int i=0; i<n; i++) if (a[i]>a[i+1] {temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; fl=false} if (fl==true) break; fl=true; } }

Завдання (Слайд № 9)

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

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

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

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

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

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

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

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

Розв’язки завдань

Задача 1

#include <iostrem.h>

#include <conio.h>

//----------------------------------------------

void _Input(int *, int);

void _Print(int *, int);

int MaxEl(int a[], int n)

{int max=a[0]; int L=0;

for (int I=1; I<n; I++)

if (a[I]>max)

{max=a[I]; L=I;}

return (L);}

//----------------------------------------------

int main ()

{int n, *a; cin>>n;

a=new int [n];

_Input(a,n);

int L=MaxEl(a,n);

_Print(a,n);

cout<<a[L]<<endl;

delete []a;

getch ();

return 0;

}

//-----------------------------------------------

void _Inpur (int *a, int n)

{for (int I=0; I<n; I++) cin>>a[I];}

//-----------------------------------------------

void _Print( int *a, int n)

{for (int I=0; I<n; I++) cout<<a[I]<<” “;

cout<<endl;}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]