
- •Вопрос 5 Скалярные типы и выражения. Приведите пример простой программы.
- •Вопрос 6 Типы операций: операции присвоения и отношения. Примеры. Операция присваивания.
- •Вопрос7 Типы операций: логические, битовые и условные операции.
- •10) Условные операторы. Варианты условных операторов. Пример: Даны целые числа X, y. Вычислить max(X, y).
- •11) Условные конструкции. Оператор switch. Приведите примеры
- •12. Условные и циклические конструкции. Виды конструкций, что общего у них.
- •13.Циклические конструкции. Виды конструкций.
- •14Циклические констрккции.Цикл while
- •Вопрос15 Циклические конструкции. Цикл do...While. Приведите примеры.
- •Вопрос16 Циклические конструкции. Цикл for. Приведите примеры. Циклические конструкции. Цикл for
- •Вопрос17 Цикл for. Использование операции "запятая". Приведите примеры.
- •Вопрос18 Укажите особенности операторов go to, break, continue, return.
- •20Этапы решения задач на компьютере
- •21 Назначение препроцессора .Примеры использования директив препроцессора
- •1. Замена идентификаторов заранее подготовленными последовательностями символов;
- •2. Включение в программу текстов из указанных файлов;
- •3. Исключение из программы отдельных частей ее текста, условная компиляция;
- •4. Макроподстановка, то есть замена обозначения параметризованным текстом, формируемым препроцессором с учетом конкретных аргументов.
- •23Основные возможности функции scanf(). Приведите примеры
- •25Арифметические операции. Приведите примеры.
- •27 Указатели и адреса
- •28 Общие сведения о массивах
- •29Многомерные массивы. Работа с массивами с помощью указателей
- •30Общие сведения о функциях. Определение функции
- •31 Класс памяти (auto)
- •32Внешний класс памяти (extern)
- •33 Внешние глобальные объекты (extern)
- •33Внешние статические объекты (static).
- •34 Строки
- •35 Функция для работы со строками
10) Условные операторы. Варианты условных операторов. Пример: Даны целые числа X, y. Вычислить max(X, y).
В языке C++ существует оригинальная операция, обозначаемая:
Условие ? Выражение_1 : Выражение_2.
и называемая условной операцией.
Эта операция содержит три операнда. Сначала вычисляется значение выражения Условие. Если значение отлично от нуля (истинно), то вычисляется значение выражения Выражение_1, которое и становится значением условной операции. В противном случае вычисляется значение выражения Выражение_2 становится значением условного выражения.
Каждый раз вычисляется одно из выражений Выражение_1 или Выражение_2.
Примеры.
1. Выражение (5>3) ? 1 : 2 возвращает значение 1.
2. Выражение (3>5) ? 1 : 2 возвращает значение 2.
3. Выражение (a>b) ? a : b возвращает большую из величин a и b.
Условную операцию удобно использовать в тех случаях, когда имеется некоторая переменная, которой можно присвоить одно из двух возможных значений. Например: x = (y<0) ? -y : y;. Значением переменной x становится абсолютная величина значения y.
Пример 1.
#include<iostream.h>
main ()
{
int x,y,z,r;
x = y=z=1; x += y+=z;
r = x<y?y:x; /* Операции 1 */
cout<<r<<" ";
r = x<y?x++:y++; /* Операции 2 */
cout<<r<<" "; cout<<x<<" "; cout<<y<<" ";
z += x<y?x++:y++; /* Операции 3 */
cout<<z<<" "; cout<<y<<" "; cout<<x<<" ";
x = 3; y = z=4;
r = (z>=y>=x)?1:0; /* Операции 4 */
cout<<r<<" ";
r = z>=y&&y>=x; /* Операции 5 */
cout<<r<<" ";
}
В результате получаем:
3 2 3 3 4 4 3 0 1
#include<iostream.h>
main ()
{
int x,y;
cout<<"Введите число x. x=";
cin>>x;
cout<<"Введите число y. y=";
cin>>y;
if (x>y)
cout<<"Максимальное число "<<x;
else if (x==y)
cout<<"Числа равны";
else cout<<"Максимальное число "<<y;
}
11) Условные конструкции. Оператор switch. Приведите примеры
При решении задач достаточно часто приходится осуществлять выбор одного из нескольких вариантов. Это можно сделать с помощью конструкций if...else, но во многих случаях оказывается более удобным применять оператор switch, общий вид которого следующий:
switch (<переключающее выражение>)
{
case <константное_выражение_1>:
<операторы_1>;
case <константное_выражение_2>:
<операторы_2>;
. . . . . .
case <константное_выражение_n>:
<операторы_n>;
default: <операторы>;
}
Управляющая конструкция switch передает управление к тому из помеченных с помощью case операторов, для которого значение константного выражения совпадает со значением переключающего выражения. Переключающее выражение должно быть целочисленным или его значение приводится к целому. Значения константных выражений, помещаемых за служебными словами case, приводятся к типу переключающего выражения. В одном переключателе все константные выражения должны иметь различные значения, но быть одного типа. Любой из операторов, помещенных в фигурных скобках после конструкции switch (...), может быть помечен одной или несколькими метками case. Если значение переключающего выражения не совпадает ни с одним из константных выражений, то выполняется переход к оператору, отмеченному меткой default. В каждом переключателе должно быть не больше одной метки default, однако эта метка может и отсутствовать. В этом случае при несовпадении переключающего выражения ни с одним из константных выражений, помещаемых вслед за case, в переключателе не выполняется ни один из операторов.
Метки не изменяют последовательности выполнения операторов. Если не предусмотрены переходы или выход из переключателя, то в нем последовательно выполняются все операторы, начиная с той метки, на которую передано управление.
Проиллюстрируем указанную особенность на следующем примере: составить программу, выводящую названия нечетных целых цифр, не меньших заданной.
#include<iostream.h>
void main()
{ int ic;
cout << "\nВведите любую десятичную цифру: ";
cin >> ic;
cout << '\n';
switch (ic)
{ case 0: case 1: cout << "один, ";
case 2: case 3: cout << "три, ";
case 4: case 5: cout << "пять, ";
case 6: case 7: cout << "семь, ";
case 8: case 9: cout << "девять ";
break; //Выход из переключателя.
default: cout << "Ошибка! Это не цифра! ";
}
}
Пусть, например, была введена цифра 6. Компьютер "найдет" метку case 6 и выполнит все операторы, идущие за этой меткой:
case 7: cout << "семь, ";
case 8:
case 9: cout << "девять ";
Таким образом, на экран будет выведено: семь, девять.
Приведенная программа также иллюстрирует действие оператора break, о котором более подробно мы поговорим на 33 шаге. С его помощью осуществляется выход из переключателя. Если поместить оператор break после вывода каждой цифры, то программа будет печатать название только одной нечетной цифры.
Приведем несколько примеров использования оператора switch.
Пример 1.
#include<iostream.h>
main ()
{
int c;
cout << "Введите цифру от 1 до 7: ";
cin >> c;
cout << "\nСоответствующий день недели:";
switch (c)
{
case 1 : cout << "\nПонедельник - день тяжелый!";
break;
case 2 : cout << "\nВторник!"; break;
case 3 : cout << "\nСреда!"; break;
case 4 : cout << "\nЧетверг!"; break;
case 5 : cout << "\nПятница!"; break;
case 6 : cout << "\nСуббота!"; break;
case 7 : cout << "\nВоскресенье! Ура!"; break;
default : cout << "\nЭто не цифра от 1 до 7";
}
}
Обратите внимание, что если после метки с двоеточием идет несколько операторов, то их необязательно помещать в блок с помощью скобок { и }.
Напомним, что если не использовать оператор завершения break, то по окончании выполнения списка операторов выбранного варианта произойдет переход на следующий вариант из списка.