Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Теоретичний матеріал до уроку «Поняття масиву. Опис та ініціалізація»

Поиск

Поняття масиву

Масив – це сукупність елементів одного типу, звернення до яких здійснюється за допомогою імені масиву та індексу.
(Лєхан С.А.)

Масив – це впорядкований скінчений набір даних одного типу, які зберігаються в послідовно розташованих комірках оперативної пам'яті і мають спільну назву (яку надає користувач). (Глинський Я.М.)

Масив – це структура даних, що являє собою однорідну (за типом), фіксовану (за розміром і конфігурацією) сукупність елементів, упорядкованих за номерами. (Скляр І.В.)

Масивом називається скінчена послідовність змінних одного типу, які мають однакове ім'я та розрізняються індексом. (Караванова Т.П.)

Масив – це змінна, утворена послідовністю значень, які називають елементами, є однотипними й ідентифікуються номерами (індексами)/ (Ставровський А. Б.)

Опис масиву

Загальний вигляд:

тип ім'я [розмір];

Тип ім’я [p1] [p2];

Розмір – це кількість елементів масиву. Розміром може бути лише стала величина (не змінна).

Розрізняють одно- та багатовимірні масиви.

Наприклад:

int a[5]; char st[30]; float x[5], y[5];

Звернення до елементу масиву

За допомогою імені масиву:

a[0]=3; cout<<a[4];

Увага! Нумерація елементів масиву починається з нуля. Контроль за виходом за межі масиву С++ не здійснює. Індекс повинен бути цілим додатним числом або математичним виразом, результатом обчислення якого є ціле додатне число.

За допомогою вказівників:

*a=3; cout<<*(a+4);

Назва масиву є вказівником на його перший елемент. Змінна *a містить значення першого елемента масиву a[0]. Оскільки всі елементи масиву розміщені у послідовних комірках оперативної пам'яті, то вказівник *(a+4) вказуватиме на 5-й елемент масиву (a[4])

Ініціалізація масиву

Проініціалізувати масив (надати значення елементам масиву) можна одним із способів:

Використовуючи принцип замовчування

Безпосередньо під час його оголошення

Застосовуючи команду присвоєння

Під час ведення із клавіатури

Під час введення із файлу

Приклади:

1. Присвоєння нульових значень int B[8]; for(int i=0; i<8; i++) B[i]=0;

2. Під час оголошення:
int s[5]={163, 4, 170, 3, 8}
float r[]={1.5, 3, 4.2} //компілятор сам визначає розмір =3
char a[6]=“abetka”; або char a[6]={‘a’, ‘b’, ‘e’, ‘t’, ‘k’, ‘a’}

3. Якщо початкових значень менше, ніж елементів у масиві, елементи, що залишилися автоматично одержують нульові початкові значення int n[10]={0};

4. Масиви-сталі оголошуються так:
const int flag[]={1, 2}; // якщо сталі не ініціалізувати під час оголошення елементам автоматично будуть присвоєні 0.

5. Використання константи для завдання розміру:
const int n=10; int m[n];

6. Уведення із клавіатури: int x[5]; for(i=0; i<5; i++) cin>>x[i];

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

Створити програму, що присвоює початкові нульові значення масиву В, що містить 8 цілих чисел і друкує його

Створити програму, що присвоює початкові значення масиву В, що містить 8 цілих чисел при оголошенні і друкує його

Створити програму, що присвоює початкові значення 1, 2,..10 масиву М з 10 елементів і виводить на екран елементи масиву з парними номерами

Передача масивів у функції

Оскільки в С++ не контролюється розмір масиву, то у функцію слід передавати також параметр, що містить кількість елементів у масиві:
void fun(int A[], int n);

Такий прийом дозволяє однією функцією обробляти масиві різних розмірів

Приклади (Слайд № 10)

Вивести значення масивів:

#include<iostream.h>

#include<conio.h>

void show_array(int A[], int n)
{
for (int i=0; i<n; i++)
cout<<A[i]<<‘ ‘;
cout<< endl;
}
int main ()
{
int little[5]={1,2, 3, 4, 5};
int big[3]={1000, 2000, 3000};
show_array(little, 5);
show_array(big, 3);
getch();
return 0;
}

Завдання: змініть програми (слайд № 8) так, що використати наведені функції (опрацюйте декілька масивів)

Увести з клавіатури значення масивів та надрукувати їх:

#include<iostream.h>

#include<conio.h>

void get_array(int A[], int n)
{
for (int i=0; i<n; i++)
cin>>A[i];
}
int main ()
{
int little[5];
int big[3];
get_array(little, 5);
for (int i=0; i<5; i++) cout<<little[i]<<endl;
get_array(big, 3);
for (int i=0; i<3; i++) cout<<big[i]<<endl;
getch();
return 0;
}

Завдання: змініть програми (слайд № 8) так, щоб використати наведені функції (опрацюйте декілька масивів)

Опис та ініціалізація масиву

  1. Нехай int а[5]={10, 11, 12, 13, 14}
    1. a[3]=? (13)
    2. a[5]=? (визначити неможливо)
  2. Нехай int а[5]={10, 11, 12, 13}
    1. a[4]=? (0)
    2. a[0]=? (10)
  3. Виберіть помилкові звернення до елементів масиву, якщо int і,j; float c;
    1. a[i+j]= (+)
    2. a[i/j]= (+)
    3. a[c]= (-)
    4. a[“I”]= (-)
  4. Нехай float r[]={1.5, 3, 4.2}. Вкажіть розмір масиву (3)
  5. Нехай char a[6]=“abetka”;
    1. a[3]=? (t)
    2. a[0]=? (a)
    3. a[0]==a[5] (true)
  6. Чи можна змінювати в програмі значення елементів масиву а? (так)
  7. Оберіть вірне передавання масиву в функцію
    1. void fun(int A[], int n); (+)
    2. void fun(int A[void], int n);
    3. void fun(int A[n], int n);
  8. Вкажіть правильно організований цикл для опрацювання всіх елементів масиву
    1. for (int i=1; i<=n; i++)
    2. for (int i=0; i<=n; i++)
    3. for (int i=1; i<n; i++)
    4. for (int i=0; i<n; i++) (+)
  9. Що буде виведено на екран:
    1. cout<<а[i]<<‘ ‘; (і-й елемент масиву)
    2. cout<<а; (адрес, з якого розміщується в пам’яті масив)
  10. Вкажіть помилкові описи масивів
    1. int a[3];
    2. int a[‘f’]; (-)
    3. int a[] (допустимо в заголовку функції)
    4. int a[3]={1}
  11. Що передається в функцію fun(a[2], 5);
    1. Масив, розмір якого 2
    2. Масив розмір якого 5
    3. 2-й елемент масиву (+)

 

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

Слайд № 8



Задача № 1

#include <iostream.h>

#include <conio.h>

int main()

{ int b[8];

for (int I=0; I<8; I++) b[I]=0;

for (I=0; I<8; I++)

cout<<I<<”\t”<<b[I]<<”\n”;

getch (); return 0;}

Задача № 2

#include <iostream.h>

#include <conio.h>

int main()

{ int b[8]={1, 2, 3, 4, 5, 6, 7, 8};

for (int I=0; I<8; I++)

cout<<I<<”\t”<<b[I]<<”\n”;

getch ();

return 0;}

Задача № 3

#include <iostream.h>

#include <conio.h>

int main()

{ int b[10];

for (int I=0; I<10; I++) b[I]=I;

for (I=0; I<10; I++)

cout<<I<<”\t”<<b[I]<<”\n”;

getch ();

return 0;

}

Слайд № 10

Задача № 1

#include <iostream.h>

#include <conio.h>

void show_array (int a[], int n)

{for (int i=0; i<n; i++)

cout<<a[i]<<” “; cout<<endl;}

int main()

{ int b[8], c[5];

for (int I=0; I<8; I++) b[I]=0;

for (I=0; I<8; I++) c[I]=0;

show_array (b, 8); show_array (c, 5);

getch (); return 0;}

Задача № 2

#include <iostream.h>

#include <conio.h>

void show_array (int a[], int n)

{for (int i=0; i<n; i++)

cout<<a[i]<<” “;cout<<endl;}

int main()

{ int b[8]={1, 2, 3, 4, 5, 6, 7, 8};

int c[5]={9, 10, 11, 12, 13};

show_array (b, 8); show_array (c, 5);

getch (); return 0;}

Задача № 3

#include <iostream.h>

#include <conio.h>

void show_array (int a[], int n)

{for (int i=0; i<n; i++)

cout<<a[i]<<” “; cout<<endl;}

int main()

{ int b[10], c[4];

for (int I=0; I<10; I++) b[I]=I;

for (int I=0; I<4; I++) c[I]=I+10;

show_array (b, 10); show_array (c, 4);

getch (); return 0;}


Урок № 25

Тема: Складання програм із масивами

Мета:

  1. Розширити уявлення учнів про алгоритми опрацювання масивів
  2. Розвиток алгоритмічного мислення
  3. Формування самостійності, наполегливості, інформаційної компетентності

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

Обладнання:

  1. Лєхан С. А. Інформатика. С++. Спецкурс 10-12 клас. с.82-85
  2. Шпаргалка “Масиви у С++”

Епіграф “Коли людина хоче дізнатися – вона досліджує ” /М. Горький/

Хід уроку

Етап уроку Діяльність учителя Діяльність учнів
  Організаційний момент Оголошення теми та плану уроку. Мотивація. Записують у зошит
  Актуалізація опорних знань Організувати роботу Обмін друг із другом завданнями, що приготували вдома. Виконання завдань, перевірка
  Засвоєння нового матеріалу Організувати роботу зі шпаргалкою. Пояснити алгоритм створення програми за фрагментами шпаргалки Самостійне складання конспекту з використанням шпаргалки
  Виконання тренувальних вправ   Закріпити номер прикладу зі шпаргалки за робочим місцем учнів. Спостереження. Надання допомоги в разі необхідності. Перевірка виконання завдань Розв’язування задач та їх реалізація. Обмін розв’язками    
  Домашнє завдання
  1. Випадковим чином заповнити масив з 30 чисел. Визначити, скільки елементів відмінні від останнього
  2. Увести число. Масив з 20 чисел заповнити випадковими числами в межах від 0 до 50. перевірити, чи зустрічається уведено число в масиві
  3. Випадковим чином задати масив з 25 цілих чисел. Надрукувати спочатку всі від’ємні числа, а потім всі інші.
Записати в зошит Запитання по виконанню завдань

 


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


Задача № 1

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

int main()

{

int a[30];

randomize();

for (int I=0; I<30; I++) a[I]=random(100);

int k=0;

for (I=0; I<29; I++)

if (a[I]!=a[29]) k++;

cout<<”k=”<<k<<”\n”;

getch ();

return 0;

}

Задача № 2

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

int main()

{

int a[20]; int x; cin>>x;

randomize();

for (int I=0; I<20; I++) a[I]=random(50);

for(I=0; I<20; I++)

if (a[I]==x) break;

if (I==20) cout<<”yes”<<”\n”;

else cout<<”no”<<endl;

getch ();

return 0;

}


Задача № 2 варіант 2

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

int main()

{

int a[20]; int x; cin>>x;

randomize();

for (int I=0; I<20; I++) a[I]=random(50);

I=0;

While (I<20 && a[I]!=x) {I++;}

if (I==20) cout<<”yes”<<”\n”;

else cout<<”no”<<endl;

getch ();

return 0;}

Задача № 3

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

int main()

{ int a[25];

randomize ();

for (int I=0; I<25; I++) a[I]=random(100)-50;

cout<<”-“<<endl;

for (I=0; I<25; I++)

{if (a[I]<0) cout<<a[I]<<” “;

cout<<endl;}

cout<<”+“<<endl;

for (I=0; I<25; I++)

{if (a[I]>0) cout<<a[I]<<” “;

cout<<endl;}

getch (); return 0;

}


Урок № 26

Тема: Практична робота “Програми з масивами”

Мета:

  1. Розвиток навичок роботи у середовищі програмування
  2. Розвиток навичок аналізу та локалізації помилок
  3. Формування самостійності

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

Обладнання:

  1. Лєхан С. А. Інформатика. С++. Спецкурс 10-12 клас. с.85
  2. Картки “Одновимірні масиви”

Епіграф “Роботи швидко – це робити повільні кроки без зупинок між ними” /народна мудрість/

Хід уроку

Етап уроку Діяльність учителя Діяльність учнів
  Організаційний момент Оголошення теми та плану уроку. Мотивація. Критерії оцінювання:
  1. 3 задачі з д/3 – 8 балів
  2. 2 задачі з в/з – 5 балів
  3. Перша задача картки – 3 бали
  4. Друга задача картки – 4 бали
Записують у зошит
  Самостійна практична робота   Спостереження. Надання допомоги в разі необхідності. Перевірка виконання завдань Розв’язування задач та їх реалізація.    
  Домашнє завдання Розв’язати завдання іншого варіанту Записати в зошит Запитання по виконанню завдань

 

Варіант № 1   В одномірному масиві дійсних чисел обчислити 1. суму від’ємних елементів 2. добуток елементів масиву, розташованих між максимальним та мінімальним елементами  
Варіант № 2   В одномірному масиві дійсних чисел обчислити 1. суму додатних елементів 2. добуток елементів масиву, розташованих між максимальним за модулем та мінімальним модулем елементами  
Варіант № 3   В одномірному масиві цілих чисел обчислити 1. добуток елементів з парними індексами 2. суму елементів масиву, розташованих між першим та останнім нульовими елементами  
Варіант № 4   В одномірному масиві цілих чисел обчислити 1. добуток елементів з непарними індексами 2. суму елементів масиву, розташованих між першим та останнім від’ємними елементами  
Варіант № 5   В одномірному масиві дійсних чисел обчислити 1. максимальний елемент 2. добуток елементів масиву, розташованих до першого нульового елементу  
Варіант № 6   В одномірному масиві дійсних чисел обчислити 1. мінімальний елемент 2. суму елементів масиву, розташованих після першого нульового елементу  
Варіант № 7   В одномірному масиві цілих чисел обчислити 1. номер максимального елемента 2. добуток елементів масиву, розташованих до першого від’ємного елемента  
Варіант № 8   В одномірному масиві дійсних чисел обчислити 1. номер мінімального елементу 2. суму елементів масиву, розташованих після першого від’ємного елемента  
Варіант № 9   В одномірному масиві дійсних чисел обчислити 1. максимальний за модулем елемент 2. добуток елементів масиву, розташованих до останнього нульового елемента  
Варіант № 10   В одномірному масиві дійсних чисел обчислити 1. мінімальний серед від’ємних елементів 2. суму елементів масиву, розташованих після останнього нульового елемента  

 

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

 

       
   
 
 
 
 

 

 

       
   
 
   
 
 

 

   
 
 
 
 
 

 


Урок № 27

Тема: Алгоритми сортування

Мета:

  1. Ознайомити учнів із алгоритмами сортування масивів
  2. Розвиток алгоритмічного мислення
  3. Формування уважності, наполегливості, інформаційної компетентності

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

Обладнання:

  1. Лєхан С. А. Інформатика. С++. Спецкурс 10-12 клас. с.85
  2. Лисенко Т.І. Поглиблене вивчення програмування. с.47
  3. Презентація “Впорядкування масивів”

Епіграф “Наше знание похоже не шар: чем больше он становится, тем больше у него точек соприкосновения с неизвестным” /Спенсер/

Хід уроку

Етап уроку Діяльність учителя Діяльність учнів
  Організаційний момент Оголошення теми та плану уроку. Мотивація. Записують у зошит
  Перевірка домашнього завдання Чи є запитання? Відповіді за допомогою учнів Запитання за змістом завдань
  Засвоєння нового матеріалу Лекція з використанням презентації. План: 1. Функція sizeof 2. Сортування простим пошуком 3. Метод “бульбашки” 4. Задачі Конспектування В наведених прикладах розібрати значення кожного оператору.
  Виконання тренувальних вправ   Організувати роботу із завданнями № 1-3 слайду № 8 (розділити їх за робочими місцями учнів). Спостереження. Надання допомоги в разі необхідності. Перевірка виконання завдань Розв’язування задач та їх реалізація. Обмін розв’язками Збереження програм    
  Домашнє завдання Розв’язати завдання № 4-7 слайду № 8 (розібрати алгоритми їх розв’язків) Записати в зошит Запитання по виконанню завдань

 



Поделиться:


Последнее изменение этой страницы: 2016-06-06; просмотров: 526; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.74.192 (0.01 с.)