Рекомендации по выбору цикла
При выборе цикла необходимо оценить необходимость проверки yсловия при входе в цикл или по завершении прохождения цикла. Если цикл ориентирован на работу с параметром, который меняется в заданных пределах с заданным шагом, то более предпочтительным является параметрический цикл.
Операторы break и continue
В теле любого цикла можно использовать операторы break и continue. Оператор break позволяет выйти из цикла, не завершая его. Оператор continue позволяет пропустить часть операторов тела цикла и начать новую итерацию.
Пример: Вывести числа от 0 до 99 ниже главной диагонали
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int i,j;
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
if(j>i)
break;
printf("%2d ",i*10+j);
}
printf("\n");
}
getchar();
return 0;
}
Результат выполнения программы
Пример: Вывести числа от 0 до 99 исключая числа, оканчивающиеся на 5 или 8
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int i,j;
for(i=0; i<10; i++) {
for(j=0; j<10; j++) {
if((j==8) || (j==5)))
continue;
printf("%2d ",i*10+j);
}
printf("\n");
}
getchar();
return 0;
}
Результат выполнения
При вложенных циклах действия операторов break и continue распространяется только на самую внутреннюю структуру, в которой они содержатся.
Оператор безусловного перехода goto
Общая форма записи
goto метка;
. . .
метка : операция;
Выполнение оператора goto вызывает передачу управления в программе операции, помеченной меткой. По сути метка является идентификатором адреса операции, которой должно быть передано управление. Для отделения метки от оператора используется двоеточие (:). Метка может располагаться в программе как до оператора goto, так и после . Имена меток образуются по тем же правилам, что и имена переменных.
Пример
#include <stdio.h>
int main() {
int k=5;
M1: if(k<0)
goto M2;
printf("%d ",k);
k--;
goto M1;
M2: getchar();
return 0;
}
Результат выполнения
Вопрос 2:Структура программы на языке C++.Примеры.
Структура программы
Программа на языке С++ состоит из функций, описаний и директив препроцессора. Одна из функций должна иметь имя main. Выполнение программы начинается с первого оператора этой функции. Простейшее определение функции имеет следующий формат:
1 2 3 | тип возвращаемого значения имя ([ параметры ]){ операторы, составляющие тело функции } |
Как правило, функция используется для вычисления какого-либо значения, поэтому перед именем функции указывается его тип. Ниже приведены самые необходимые сведения о функциях:
- если функция не должна возвращать значение, указывается тип void:
- тело функции является блоком и, следовательно, заключается в фигурные скобки;
- функции не могут быть вложенными;
- каждый оператор заканчивается точкой с запятой (кроме составного оператора).
Пример структуры программы, содержащей функции main, fl и f2:
1 2 3 4 5 6 7 8 9 10 11 | директивы препроцессора описания int main(){ операторы главной функции } int fl(){ операторы функции fl } int f2(){ операторы функции f2 } |
Программа может состоять из нескольких модулей (исходных файлов).
Билет 8
Вопрос 1 Массивы языка C.Примеры
При решении задач с большим количеством данных одинакового типа использование переменных с различными именами, не упорядоченных по адресам памяти, затрудняет программирование. В подобных случаях в языке Си используют объекты, называемые массивами.
Массив - это непрерывный участок памяти, содержащий последовательность объектов одинакового типа, обозначаемый одним именем.
Массив характеризуется следующими основными понятиями:
Элемент массива (значение элемента массива) – значение, хранящееся в определенной ячейке памяти, расположенной в пределах массива, а также адрес этой ячейки памяти.
Каждый элемент массива характеризуется тремя величинами:
· адресом элемента - адресом начальной ячейки памяти, в которой расположен этот элемент;
· индексом элемента (порядковым номером элемента в массиве);
· значением элемента.
Адрес массива – адрес начального элемента массива.
Имя массива – идентификатор, используемый для обращения к элементам массива.
Размер массива – количество элементов массива
Размер элемента – количество байт, занимаемых одним элементом массива.
Графически расположение массива в памяти компьютера можно представить в виде непрерывной ленты адресов.
Представленный на рисунке массив содержит q элементов с индексами от 0 до q-1. Каждый элемент занимает в памяти компьютера k байт, причем расположение элементов в памяти последовательное.
Адреса i-го элемента массива имеет значение
n+k·i
Адрес массива представляет собой адрес начального (нулевого) элемента массива. Для обращения к элементам массива используется порядковый номер (индекс) элемента, начальное значение которого равно 0. Так, если массив содержит q элементов, то индексы элементов массива меняются в пределах от 0 до q-1.
Длина массива – количество байт, отводимое в памяти для хранения всех элементов массива.
ДлинаМассива = РазмерЭлемента * КоличествоЭлементов
Для определения размера элемента массива может использоваться функция
int sizeof(тип);
Например,
sizeof(char) = 1;
sizeof(int) = 4;
sizeof(float) = 4;
sizeof(double) = 8;