
- •Общие сведения о массивах
- •Алгоритмы инициализации значений элементов массива
- •Инициализации значений элементов массива постоянными значениями
- •Ввод и вывод значений элементов массивов
- •Ввод значений элементов одномерного массива
- •Вывод значений элементов одномерного массива
- •Тестовая программа ввода и вывода одномерного массива
- •Int k; // Текущий предельный размер массива
- •Ввод значений элементов двухмерного массива
- •Вывод значений элементов двухмерного массива
- •Алгоритмы пересылки массивов
- •Пересылка двухмерного массива в одномерный массив
- •Пересылка одномерного массива в двухмерный массив
- •Простые алгоритмы работы с массивами
- •Алгоритм нахождения суммы и среднего арифметического значений элементов одномерного массива
- •Алгоритм нахождения суммы и среднего арифметического значений элементов двухмерного массива
- •Поиск элемента с максимальным и минимальным значениями
- •Поиск в массиве элемента с заданным значением
- •Алгоритм инициализации элементов одномерного массива значениями ряда целых нечетных чисел
- •Формирование единичной матрицы
- •Табуляция функции в массив
- •Организация стека при помощи массива
- •Организация очереди при помощи массива
-
Вывод значений элементов двухмерного массива
Рассмотрим алгоритм вывода всех значений элементов двухмерного массива на экран монитора. Значения n и m должны быть определены.
//Вывод на экран монитора массива b
printf("Значения элементов двухмерного массива b:\n");
//Задание j – номеров строк распечатываемых элементов массива
for (int j = 0; j<n; j++)
//Задание i – номеров столбцов строки j элементов массива
for (int i = 0; i<m; i++)
printf("Элемент[ %d][ %d] = %f\n", j, i, b[j][i]);
//Следующий оператор
-
Алгоритмы пересылки массивов
-
Пересылка двухмерного массива в одномерный массив
-
Алгоритм пересылки двухмерного массива в одномерный массив строится на основе алгоритма перебора всех значений двухмерного массива. Одномерный массив при этом формируется последовательной дозаписью элементов в конец одномерного массива. Наглядный тест:
Текст фрагмента кода программы:
int k; //начальное кол-во элементов одномерного массива a
k = 0;
//Пересылка всех элементов двухмерного массива b в одномерный
// массив a
//Задание j – номеров строк элементов массива b
for (int j = 0; j<n; j++)
{
//Задание i – номеров столбцов строки j элементов массива
for (int i = 0; i<m; i++)
{
//Дозапись значения очередного элемента в массив a
a[k] = b[j][i];
//Расчет номера дозаписываемого элемента массива k = k + 1;
k++;
}
k--; //Теперь k равен числу элементов массива a.
}
//Следующий оператор
Отметим, что для корректного выполнения алгоритма фрагмента необходимо иметь уже определенные значения всех элементов массива b, значения n, m
В результате выполнения алгоритма будут определено текущее значение k предельного количества числа элементов одномерного массива a – k.
Следует отметить, что для корректной работы алгоритма должно выполняться неравенство: k_Max ≥ m*n;
-
Пересылка одномерного массива в двухмерный массив
Алгоритм пересылки одномерного массива в двухмерный массив практически не отличается от алгоритма пересылки двухмерного массива в одномерный массив. Отличия проявляются лишь в операторе дозаписи значения:
//Дозапись значения очередного элемента в массив b
b[j][i] = a[k];
Следует отметить, что для корректной работы алгоритма должно выполняться равенство: m*n = k;
-
Простые алгоритмы работы с массивами
-
Алгоритм нахождения суммы и среднего арифметического значений элементов одномерного массива
-
Алгоритм нахождения суммы и среднего арифметического значений элементов одномерного массива основан на полном переборе всех значений элементов одномерного массива.
float Sum;
float Average;
//Расчет значения суммы Sum и значения среднего арифметического
// значений элементов одномерного массива Average
Sum = 0.0; //Начальное значение суммы
//Перебор всех элементов одномерного массива a
//Задание i – номера инициализируемого элемента массива*/
for (int i = 0; i<k; i++)
Sum = Sum + a[i]; /*Увеличение текущего значения суммы
на значение очередного элемента
одномерного массива a*/
//Расчет среднего арифметического значения
Average = Sum/k;