Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по С,С++.doc
Скачиваний:
28
Добавлен:
25.04.2019
Размер:
694.78 Кб
Скачать
      1. Инициализация многомерных массивов

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}};

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

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

  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];

}

10. Функции

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

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

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

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

void main (void){

float list[50];

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

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

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

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

}

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

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