lecture-monitoring and performance tuning of the computer
Programming c++ (begin-if-else)
1. Стив Джобс: «I think everybody should learn how
to program a computer because it teaches you how
to think»
«Каждый должен учиться программированию,
потому что это учит людей думать».
2. В современном мире изучение программирования
открывает перед человеком большие возможности и
перспективы. И дело не только в шестизначных цифрах,
которые готовы платить крупные компании за работу
квалифицированных IT-специалистов, но и в том, что
программирование — ключ к пониманию особенностей
работы современной техники и, независимо от
избранной профессии, базовые навыки
программирования могут быть полезными всем.
3. «Мы хотим сорвать покров с магического
искусства программирования, который отделяет
вас от Марка Цукерберга», — говорит глава
Code.org, экс-менеджер Microsoft Хади Партови.
12. Таблица
Флаги форматирования и их назначение
Флаг Назначение
hex Значения целого типа преобразуются к основанию 16 (как шестнадцатеричные)
dec Значения целого типа преобразуются к основанию 10
oct Значения целого типа преобразуются к основанию 8 (как восьмеричные)
fixed
Числа с плавающей точкой выводятся в формате с фиксированной точкой (то есть
nnn.ddd)
scientific
Числа с плавающей точкой выводятся в так называемой научной записи (то есть
n.хххЕуу)
showbase
Выводится основание системы счисления в виде префикса к целому числовому
значению (например, число 1FE выводится как 0x1FE)
showpos При выводе положительных числовых значений выводится знак плюс
uppercase
Заменяет определенные символы нижнего регистра на символы верхнего регистра
(символ "е" при выводе чисел в научной нотации на "Е" и символ "х" при выводе 16-
ричных чисел на "X")
left Данные при выводе выравниваются по левому краю поля
right Данные при выводе выравниваются по правому краю поля
internal
Добавляются символы-заполнители между всеми цифрами и знаками числа для
заполнения поля вывода
skipws
Ведущие символы-заполнители (знаки пробела, табуляции и перевода на новую строку)
отбрасываются
stdio Потоки stdout, stderr очищаются после каждой операции вставки
unitbuf Очищаются все выходные потоки после каждой операции вставки в поток
stdio Очищаются stdout, stderr после каждой операции вставки в поток
13. В качестве второго параметра функции setf() можно
использовать следующие константы, определенные в
классе ios:
static const long basefield; // = dec | oct | hex
static const long adjustfield; // = left | right | internal
static const long floatfield; // = scientific | fixed
14. Таблица
Манипуляторы ввода-вывода и их назначение
Манипулятор Использование Назначение
dec Ввод-вывод Устанавливает флаг dec
endl Вывод
Вставляет символ новой строки и
очищает буфер
ends Вывод Вставляет символ конца
flush Вывод Очищает буфер потока
hex Ввод-вывод Устанавливает флаг hex
oct Ввод-вывод Устанавливает флаг oct
resetiosflags (iosbase::long mask) Ввод-вывод
Сбрасывает ios-флаги в
соответствии с mask
Setbase (int base) Ввод-вывод
Задает основание системы
счисления для целых (8, 10, 16)
Setfill (int c) Ввод-вывод Устанавливает символ-заполнитель
setiosflags (iosbase::long mask) Ввод-вывод
Устанавливает ios-флаги в
соответствии с mask
setprecision (int n) Ввод-вывод
Устанавливает точность чисел с
плавающей точкой
setw(int n) Ввод-вывод
Устанавливает минимальную
ширину поля
ws Ввод
Устанавливает пропуск символов-
заполнителей
15. . . .
char array[SIZE];
cin>>setw(sizeof(array)); // Или cin.width(sizeof(array));
// Ограничивает число вводимых символов
. . . // и позволяет избежать выхода
// за границу массива.
cin >> array;
22. Условие – это любое
выражение, которое
возвращает булево
значение true или false.
23. if (условие)
{ операторы1 }
else
{ операторы2 }
Замена одиночного оператора блоком
Блок состоит из группы операторов, заключенных в фигурные скобки ({ и }).
Фрагменты кода операторы1 и операторы2 являются блоками,
т.к. заключены в фигурные скобки.
Использовать блоки, даже в случае одного оператора.
24. Фигурные скобки, отмечающие границы блока,
могут находится на отдельных строках:
if (условие)
{
операторы1
}
else
{
операторы2
}
25. В общем случае условный оператор
if имеет вид:
if (выражение 1) оператор1;
else if (выражение 2) оператор 2;
else if (выражение 3) оператор 3;
else оператор N;
26. Оператор множественного выбора switch
Синтаксис оператора множественного
выбора:
switch (выражение)
{
case значение 1: оператор 1; break;
case значение 2: оператор 2; break;
…
default: оператор по несовпадению
}
27. Пример 1
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b,res;
char op;
cout << "type a->" << endl;
cin >> a;
cout << "type b->" << endl;
cin >> b;
cout << "type op->" << endl;
//op - операция (+,-,/,*)
cin >> op;
switch(op)
{
case '+': res = a+b; cout << "res = " << res << endl; break;
case '-': res = a-b; cout << "res = " << res << endl; break;
case '*': res = a*b; cout << "res = " << res << endl; break;
default : cout << "Unknown oparator" << endl;
}
}
28. Самостоятельно:
реализуйте деление и
предусмотрите деление на ноль!
ЗАДАЧА 1#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b,res;
char op;
cout << "type a->" << endl;
cin >> a;
cout << "type b->" << endl;
cin >> b;
cout << "type op->" << endl;
//op - операция (+,-,/,*)
cin >> op;
switch(op)
{
case '+': res = a+b; cout << "res = " << res << endl; break;
case '-': res = a-b; cout << "res = " << res << endl; break;
case '*': res = a*b; cout << "res = " << res << endl; break;
default : cout << "Unknown oparator" << endl;
}
}
29. Самостоятельно:
распишите сегодняшние пары
и их время!
ЗАДАЧА 2
#include <iostream>
using namespace std;
int main()
{
int item;
puts("1. Night;");
puts("2. Morning;");
puts("3. Day;");
puts("4. Afternoon;");
puts("5. Evening;");
cout << "Print item number" << endl;
cin >> item;
switch(item)
{
case 1: puts("From 22 to 3 - Night"); break;
case 2: puts("From 4 to 10 - Morning"); break;
case 3: puts("From 11 to 14 - Day"); break;
case 4: puts("From 15 to 16 - Afternoon"); break;
case 5: puts("From 17 to 21 - Evening"); break;
default: puts("Error!");
}
return 0;
}
30. Ввести 3 числа cin a,b,c типа double, вывести
максимальное из этих чисел
#include <iostream>
#include <clocale>
using namespace std;
intmain()
{
double a,b,c,max;
setlocale(LC_ALL,"russian");
cout << "Введите a,b,c: << endl;
cin >> a >> b >> c;
/*реализовать блоки if*/
/*вывод*/
/*закрытие тела main*/
ЗАДАЧА 3
Editor's Notes
Хорошим стилем программирования считается использование блоков, даже в случае одного оператора. Таким образом, при необходимости добавить ещё одно выражение, блок уже находится в нужном месте. Если же блока нет, можно допустить ошибку, добавить выражение и забыв добавить блок.