русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Повторяем массивы


Дата добавления: 2015-08-14; просмотров: 542; Нарушение авторских прав


Продолжаем изучать массивы и в этой статье поговорим о двумерных массивах, особенностях работы с ними. Повторение - мать учения, поэтому немного вспомним определение массива, в общем.

Что такое массив? Все достаточно просто: если вы четко понимаете, что такое переменная, то и с понятием массива сложностей не должно возникнуть. А как вы знаете, переменная - это объект, который способен хранить в себе значение определенного типа. В С++ используется строгая типизация данных, поэтому каждая переменная (объект) может хранить данное (значение) только определенного типа. Тип, для которого будет предназначаться переменная, указывается при ее объявлении. Типы, как мы уже говорили, могут быть целочисленными (int со всеми его разновидностями, такими как short int, long int, unsigned), дробными (float, double), символьными и строковыми (char и string соответственно), булевыми или, как еще иногда говорят, логическими (bool).

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

1.int aNumbers[7];

Выше мы видим объявление массива - оболочки, объединяющей определенное количество переменных в одно имя. В нашем случае общее имя этих переменных, т.е. массива - aNumbers. В данном случае я использовал для указания имени префикс a, сообщающий о том, что мы работаем с массивом (на англ. массив - array). Это делается для удобства. Встречаясь в коде с переменными, имеющими в своем имени подобный префикс, вы будете четко понимать, что она из себя представляет. Само имя тоже нужно задавать, исходя из того, какую "миссию" этот объект будет выполнять в программе.



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

1.aNumbers[1] = 4;

Мы обратились ко второму элементу массива aNumbers и присвоили ему значение 4. Если подзабыли, то напомню, что счет элементов массива в любом языке программирования начинается с нуля. Т.е., если элементов семь, то для обращения к ним нужно использовать индексы: 0, 1, 2, 3, 4, 5, 6. Эту особенность работы с массивами нужно запомнить раз и навсегда. Довольно часто новички допускают ее, тем самым выходя в своих программах за пределы массива (эта ошибка получила название - "ошибка на единицу"). Дело в том, что язык С++ настолько гибкий, что позволяет в своих программах выходить за границы массива, не выдавая при этом явной ошибки при компиляции программ. Некоторые профессионалы пользуются этой возможностью в определенных случаях. Для новичков же эта возможность выхода за границы, является причиной большого количества ошибок, допускаемых при работе с массивами. Поэтому здесь нужно быть осторожным. Порой можно сидеть целый день с программой и не понимать, что в ней не так и почему она выдает совершенно непредсказуемый результат. Причина тривиальна - выход за пределы массива. Таким образом, можно залезть в иные переменных, которые хранят свои значения по соседству в памяти, и ненароком повредить их, вызвав тем самым дополнительные ошибки.

Также напомню, что само имя массива, является указателем на его первый элемент. А так как все элементы массива расположены в памяти компьютера строго последовательно, то имя массива указывает на начало массива в памяти компьютера. Индекс, как я уже сказал, указывает на тот элемент, в этой последовательности, к которому мы хотим обратиться (будь-то считать его значение, либо задать иное).

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

01.#include <iostream>

02.

03.using namespace std;

04.

05.int main()

06.{

07. int aNumber[10] = {3, 5, 11, 15, 18, 21, 22, 28, 36, 43};

08. int element;

09.

10. element = *aNumber;

11.

12. cout << "First element of aNumber = " << element << endl;

13.

14. return 0;

15.}

Результат работы программы:

Я не зря сказал - указывает. Т.е. имя массива - это указатель на место в памяти, в котором находится первая переменная массива. Указатель содержит не саму переменную, а лишь адрес ее ячейки, по которому она расположена в памяти компьютера. Не будем углубляться в это, т.к. это отдельная тема про указатели. Скажу лишь, что в нашем примере указатель разыменовывается с помощью ( * ). Благодаря чему, он передает значение, на которое указывает. В нашем случае он его присваивает переменной element, которую мы затем будем выводить на экран. Думаю здесь все относительно понятно.

Теперь будем говорить непосредственно о двумерных массивах в С++.



<== предыдущая лекция | следующая лекция ==>
Полное иследование функции и построение графика. | Говорим о двумерных массивах


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.