Professional Documents
Culture Documents
FP урок 07 new ua
FP урок 07 new ua
Урок № 7
Багатовимірні
масиви
Зміст
1. Генератор випадкових чисел...................................... 3
Використання функції rand..............................................3
Використання функції srand.............................................5
Використання функції time...............................................7
Установка діапазону для генератора...............................8
2. Використання генератора випадкових чисел........ 10
3. Двовимірні масиви як окремий випадок
багатовимірних масивів........................................... 12
Двовимірний масив.
Оголошення та розташування в пам'яті......................12
Ініціалізація........................................................................14
4. Практичний приклад................................................ 16
Постановка задачі..............................................................16
5. Поняття статичного виділення пам'яті.................. 18
6. Домашнє завдання.................................................... 20
2
1. Генератор випадкових чисел
1. Генератор випадкових
чисел
На минулому уроці ми з вами познайомилися з та-
ким поняттям як масив і навчилися заповнювати його
значеннями. Усі наші значення ми вписували самі, тобто
заздалегідь знали, якими вони будуть. Такий спосіб за-
повнення змінних і масивів обмежує можливості про-
грами. Неможливо створити щось, що володіє штучним
інтелектом, якщо немає способу отримувати дані, що не
залежать від користувача. Що ж робити, якщо нам необ-
хідні значення, обрані випадковим чином?
#include<iostream>
#include<stdlib.h> // у цьому файлі міститься
// фунцкія rand
using namespace std;
int main()
{
int a;
3
Урок № 7
Малюнок 1
4
1. Генератор випадкових чисел
#include<iostream>
// у цьому файлі містяться функції rand і srand
#include<stdlib.h>
5
Урок № 7
#include<iostream>
// у цьому файлі містяться функції rand і srand
#include<stdlib.h>
6
1. Генератор випадкових чисел
#include<iostream>
/* у цьому файлі містяться rand і srand */
#include<stdlib.h>
// у цьому файлі міститься функція time
#include<time.h>
7
Урок № 7
cout<<a<<"\n";
return 0;
}
8
1. Генератор випадкових чисел
9
Урок № 7
2. Використання генератора
випадкових чисел
Давайте розглянемо приклад використання генератора
випадкових чисел, а саме заповнення масиву випадко-
вими числами:
#include<iostream>
// у цьому файлі містяться функції rand() і srand()
#include<stdlib.h>
// у цьому файлі міститься функція time()
#include<time.h>
using namespace std;
int main()
{
int array[10];
srand(time(NULL));
for (int i=0;i<10;i++)
{
// генерація випадкового числа і запис його
// в поточний елемент масиву
array[i]=rand()%100;
// вивід значення елемента на //екран
cout<<array[i]<<"\n";
}
return 0;
}
10
2. Використання генератора випадкових чисел
11
Урок № 7
3. Двовимірні масиви
як окремий випадок
багатовимірних масивів
Ми з вами вже маємо уявлення про те, що таке масиви,
на минулому уроці ми розібрали так званий одновимірний
масив. Одновимірний масив — масив даних, де кожне
значення має тільки одну характеристику — порядковий
номер (індекс). Саме за цим індексом ми і звертаємося
до конкретного елемента.
Сьогодні ми поговоримо про багатовимірні масиви,
тобто про масиви, де кожен елемент описується декількома
характеристиками. Прикладом значення багатовимірного
масиву може бути що завгодно:
1. Шахова дошка — кожна клітина має дві розмірності
E2 (літера й цифра);
2. Оцінка КВК — три розмірності ЧЛЕН_ЖЮРІ, КОН-
КУРС, КОМАНДА.
Ми з вами зупинимося на двовимірному масиві, друга
назва якого — матриця (так його зазвичай називають
математики).
Двовимірний масив.
Оголошення та розташування в пам'яті
Двовимірний масив є сукупністю рядків і стовп-
ців, на перетині яких розташоване конкретне значення.
Оголосити двовимірний масив нескладно, необхідно
12
3. Двовимірні масиви як окремий випадок багатовимірних масивів
Приклад:
Індекс стовпця
Індекс рядка
Ім’я масиву
Малюнок 2
13
Урок № 7
Малюнок 3
Ініціалізація
Ініціалізація двовимірного масиву аналогічна до іні-
ціалізації одновимірного:
1. Ініціалізація при створенні
Кожен рядок пишеться в окремих фігурних дужках:
int array[2][2]={{1,2},{7,8}};
14
3. Двовимірні масиви як окремий випадок багатовимірних масивів
#include<iostream>
// у цьому файлі містяться rand і srand
#include<stdlib.h>
// у цьому файлі міститься функція time
#include<time.h>
mr[i][j]=rand()%100;
// вивід значень на екран
cout<<mr[I][j]<<" ";
}
/* перехід на інший рядок матриці */
cout<<"\n\n";
}
return 0;
}
15
Урок № 7
4. Практичний приклад
Постановка задачі
Написати програму, яка у двовимірному масиві зна-
ходить максимальний елемент кожного рядка.
Код реалізації
int main()
{
// задаємо розмірність масиву
const int m = 3;
const int n = 2;
int A[m][n]; // оголошуємо двовимірний масив
16
4. Практичний приклад
Зверніть увагу!
1. На кожній ітерації циклу як максимум вибирається
нульовий елемент поточного рядка.
2. Після аналізу конкретного рядка, знайдений максимум
виводиться на екран.
17
Урок № 7
5. Поняття статичного
виділення пам'яті
Настав час трохи поговорити про роботу з пам'яттю.
Поки ми всерйоз не замислювалися про те, як відбу-
вається виділення пам'яті для тієї чи іншої оголошеної
змінної.
Поки що ми використовуємо тільки один вид виді-
лення пам'яті — статичне виділення пам'яті.
Що це означає? Механізм статичного виділення пам'яті
обчислює потрібну кількість байтів для змінної або масиву
на етапі компіляції програми.
Наприклад:
18
5. Поняття статичного виділення пам'яті
19
Урок № 7
6. Домашнє завдання
1. Дан двовимірний масив розмірністю 3×4. Необхідно
знайти кількість елементів, значення яких дорівнює
нулю.
2. Дана квадратна матриця порядку n (n рядків, n стовпців).
Знайти найбільше зі значень елементів, розташованих
у темно-синіх частинах матриць.
Малюнок 4
20
6. Домашнє завдання
21
Урок № 7
Багатовимірні масиви