2. 2
Домашние задания
Ссылка на проекты через Google-диск не открывается "Этот файл нельзя открыть,
так как он нарушает Условия использования".
Скорее всего, внутри присланного архива - *.exe файлы.
Сделайте так:
скопировать папку проекта,
удалить в копии папки
• .vs,
• Debug
оставшиеся файлы (текстовые исходники проекта) архивировать и присылать.
В итоге прохождения академии выпускники получают диплом. В дипломе – оценки
за экзамены.
К экзаменам допускаются после сдачи ВСЕХ самостоятельных и домашних работ.
4. 4
Прошлое занятие (2-1)
1. Структура программы.
2. Элементы текста программы.
3. Переменные.
4. Типы данных.
5. Константы и литералы.
6. Ввод данных с консоли.
7. Работа с кириллицей.
5. 5
Основные понятия (1)
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
cout << "Консольный калькулятор." << endl
<< endl;
int a;
cout << "Введите a: ";
cin >> a;
int b;
cout << "Введите b: ";
cin >> b;
int c = a + b;
cout << endl
<< a << " + " << b << " = " << c << endl;
system("pause");
}
Среда разработки
Решение
Проект
Исходный файл
Компилятор
Шаблоны проектов
Консольная программа
Директивы препроцессора
<iostream> - подключение ввода-вывода
Пространство имен
using namespace
std – стандартная библиотека С++
Функция
Заголовок функции
Параметры функции ( )
Возвращаемое значение
Тип возвращаемого значения
Тело функции { }
Функция main
Оператор ;
Лексема
6. 6
Основные понятия (2)
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "");
cout << "Консольный калькулятор." << endl
<< endl;
int a;
cout << "Введите a: ";
cin >> a;
int b;
cout << "Введите b: ";
cin >> b;
int c = a + b;
cout << endl
<< a << " + " << b << " = " << c << endl;
system("pause");
}
Ключевые слова
Вызов функции
Локализация вывода символов
Функция setlocale
Вывод на экран
Объект cout
Оператор <<
Текстовый литерал “ ”
Объект endl
Переменная
Оператор определения переменной
Тип переменной
int
Имя переменной
Правила задания имен переменных
Рекомендации по заданию имен
Ввод с клавиатуры
Объект cin
Оператор >>
Оператор присвоения
Арифметические операторы
Функция system
System(“pause”)
8. 8
Занятие 2-2. Операторы
Оператор (operator) – знак операции:
арифметические;
увеличения и уменьшения;
операторы отношения и логические;
битовые;
тернарный;
другие.
Оператор (statement) – инструкция:
• присваивания;
• вызова функции;
• ветвления;
• циклов;
• Другие.
9. 9
Добавляем запрос операции
if (sign == "+") // условный оператор if (условие)
{ // начало блока операторов
int c = a + b;
} // конец блока операторов
int c = 0; // определяем переменную
if (sign == "+")
{
c = a + b; // используем переменную
}
else // иначе
{
cout << "Ошибка в знаке!" << endl;
}
{
cout << "Ошибка в знаке!" << endl;
system("pause");
return 0; // выход из функции
}
10. 10
Реализуем арифметику (вложенный if)
cout << "Введите знак (+ - * /): ";
...
int c = 0;
if (sign == "+") // если
{
c = a + b;
}
else // иначе
if (sign == "-") // если
{
c = a - b;
}
else // иначе
if (sign == "*") // если
{
c = a * b;
}
else
if (sign == "/")
{
c = a / b;
}
else // иначе
{
cout << "Ошибка в знаке!" << endl;
system("pause");
return 0;
}
11. 11
Последовательные if
if (sign == "+")
{
c = a + b;
}
if (sign == "-")
{
c = a - b;
}
if (sign == "*")
{
c = a * b;
}
if (sign == "/")
{
c = a / b;
}
if (sign != "+" && sign != "-" && sign != "*" && sign != "/")
{
cout << "Ошибка в знаке!" << endl;
system("pause");
return 0;
}
12. 12
Разбираемся с делением
int a = 8;
int b = 3
double c = a / b; // c = 2
int a = 8;
double b = 3
double c = a / b; // c = 2.666…
double a;
double b;
double c = 0;
cout << endl
<< a << " " << sign << " " << b << " = " << c << endl;
14. 14
Плавающая арифметика - приближенная
Двоичная дробь = а * 2-1 + а * 2-2 + а * 2-3 + . . .
= 0.5 + 0.25 + 0.125 + …
Как представить 0.7 ? – только приближенно
double x = 1.0;
double y = (x / b) * b;
if (x == y) ? не обязательно будет равно
15. 15
Оператор присваивания
int a = 6;
int b = a – 4;
int c = a * b – sin(a);
b = b + c;
переменная = значение (выражение: переменные, знаки
операций, скобки, вызовы функци1)
16. 16
Арифметические операторы
Оператор Действие
+ Сложение
- Вычитание, унарный минус
* Умножение
/ Деление
% Взятие остатка
++ Увеличение (инкремент)
-- Уменьшение (декремент)
int a = 6 + 4 * 3; // 18
int b = (6 + 4) * 3; // 30
int c = b / a; // 1
int d = b % a; // 12
a++; // 19
d = b++; // d =30 b = 31
c = --d; // c = d = 29
int a = 6 + 4 * 3; // 18
int b = (6 + 4) * 3; // 30
int c = b / a; // 1
int d = b % a; // 12
a++; // 19
d = b++; // d =30 b = 31
c = --d; // c = d = 29
17. 17
Операторы отношения
Оператор Действие
> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
== Равно
!= Не равно
Результатом отношения является логическое (булево) значение.
Логические значения бывают:
true (да, 1)
false (нет, 0)
bool b = 10 > 3; // b = true;
18. 18
Логические операторы
Оператор Действие
&& И
|| ИЛИ
! НЕ
А B && || !
F F F F T
F T F T
T F F T F
T T T T
Приоритеты логических операций:
! - (унарный минус)
&& *(умножение)
|| +(сложение)
Приоритеты арифметических операций выше, но лучше
расставлять скобки.
19. 19
Операторы ветвления
Оператор if
if (выражение) оператор; else оператор;
Оператор switch
switch (выражение)
{
case константа1:
операторы;
case константа2:
операторы;
default:
}
Оператор ? (тернарный)
условие ? выражение1 : выражение2;
21. 21
Сокращенные формы оператора присвоения
а = а + 1;
а += 1;
а++;
-=
*=
/=
%=
Совмещение бинарного оператора с
присвоением
22. 22
Новые понятия и обозначения (1)
условный оператор if
условие (сравнение)
==
блок { операторы }
условный оператор if else
условный оператор if else if else ... else
return
return значение;
область существования переменной - блок
арифметические операторы + - * /
приоритеты арифметических операторов
целочисленное деление
double
позиционные системы счисления
двоичные числа
представление чисел в компьютере
мантисса и порядок
нормализация вещественного числа
плавающие числа - приближенные
23. 23
Новые понятия и обозначения (2)
оператор присвоения =
значение
выражение
оператор взятия остатка %
оператор инкремента ++
оператор декремента --
унарный, бинарный, тернарный операнды
префиксная и постфиксная форма записи унарного операнда
операторы отношения
!=
логический тип bool
логические значения true false
логические операторы && || !
приоритеты логических операторов
операторы ветвления
сокращенные формы оператора присваивания += *= ...
24. 24
Самостоятельная работа 2 – 2 (1)
Встреча №4
Задание 1.
Пользователь вводит номер года. Необходимо написать программу, которая выведет
количество дней в этом году. При написании программы использовать линейный алгоритм
(конструкции условного выбора не использовать). Например, пользователь ввел год 2004,
программа сообщает, что в этом году 366 дней в следующей форме:
In 2004 year = 366 days
Задание 2.
Пользователь вводит с клавиатуры денежную сумму в гривнах и копейках (гривны и копейки
вводятся в разные переменные). Сумма может быть введена как правильно (например 19грн.
90 коп), так и неправильно (например 22грн. 978 коп). Написать программу, которая,
используя только линейный алгоритм, осуществит корректировку введенной денежной
суммы в правильную форму.
Например, если пользователь ввел 11грн 150 коп, программа должна вывести на экран сумму
12грн. 50 коп.
Задание 3.
Написать программу вычисления объема параллелепипеда. Ниже приведен рекомендуемый
вид экрана во время выполнения программы.
Вычисление объема параллелепипеда.
Введите исходные данные:
Длина (см) -> 9
Ширина (см) -> 7.5
Высота (см) -> 5
Объем: 337.50 куб.см.
25. 25
Самостоятельная работа 2 – 2 (2)
Встреча №4
Задание 4.
Написать программу вычисления расстояния между населенными пунктами, изображенными
на карте. Ниже приведен рекомендуемый вид экрана во время выполнения программы.
Вычисление расстояния между населенными пунктами.
Введите исходные данные:
Масштаб карты (количество километров в одном сантиметре) -> 120
Расстояние между точками, изображающими населенные пункты (см) -> 3.5
Расстояние между населенными пунктами 420 км.
Задание 5.
Напишите программу, которая вычисляет объём шара.
26. 26
Домашнее задание 2 (1)
Встреча №3
Задание 1: Заданы три сопротивлении R1, R2, R3 . Вычислить значение
сопротивления R0 по
формуле: 1/R0 = 1/R1+1/R2+1/R3.
Контрольный пример: R1=2, R2=4, R3=8 R0 = 1.142857
Задание 2: По заданной длине окружности найти площадь круга по формуле S =
pi*R2, радиус
вычислить из формулы длины окружности: L=2*pi *R
Примечание pi = 3.14
Задание 3: Вычислить пройденное расстояние при прямолинейном
равноускоренном движении
по формуле S = v*t + (a*t2) / 2, где v – скорость, t – время, а – ускорение.
27. 27
Домашнее задание 2 (2)
Встреча №4
Задание 1. Пользователь вводит с клавиатуры время в секундах. Необходимо
написать программу, которая переведет введенные пользователем секунды в часы,
минуты, секунды и выводит их на экран.
Задание 2. Написать программу, которая преобразует введенное с клавиатуры
дробное число в денежный формат. Например, число 12,5 должно быть
преобразовано к виду 12грн 50 коп.
Задание 3. Написать программу, вычисляющую, с какой скоростью бегун
пробежал дистанцию.
Рекомендуемый вид экрана во время выполнения программы приведен ниже:
Вычисление скорости бега
Введите длину дистанции (метров) = 1000
Введите время (мин.сек) = 3.25
Дистанция: 1000 м
Время: 3 мин 25 сек = 205 сек
Вы бежали со скоростью 17.56 км/ч
28. 28
Домашнее задание 2 (3)
Задание 4. Пользователь указывает цену одой минуты исходящего звонка с одного
мобильного оператора другому, а также продолжительность разговора в минутах и
секундах. Необходимо вычислить денежную сумму на которую был произведен
звонок.
Задание 5. Написать программу, которая преобразует введенное пользователем
количество дней в количество полных недель и оставшихся дней. Например,
пользователь ввел 17 дней, программа должна вывести на экран 2 недели и 3 дня.