Чтение онлайн

на главную - закладки

Жанры

Программирование на С, С++
Шрифт:

В default мы указали случай, в котором пользователь вводит цифру, не являющуюся номером пункта меню. А что будет если пользователь введет букву. Возможно зацикливание и т.п. Чтобы этого не было. Нам необходимо предусмотреть ввод не цифр, а букв.

Листинг 6

Программа с меню

1 #include<stdio.h>

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<n; i++)

{

….

}

int i=0 – инициализация,

i<n – проверка условия,

i++ – модификация.

Каждый раз выполняется тело цикла, в конце идет модификация (в данном случае i++), поэтому цикл будет выполняться столько раз, сколько указано в условиях, если условие верно, то выполняется тело еще раз.

Задание: вычислить значение функции y=x*x-4*x при х от 100 до 200 включительно, начиная от 100 с шагом 20. Решение задачи в Листинге 7, результат решения Листинга 7 на Рисунке 1.

Листинг 7

#include<iostream>

using namespace std;

int main

{

int y;

for(int x=100;x<=200;x=x+20)

{

y=x*x-4*x;

cout<<"y("<<x<<")="<<y<<endl;

}

}

Рисунок 1

Типы данных

Типы данных:

char хранит символ (один байт),

int – целочисленные значения,

float – вещественные значения с одинарной точностью,

double – вещественное значения с двойной точностью и т.д.

Модификаторы:

short – короткое целое,

long – длинное целое.

Диапазон значений зависит от аппаратной и системной платформы.

Например, int будет или 16, или 32. Узнать это возможно, используя операцию sizeof, она возвращает размер в байтах, смотри Листинг 8, Рисунок 2.

Листинг 8

#include<iostream>

using namespace std;

int main

{

cout<<sizeof(int);

}

Рисунок 2

Время

жизни и область видимости переменной

Программный блок – это часть программы между фигурными скобками.

Локальные переменные живут только во время программного блока. Локальные переменные объявлены внутри блока.

Глобальная переменная живет на протяжении всей жизни программы. Глобальная переменная объявляется вне блоков программы.

Пример в Листинге 9. Если убрать скобки в строках 8 и 9, компилятор выдаст ошибку.

Листинг 9

1#include<iostream>

2using namespace std;

3

4 int main

5 {

6 int i=10;

7 cout<<i;

8 {

9 int i=11;

10 cout<<endl<<i;

11 }

12}

Преобразование типов

В зависимости от версии компилятора, округление будет либо в большую, либо в меньшую сторону. Смотри Листинг 10, Рисунок 3.

Листинг 10

#include<iostream>

using namespace std;

int main

{

int y;

y=(int)(3/10);

cout<<y<<endl;

y=(int)(10/3);

cout<<y;

}

Рисунок 3

Поразрядные операции

Напишите программу, которая переводит введенное положительное число в двоичное систему счисления и выводит на экран результат перевода.

Пример решения задания в Листинге 11.

Листинг 11

#include <iostream>

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<<b[j];

}

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).

& – поразрядное И

| – поразрядное включающее ИЛИ

^ – поразрядное исключающее ИЛИ

<< – сдвиг влево

>> – сдвиг вправо

~ – одноместное поразрядное дополнение до единицы

В побитовых операциях работа идет над каждым битом.

Поделиться:
Популярные книги

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

Идеальный мир для Лекаря 19

Сапфир Олег
19. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 19

Гарем на шагоходе. Том 1

Гремлинов Гриша
1. Волк и его волчицы
Фантастика:
боевая фантастика
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Гарем на шагоходе. Том 1

Академия проклятий. Книги 1 - 7

Звездная Елена
Академия Проклятий
Фантастика:
фэнтези
8.98
рейтинг книги
Академия проклятий. Книги 1 - 7

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Сломанная кукла

Рам Янка
5. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Сломанная кукла

Офицер-разведки

Поселягин Владимир Геннадьевич
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Офицер-разведки

Имя нам Легион. Том 9

Дорничев Дмитрий
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 9

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Этот мир не выдержит меня. Том 2

Майнер Максим
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Этот мир не выдержит меня. Том 2