Обработка двумерных массивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Обработка двумерных массивов



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

Задания для самостоятельной подготовки:

1. Изучить:

· правила организации вложенного цикла с учетом порядка перебора элементов двумерного массива;

· правила использования приемов программирования в структурах с вложенными циклами;

· способы ввода и вывода двумерных массивов.

2. Разработать алгоритм решения в соответствии с заданием.

3. Составить программу решения задачи.

4. Подготовить тестовый вариант исходных данных для проверки работы программы.

 

Задание к работе:

  1. Обработать на ЭВМ двумерный массив в соответствии с вариантом задания, указанного в табл. 5.
  2. Проверить правильность выполнения программы с помощью тестового варианта.

 

Таблица 5

Вариант задания Имя матрицы и размеры Действия Условия и ограничения
  А (5,3) Вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы. Результаты отпечатать в виде двух строк. aij >0
  N(4,4) Для целочисленного массива найти для каждой строки число элементов, кратных пяти, и наибольший из полученных результатов. -
  B(N,N) Вычислить сумму и число элементов матрицы, находящихся под главной диагональю и на ней. N<=5
  C(N,N) Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю. N<=4
  D(K,L) Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов K<=5 L<=4
  D(4,4) Записать на место отрицательных элементов матрицы нули, а на место положительных- единицы. Вывести на печать нижнюю треугольную матрицу в общепринятом виде. -
  F(N,M) Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. Матрицу напечатать в общепринятом виде. N<=6 M<=5
  F(5,5) Транспонировать матрицу и вывести на печать элементы главной диагонали, расположенной под главной. Результаты разместить в двух строках. -

Продолжение таблицы 5

 

Вариант задания Имя матрицы и размеры Действия Условия и ограничения
  N(5,5) Из положительных элементов массива N сформировать массив M(5, KMAX), располагая их в строках подряд, где KMAX – максимальное число положительных элементов строк массива N. Записать нули на место отсутствующих элементов. Вывести элементы массива M на экран. -
  P(N,N) Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали. Вывести элементы массива на экран. N<=7
  R(K,N) Найти наибольший и наименьший элементы массива и поменять их местами. K<=4 N<=5
  S(4,5) Ввести исходные данные в первые 3 строки и первые 4 столбцов. Вычислить среднее арифметическое значение элементов каждой строки и записать его в 5 столбец, а также среднее арифметическое каждого столбца и записать его в 4 строку. Вывести элементы массива на экран. -
  А(5,5) Транспонировать матрицу и вывести на печать элементы главной диагонали, расположенной над главной. Результаты разместить в двух строках. -
  N(m,m) Найти сумму элементов главной диагонали -
  N(4,4) Для целочисленного массива найти для каждой строки число элементов, кратных пяти, и наибольший из полученных результатов. -

 

Пример выполнения работы

В массиве L(N,M) N<=3, M<=4 найти столбец с наименьшей суммой элементов. На экран вывести номер столбца имеющего наименьшую сумму элементов, элементы этого столбца и сумму его элементов.

Необходимо организовать вложенный цикл для перебора элементов массива по столбцам. Перед внешним циклом задать начальное значение номера столбца имеющего наименьшую сумму элементов (0) и начальное значение наименьшей суммы как сумму элементов первого столбца. Перед внутренним циклом задавать начальное значение суммы элементов текущего столбца (0). Во внутреннем цикле накапливать сумму элементов текущего столбца. После ее вычисления организовать сравнение суммы элементов текущего столбца с наименьшей суммой. В случае если сумма элементов текущего столбца меньше наименьшей суммы считать наименьшей суммой сумму элементов текущего столбца.

 

Программа решения задачи имеет вид:

 

#include <stdlib.h> //подключение файла

#include <stdio.h> //подключение файла

 

void main () //заголовок функции main

{

float L[3][4], smin,s;

int i,j,N,M,nmin; // объявление переменных

do

{printf (“Введите размерность массива N в диапазоне от 1 до3, M - от 1 до4 \n”);

// вывод на экран сообщения

scanf (“%d%d”, &N,&M); // ввод значения переменной

}while(N<1||N>3||M<1||M>4);

//пока введенные значения не лежат в заданном диапазоне

randomize(); // инициализация датчика случайных чисел

printf (“Массива L\n”); // вывод на экран сообщения

for(i=0;i<N;i++) // цикл по перебору элементов массива по строкам

{ for(j=0;j<M;j++)

{L[i][j]=(random(100)-50)/10.;

//генерация случайного числа и присвоение его элементу массива

printf (“%f”, L[i][j]); // вывод значения элемента массива

}

printf (“\n”); //переход на новую строку

}

nmin=0; smin=0; // присвоение начального значения

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

smin+=L[i][0]; //накопление суммы элементов первого столбца

for(j=0;j<M;j++) // цикл по перебору элементов массива по столбцам

{ s=0; // присвоение начального значения

for(i=1;i<N;i++)

s+=L[i][j]; //накопление суммы элементов текущего столбца

if (s<smin)

//если меньше значения наименьшей суммы

{ smin=s;

//то наименьшей сумме присваивается значение суммы элементов текущего столбца

nmin=j;

// индексу столбца, имеющего наименьшую сумму присваивается //индекс текущего столбца

}

}

printf (“Номер столбца, имеющего наименьшую сумму элементов=%2d\n”,nmin);

 

printf (“Элементы столбца, имеющего наименьшую сумму элементов\n”);

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

printf (“%f”, L[i][0]);

printf (“\nсумма элементов=%f\n”,smin); //вывод значений переменных

return; //завершение функции main

}

 

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

  1. Указать основные правила организации вложенных циклов.
  2. Указать способы выхода из внутреннего цикла.
  3. Как организовать вывод матрицы в общепринятом виде?
  4. Как организовать вывод нижней треугольной матрицы в общепринятом виде?
  5. Как организовать ввод матрицы размером N на M элементов?

Лабораторная работа №7



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 353; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.131.238 (0.007 с.)