- •Технологія створення програм
- •Кодування і документування програми
- •Структурний підхід до програмування
- •Етапи створення програм
- •Створення програмного проекту
- •Методика відладки програми
- •Програмна реалізація алгоритмів лінійної структури
- •Програмна реалізація алгоритмів розгалужених структур
- •Програмна реалізація алгоритмів циклічних структур
- •Програмування вкладених циклів
- •Програмна реалізація функцій користувача
- •Програмна обробка одновимірних масивів
- •Програмна обробка двовимірних масивів
- •Список використаної літератури
Програмна обробка двовимірних масивів
Двовимірний масив - це масив, де кожному елементу ставиться у відповідність два індекси. Для початку роботи з масивом готуємо місце в пам'яті у вигляді прямокутника, що має задану кількість рядків і стовпчиків. Для цього описуємо його в розділі оголошень, використовуючи зарезервоване слово Аrray, після якого в квадратних дужках вказуємо розмірність масиву, причому враховуємо, що на першому місці вказуються індекси рядків, а на другому - стовпчиків, і обов'язково тип елементів. Опис двовимірного масиву <Ім'я_масиву> : array[<поч_інд_рядків>..<кін_інд_рядків>, <поч_інд_стовп>. .<кін_інд_стовп>] of <базовий_тип_елементів> ; Приклад опису:
Var A:array[1..8,1..3] of real;
D:array[1..10,1.100] of integer;
Зверніть увагу на те, що значень у рядках або стовпчиках масиву не обов'язково буде стільки, скільки ми оголосили, але не більше. Звертання до елементу двовимірного масиву: Ім'я_масиву[<індекс_рядка>, <інд_стовпчика>]
Елементи двовимірного масиву (дані можуть бути подані у вигляді таблиці) визначаються іменем масиву та двома індексами: перший індекс означає номер рядка, а другий — номер стовпця, на перетині яких стоїть елемент, наприклад р[1,2], Розглянемо приклади оголошення масиву-константи bal, що має 2 рядки і 4 стовпці елементів, деякого масиву doba, який міститиме 24* 60 елементів цілого типу, двовимірного масиву р розміру 9 на 9 (тут буде 9* 9=81 елемент).
const bal: array [1..2,1..4] of integer=((4,3,5,3),(4,4,5,3));
var doba: array [0..23] of array [0..59] of integer;
p : array [l..9, l..9] of integer;
Тут bal[l,l]=4, bal[l,2]=3, .... bal[2,3]=5, bal[2,4]=3. Значення елементам масивів doba і р можна надати командою присвоєння двома способами,наприклад, так: doba[16,30]:=5.
Задача 3.7.1
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std;
void initMatrix(int[][7], const int, const int);
void replaceColumn(int[][7], const int, int, int);
void printMatrix(int[][7], const int, const int);
int main()
{
const int column = 5, row = 7;
int matrix[column][row];
int counter, result, columnMin;
srand(time(NULL));
initMatrix(matrix, column, row);
cout << "\nNoSorted array" << endl << endl;
printMatrix(matrix, column, row);
for(int N = 0; N < column - 1; N++)
{ result = row * 30;
for(int i = N; i < column; i++)
{ counter = 0;
for(int j = 0; j < row; j++)
counter += matrix[i][j];
if(result > counter)
{ result = counter;
columnMin = i;
}
}
replaceColumn(matrix, row, N, columnMin);
}
cout << "\nSorted array" << endl << endl;
printMatrix(matrix, column, row);
return 0;
}
void initMatrix(int matrix[][7], const int column, const int row)
{ for(int i = 0; i < column; i++)
69. for(int j = 0; j < row; j++)
70. matrix[i][j] = rand() % 30;
}
void replaceColumn(int matrix[][7], const int row, int N, int columnMin)
{
int buffer[row];
for(int j = 0; j < row; j++)
{ buffer[j] = matrix[columnMin][j];
matrix[columnMin][j] = matrix[N][j];
matrix[N][j] = buffer[j];
}
}
void printMatrix(int matrix[][7], const int column, const int row)
{ for(int i = 0; i < column; i++)
{
for(int j = 0; j < row; j++)
cout << setw(3) << matrix[i][j];
cout << endl;
}
}
|
|
