Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

4.1.12Комбинированная обработка матрицы

Рассмотрим пример объединения двух алгоритмов в одной программе: вычисления суммы и поиска максимума с целью определения номера строки, сумма элементов в которой максимальна (рис. 28).

//Вычисляем сумму элементов в первой строке

int i_max=0, sum_max = 0;

for (int j=0; j<size; j++) {

sum_max += matrix[i_max][j];

}

for (int i=1; i<size; i++) {

//Вычисляем сумму в строке номер i

int sum = 0;

for (int j=0; j<size; j++) {

sum += matrix[i][j];

}

//Если сумма в очередной строке больше текущей

//максимальной, то текущую максимальную сумму

//заменяем новой суммой.

if (sum_max < sum) {

sum_max = sum;

i_max = i;

}

}

cout << "Максимальная сумма = " << sum_max << endl;

cout << "Номер строки = " << i_max << endl;

Рисунок 28. Поиск строки, сумма элементов в которой максимальна

Программа для определения номера столбца с максимальной суммой (рис. 29):

int j_max=0;

int sum_max = 0;

for (int i=0; i<size; i++) {

sum_max += matrix[i][j_max];

}

for (int j=1; j<size; j++) {

int sum = 0;

for (int i=0; i<size; i++) {

sum += matrix[i][j];

}

if (sum_max < sum) {

sum_max = sum;

j_max = j;

}

}

cout << "Максимальная сумма = " << sum_max << endl;

cout << "Номер столбца = " << j_max << endl;

Рисунок 29. Поиск столбца, сумма элементов в котором максимальна

4.1.13Контрольные вопросы

  1. Что такое матрица? Что такое квадратная матрица?

  2. Как объявить матрицу? Какова связь между матрицей и массивом?

  3. Как инициализировать матрицу? Как вывести матрицу на экран?

  4. Как вывести столбцы матрицы ровно?

  5. Как заполнить матрицу случайными числами?

  6. Опишите алгоритм вычисления суммы элементов матрицы.

  7. Опишите алгоритм поиска максимума (минимума) в матрице.

  8. Опишите алгоритм поиска максимума (минимума) в строке (столбце).

  9. Опишите алгоритм вычисления суммы элементов в строке (столбце).

  10. Опишите алгоритм поиска строки (столбца), где сумма элементов максимальна (минимальна).

Тема 4.2. Массивы строк

4.2.1Объявление и инициализация массива строк

Объявление массива строк аналогично объявлению массивов других типов: требуется указать тип string, затем имя массива и размер. Например, следующая команда объявляет строковый массив размера 100:

string languages[100];

Напомним, что при инициализации одномерного массива его размер можно указывать, а можно не указывать, следовательно, обе следующие записи корректны:

string languages[] = {

"Pascal", "C", "C++", "Java",

"PHP", "Ruby", "Python", "Basic",

"C#", "JavaScript", "Algol", "Basic"

};

string languages[12] = {

"Pascal", "C", "C++", "Java",

"PHP", "Ruby", "Python", "Basic",

"C#", "JavaScript", "Algol", "Basic"

};

Обратите внимание на то, что массив заключается в фигурные скобки, а строки перечисляются в кавычках через запятую.

4.2.2Присвоение элементов массива строк

Оператор присваивания работает со строковыми массивами так же, как и с массивами других типов данных: слева указывается имя массива и номер элемента, а слева – присваиваемое значение. В следующем примере объявляется массив, элементам которого присваиваются строковые константы:

string writers[5];

writers[0] = "Толстой";

writers[1] = "Достоевский";

writers[2] = "Твен";

writers[3] = "Майн Рид";

writers[4] = "Горький";