15 break;
16 case 2:
17 printf("Vvedite chislo\n");
18 scanf("%d",&a);
19 printf("Kub chisla raven %d\n",a*a*a);
20 break;
21 case 3:
22 break;
23 default:
24 printf("Nevernui vvod!\n\n");
25 }
26 }
27 while(d!=3);
28 }
Оператор switch используется для выбора одного из вариантов, указанных в case. Также для написания программы мы использовали цикл do-while. Цикл проверяет условие в конце.
В default мы указали случай, в котором пользователь вводит цифру, не являющуюся номером пункта меню. А что будет если пользователь введет букву. Возможно зацикливание и т.п. Чтобы этого не было. Нам необходимо предусмотреть ввод не цифр, а букв.
Листинг 6
Программа с меню
1 #include
2 main()
3 {
4 int a;
5 char d;
6 do
7 {
8 printf(" MENU \n1. Kvadrat chisla\n2. Kub chisla\n3. Vuhod\nVuberite punkt menu\n");
9 scanf("%s",&d);
10 switch(d)
11 {
12 case ‘1’:
13 printf("Vvedite chislo\n");
14 scanf("%d",&a);
15 printf("Kvadrat chisla raven %d\n",a*a);
16 break;
17 case ‘2’:
18 printf("Vvedite chislo\n");
19 scanf("%d",&a);
20 printf("Kub chisla raven %d\n",a*a*a);
21 break;
22 case ‘3’:
23 break;
24 default:
25 printf("Nevernui vvod!\n\n");
26 }
27 }
28 while(d!=3);
Задания:
Спроектировать меню. Написать программу.
Оператор for
Оператор for – это оператор цикла, обобщение оператора while [4]. Оператор for:
for (int i=0; i
{
….
}
int i=0 – инициализация,
i
i++ – модификация.
Каждый раз выполняется тело цикла, в конце идет модификация (в данном случае i++), поэтому цикл будет выполняться столько раз, сколько указано в условиях, если условие верно, то выполняется тело еще раз.
Задание: вычислить значение функции y=x*x-4*x при х от 100 до 200 включительно, начиная от 100 с шагом 20. Решение задачи в Листинге 7, результат решения Листинга 7 на Рисунке 1.
Листинг 7
#include
using namespace std;
int main()
{
int y;
for(int x=100;x<=200;x=x+20)
{
y=x*x-4*x;
cout<<"y("<<")="<
}
}

Рисунок 1
Типы данных
Типы данных:
char хранит символ (один байт),
int – целочисленные значения,
float – вещественные значения с одинарной точностью,
double – вещественное значения с двойной точностью и т.д.
Модификаторы:
short – короткое целое,
long – длинное целое.
Диапазон значений зависит от аппаратной и системной платформы.
Например, int будет или 16, или 32. Узнать это возможно, используя операцию sizeof(), она возвращает размер в байтах, смотри Листинг 8, Рисунок 2.
Листинг 8
#include
using namespace std;
int main()
{
cout<
}

Рисунок 2
Время жизни и область видимости переменной
Программный блок – это часть программы между фигурными скобками.
Локальные переменные живут только во время программного блока. Локальные переменные объявлены внутри блока.
Глобальная переменная живет на протяжении всей жизни программы. Глобальная переменная объявляется вне блоков программы.
Пример в Листинге 9. Если убрать скобки в строках 8 и 9, компилятор выдаст ошибку.
Листинг 9
1#include
2using namespace std;
3
4 int main()
5 {
6 int i=10;
7 cout<
8 {
9 int i=11;
10 cout<
11 }
12}
Преобразование типов
В зависимости от версии компилятора, округление будет либо в большую, либо в меньшую сторону. Смотри Листинг 10, Рисунок 3.
Листинг 10
#include
using namespace std;
int main()
{
int y;
y=(int)(3/10);
cout<
y=(int)(10/3);
cout<
}

Рисунок 3
Поразрядные операции
Напишите программу, которая переводит введенное положительное число в двоичное систему счисления и выводит на экран результат перевода.
Пример решения задания в Листинге 11.
Листинг 11
#include
using namespace std;
void dv(int a)
{
int b[100];
int i=0;
while(a>1)
{
b[i]=a%2;
a=(a-a%2)/2;
i++;
}
b[i]=a;
for(int j=i;j>=0;j–)
cout<
}
int main()
{
int a;
cin>>a;
dv(a);
return 0;
}
Ниже даны тесты для проверки задач программы.
Тест 1
a=10
Результат
1010
Тест 2
a=2
Результат
10
Тест 3
a=8
Результат
1000
Поразрядные операции применимы только к целочисленным аргументам (char, short, int и long).
& – поразрядное И
Читать дальше