SlideShare a Scribd company logo
1 of 30
Стив Джобс: «I think everybody should learn how
to program a computer because it teaches you how
to think»
«Каждый должен учиться программированию,
потому что это учит людей думать».
В современном мире изучение программирования
открывает перед человеком большие возможности и
перспективы. И дело не только в шестизначных цифрах,
которые готовы платить крупные компании за работу
квалифицированных IT-специалистов, но и в том, что
программирование — ключ к пониманию особенностей
работы современной техники и, независимо от
избранной профессии, базовые навыки
программирования могут быть полезными всем.
«Мы хотим сорвать покров с магического
искусства программирования, который отделяет
вас от Марка Цукерберга», — говорит глава
Code.org, экс-менеджер Microsoft Хади Партови.
ТИПЫ ДАННЫХ:
int – целочисленный
char – символьный
bool – логический
float – вещественный с
плавающей точкой одиночной
точности, 7 зн.
double – вещественный с
плавающей точкой двойной
точности, 14 зн.
4
1
4
1
8
4
byte
byte
byte
byte
byte
byte
int a, b, c
float x, y, z
double x, y, z
char d, e, f
bool g, h, k
12 byte
12 byte
24 byte
3 byte
3 byte
width(), precision() и fill().
int width(int wide);
int width() const;
int precision(int prec);
int precision() const;
char fill(char type ch);
char fill() const;
x sqrt(x) х^2
0000001 0000001 0000001
0000002 01.4142 0000004
0000003 01.7321 0000009
0000004 0000002 0000016
0000005 02.2361 0000025
0000006 02.4495 0000036
Таблица
Флаги форматирования и их назначение
Флаг Назначение
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 после каждой операции вставки в поток
В качестве второго параметра функции setf() можно
использовать следующие константы, определенные в
классе ios:
static const long basefield; // = dec | oct | hex
static const long adjustfield; // = left | right | internal
static const long floatfield; // = scientific | fixed
Таблица
Манипуляторы ввода-вывода и их назначение
Манипулятор Использование Назначение
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 Ввод
Устанавливает пропуск символов-
заполнителей
. . .
char array[SIZE];
cin>>setw(sizeof(array)); // Или cin.width(sizeof(array));
// Ограничивает число вводимых символов
. . . // и позволяет избежать выхода
// за границу массива.
cin >> array;
ТЕМА:
«Программирование ветвящихся
алгоритмов на языке C++»
Начало
Конец
ОПЕРАТОРЫ ОТНОШЕНИЯ В УСЛОВНЫХ ВЫРАЖЕНИЯХ
< Меньше
<= Меньше или равно
> Больше
>= Больше или равно
== Равно
! = Не равно
Условный оператор с одной ветвью
if условие then команды end
Условный оператор с двумя ветвями
if условие then команды1 else команды2 end
if (условие)
фрагмент кода 1
else
фрагмент кода 2
Использование условного оператора в C
Условие – это любое
выражение, которое
возвращает булево
значение true или false.
if (условие)
{ операторы1 }
else
{ операторы2 }
Замена одиночного оператора блоком
Блок состоит из группы операторов, заключенных в фигурные скобки ({ и }).
Фрагменты кода операторы1 и операторы2 являются блоками,
т.к. заключены в фигурные скобки.
Использовать блоки, даже в случае одного оператора.
Фигурные скобки, отмечающие границы блока,
могут находится на отдельных строках:
if (условие)
{
операторы1
}
else
{
операторы2
}
В общем случае условный оператор
if имеет вид:
if (выражение 1) оператор1;
else if (выражение 2) оператор 2;
else if (выражение 3) оператор 3;
else оператор N;
Оператор множественного выбора switch
Синтаксис оператора множественного
выбора:
switch (выражение)
{
case значение 1: оператор 1; break;
case значение 2: оператор 2; break;
…
default: оператор по несовпадению
}
Пример 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;
}
}
Самостоятельно:
реализуйте деление и
предусмотрите деление на ноль!
ЗАДАЧА 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;
}
}
Самостоятельно:
распишите сегодняшние пары
и их время!
ЗАДАЧА 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;
}
Ввести 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

More Related Content

What's hot

Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...corehard_by
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Аскетичная разработка браузера
Аскетичная разработка браузераАскетичная разработка браузера
Аскетичная разработка браузераPlatonov Sergey
 
Ecma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoEcma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoDenis Khabrenko
 
Rust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатноRust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатноOpen-IT
 
Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019
Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019
Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019corehard_by
 
Догнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_castДогнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_castRoman Orlov
 
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Roman Orlov
 
Михаил Давыдов - JavaScript. Базовые знания
Михаил Давыдов - JavaScript. Базовые знанияМихаил Давыдов - JavaScript. Базовые знания
Михаил Давыдов - JavaScript. Базовые знанияYandex
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Dima Dzuba
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияPlatonov Sergey
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Yandex
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введениеmcroitor
 
Лекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building BlocksЛекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building BlocksMikhail Kurnosov
 

What's hot (20)

Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
Обобщенное программирование в C++ или как сделать свою жизнь проще через стра...
 
Erlang
ErlangErlang
Erlang
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Аскетичная разработка браузера
Аскетичная разработка браузераАскетичная разработка браузера
Аскетичная разработка браузера
 
Ecma script 6 yevhen diachenko
Ecma script 6 yevhen diachenkoEcma script 6 yevhen diachenko
Ecma script 6 yevhen diachenko
 
Rust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатноRust: абстракции и безопасность, совершенно бесплатно
Rust: абстракции и безопасность, совершенно бесплатно
 
Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019
Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019
Шаблоны C++ и базы данных. Сергей Федоров. CoreHard Spring 2019
 
Догнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_castДогнать и перегнать boost::lexical_cast
Догнать и перегнать boost::lexical_cast
 
Lecture 5
Lecture 5Lecture 5
Lecture 5
 
Lecture 8
Lecture 8Lecture 8
Lecture 8
 
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
Метапрограммирование в C++11/14 и C++17. Новые инструменты - новые проблемы.
 
Михаил Давыдов - JavaScript. Базовые знания
Михаил Давыдов - JavaScript. Базовые знанияМихаил Давыдов - JavaScript. Базовые знания
Михаил Давыдов - JavaScript. Базовые знания
 
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
Объектно-Ориентированное Программирование на C++, Лекции 1 и 2
 
Евгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализацияЕвгений Зуев, С++ в России: Стандарт языка и его реализация
Евгений Зуев, С++ в России: Стандарт языка и его реализация
 
C language. Introduction
C language. IntroductionC language. Introduction
C language. Introduction
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...
 
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...
 
стандартная библиотека с++: введение
стандартная библиотека с++: введениестандартная библиотека с++: введение
стандартная библиотека с++: введение
 
Лекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building BlocksЛекция 8: Многопоточное программирование: Intel Threading Building Blocks
Лекция 8: Многопоточное программирование: Intel Threading Building Blocks
 

Viewers also liked

Viewers also liked (11)

Open imcup ver.1.0
Open imcup ver.1.0Open imcup ver.1.0
Open imcup ver.1.0
 
Biddeford_7.28.15
Biddeford_7.28.15Biddeford_7.28.15
Biddeford_7.28.15
 
Comparative analysis
Comparative analysisComparative analysis
Comparative analysis
 
Natali
NataliNatali
Natali
 
Resume atulpal singh
Resume atulpal singhResume atulpal singh
Resume atulpal singh
 
Slim Laptops
Slim LaptopsSlim Laptops
Slim Laptops
 
Open PHACTS webinar June 2016 - Data2Discovery
Open PHACTS webinar June 2016 - Data2DiscoveryOpen PHACTS webinar June 2016 - Data2Discovery
Open PHACTS webinar June 2016 - Data2Discovery
 
Introduction to Supply Chain Management - a brief overview
Introduction to Supply Chain Management - a brief overview Introduction to Supply Chain Management - a brief overview
Introduction to Supply Chain Management - a brief overview
 
Lec4 хereglegchiinpunkts
Lec4 хereglegchiinpunktsLec4 хereglegchiinpunkts
Lec4 хereglegchiinpunkts
 
Cómo elaborar la planeacion argumentada
Cómo elaborar la planeacion argumentadaCómo elaborar la planeacion argumentada
Cómo elaborar la planeacion argumentada
 
wwf final presentation slides
wwf final presentation slideswwf final presentation slides
wwf final presentation slides
 

Similar to Programming c++ (begin-if-else)

Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioAndrey Karpov
 
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
 Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ... Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...Yandex
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклыSergey Nemchinsky
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.Igor Shkulipa
 
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон ПолухинC++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухинcorehard_by
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кодаAndrey Karpov
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода Pavel Tsukanov
 
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...Alexey Paznikov
 
DSLs in Lisp and Clojure
DSLs in Lisp and ClojureDSLs in Lisp and Clojure
DSLs in Lisp and ClojureVasil Remeniuk
 

Similar to Programming c++ (begin-if-else) (20)

Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Rgsu04
Rgsu04Rgsu04
Rgsu04
 
Принципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-StudioПринципы работы статического анализатора кода PVS-Studio
Принципы работы статического анализатора кода PVS-Studio
 
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
 Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ... Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
Использование C++ для низкоуровневой платформозависимой разработки — Кирилл ...
 
лек7
лек7лек7
лек7
 
лек8
лек8лек8
лек8
 
лек7
лек7лек7
лек7
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклы
 
C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.C++ Базовый. Занятие 02.
C++ Базовый. Занятие 02.
 
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон ПолухинC++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
C++ CoreHard Autumn 2018. Полезный constexpr - Антон Полухин
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кода
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
ПВТ - весна 2015 - Лекция 5. Многопоточное программирование в С++. Синхрониза...
 
DSLs in Lisp and Clojure
DSLs in Lisp and ClojureDSLs in Lisp and Clojure
DSLs in Lisp and Clojure
 
лр1
лр1лр1
лр1
 

More from Moscow Aviation Institute (National Research University), MAI (8)

Инструкция по активации Azure Pass
Инструкция по активации Azure PassИнструкция по активации Azure Pass
Инструкция по активации Azure Pass
 
ImCup
ImCupImCup
ImCup
 
Oop — cpp 1
Oop — cpp 1Oop — cpp 1
Oop — cpp 1
 
работа с файлами в с++
работа с файлами в с++работа с файлами в с++
работа с файлами в с++
 
Progr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functionsProgr labrab-6-2013 - c++ - functions
Progr labrab-6-2013 - c++ - functions
 
Progr labrab-4-2013-c++
Progr labrab-4-2013-c++Progr labrab-4-2013-c++
Progr labrab-4-2013-c++
 
Presentation lab3-sem3-c++
Presentation lab3-sem3-c++Presentation lab3-sem3-c++
Presentation lab3-sem3-c++
 
lecture-monitoring and performance tuning of the computer
lecture-monitoring and performance tuning of the computerlecture-monitoring and performance tuning of the computer
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 Хади Партови.
  • 4. ТИПЫ ДАННЫХ: int – целочисленный char – символьный bool – логический float – вещественный с плавающей точкой одиночной точности, 7 зн. double – вещественный с плавающей точкой двойной точности, 14 зн. 4 1 4 1 8 4 byte byte byte byte byte byte
  • 5. int a, b, c float x, y, z double x, y, z char d, e, f bool g, h, k 12 byte 12 byte 24 byte 3 byte 3 byte
  • 6.
  • 8. int width(int wide); int width() const;
  • 9. int precision(int prec); int precision() const;
  • 10. char fill(char type ch); char fill() const;
  • 11. x sqrt(x) х^2 0000001 0000001 0000001 0000002 01.4142 0000004 0000003 01.7321 0000009 0000004 0000002 0000016 0000005 02.2361 0000025 0000006 02.4495 0000036
  • 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;
  • 18.
  • 19. ОПЕРАТОРЫ ОТНОШЕНИЯ В УСЛОВНЫХ ВЫРАЖЕНИЯХ < Меньше <= Меньше или равно > Больше >= Больше или равно == Равно ! = Не равно
  • 20. Условный оператор с одной ветвью if условие then команды end Условный оператор с двумя ветвями if условие then команды1 else команды2 end
  • 21. if (условие) фрагмент кода 1 else фрагмент кода 2 Использование условного оператора в C
  • 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

  1. Хорошим стилем программирования считается использование блоков, даже в случае одного оператора. Таким образом, при необходимости добавить ещё одно выражение, блок уже находится в нужном месте. Если же блока нет, можно допустить ошибку, добавить выражение и забыв добавить блок.