Всего на сайте:
166 тыс. 848 статей

Главная | Информатика

Лабораторная Работа № 18-22  Просмотрен 134

Тема: Программирование задач с использованием двумерных массивов. Ввод, вывод, упорядочивание. Вычисление характеристик массива.

 

Цель: Получение практических навыков в использовании двумерных массивов - матриц.

 

Теоретические сведения:

Приступая к выполнению задачи, следует вспомнить, что:

· Массив – это фиксированное количество упорядоченных компонент одного типа, снабжённых индексами.

· Чтобы описать массив, надо сообщить компилятору: сколько в нем элементов, какого типа эти элементы, как они нумеруются.

· Элементы массива нумеруются с нуля.

· Доступ к элементу массива осуществляется путем указания индекса (номера) элемента.

· Доступ к элементам массива можно осуществлять при помощи указателя.

· В инструкции объявления массива удобно использовать именованную константу, объявленную в директиве #define.

· Для ввода, вывода и обработки массивов удобно использовать инструкции циклов (for, while).

· Типичной ошибкой при использовании массивов является обращение к несуществующему элементу, то есть выход индекса за допустимое значение.

 

Пример: Вычислить суммы элементов массива по столбцам

Текст программы:

 

#include<stdio.h>

#include<conio.h>

#define ROW 3 //кол-во строк

#define COL 4 //кол-во столбцов

 

void main()

{

int a[ROW][COL]; //массив

int s[COL]; //сумма элементов

int I,j;

 

puts(“Вводите массив построчно”);

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

{

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

scanf(“%i”,&a[i][j]);

}

puts(“Введенный массив”);

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

{

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

printf(“%i”,a[i][j]);

printf(“\n”);

}

 

//очистим массив s

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

s[i]=0;

 

//обработка

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

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

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

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

printf(“%i”,s[i]);

getch();

}//main

Методические рекомендации для выполнения лабораторной работы:

Перед выполнением заданий по вариантам каждый студент должен освоить базовые задачи обработки двумерных массивов:

  1. Сумма/произведение/количество в каждой строке по условию.
  2. Найти минимум , максимум каждой строки; поменять их местами; вывести измененный массив на экран.

(если базовые задачи совпадают с вариантом, то взять задачу другого типа из соответствующей таблицы).

 

Варианты задания 1:

Осуществить ввод массива с клавиатуры и выполнить задание своего варианта:

 

Вариант Массив Задание Условия
A(10,15) Вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы. Результаты отпечатать в виде 2-х строк AIJ>0
A(N,M) Вычислить и запомнить суммы и числа элементов каждой строки матрицы. Результат отпечатать в виде 2-х столбцов N≤20 M≤15
B(N,N) Вычислить сумму и число элементов матрицы, находящихся под главной диагональю и на ней N≤12
C(N,N) Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю CIJ>0 N≤12
D(K,K) Записать на место отрицательных элементов матрицы нули и вывести ее на печать в общепринятом виде K≤10
D(10,10) Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. Вывести на печать нижнюю треугольную матрицу в общепринятом виде -
F(N,M) Найти в каждой строке матрицы максимальный и минимальный элементы и вывести их в виде 2-х столбцов N≤20 M≤10
F(10,8) Транспонировать матрицу и вывести на печать элементы ее главной диагонали и ее саму в общепринятом виде -
N(10,10) Для целочисленной матрицы найти для каждой строки число элементов кратных 5 и наибольший из полученных результатов  
N(10,10) Из положительных элементов матрицы N сформировать матрицу M и распечатать ее в общепринятом виде. -
P(N,N) Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде N≤15
R(K,N) Найти наибольший и наименьший элементы матрицы и поменять их местами K≤20 N≤10
S(25,8) Вычислить среднее арифметическое каждой строки и записать результаты в одномерный массив и найти максимальный его элемент -
T(N,M) Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов N≤20 M≤15
V(15,10) Упорядочить по возрастанию элементы каждой строки матрицы и отпечатать полученную матрицу в общепринятом виде -

Варианты задания 2:

Дана прямоугольная матрица. Определить:

 

Вариант Задание
Количество строк, не содержащих ни одного нулевого элемента.
Максимальное из чисел, встречающихся в заданной матрице более одного раза.
Количество столбцов, не содержащих ни одного нулевого элемента.
Количество столбцов, содержащих хотя бы один нулевой элемент.
Номер строки, в которой находится самая длинная серии одинаковых элементов.
Произведение элементов в тех строках, которые не содержат отрицательных элементов.
Сумму элементов в тех строках, которые не содержат отрицательных элементов.
Сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.
Найти строки, среднее арифметическое элементов которых меньше заданной величины.
Найти номер первой из строк, содержащей хотя бы один положительный элемент.
Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.
Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.
Номер столбца, в котором находится самая длинная серии одинаковых элементов.
Количество отрицательных элементов в тех строках, которые содержат хотя бы один нулевой элемент.
Найти номер первой из строк, не содержащей ни одного положительного элемента.

Варианты заданий повышенной сложности:

Вариант Задание
Для целочисленной квадратной матрицы определить минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
Характеристикой строки целочисленной матрицы назовем сумму её положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
Для целочисленной квадратной матрицы определить такие r, что r - я строка матрицы совпадает с r - м столбцом.
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик.
Соседями элемента Аij в матрице назовем элементы Аkl, где i-1<=k<=i+1, j-1<=l<=j+1, (k,l) не равны (i,j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей (определение соседних элементов см. в варианте 6). Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10.
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к треугольному виду.
Уплотнить заданную матрицу, удаляя из неё строки, заполненные нулями.
Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в зависимости от введенного режима). n может быть больше количества элементов в строке или столбце.
Осуществить циклический сдвиг элементов квадратной матрицы размером M на N вправо на k элементов таким образом: элементы первой строки сдвигаются в последний столбец сверху вниз, из него – в последнюю строку справа налево, из неё – в первый столбец снизу вверх, из него – в первую строку. Для остальных элементов аналогично.
Характеристикой строки целочисленной матрицы назовем сумму её отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик.
Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы её максимальный элемент находился в левом верхнем углу, следующий по величине – в позиции (2,2), следующий по величине – в позиции (3,3) и т.д. заполнив таким образом всю главную диагональ.
Минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке.
Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.

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

  1. Что понимается под массивом?
  2. Как описываются массивы в разделе переменных?
  3. Как организуется ввод массива в программе?
  4. Как организуется вывод массива в программе?
  5. Какие операции разрешены над элементами массива?

Содержание отчета:

  1. Схемы алгоритмов.
  2. Тексты составленных программ.
  3. Протоколы к составленным программам.
  4. Вывод о проделанной работе.

 

 

Предыдущая статья:Тест ЕГЭ. Екатерина II. Внутренняя политика. Следующая статья:Культура 18 в. Распечатка ЕГЭ
page speed (0.0166 sec, direct)