
Билет №4.
Структуры (описание, обращение к полям – для простой переменной, массива, указателя, ввод/вывод ).
Структуры в С++ используются для логического и физического объединения данных произвольных типов.
Структура в С++ задаётся следующим образом:
struct <имя_структуры>
{
члены (элементы) структуры
};
Использование структур:
Структуры в С++ используются для логической или физической группировки объектов, имеющих общий контекст. Наиболее очевидным использованием является создание пользовательских типов данных, упрощающих написание, понимание и сопровождение программы.
Использование структур при написании собственных типов данных рекомендуется в том случае, если выполняется ряд условий:
Создаваемый тип данных не имеет собственного поведения. То есть объект такого типа рассматривается как пассивный набор данных.
Члены данных создаваемого типа данных не могут находиться во взаимно противоречивом состоянии. То есть любая комбинация значений членов структуры является допустимой.
Структура описания переменной:
<Тип переменной> <Имя переменной>
int s
Структура обращения к полям для простой переменной:
Структура Массива:
<Тип переменной> <Имя массива [Размер массива]>
float a[10]
<Тип переменной> <Имя массива [Количество строк][Количеств столбцов]>
float a[2][3]
Структура указателя:
<Тип функции> <Имя функции>(<Тип переменной> <Имя переменной>, <Тип переменной> *<Имя переменной>)
void f3(float x, int *y)
Структура ввода/вывода:
Ввод: cout <<"\n x=";
cin >> x;
Вывод: cout << " pri k = " << k;
Билет №5.
Оператор цикла параметрический (блок-схема, псевдокод, запись на языке С++, параметр цикла, тело цикла, вложенные циклы).
Оператор цикла for
Рассмотрим пример оператора цикла for:
for ( ; ; ) ;
Его заголовок состоит из пустого оператора (ему соответствует первая точка с запятой) и разделителя, который разделяет два пустых выражения. Тело цикла - пустой оператор.
Пустое выражение, определяющее условие выполнения цикла for интерпретируется как всегда истинное условие. Отсутствие условия выполнения предполагает безусловное выполнение.
ОператорИнициализацииFor жёсткие ограничения:
это всегда единственный оператор,
он не может быть блоком операторов,
единственным средством усложнения его структуры служит операция запятая.
Эта операция управляет последовательностью выполнения образующих оператор выражений.
Рассмотрим принципы работы этого оператора. Цикл состоит из четырёх этапов.
Прежде всего, выполняется оператор инициализации цикла. Если он не пустой, выражение за выражением, слева направо. Этот этап можно назвать этапом инициализации цикла. Он выполняется один раз, в самом начале работы цикла.
Затем вычисляется значение выражения, которое располагается слева от оператора инициализации. Это выражение называется выражением условия продолжения цикла. Сам этап можно назвать этапом определения условий выполнимости.
Если значение этого выражения отлично от нуля (т.е. истинно), выполняется оператор цикла. Этот этап можно назвать этапом выполнения тела цикла.
После этого вычисляются значения выражений, которые располагаются слева от выражения условия продолжения цикла. Этот этап можно назвать этапом вычисления шага цикла.
На последних двух этапах могут измениться значения ранее определённых переменных. А потому следующий цикл повторяется с этапа определения условий выполнимости.
Оператор инициализации цикла - это всего лишь название оператора, который располагается в заголовке цикла. Этот оператор может инициализировать переменные, если того требует алгоритм, в этот оператор могут входить любые выражения, в конце концов, он может быть пустым. Транслятору важен синтаксис оператора, а не то, как будет выполняться данный оператор цикла.
int qwe;
for (qwe < 10; ; ) {}
// Оператор инициализатор построен на основе выражения сравнения.
for (this; ; ) {}
// Оператор инициализатор образован первичным выражением this.
for (qwe; ; ) {}
// Оператор инициализатор образован первичным выражением qwe.
Ещё пример:
int i = 0;
int j;
int val1 = 0;
int val2;
:::::
i = 25;
j = i*2;
:::::
for ( ; i < 100; i++, j--)
{
val1 = i;
val2 - j;
}
i
= m
Д
ля
I
от m
до m+n-1
Ш
f
D
i
< m+n
К
t
D
i
= i+n
for(i=m;i<m+n-1;i++)
if (i<m+n)
{
X=x+5i;
i=i+n;
}