#include <iostream.h> // Програма до задачі про АТС

#include <conio.h>

#include <stdlib.h>

void main() {

randomize();

clrscr();

int y[10];

cout << " Секунда \t Кількість викликів \n";

for (int S = 0, k = 0; k < 10; k++) {

y[k] = random(30);

cout << k+1 << "\t\t" << y[k] << "\n";

S += *(y + k); // або S += y[k];

}

cout << "\n S=" << S;

k = 0;

for (int max = *y; k < 10; k++)

if (*(y + k) > max)

max = *(y + k);

cout << "\n max = " << max;

getch();

}

 

Задача про створення нового масиву. Утворити масив у, елементи якого обчислюються за формулою yk = ln(k + 1) - 2, де k = 1, 2, ..., 10. Побудувати масив, який складається з від'ємних елементів масиву у. Вивести результати обчислень. Якщо шуканих величин немає, то вивести про це повідомлення.

У наступній програмі змінна n визначає кількість від'ємних елементів у новому масиві.

 

// Утворення массиву

#include <iostream.h>

#include <math.h>

#define N 10

void main() {

float *y = new float[N];

float *g = new float[N];

int k, n;

cout« " \t ЧМасив Y:\n";

for (k = 0, n = 0; k < 10; k++) {

*( У + k) = l og(k + 1) - 2;

c out << k << "\t" << *(y + k) << "\n";

if (*(y + k) < 0){

*(g + n) = *(y + k);

n++;

}

}

d elete [] y;

cout << "\tMac ив G:\n";

for (k = 0; k < n; k++)

cout << k << "\t" << *(y + k) << "\n";

delete[] g;

}

 

3. Багатовимірні масиви. Якщо елемент масиву має не один, а декілька індексів, то такі масиви називаються багатовимірними. Прикладами багатовимірних масивів можуть бути різноманітні табличні дані: відомість на зарплату, сторінка в журналі відвідування, таблиця результатів футбольних змагань тощо. Це двовимірні таблиці, яким у математиці відповідає поняття матриці.

Загальний вигляд конструкції опису багатовимірного (N- вимірного) масиву такий:

 

<тип> <ім'я масиву>[р1>][р2>]... [pN>] ,

 

де р1 р2, ..., pn задають розміри для кожного виміру.

Кількість індексів визначає вимірність масиву: двовимірні масиви мають два індекси, тривимірні - три і т.д.

Усі багатовимірні масиви можна розглядати й опрацьовувати як одновимірні. Наприклад, тривимірний масив sal[5][20][30] можна інтерпретувати як п'ять масивів розміром 20x30, а їх відповідно — як 20 одновимірних масивів, які містять по 30 елементів.

Надалі, для простоти викладу, розглядатимемо двовимірні масиви.

Елементи двовимірного масиву визначаються іменем масиву та двома індексами: перший індекс означає номер рядка, другий - номер стовпчика, на перетині яких розміщений елемент.

Наприклад, оголосимо масив int doba[24][60]. Він містить елементи цілого типу і складається з 24 рядків і 60 стовпців. Елемент doba[23][59] розміщений на перетині останнього 24-го рядка та останнього 60-го стовпця (нумерація індексів масиву завжди починається з нуля).

Двовимірні масиви компілятор розглядає як послідовність одновимірних. Тому до елементів двовимірного масиву, як і для одновимірних, можна також звертатись через вказівники. У такому випадку це вказівник на вказівник одномірного масиву:

 

*(*(<назва вказівника>+<зміщення по рядках>)+<зміщення по стовпцях>)

 

Наприклад, елемент *(*(doba+2)+15) розміщений на перетині 3-го рядка та 16-го стовпця.

Під час оголошення двовимірні масиви можна частково пбо повністю ініціалізувати.

 

Приклад 2. Оголосимо і проініціалізуємо двовимірний ма­сив цілих чисел

 

int bal[2][3] = {4, 5, З, 3, 5, 2}

 

У такому випадку елементам надаються значення так:

 

b а l[0][0] = 4, bal[0][1] = 5, bal[0][2] = З ,

b а l[1][0] = 3, b а l[1][1] = 5, bal[1][2] = 2.

 

Двовимірні масиви автоматично ініціалізуються "по рядках", тобто спочатку модифікується зовнішній (правіший) індекс . Надавати значення елементам масиву можна і так:

int bal[2][3] = {{4, 5, 3}, {3, 5, 2}};

або так:

int bal [2][3] = {

4, 5, З,

З, 5, 2

};

 

Задача про таблицю множення. Скласти програму для занесення в двовимірний масив р таблиці множення двох чи­сел і виведення масиву на екран.

 

// Програма Піфагор

#include <iostream.h>

#include <conio.h>

void main() {

const n = 9;

int p[n][n];

clrscr();

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

for (int j = 0; j < n; j++) { // Множення чисел

p[i][j] = ( і + 1) * (j + 1);

cout << p[i][j] << "\t";

}

cout << "\n"; // Для виводу масиву у вигляді таблиці

}

getch();

}