- •Предисловие
- •Задание 1. Задачи целочисленной арифметики
- •If (Условие) Оператор1;
- •Варианты контрольных заданий
- •Задание 2. Использование функций
- •Задание 3. Обработка одномерных массивов
- •Задание 4. Обработка двумерных массивов
- •Задание 5.Обработка символов и строк
- •Задание 6. Одномерный массив–параметр функции
- •Задание 7. Двумерный массив–параметр функции
- •Задание 8. Структуры
Задание 4. Обработка двумерных массивов
Цель задания
Изучение основных приемов программирования задач обработки двумерных массивов.
Основные понятия
Двумерный массив определяется как одномерный массив одномерных массивов.
ТипМассива ИмяМассива [КонстВыражение1] [КонстВыражение2];
КонстВыражение1 определяет размер одномерного массива, элементами которого являются одномерные массивы размера
КонстВыражение2.
Например, объявление float B[4][3]; определяет двумерный массив, первый индекс которого изменяется от 0 до 3, второй - от 0 до 2.
B[0][0], B[0][1], B[0][2], B[1][0], B[1][1], B[1][2],..., B[3][2].
Объявление и инициализация двумерного массива:
int A[2][3]={{2,1,2},{4,4,-5}}; или int A[2][3]={2,1,2,4,4,-5};
Обращение к элементам массива осуществляется с помощью индексированных переменных с двумя индексами.
Например,
y= А[l][4] * 3;
A[k][j] = 15 * x;
Пример выполнения задания
//Пример 4.1. Дана матрица A (n, m). Вычислить суммы элементов //столбцов матрицы.
#include <iostream.h>
#include <stdlib.h>
int main() {
const int n = 10, m=10;
int A [n][m];
cout << "\nИсходная матрица\n";
for(int i = 0; i < n ; i++) {
for(int j = 0; j < m ; j++) {
A[i][j] =random(n); //Заполнение (i, j)-элемента случ. числом
cout.width(6);
cout << A[i][j]; //Вывод (i, j)-элемента матрицы
}
cout << endl;
}
int Summa[m] ={ 0};//Обнуление массива Summa
for(int j = 0; j < m; j++)
for(int i= 0; i < n ; i++)
Summa[j]+= A[i][j];
for(int j = 0; j < m; j++)
cout << "\nСумма элементов"<< j <<" столбца матрицы"
<<Summa[j];
cout << endl;
system("pause");
return 0;
}
Постановка задания
Разработать алгоритм решения задачи. Организовать ввод и вывод элементов двумерного массива. Продемонстрировать заполнение массива случайными числами и с использованием консольного ввода.
Варианты контрольных заданий
В массиве А(N,N) найти суммы элементов, расположенных на главной диагонали, ниже диагонали и выше диагонали.
В массиве А(N,М) найти номер строки, среднее арифметическое положительных элементов которой является наименьшим.
В массиве А(N,М) найти максимальный и минимальный элементы среди всех элементов тех строк, которые упорядочены по возрастанию или по убыванию.
В массиве А(N,М) найти сумму тех элементов, в записи которых используются только цифры 0, 1, 3, 8.
В массиве А(N,М) найти сумму элементов тех столбцов, все элементы которых кратны заданному числу р.
В матрице А(N,N) найти первую строку, не содержащую отрицательных элементов, и умножить ее как вектор на матрицу А.
В массиве А(N,N) поменять местами максимальные элементы нижнего и верхнего треугольников относительно главной диагонали.
В каждой строке массива А(N,М) поменять местами максимальный и минимальный элементы.
Элементы столбцов целочисленного массива А(N,М), не содержащих положительных элементов, заменить суммой их цифр.
В каждой строке массива А(N,М) найти и удалить максимальные элементы.
В каждой строке массива А(N,М) удалить все четные положительные элементы, стоящие между первым и последним максимальными элементами.
В массив А(N,М) после первого отрицательного элемента каждого столбца вставить число, равное минимальному элементу этого столбца. Если столбец не содержит отрицательных элементов, то вставить это число перед первым элементом столбца.
В массиве А(N,М) поменять местами столбцы, содержащие максимальный и минимальный элементы.
В массиве А(N,М) удалить нулевые строки.
В массиве А(N,М) удалить столбцы, все элементы которых являются простыми числами.
В массив А(N,М) вставить одномерный массив В(N), расположив его перед последним столбцом, содержащим нулевой элемент. Если такого столбца не окажется, то вставить массив В(N) после последнего столбца.
В массиве А(N,М) строку с максимальным количеством знакочередующихся элементов переставить на первое место.
В массиве А(N,М) столбец с минимальным количеством нечетных элементов переставить на последнее место.
В массиве А(N,N), переставить друг с другом центрально-симметричные квадраты.
В каждой строке массива А(N,М) найти максимальный из элементов, встречающихся в строке только один раз.
В массиве А(N,M) элементы строк расположить в порядке их возрастания.
В массиве А(N,M) переставить столбцы в порядке возрастания элементов первой строки.
В массиве А(N,M) переставить строки в порядке убывания количества содержащихся в них положительных элементов.
В массиве А(N,M) в каждой строке нулевые элементы переставить в конец строки, а остальные элементы расположить в порядке убывания.
В массиве А(N,M) расположить строки в порядке возрастания количества простых чисел в строке.
В массиве А(N,M) переместить нулевые строки в конец массива.
В массиве А(N,M) расположить столбцы в порядке убывания их максимальных элементов.
В массиве А(N,M) элементы строк, начинающихся с отрицательного элемента, расположить в порядке возрастания.
В массиве А(N,M) расположить строки так, чтобы сначала шли строки, у которых положительных элементов больше, чем отрицательных, затем с одинаковым числом положительных и отрицательных элементов и последними, чтобы шли строки, имеющие положительных элементов меньше, чем отрицательных.
В массиве А(N,M) расположить строки по убыванию значений максимальных элементов строк.
В массиве А(N,M) элементы, кратные заданному числу р, переместить в начало строк и расположить их в порядке возрастания.
Известно, что в каждой строке и каждом столбце массива А(N,N) имеется единственный отрицательный элемент. Переставить строки массива так, чтобы отрицательные элементы находились на главной диагонали.
В массиве А(N,M) расположить элементы строк в порядке убывания. Вставить в каждую строку заданное число р, не нарушая этот порядок.
В массиве А(N,M) переставить строки так, чтобы строка с максимальной суммой элементов стала первой строкой, а остальные строки расположить в порядке возрастания элементов первого столбца.
Симметричную матрицу А(N,N), заданную верхним треугольником в виде одномерного массива, умножить на вектор В(N).