Professional Documents
Culture Documents
Масиви c с++Одновимірні
Масиви c с++Одновимірні
на мові С++
Масиви
2
Заповнення випадковими числами
#include <stdlib.h> // випадкові числа
#include <ctime> // містить time()
RAND_MAX – максимальне випадкове ціле число
(зазвичай RAND_MAX = 32767)
Випадкове ціле число в інтервалі [0,RAND_MAX]
x = rand(); // перше число
x = rand(); // уже друге число
Масиви
Масив – це група однотипних елементів, які мають загальне ім'я
та розміщуються в пам'яті поряд.
Особливості:
• всі елементи мають один тип
• весь масив має одне ім'я
• всі елементи розміщуються в пам'яті поряд
Створення масиву
тип ім’я [к-сть_елементів]
тип - будь- який із вам відомих типів. Визначає, елементи
якого типу будуть зберігатися у масиві.
ім’я – аналогічно зі змінними. По цьому імені створюються
звернення до окремих елементів.
Н-д: int a [100], bool apple1[1000]
Потрібно пам’ятати:
1. К-сть елементів завжди є натуральним числом.
2. Замість кількості елементів не можна писати змінні.
Масиви
Ім'я масиву
Формат: c[4]
c[5]
1543
-89
ім'я масиву [ номер позиції ] c[6] 0
Номер позиції
6
7
Оголошення масивів
Приклад оголошення:
int X[10], Y[10];
float zz, A[20];
char s[80];
Оголошення з присвоєнням початкових значень:
int A[4] = { 8, -3, 4, 6 };
Інші
float B[2] = { 1.2 }; нульові!
char C[3] = { 'A', '1', 'Ю' };
int В[4] = { 8, -3, 4, 6, 5 };
Якщо не вказано розмір, він
визначається ініціалізацією Синтаксична
int n[ ] = { 1, 2, 3, 4, 5 }; помилка
розмір масиву буде 5
8
Масиви
Оголошення:
const int N = 5;
int A[N], i;
Ввід з клавіатури:
cout<<"Input 5 elements:"<<endl; A[0] = 5
for(i=0;i<5;i++){ A[1] = 7
cout<<"a["<<i<<"]="; A[2] = 3
cin>>a[i]; A[3] = 4
}
A[4] = 8
Поелементні операції:
for( i=0; i < N; i++ ) a[i] = a[i]*2;
Результат:
10 14 6 8 16
Вивід на екран мовою С
1 спосіб виводу:
printf ("1 Output array:\n");
for(i=0;i<5;i++){
printf ("a[%d]= %d",i, a[i]);
}
2 спосіб виводу:
printf ("2 Output array:\n");
for(i=0;i<5;i++){
printf ("%d\t",a[i]);
}
Вивід на екран мовою С++
1 спосіб виводу:
cout<< "1 Output array:"<<endl;
for(i=0;i<5;i++){
cout<<"a["<<i<<"]="<< a[i]<<endl;
}
2 спосіб виводу:
cout<< "1 Output array:"<<endl;
for(i=0;i<5;i++){
cout<<"a["<<i<<"]="<< a[i]<<endl;
}
11
Як переставити елементи?
3
Задача: поміняти місцями вміст двох комірок
пам’яті. x y
c = x; 4
6 2 6
4
x = y;
x = y;
y = x;
y = c;
1
3
? Можна обійтись без c? ?
4
c
13
Реверс масиву
Задача: переставити елементи масиву в
зворотньому порядку (виконати інверсію).
0 1 … N-2 N-1 0 1 … N-2 N-1
3 5 … 9 7 7 9 … 5 3
Програма
main()
{
const int N = 10;
int A[N], i, c;
// заповнити масив
// вивести початковий масив
for ( i = 0; i < N/2; i++ ) {
c = A[i];
A[i] = A[N-1-i];
A[N-1-i] = c;
}
// вивести отриманий масив
}
15
Циклічний зсув
Задача: зсунути елементи масиву вліво на 1 комірку,
перший елемент стає на місце останнього.
0 1 2 3 … N-2 N-1
3 5 8 1 … 9 7
5 8 1 … 9 7 3
Алгоритм:
A[0]=A[1]; A[1]=A[2];… A[N-2]=A[N-1];
Цикл: чому не N?
Програма
main()
{
const int N = 10;
int A[N], i, c;
// заповнити масив
// вивести початковий масив
c = A[0];
for ( i = 0; i < N-1; i ++)
A[i] = A[i+1];
A[N-1] = c;
// вивести отриманий масив
}
17
Максимальний елемент
Задача: знайти в масиві максимальний елемент.
Псевдокод:
max=A[0];
for ( i=1; i < N; i++ )
if ( A[i] > max )
max=A[i];// запам‘ятати новий максимальний елемент A[i]
Задача: знайти в масиві максимальний елемент і його індекс
Псевдокод:
max=A[0];iMax=0;
for ( i=1; i < N; i++ )
if ( A[i] > max ){
max=A[i];
iMax=i;}
Максимальний елемент
iMax = 0;
for ( i=1; i < N; i++ )
if ( A[i] > A[iMax] ) {
iMax = i;
}
19