Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Типовые алгоритмы обработки элементов массива.




 

Формирование нового массива из элементов исходного

А) Формирование нового массива из элементов исходного, которые меньше заданного числа К.

Б) Слияние двух упорядоченных массивов в один упорядоченный

(тут есть такой миленький бейсик-код вместо описания, его понятно читать? Если нет, Наташка может заменить его псевдокодом)

Заполнение массива новыми элементами

FOR I=1 TO N

M(I)=INT(RND*(A+B))-A

NEXT I

Вывод массива в строку

FOR I=1 TO N

PRINT M(I);" ";

NEXT I

 

Вывод массива в столбец

FOR I=1 TO N

PRINT M(I)

NEXT I

Поиск минимального элемента массива

MIN=M(1);

FOR I=2 TO N

IF M(I)<MIN THEN MIN=M(I)

NEXT I

Перестановка элементов на четных и нечетных местах

FOR I=2 TO N STOP 2

P=M(I-1):M(I-1)=M(I):M(I)=P

NEXT I

Объединение 2-х массивов

FOR I=1 TO N STOP 2

M(2*I-1)=A(I):M(2*I)=B(I)

NEXT I

 

Двумерные массивы

Двумерный массив – это одномерный массив из одномерных массивов.

Для примера определим двумерный массив m размером 3 x 4.

 

int m [3] [4];

Покажем, что такое определение логически вытекает из представления о двумерном массиве как об одномерном массиве из одномерных же массивов.

Начнем с того, что сначала объявим промежуточный тип M – одномерный массив из 4-х целых чисел

typedef int M [4];

Теперь определение M x; означает тоже самое, что int x[4];, каким бы ни было выражение x.

Определим одномерный массив из элементов типа M, т.е. массив символов.

M m[3];

В роли x здесь выступает выражение m[3]. Подставим его в int x[4]; и получим объявление двумерного массива без промежуточного типа M, как это обычно и делается.

int m[3][4];

Исходя из общего принципа размещения элементов массива в памяти (плотно и в порядке возрастания номеров), можно утверждать, что элементы двумерного массива m[3][4] займут места в памяти в следующем порядке: m[0][0], m[0][0], m[0][1], m[0][2], m[0][3], m[1][0], m[1][1], m[1][2], m[1][3], m[2][0], m[2][1], m[2]2], m[2][3].

Пример. Ввести матрицу M размера 3 x 3. Поменять местами начальную и последнюю строки и вывести результат на экран.

// объявить, определить и инициализировать массив

int M [3] [3] = {{11,12,13}, {21,22,23}, {31,32,33}};

// поменять местами строки

for (int j = 0; j < 3; j++)

{

int R = M [0] [j];

M [0] [j] = M [1] [j];

M [1] [j] = R;

}

// вывести массив построчно

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

{

for (j=0; j < 3; j++)

{

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

}

cout << endl;

}

 

С++ позволяет создавать многомерные массивы. Простейшим видом многомерного массива является двумерный массив. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Двумерный массив объявляется следующим образом:

тип имя_массива[строка][столбец];

Число байт в памяти, требуемых для размещения двумерного массива, вычисляется следующим образом:

число байт = размер столбца * размер строки * sizeof (базовый тип)

Предполагая наличие в системе 2-байтных целых, целочисленный массив с размерностями 10 на 5 будет занимать 10 * 5 * 2, то есть 100 байт.

Когда двумерный массив используется как аргумент функции, передается указатель на первый элемент. Функция, получающая двумерный массив, должна, как минимум, определять размер первого измерения, поскольку компилятору необходимо знать длину каждой строки для корректной индексации массива.

Пример. Ввести матрицу M размера 3 x 3. Поменять местами начальную и последнюю строки и вывести результат на экран.

 

// объявить, определить и инициализировать массив

int M [3] [3] = {{11,12,13}, {21,22,23}, {31,32,33}};

// поменять местами строки

for (int j = 0; j < 3; j++)

{

int R = M [0] [j];

M [0] [j] = M [1] [j];

M [1] [j] = R;

}

// вывести массив построчно

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

{

for (j=0; j < 3; j++)

{

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

}

cout << endl;

}

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных