Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 5
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2014 » Июль » 22 » Занятие 19. Двумерные массивы.
15:59
Занятие 19. Двумерные массивы.
Normal 0 false false false RU X-NONE X-NONE MicrosoftInternetExplorer4 Добрый день друзья. Сегодня затронем новую тему. Двумерные массивы. Или их еще называют матрицы.   Что такое двумерный массив? Двумерный массив это прямоугольная таблица с определенным количеством строк и столбиков.  Каждая строка и каждый столбик имеют свой порядковый номер. На рисунке изображен двумерный массив, который имеет 6 строк и 7 столбцов.Рис.1. Двумерный массив. Общий вид.Обратите внимание, что столбцы и строки нумеруются, начиная с нуля, как и в одномерных массивах. Сразу же покажу, как объявить двумерный массив. В сущности, ничего нового. Синтаксис прост и очень похож на объявление обычного массива и любой другой переменной.  Сначала указываем тип данных, затем имя массива, а после в квадратных скобках его размерность, то есть количество строк и количество столбиков.  На рисунке ниже мы объявили двумерный массив размерностью 6 на 7.Рис.2 Двумерный массив, объявление.Важно помнить, что первая строка и первый столбик имеют индекс нуль, поэтому последняя строка будет иметь номер не шесть, а пять, и аналогично последний столбец будет иметь номер шесть, а не семь. Кстати, нельзя путать местами строки и столбики. Сначала записывается количество строк, потом количество столбиков.Следующий естественный вопрос:Как работать с двумерным массивом?Как и другие переменные, двумерные массивы мы можем инициализировать  при их объявлении. Для этого нам нужно указать все элементы массива. Делается это следующим образом.Листинг 19.1int arr [2][4] = {{1,2,4,29},{3,4,6,1}};Записанный выше код создает массив с двумя строчками и четырьмя столбцами, и присваивает каждому элементу определенные значения. Получится вот такой массив.Рис.3. Двумерный массив инициализированный при объявленииКроме того, мы можем задать только некоторые элементы массива, тогда остальные будут заполнены нулями. Например:Листинг 19.2int arr [2][4] = {{1,2,4},{3,4}};При таком объявлении мы получим массив, который изображен на следующем рисунке.Рис.4. Двумерный массив, инициализированный не полностью.Понятно, что если у нас будет большой массив, то мы замучаемся так все записывать. Да и редко такое бывает нужно.  Как работать с отдельным элементом массива. Понятно, что любой элемент задается номер строки и столбца, на пересечении которых он расположен.  Посмотрите на следующий рисунок. На нем мы выбрали элемент, который находится во второй строке и третьем столбике (в естественной нумерации).Рис.5. Обращение к элементу двумерного массива.Обращение к конкретному элементу происходит так же, как и в одномерном массиве. Сначала пишут имя массива, а затем, в квадратных скобках номер строки и номер столбика.  Опять напоминаю, сначала идет номер строки, а потом номер столбика. Не путайте это. А так же, помните, что нумерация идет не с единицы, а с нуля.  Это очень частая ошибка, всегда следите за этим.Помните, когда мы хотели пройтись по всему одномерному массиву, мы использовали цикл for, который изменял наш индекс. Так как в двумерном массиве у нас два индекса ( один для строки и один для столбца), то для того, чтобы пройтись по всему массиву нам потребуется два вложенных цикла for. Разберите следующий пример. Листинг19.3#include <stdio.h> int main (){       int arr [2][4] = {{1,2,4},{3,4}};       for (int %d\t",arr[i][j]);             printf("\n");       } return 0; }   Данная программа, выводит последовательно все элементы массива. Результат её работы, представлен на следующем рисунке.Рис.6. Двумерный массив. Поэлементный вывод на экран.Как  работает вложенный цикл, вам уже должно быть понятно.Сначала переменной i присваивается значение нуль, проверяется условие 0<2, и так как оно выполняется, программа начинает выполнять тело первого цикла. В теле первого цикла программа опять попадает в цикл, теперь уже второй. Переменной j присваивается значение 0 и проверяется условие 0<4. Оно истинно, поэтому выполняется тело второго цикла. Оно состоит из одной инструкции вывода на экран элемента arr[i][j]. Так как на данном шаге у нас i=0 Дмитрий". За проявленное упорство и трудолюбие, и как первый выполнивший правильно практическое задание, Дмитрий награждается печенькой:
Просмотров: 156 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Форма входа
Календарь
«  Июль 2014  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей