- •Операторы циклов. Массивы
- •1. Операторы циклов
- •Параметрический оператор цикла
- •Операция «Запятая»
- •Оператор цикла while
- •Более изящной является запись
- •Оператор цикла do . . . While
- •Операторы continue, break
- •2. Массивы. Переменные типа массив
- •2.1. Описание массивов
- •2.2. Ввод и вывод массивов Использование массивов в вычислениях предполагает их ввод, как исходных данных, а также вывод их в качестве результата вычислений.
- •2.2.1. Ввод массивов
- •2.2.2. Вывод массивов
- •2.2.3. Операции с массивами
- •2.2.4. Многомерные массивы
- •Для четырехмерного
- •Представление многомерных массивов как массив массивов.
- •Описание массивов с помощью инструкции typedef
-
Операторы continue, break
Эти операторы используются в операторе множественного выбора swith( ) и в телах операторов цикла.
Оператор continue позволяет досрочно завершать тело цикла и переходить к следующему шагу. Включается он в работу только при возникновении определенной ситуации, отображаемой каким–то условием. Это иллюстрируется ниже фрагментом блок – схемы и соответствующим ему фрагментом программ.
х = хn;
while (x <= xk )
if ( x == 0 )
{
x += h;
continue;
}
else
{
y = a*sin(x)/x;
x += h;
}
Из приведенного примера видно, что при значении х = 0 производить вычисление функции у невозможно из–за операции деления на нуль. Поэтому логично пропустить этот шаг вычислений и перейти к новому шагу, где х не равен нулю. В приведенном фрагменте программы переход к следующему шагу вычислений производится с помощью оператора continue;
Оператор break позволяет досрочно завершать цикл. Этот оператор уже встречался в операторе множественного выбора switch. Там он также досрочно завершал работу этого оператора, совершая выход из него.
Суть применения оператора break в цикле можно понять из фрагмента блок – схемы и отвечающего ему фрагмента программы.
х = хн ;
while ( x <= xк )
if ( x < b ) break;
else
{
y = a*sqrt ( b – x );
x += h;
}
Из блок – схемы видно, что при x > b вычисление квадратного корня невозможно. То есть при всех x <= b вычисления возможны и цикл может работать. При достижении х своего первого значения, превышающего значение b, и при всех последующих значениях работа цикла становится невозможной, поэтому будет логично досрочно завершить его работу. Это и осуществляется оператором break.
2. Массивы. Переменные типа массив
Массив – это совокупность однотипных данных, воспринимаемых как единое целое.
Массивы являются удобной формой хранения данных. Поэтому во многих алгоритмических языках, включая и С++, широко используются переменные типа массив.
Переменная типа массив относится к группе сложных переменных. В отличие от простых (одноэлементных) переменных, массив – многоэлементная переменная, что следует из самого определения.
Как и всем другим переменным, этой переменной устанавливается одно имя в соответствии с правилами образования идентификаторов.
2.1. Описание массивов
Оператор описания массивов имеет следующий синтаксис:
тип элемента массива имя[размер]; |
В связи с тем, что массив – совокупность однотипных данных, то достаточно указать в операторе описания одно общее имя типа элементов массива. Размер – это количество элементов массива, которое всегда является константой. Элементами массивов могут быть:
-
числа,
-
символы,
-
другие массивы,
-
другие объекты сколь сложной структуры.
Например, дан числовой ряд –5, 27, 0, 123, -76, 37, который необходимо описать как массив. Прежде, чем описать массив, необходимо определить количество его элементов. В приведенном примере их шесть. Далее следует установить тип элементов. Числовой ряд состоит из целых чисел, размещаемых в диапазоне – 128 … 127. Целые числа, располагаемые в этом диапазоне, имеют стандартное имя типа short. На основании этого анализа можно записать оператор описания массива с выбранным для него именем а.
short a[6];
Эта запись информирует о том, что в вычислительном процессе будет участвовать переменная типа массив, с именем а, состоящая из шести чисел, тип которых short. На основании такой информации этой переменной будет выделено в оперативной памяти подряд шесть однобайтовых ячеек, в которых будут в последствии размещены шесть чисел.
С целью придания программе универсальности следует избегать использования значений данных и обозначать эти данные именами. С учетом этого, описание приведенного массива будет более профессиональным в следующем виде:
const short n = 6;
short a[n];
или
# define n 6
short a[n];
Каждый элемент массива имеет свой идентификатор, который образуется из имени массива, которому принадлежит элемент и его порядкового номера (индекса) в массиве. При этом следует иметь в виду, что в С++ индексация элементов массива начинается с нуля. Следовательно, при количестве элементов в массиве n индекс первого элемента будет 0, а последнего – (n – 1).
Синтаксис обозначения элементов массива следующий:
Имя массива [индекс] |
Пример обозначения элементов массива: а[0], a[3], a[5]. В этом примере показан первый, четвертый и шестой элемент массива а.
В С++ допускается представлять выражениями как размер массива, так и индексы элементов. Но при этом обязательным требованием является целочисленное значение такого выражения в диапазоне 0 …n-1.
Пример описания массива:
const short x = 5, y = 10;
float a[x*y];
Пример индексации элементов массива: a[i], a[i+1], a[2*i].