Инициализация многомерных массивов

1. Инициализируем как одномерный массив.

float rain[2][3]={10.2, 8.1, 6.8, 9.2, 7.8, 4.4};

 

2. Инициализируем каждую строку.

float rain[2][3]={{10.2, 8.1, 6.8},

{9.2, 7.8, 4.4}};

 

3. Можно инициализировать в строке не все элементы, а только первые указанные.

int array[2][3]={{2, 8},

{9}};

 

4. Можно не задавать количество строк. Оно будет определяться автоматически по заданным инициализаторам.

int mas[][3]={{10, 8},

{9, 7, 4}};

 

Стандартные алгоритмы работы с двумерными массивами

 

К стандартным алгоритмам работы с двумерными массивами (матрицами) относятся:

1. Сложение (вычитание) двух матриц;

2. Умножение матрицы на скаляр;

3. Умножение матрицы на вектор;

4. Умножение матрицы на матрицу;

5. Транспонирование матрицы;

6. Вставка (удаление) строк и столбцов матрицы;

7. Вычисление обратной матрицы.

8. Перестановка строк и столбцов.

 

Пример 1. Сложение двух матриц.

void main(void){

int i,j;

float mas1[3][4], mas2[3][4];

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

for (j=0; j<4; j++){

mas1[i][j]+=mas2[i][j];

printf(mas1[%d][%d]=%.2f\n”, i, j, mas1[i][j]);

}

}

 

Пример 2. Умножение матрицы на вектор

void main(void){

int i,j;

float mas1[3][4], vec[4], var, mas2[3];

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

var = 0;

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

var += mas1[i][j] * vec[j];

mas2[i] = var;

printf(mas2[%d] = %.2f\n”, i, mas2[i]);

}

}

 

Пример 3. Умножение матрицы на матрицу

void main(void){

int i, j, k;

float mas1[3][4], var, mas2[4][5], mas3[3][5];

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

for (j=0; j<5; j++) {

var = 0;

for (k=0; k<4; k++)

var += mas1[i][k] * mas2[k][j];

mas3[i][j] = var;

printf(mas3[%d][%d] = %.2f\n”, i, j, mas3[i][j]);

}

}

}

 

Пример 4. Вставить строку

void main(void){

int i, j;

float mas1[4][4], var=1, vec[4];

for (i=0; i<4; i++)

for (j=3; j<var; j--)

mas1[j][i] = mas1[j-1][i]; //сдвиг строк

for (i=0; i<4; i++)

mas1[var][i] = vec[i];

}

 

ФУНКЦИИ

 

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

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

- они освобождают от повторного программирования, если конкретную задачу нужно решать в программе несколько раз.

- повышают уровень модульности программы, облегчают её чтение, внесение изменений, коррекцию ошибок. Например:

 

void main (void){

float list[50];

read list (list); // ввод набора чисел

sort list (list); // сортировка

average (list); // поиск среднего

bargaph (list); // печать графика

}

 

- cозданные функции можно использовать и в других программах.

Функции бывают библиотечные и пользовательские. Для использования библиотечных функций нужно указать заголовочный файл, в которых они объявлены (директива #include).

 








Дата добавления: 2018-11-25; просмотров: 588;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.