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. Оформить и сдать отчет по лабораторной работе.
Задания для самостоятельного выполнения
А также другие работы, которые могут Вас заинтересовать | |||
53769. | Баскетбол, конспект уроку для 8 класу | 44 KB | |
Ноги трохи зігнуті, лікоть руки опущений вниз, пальці рук супроводжають м’яч. Відстань між студентами 4 м. пальці рук розставлені. Ведення правою – лівою рукою. Відстань 4 м. Кидок виконується після ведення, кидок м’яча в ціль. | |||
53770. | Організовуючі вправи. Загальнопідготовчі вправи. Стрибки зі скакалкою | 85 KB | |
Стійка ноги 810 Руки розводити долонями нарізно руки за голову. разів догори прогинаючись у 1 поворот тулуба ліворуч попереку голову відводити руки в сторони вдих; 2 в. видих; 3 поворот тулуба праворуч руки в сторони вдих; 4 в. нарізно руки в сторони; разів Ноги поставити 1 нахил уперед руки якнайширше. | |||
53771. | Конспект уроку з фізичної культури Для учнів 2-А класу - реферат українською | 29.5 KB | |
Ходьба: руки за голову навприсядки стрибками на носках на пятках4. Загальнорозвиваючі вправи на місціА Вп руки до плечейКолові рухи руками вперед назад 8р вперед8р назадБ Вп руки в сторониКолові рухи руками вперед назад 1012 раз Руки пряміВ Вп права рука вгорі ліва внизу; 12 переміна положень рук 1012 раз Руки пряміГ Вп руки вперед. Схрещення рук 1012 раз Руки пряміД Вп ноги нарізно руки на поясі 1 нахил вліво 2 в. 1012 раз Руки опущені ноги пряміІІ. | |||
53772. | Організуючі, стройові та ЗРВ. Спеціальні бігові та стрибкові вправи. Рухливі ігри | 75 KB | |
Стройові вправи: Праворуч Ліворуч Кругом Ліворуч Ліворуч Рівняйсь струнко Ходьба: звичайна навшпиньках на пятках з високим підніманням стегна руки перед собою у напівприсіді у повному присіді звичайна. руки на пояс. руки до плечей колові оберти зігнутими в ліктях руками вперед назад. руки в сторони сжаті в кулачки на 123 розвести руки в сторони на 4 зігнути руки до... | |||
53773. | Ярослав Стельмах. «Митькозавр із Юрківки, або химера лісогвого озера». Характеристика образів Сергія і Митька, їхньої поведінки у складних ситуаціях | 48.5 KB | |
Мета: Удосконалювати навички визначення рис характеру героїв твору вміння висловлювати свої думки про прочитане; розвивати навички переказу виразного і вибіркового читання спостережливість увагу; виховувати допитливість доброту любов до ближніх. Обладнання: схема з рисами характеру героїв портрет Ярослава Стельмаха. Завдання: учні мають удосконалити навички визначати риси характеру героїв твору і оцінювати їхні вчинки; закріпити вміння переказувати твір віднаходити цитати за поданим завданням висловлювати своє враження про... | |||
53774. | Малювання композиції Дерева у лісі | 656 KB | |
Провести бесіду В художникаграфіка; розвивати умінняспостерігати і виявляти особливості будови дерев різних порід; ознайомити звиразними особливостями ліній різної товщини навчити прийомам роботи зпаличкою пензлем пером або восковими крейдами на вибір учителя ітушшю; формувати уміння заповнювати зображенням усю площину аркушапаперу; виховувати любов до рідної природи дбайливе ставлення до матеріалівта інструментів акуратність під час роботи з тушшю;... | |||