![]()
Заглавная страница
Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема: Поняття масиву. Опис та ініціалізаціяСтр 1 из 5Следующая ⇒
Урок № 24 Тема: Поняття масиву. Опис та ініціалізація Мета:
Тип:Засвоєння нового матеріалу, розвиток навичок Обладнання:
Епіграф“Прагнення до нового є перша потреба людської уяви ” /Стендаль/ Хід уроку
Теоретичний матеріал до уроку «Поняття масиву. Опис та ініціалізація» Поняття масиву Масив – це сукупність елементів одного типу, звернення до яких здійснюється за допомогою імені масиву та індексу. Масив – це впорядкований скінчений набір даних одного типу, які зберігаються в послідовно розташованих комірках оперативної пам'яті і мають спільну назву (яку надає користувач). (Глинський Я.М.) Масив – це структура даних, що являє собою однорідну (за типом), фіксовану (за розміром і конфігурацією) сукупність елементів, упорядкованих за номерами. (Скляр І.В.) Масивом називається скінчена послідовність змінних одного типу, які мають однакове ім'я та розрізняються індексом. (Караванова Т.П.) Масив – це змінна, утворена послідовністю значень, які називають елементами, є однотипними й ідентифікуються номерами (індексами)/ (Ставровський А. Б.) Опис масиву Загальний вигляд: тип ім'я [розмір]; Тип ім’я [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. Під час оголошення: 3. Якщо початкових значень менше, ніж елементів у масиві, елементи, що залишилися автоматично одержують нульові початкові значення int n[10]={0}; 4. Масиви-сталі оголошуються так: 5. Використання константи для завдання розміру: 6. Уведення із клавіатури: int x[5]; for(i=0; i<5; i++) cin>>x[i]; Завдання (Слайд № 8) Створити програму, що присвоює початкові нульові значення масиву В, що містить 8 цілих чисел і друкує його Створити програму, що присвоює початкові значення масиву В, що містить 8 цілих чисел при оголошенні і друкує його Створити програму, що присвоює початкові значення 1, 2, ..10 масиву М з 10 елементів і виводить на екран елементи масиву з парними номерами Передача масивів у функції Оскільки в С++ не контролюється розмір масиву, то у функцію слід передавати також параметр, що містить кількість елементів у масиві: Такий прийом дозволяє однією функцією обробляти масиві різних розмірів Приклади (Слайд № 10) Вивести значення масивів: #include<iostream.h> #include<conio.h> void show_array(int A[], int n) Завдання: змініть програми (слайд № 8) так, що використати наведені функції (опрацюйте декілька масивів) Увести з клавіатури значення масивів та надрукувати їх: #include<iostream.h> #include<conio.h> void get_array(int A[], int n) Завдання: змініть програми (слайд № 8) так, щоб використати наведені функції (опрацюйте декілька масивів) Опис та ініціалізація масиву
Розв’язки завдань Слайд № 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 #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 Тема: Практична робота “Програми з масивами” Мета:
Тип: Розвиток навичок Обладнання:
Епіграф“Роботи швидко – це робити повільні кроки без зупинок між ними” /народна мудрість/ Хід уроку
Урок № 27 Тема: Алгоритми сортування Мета:
Тип:Засвоєння нового матеріалу, розвиток навичок Обладнання:
Епіграф“Наше знание похоже не шар: чем больше он становится, тем больше у него точек соприкосновения с неизвестным” /Спенсер/ Хід уроку
Зміст Функція sizeof Сортування простим пошуком 3. Метод “бульбашки” Задачі Література
Слайд № 3
Слайд № 5
Сортування одновимірних масивів. Метод “бульбашки” Алгоритм: Вивести отриманий масив void bubl(int *mas[], int n) int i.j; . Слайд № 7
Задачі (Слайд № 8) Література 1. Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007. 2. Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006. 3. Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006. 4. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003 Ров’язки завдань Слайд № 8 Задача 3a #include <iostream.h> #include <conio.h> void show_array(inta[], int n) {for (int I=0; I<n; I++) cout<<a[I]<<” “; cout<<endl;} //---------------------------------------------------- void get_array(int a[], int n) {for (int I=0; I<n; I++) cin>>a[I];} //---------------------------------------------------- int MaxEl(int a[], int m, int n) {int max=a[m]; int L=m; for (int I=m+1; I<n; I++) if (a[I]>=max) {max=a[I]; L=І;} return (L);} //--------------------------------------------------- void swap(int*a, int*b) {int temp=*a; *a=b; *b=temp;} //--------------------------------------------------- int main() {int n; cin>>n; int a[100]; get_array(a,n); int mc=0; int L; int nc=sizeof(a)/sizeof(a[0]); while (mc<nc) { L=MaxEl(a, mc, nc); swap(&a[mc], &a[L]); mc++;} show_array(a, n); getch(); return 0; } Задача 3b #include <iostream.h> #include <conio.h> void show_array(inta[], int n) {for (int I=0; I<n; I++) cout<<a[I]<<” “; cout<<endl;} //---------------------------------------------------- void get_array(int a[], int n) {for (int I=0; I<n; I++) cin>>a[I];} //---------------------------------------------------- void swap(int*a, int*b) {int temp=*a; *a=b; *b=temp;} //--------------------------------------------------- void bubl(int *mas[], int n) {bool fl=false; int j=1; do {fl=false; for (int I=0; I<n-j; I++) if (*max[I]>*mas[I+1]) {swap(&mas[I], &mas[I+1]; fl=true;} j++} while (fl) } //-------------------------------------------------- int main() {int n; cin>>n; int a[100]; get_array(a,n); int nc=sizeof(a)/sizeof(a[0]); bubl(&a, nc) show_array(a, n); getch(); return 0; }
Задача 4 (після сортування, замість виведення елементів масиву) for (int k=1; int I=0; I<n-1; I++) if (a[I]!=a[I+1]) k++; cout<<k<<endl;
Задача 5 (після сортування, замість виведення елементів масиву) int k=1, km=1, b=a[0]; for (int I=0; I<n-1; I++) if (a[I]==a[I+1]) k++; else if (k>km) {km=k; b=a[I], k=1;} cout<<b<<endl; Задача 6 (зміни внести в головну функцію) int main() {int n; cin>>n; int a[100]; get_array(a,n); int m; cin>>m; int b[100]; get_array(b, m); bubl(&a, n); bubl(&b, m); int I=0, L=0; do {if (a[I]!=b[L]) I++; else {cout<<a[I]<<” “; I++; L++;} while (I<n && L<m); getch(); return 0; } Задача 7 #include <iostream.h> #include <conio.h> void show_array(inta[], int n) {for (int I=0; I<n; I++) cout<<a[I]<<” “; cout<<endl;} //---------------------------------------------------- void get_array(int a[], int n) {for (int I=0; I<n; I++) cin>>a[I];} //---------------------------------------------------- int main() {int n; cin>>n; int a[100]; get_array(a,n); int m; cin>>m; int b[100]; get_array(b, m); int c[200]; int I=L=k=0; do {if (a[I]<b[L]) {c[k]=a[I]; k++;} else if (a[I]=b[L]) {c[k]=a[I]; I++; k++; c[k]=b[L]; L++; k++;} else {c[k]=b[L]; L++; k++;} } while (I<n && L<m); if (I==n && L!=m) {for (I=l; I<m; I++) {c[k]=b[L]; k++;}} else if (L==m && I!=n) {for I=L; I<n; I++) {c[k]=a[I]; k++;}} show_array(c, m+n); getch (); return 0;} Урок № 28 Тема: Практична робота “Впорядкування масивів” Мета:
Тип: Розвиток навичок Обладнання:
Епіграф“Глаза бояться – руки делают” /народна мудрість/ Хід уроку
Урок № 29 Хід уроку
Статичні та динамічні дані У С++ змінні можуть бути розміщені або статично – під час компіляції, або динамічно – під час виконання програм, шляхом виклику відповідних функцій зі стандартної бібліотеки. Завдання, у яких потрібно зберігати й обробляти заздалегідь невідоме число елементів, зазвичай вимагають динамічного виділення пам'яті. Після того як потреба у динамічній змінній зникає, місце, яке вона займала, можна звільнити для інших динамічних об'єктів. Робота з динамічними даними Виділення динамічної пам'яті здійснюється операцією new. За допомогою new виділяється пам’ять, і адреса, з якої вона починається, заноситься у вказівник на потрібний тип: 1. int *n=new int; 2. int *m=new int (10); У зразку 1 виконується виділення достатньої для розміщення величини типу int ділянки динамічної пам'яті й записує адресу початку цієї ділянки в змінну n. Пам’ять під саму змінну n виділяється на етапі компіляції. Приклади Завдання (Слайд № 9) 1. Скласти програму, яка реалізує такі функцій для роботи з масивами: · Уведення елементів; · Виведення елементів; · Пошук максимального елементу масиву. 2. Скласти програму, яка реалізує такі функцій для роботи з масивами: · Уведення елементів; · Виведення елементів; · Обчислення суми додатних елементів масиву. Розв’язки завдань Задача 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;}
Задача 2 #include <iostrem.h> #include <conio.h> //---------------------------------------------- void _Input(int *, int); void _Print(int *, int); int Sum(int a[], int n) {int s=0; for (int I=1; I<n; I++) s+=a[I]; return (s);} //---------------------------------------------- int main () {int n, *a; cin>>n; a=new int [n]; _Input(a,n); int L=Sum(a,n); _Print(a,n); cout<<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; } Урок № 30 Тема: Багатовимірні масиви Мета:
Тип:Засвоєння нового матеріалу, розвиток навичок Обладнання:
Епіграф“Все идеи извлечены из опыта” /Ф. Энгельс/ Хід уроку
Приклад Написати програму, в якій для двовимірного масиву цілих чисел визначається номер крайнього стовпця, розташованого ліворуч, що містить тільки додатні елементи. Якщо такого стовпця немає, виводиться відповідне повідомлення. # include< iostream.h> int **a=new int *[ryad]; //виведення масиву // аналіз масиву int n=-1; bool dodat; for (j=0; j<stovp; j++) { // перегляд по стовпцях dodat=true; for (i=0; i<ryad; i++) if (a[i][j]<0) {dodat=false; break;} If (dodat) {n=j; break;} } if (n==-1) cout<<“no”<<endl; else cout<<“n=“<<n<<endl; delete []a; //вивільнення пам'яті Завдання (Слайд № 13) Випробуйте програму прикладу. Переробіть її так, щоб визначити номер крайнього стовпця, розташованого ліворуч, що містить тільки від'ємні елементи. Якщо такого стовпця немає, виводиться відповідне повідомлення. A. У зворотному порядку B. З парними індексами C. З непарними індексами D. Які є парними числами E. Які є непарними числами Література 1. Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007. 2. Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006. 3. Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006. 4. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003 Розв’язки завдань Слайд № 13 Задача 2 #include <iostrem.h> #include <conio.h> #include <stdlib.h> int main () {int a[8][15], int k=0; randomize(); for (int I=0; I<8; I++) for (int j=0; j<15; j++) {a[I][j]=random(9); if (a[I][j]==5) k++;} cout<<k<<endl; getch (); return 0; } Задача 3 #include <iostrem.h> #include <conio.h> #include <stdlib.h> int main () {int a[8][15], int k[10]={0}; randomize(); for (int I=0; I<8; I++) for (int j=0; j<15; j++) {a[I][j]=random(9); k[a[i][j]]++;} for (int i=0; i<10; i++) cout<<”k[“<<i<<”]=”<<k[i]<<” “; cout<<endl; getch (); return 0; } Задача 4 #include <iostrem.h> #include <conio.h> #include <stdlib.h> int main () {int a[100], int n; cin>>n; randomize(); for (int I=0; I<n; I++) a[I]=random(90); //-----у зворотному порядку------- for (I=n-1; I>=0; I--) cout<a[I]<<” “; cout<<endl; //-----у парними індексами------- for (I=0; I<n; I+=2) cout<a[I]<<” “; cout<<endl; //-----у непарними індексами------- for (I=1; I<n; I+=2) cout<a[I]<<” “; cout<<endl; //-----які є парними------- for (I=0; I<n; I++) if (a[I]%2==0) cout<a[I]<<” “; cout<<endl; //-----які є непарними------- for (I=0; I<n; I++) if (a[I]%2!=0) cout<a[I]<<” “; cout<<endl; getch (); return 0; } Урок № 31 Хід уроку
Тематична атестація з теми «Масиви у С++»
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-06; Нарушение авторского права страницы infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.227.247.17 (0.229 с.) |