Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laba6.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
444 Кб
Скачать
☆

6.2. Приклад

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

#include <iostream.h>

#include <conio.h>

int main()

{

int *a;

int n;

cout<<"Enter number of elements in your massive:" <<endl;

cin>>n;

cout<<"Your massive: "<<endl;

a=new int [n];

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

{

*(a+i)=i+1;

cout<<*(a+i)<<endl;

}

getch();

delete []a;

return 0;

}

Динамічним називається масив, розмірність якого стає відомою в процесі виконання програми.

В С++ для роботи з динамічними об’єктами використовують спеціальні операції new і delete. За допомогою операції new виділяється пам’ять під динамічний об’єкт (який створюється в процесі виконання програми), а за допомогою операції delete створений об’єкт видаляється з пам’яті.

Приклад. Виділення пам’яті під динамічний масив.

Нехай розмірність динамічного масиву вводиться з клавіатури. Спочатку необхідно виділити пам’ять під цей масив, а потім створений динамічний масив треба видалити.

…

int n;

cin>>n; // n — розмірність масиву

int *mas=new int[n]; // виділення пам’яті під масив

delete [] mas; // звільнення пам’яті

…

В цьому прикладі mas є вказівником на масив з n елементів. Оператор int *mas=new int[n] виконує дві дії: оголошується змінна типу вказівник, далі вказівнику надається адреса виділеної області пам’яті у відповідності з заданим типом об’єкта.

Для цього ж прикладу можна задати наступну еквівалентну послідовність операторів:

…

int n, *mas;

cin>>n;// n - розмірність масиву

mas=new int[n];// виділення пам’яті під масив

delete [] mas;// звільнення пам’яті

…

Якщо за допомогою операції new неможливо виділити потрібний об’єм пам’яті, то результатом операції new є 0.

Іноді при програмуванні виникає необхідність створення багатовимірних динамічних об’єктів. Програмісти-початківці за аналогією з поданим способом створення одновимірних динамічних масивів для двовимірного динамічного масиву розмірності n*k запишуть наступне

mas=new int[n][k]; // Невірно! Помилка!

Такий спосіб виділення пам’яті не дасть вірного результату. Наведемо приклад створення двовимірного масиву.

#include<iostream.h>

#include<conio.h>

int main()

{

int n;const m=5;

cout<<"input the number";

cin>>n;

int** a; //a - вказівник на масив вказівників на рядки

a=new int* [n]; //виділення пам’яті для масиву вказівників на n рядків

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

a[i]=new int [m]; //виділення пам’яті для кожного рядка масиву розмірністю nxm

…

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

{for(int j=0;j<m;j++)

cout<<a[i][j]<<" ";

cout<<endl;}

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

delete [] a[i]; //звільнення пам’яті від кожного рядка

delete [] a; //звільнення пам’яті від масиву вказівників

getch();

return 0;

}

6.3. Порядок виконання роботи

6.3.1. Проаналізувати умову задачі.

6.3.2. Розробити алгоритм та створити програму розв’язання задачі згідно з номером варіанту.

6.3.3. Результати роботи оформити протоколом.

6.4. Варіанти завдань

1) Дано послідовність чисел . Отримати квадратну матрицю порядку n, елементами якої є числа , розташовані за схемою:

2) Дано послідовність чисел . Отримати квадратну матрицю порядку n, елементами якої є числа , розташовані за схемою:

3) Заповнити матрицю послідовністю чисел, кратних 3 у наступному порядку:

4) Дано послідовність чисел . Отримати квадратну матрицю порядку n, елементами якої є числа , розташовані за схемою:

5) Дано послідовність чисел . Отримати квадратну матрицю порядку n, елементами якої є числа , розташовані за схемою:

6) Дано послідовність чисел . Отримати квадратну матрицю порядку n, елементами якої є числа , розташовані за схемою:

7) Дано дійсну квадратну матрицю порядку n. Знайти всі непарні елементи у заштрихованій області.

8) Дано квадратну матрицю порядку n, елементи якої є цілими числами. Знайти всі менші від 100 числа-паліндроми (див. Лабораторну роботу № 2) із позначеної області.

9) Дано символьну квадратну матрицю порядку n. Обчислити кількість букв а над головною діагоналлю та кількість букв в під бічною діагоналлю, та замінити у матриці ці букви на символ *.

10) Дано дійсну квадратну матрицю В. Отримати цілочисельну квадратну матрицю А того ж порядку, в котрій елемент =1, якщо відповідний елемент початкової матриці , більший від елемента, розташованого в тому ж самому рядку на головній діагоналі, в іншому випадку =0.

11) Дано натуральне число n та дійсну квадратну матрицю порядку n. Побудувати послідовність нулів та одиниць, в котрій , тоді і тільки тоді, коли елементи i-го рядка матриці утворюють послідовність, що зростає або спадає.

12) Дано натуральне число n та натуральна квадратна матриця порядку n, кожний елемент котрої не перевищує 9. Побудувати послідовність із нулів та одиниць, в котрій , тоді і тільки тоді, коли елементи i-го стовпчика матриці утворюють паліндром.

13) Дано дійсну квадратну матрицю порядку 2n. Отримати нову матрицю, переставляючи її блоки розміру nxn:

14) Дано дійсну квадратну матрицю порядку 2n. Отримати нову матрицю, переставляючи її блоки розміру nxn:

15) Дано дійсну квадратну матрицю порядку 2n. Отримати нову матрицю, переставляючи її блоки розміру nxn:

16) Побудувати квадратну матрицю порядку n, заповнюючи заштриховану частину матриці натуральним рядом чисел (решта елементів матриці повинні дорівнювати нулю).

17) Отримати квадратну матрицю порядку n .

18) Утворити квадратну матрицю порядку n, заповнюючи заштриховану частину матриці квадратами натурального ряду чисел

19) Створити квадратну матрицю порядку n .

20) Створити квадратну матрицю порядку n

21) Створити квадратну матрицю порядку n

.

22) Дано цілочисельну квадратну матрицю порядку n. Знайти значення елементів, що розташовані вище головної діагоналі та діляться на 5 без остачі. Вивести індекси відповідних елементів.

23) Дано послідовність чисел . Отримати квадратну матрицю порядку n, елементами якої є числа , розташовані за схемою:

24) Дано дійсну квадратну матрицю порядку n. Знайти найбільше за модулем число із значень елементів, розташованих в позначеній частині матриці.

25) Дано дійсну квадратну матрицю порядку n. Знайти найбільше із значень елементів, розташованих в позначеній частині матриці.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]