Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Си массивы функции препроцессор.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
38.42 Кб
Скачать

3.4. Базовые алгоритмы обработки двумерных массивов.

1. Заполнение двумерного массива.

2. Вывод значений элементов массива на экран в виде таблицы.

3. Вычисление суммы:

а) элементов всего массива

б) элементов каждой строки

в) элементов каждого столбца

4.Нахождение максимального (минимального) элемента и его индексов:

а) для всего массива

б) для элементов каждой строки

в) для элементов каждого столбца

Рассмотрим фрагменты некоторых из перечисленных алгоритмов.

Пример 1.

Заполним двумерный массив случайным образом.

int x[4][5]; //при заполнении перемещаемся по строкам

int i, j;

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

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

x[i][j]=rand ( ) %1000;

Пример 2.

Вычислим сумму элементов каждого столбца двумерного массива. Полученные суммы сохраним в одномерном массиве.

int z[3][5];

int i, j;

int s[5];

//блок заполнения

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

{ s[j]=0;

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

s[j]+=z[i][j];

}

Пример 3.

Найдем максимальный элемент каждой строки и его индексы.

int A[4][5];

int i, j;

int max, n_i, n_j;

//блок заполнения

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

{ max=A[i][j];

n_i=i;

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

if (A[i][j]>max)

{ max=A[i][j];

n_j=j;

}

//вывод на экран максимального элемента строки i и его индексов

}

Пример 4.

Транспортировать целочисленную квадратную матрицу, т.е. отразить относительно главной диагонали.

int A[3][3]= {11, 12, 13,

21, 22, 23,

31, 32, 33}

int i, j, R;

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

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

{ R=a[i][j];

a[i][j]=a[j][i];

a[j][i]=R;

}

Глава 4. Функции.

4.1. Стандартное определение функции.

Функция – самостоятельная единица программы, спроектированная для реализации конкретной задачи. Функции в языке Си/Си++ играют ту же роль, какую играют функции и процедуры, например, в Паскале, подпрограммы в Фортране и т.д., хотя детали их структуры могут быть разными. Язык проектировался так, чтобы функции были эффективными и простыми в использовании. Функция в Си/Си++ является основной программной единицей. Каждая программа, написанная на языке Си/Си++, представляет собой совокупность функций и каждая программа обязательно включает в себя основную функцию с именем main. Любая другая функция в программе выполняет роль подпрограммы.

Формат стандартного определения функции:

тип результата имя_функции (спецификация формальных параметров)

{

определение объектов;

исполняемые операторы; тело функции

}

Тип функции – тип возвращаемого функцией результата.

Имя функции – идентификатор, задаваемый программистом или main для основной программы (функции).

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

Тело функции представляет собой либо составной оператор, либо блок. Признаком блока является наличие описаний программных объектов, которые действуют в пределах этого блока. Блок, как и составной оператор, ограничивается фигурными скобками.

Оператором возврата из функции в точку ее вызова является оператор return. Он может использоваться в функциях в двух формах: return; или return <выражение>; В том случае, когда функция не возвращает никакого значения, используется первая форма оператора возврата, если функция возвращает значение, используется вторая форма.

Тип выражения в операторе return должен либо совпадать с типом функции, либо относиться к числу типов, допускающих автоматическое преобразование к типу функции. Оператор return может отсутствовать в явном виде в теле функции (что и было до сих пор во всех примерах, реализующих главную функцию main()). В таком случае подстановка оператора return производится компилятором. Необходимо отметить, что в основной функции (main()) возможно также использовать оператор возврата return <выражение>; но если в «не основных функциях» возврат происходит в вызывающую функцию, то функция main() возвращает значение, например, операционной системе, как вызывающей программе, возвращенное значение может анализироваться операционной системой.