Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
___звіт___1.doc
Скачиваний:
17
Добавлен:
08.02.2016
Размер:
239 Кб
Скачать
☆
    1. Програмна обробка двовимірних масивів

Двовимірний масив - це масив, де кожному елементу ставиться у відповідність два індекси. Для початку роботи з масивом готуємо місце в пам'яті у вигляді прямокутника, що має задану кількість рядків і стовпчиків. Для цього описуємо його в розділі оголошень, використовуючи зарезервоване слово А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;

}

}

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