18535

Двумерные массивы (матрицы)

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

Информатика, кибернетика и программирование

Лабораторная работа № 5. Двумерные массивы матрицы Массивы в С могут быть не только одномерными т.е. когда данные визуально выстроены в одну линию. Массивы также могут быть и двумерными трехмерными и так далее. С компиляторы поддерживают как минимум 12ти мерные масси...

Русский

2013-07-08

29.09 KB

8 чел.

Лабораторная работа № 5.

Двумерные массивы (матрицы)

Массивы в С могут быть не только одномерными, т.е. когда данные визуально выстроены в одну линию. Массивы также могут быть и двумерными, трехмерными и так далее. С++ компиляторы поддерживают как минимум 12-ти мерные массивы!!! Естественно, что такими большими массивами на практике никто не пользуется, т.к. человеку сложно их визуально представить у себя в голове, не то что написать программу, которая оперирует таким сложными массивами. На практике редко применяют массивы, более трехмерного. Одномерный – это строка, двумерный – матрица (таблица), трехмерный – куб, а вот дальше уже сложно, поэтому дальше, обычно, никто и не идет...

Двумерный массив – это так называемая матрица (или таблица), у которой есть строки и столбцы. По соглашению программистов первый индекс массива будет указывать на строки, а второй на столбцы.

Фактически двумерный массив — это одномерный массив одномерных массивов. Структура двумерного массива, с именем a, размером m на n показана ниже:

где, m – количество строк двумерного массива;

n – количество столбцов двумерного массива;

m * n – количество элементов массива.

Вот пример объявления и инициализации двумерного массива, состоящего из трех строк и пяти столбцов.

int aMatrix[3][5] = {{3, 5, 5, 7, 8},

{4, 1, 1, 2, 9},

{3, 8, 8, 9, 7}};

Двумерный массив имеет два индекса. Можно и так записать, как показано ниже. Разницы для компилятора не будет никакой. Разве лишь разница будет в визуальном восприятии для человека:

int aMatrix[3][5] = {{3, 5, 5, 7, 8}, {4, 1, 1, 2, 9}, {3, 8, 8, 9, 7}};

Либо вообще так, без указания фигурных скобок, которые логически разделяют строки друг от друга.

int aMatrix[3][5] = {3, 5, 5, 7, 8, 4, 1, 1, 2, 9, 3, 8, 8, 9, 7};

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

Для доступа к элементам двумерного массива нужно, так же, как и для одномерного указать индекс. В данном случае нужно будет указывать два индекса. Например, чтобы перезаписать последний элемент второй строки, мы должны использовать такую запись

aMatrix[1][4] = 0;

В этом случае мы перезапишем значение 9 на 0.

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

Пример программы:

Дана матрица размером n строк и m столбцов (0<n<=20, 0< m<=30). Найти сумму положительных элементов каждой строки.

#include <stdio.h>

#include <conio.h>

/* Сумма по строкам*/

#define NMAX 20

#define MMAX 30

main()

{float x;

int i,j;

float s;

int n,m;

puts("Введи n m"); scanf("%d%d",&n,&m);

puts ("Введи матрицу");

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

{s=0;

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

{scanf("%f", &x);

if (x>0) s=s+x;

}

printf ("\n Строка %d, s= %.2f",i,s);

}

getch();

return 0;

}

Пример результатов тестирования программы:

1

2

3

4

5

1

-9

0

1

-7

4

2

1

2

5

0

4

3

-1

2

-9

7

-1

4

-2

-3

-8

-9

-4

Результат:

Строка 1 сумма = 5

Строка 2 сумма = 12

Строка 3 сумма = 9

Строка 4 сумма = 0

Порядок выполнения работы.

1. Получить задание у преподавателя.

2. Составить программу на Си и подобрать тесты для проверки программы на ЭВМ.

3. Отладить программу на ЭВМ.

4. Оформить и сдать отчет по лабораторной работе.

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

  1.  Дана матрица размером n x m. Вычислить сумму положительных элементов каждой строки и найти номер строки, в которой эта сумма максимальна.
  2.  Определить, является ли заданная целочисленная квадратная матрица магическим квадратом, то есть такой, что суммы всех элементов во всех строках и столбцах одинаковы.
  3.  Дана матрица размером n x m. Найти минимальный элемент в каждом столбце матрицы (из ненулевых) и разделить на него все элементы этого столбца.
  4.  Дана матрица размером n x m. Найти наибольший положительный и наименьший отрицательный элементы матрицы.
  5.  Элементы матрицы А(n x n) назовем седловой точкой, если он одновременно является наименьшим в своей строке и наибольшим в своем столбце или наоборот. Найти индексы всех седловых точек матрицы.
  6.  Дана матрица размером n x m. В каждой строке переставить местами наибольший и наименьший элементы матрицы.
  7.  Дана квадратная матрица размером n x n. Вычислить сумму элементов, расположенных над главной диагональю.
  8.  Дана квадратная матрица размером n x n. Найти наибольший элемент главной диагонали, и вывести всю строку, в которой он находится.
  9.  Дана квадратная матрица размером n x n. Найти строку с наибольшим количеством отрицательных элементов.
  10.  Дана квадратная матрица размером n x n. Найти сумму отрицательных элементов в каждой строке.
  11.  Дан двумерный массив n х m элементов, найти количество четных и нечетных чисел в массиве.
  12.  Дан двумерный массив n х m элементов. Определить, сколько раз встречается число 7 среди элементов массива.
  13.  Дан массив из n x m элементов. Определить, сколько элементов массива больше заданного числа.
  14.  Дан массив из n x m элементов. Найти индексы первого наименьшего элемента массива.
  15.  Дан квадратный массив из n x n элементов. Найти сумму элементов побочной диагонали.
  16.  Дан квадратный массив из n x n элементов. Найти сумму элементов ниже главной диагонали.

 

А также другие работы, которые могут Вас заинтересовать

45783. Региональные особенности территории Боснии и Герцеговины 701 KB
  Данная проблема является весьма актуальной и требует незамедлительного решения. Безработица в Боснии и Герцеговине составляет 20%, промышленное производство не достигло и 40% от довоенного уровня и развивается низкими темпами
45784. Сущность, цели и функции маркетинга 40.73 KB
  Нужды Исходной идеей лежащей в основе маркетинга является идея человеческих нужд. Потребности Второй исходной идеей маркетинга является идея человеческих потребностей. Состояния спроса и задачи маркетинга соответствующие этим состояниям 1.
45785. Маркетинговые исследования: понятие, предмет, объект и направления 17 KB
  Исследование рынка как такового наиболее распространенное направление маркетинговых исследований. Без информации о рынке практически невозможно принять правильные принципиальные решения по таким вопросам как выбор целевого рынка определение объема продаж прогнозирование и программирование рыночной деятельности. Объекты рыночных исследований конъюнктура тенденции и перспективы развития рынка; исследуются емкость рынка ее динамика структура география рынка уровень конкуренции барьеры вхождения на рынок и выхода возможности и риски....
45786. Маркетинговая информация: понятие, виды и методы сбора 24.81 KB
  Маркетинговые исследования это первичная маркетинговая информация которая собирается под определенную цель. МИ исследования могут быть проведены: Собственными силами компании Путем обращения в исследовательскую компанию к специалистам Частично собственными силами частично при помощи привлеченных специалистов. По соответствию целям исследования: первичная вторичная 7. Виды маркетинговых исследований: кабинетные исследования; полевые исследования.
45787. Поведение покупателей. Модели поведения индивидуальных покупателей и покупателей-организаций 28.15 KB
  На совершаемые конечными потребителями покупки большое влияние оказывает факторы культурного социального личного и психологического порядка. Факторы влияющие на поведение потребителя. потребитель выражая свои симпатии и антипатии покупательские предпочтения может решать судьбу фирмыпроизводителя как продавца фирма стремится в максимальной степени задействовать все свои возможности всестороннего и углубленного изучения потребителя потенциального покупателя включая вопросы мотивации покупательского оповещения потребителей принятие...
45788. Этапы развития маркетинга. Концепции маркетинга. Современная концепция маркетинга 30.78 KB
  Концепции маркетинга. Современная концепция маркетинга. Функции маркетинга: Аналитическая это изучение и оценка внешней и внутренней среды фирмы; Продуктовопроизводственная это создание новых товаров которые соответствуют требованиям потребителей.
45790. Ценовая политика фирмы. Методы ценообразования. Ценовые стратегии 23.26 KB
  При этом фирма должна учитывать множество факторов при выборе оптимального метода и стратегии ценообразования: издержки производства объемы и характер спроса тип рынка цены конкурентов и др. Именно в этой ситуации актуально звучит маркетинговое определение цены как суммы денег которую готов уплатить потенциальный потребитель. существует определенный алгоритм методика установления исходной цены на товары. При определении цены прежде всего фирме предстоит решить каких именно целей она стремится достичь с помощью конкретного товара.