Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PYaVU_otvyty.docx
Скачиваний:
2
Добавлен:
04.08.2019
Размер:
100.42 Кб
Скачать

Билет 32. Организация вложенных циклов

В теле одного цикла (далее он будет называться внешним) можно организовать другой цикл (который будет называться вложенным или внутренним). Итак, вложенный цикл – это цикл, находящийся в теле другого. Притом во внутреннем цикле можно организовать ещё один (вложенный цикл второго уровня) и так далее, степень вложенности в С в принципе не ограничена, только вот разобраться с циклом со степенью вложенности 50 будет трудновато, поэтому такие огромные как правило избегают (с помощью того же switch).

Итерация – проход по циклу. Чтобы узнать, сколько будет проходов по данному циклу, необходимо умножить количество его итераций на количество итераций внешних циклов (внешних относительно данного). Такое можно сделать только зная точное количество проходов, притом в циклах for вычисляем количество по параметрам. Например взяв три вложенных друг в друга цикла, каждый по 10 итераций, получим 10 исполнений тела для внешнего цикла, 100 для цикла второго уровня и 1000 в самом внутреннем цикле.

// Внешний цикл

for(i=1;i<10;i++)

{

// Внутренний цикл

for(j=1;j<5;j++)

{

printf("%d * %d = %d", i, j, i*j);

printf("\n");

}

printf("\n");

}

Билет 33: Массивы. Определение и инициализация одномерных массивов

Массивом называется упорядоченная совокупность однотипных величин, объединенных одним именем.Упорядоченность заключается в том, что за каждым элементом закрепляется индекс (номер по порядку, начиная с нуля).Следовательно, массивы нужны, чтобы работать с однотипными упорядоченными элементами.Массивы в С всегда начинаются с нуля.Если возникает необходимость работать с массивом, начинающимся с 1, то либо игнорируем нулевой элемент (что не очень красиво, т.к. остается выделенная незадействованная память), либо учитываем, что нумерация массива на 1 меньше, чем действительная.

У элемента массива может быть несколько индексов (в случае много мерных массивов, к примеру, для элементов двумерного массива два индекса).Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице.Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

Достоинства применения массивов

легкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим)

одинаковое время доступа ко всем элементам

элементы объединены одним именем и находятся в одном месте: не потеряются =)

Недостатки

при работе с массивом в стиле C (с указателями) и при отсутствии дополнительных средств контроля — угроза выхода за границы массива и повреждения данных

Определение одномерного массива:

Общая структура объявления: <a><b>, где а – последовательность спецификаций (класс памяти (static, extern), тип (const) и другие спецификаторы (int, double), притом идут именно в такой последовательности), b – список описателей (имя, *, [])

double ar[10]; - Определение одномерного массива, элементы которого имеют тип double, на 10 элементов (т.е. от 0 до 9). Скобки могут быть пустыми (только в стандарте С99), тогда размеры не определены.Вместо пустых скобок можно перед именем поставить *, записи будут эквивалентны, однако как правило с помощью * определяются строки (одномерные массивы символов) и определять * обычные массивы потому не очень красиво.

Инициализация одномерных массивов:

int Ar1[5]={2,4}; - при этом нулевой элемент будет содержать 2, первый – 4, а остальное – нули.

double Ar2[5]={1.5,3,5.7,7,9}; - все элементы инициализированы числами типа double

a[2]=i; - В этом случае инициализируется только 1 элемент массива, в остальных мусор (если был объявлен с помощью индексных скобок, если объявлен *, то все элементы по умолчанию нули). Чтобы проинициализировать таким образом весь массив, необходимо организовать цикл: for(i=0;i<5;i++)a[i]=i;

*Ar1=3; - как мы помним, имя массива – указатель на нулевой элемент. В данном случае нулевой элемент содержит 3, а остальные – нули.

!Имя массива является указателем на его первый элемент.

!Средством доступа к элементам является оператор – [] – индексные скобки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]