Введение в программирование на C++

Школа СТАРТ / Павел Крансиков

Введение в программирование на C++

Простые числа Павел Крансиков

Hands on the orange typewriter in a park

Создание проекта

  1. Открыть Visual Studio 2017
  2. Файл->Создать->Проект...
  3. Шаблоны->VisualC++->Win32->Консольное приложение Win32
  4. Имя: pavelc
  5. Далее >
  6. Выбираем "Пустой проект"
  7. Готово

Работа с проектом

  1. Обозреватель решений
  2. Файлы исходного кода
  3. Добавить->Создать элемент
  4. Файл С++
  5. Добавить

Hello, World!

				#include <iostream> // Подключаем библиотеку ввода-вывода
				using namespace std; // Используем стандартные функции
				int main() { //Основная функция
					cout << "Hello, World!"; //Печатаем
				
				    return 0; //Завершаем работу программы
				}
			

Hello, Pavel!

				#include <iostream> // Подключаем библиотеку ввода-вывода
				using namespace std; // Используем стандартные функции
				int main() { //Основная функция
					cout << "Hello, Pavel!"; //Печатаем
				
				    return 0; //Завершаем работу программы
				}
			

Целые числа

				#include <iostream> // Подключаем библиотеку ввода-вывода
				using namespace std; // Используем стандартные функции
				int main() { //Основная функция
					cout << (2+3)*5; //Печатаем
				
				    system("pause"); //Ожидание завершения программы
				    return 0; //Завершаем работу программы
				}
			

Переменные

				#include <iostream> // Подключаем библиотеку ввода-вывода
				using namespace std; // Используем стандартные функции
				int main() { //Основная функция
					int a, b; //Печатаем
					cin >> a >> b; //Печатаем
					cout << a + b; //Печатаем
				
				    system("pause"); //Ожидание завершения программы
				    return 0; //Завершаем работу программы
				}
			

Переменные / Вывод суммы чисел

					#include <iostream> // Подключаем библиотеку ввода-вывода
					using namespace std; // Используем стандартные функции
					int main() { //Основная функция
						int a, b; //Печатаем
						cin >> a >> b; //Печатаем
						cout << a << "+" << b << "=" << a + b << endl; //Печатаем
					
					    system("pause"); //Ожидание завершения программы
					    return 0; //Завершаем работу программы
					}
				

Переменные / Вывод расности чисел

						#include <iostream> // Подключаем библиотеку ввода-вывода
						using namespace std; // Используем стандартные функции
						int main() { //Основная функция
							int a, b; //Печатаем
							cin >> a >> b; //Печатаем
							cout << a << "-" << b << "=" << a - b << endl; //Печатаем
						
						    system("pause"); //Ожидание завершения программы
						    return 0; //Завершаем работу программы
						}
					

Пример задачи из физики

На высоте N метров летит самолет пассажир ошибается дверью и выпадает из самолета сколько метров он будет лететь до земли за время t?

						int v, t, g = 10; //Скорость, время, ускорение свободного падения
						cin >> t; //Задаем время
						v = g * t; //Скорость падения
						int vs = v / 2; //Средняя скорость падения
						int s = vs * t; //Растояние падения
				

Деление числа

						int a, b; //Скорость, время, ускорение свободного падения
						cin >> a >> b; //Задаем время
						cout << a / b << endl; //Деление без округления
						cout << (a + b - 1) / b << endl; //Деление с округлением
				

Правила оформления кода

  1. После открывающейся фигурной скобки добавляется отступ в начале строки, на строке с закрывающейся фигурной скобкой отступ убирается
  2. Все бинарные операции (+,−, *, /, %, =, <<, >>) окружаются пробелами
  3. После унарного минуса пробел не ставится (−5 нужно писать слитно)
  4. Перед знаками препинания (запятая и точка с запятой) пробел не ставится, после — ставится
  5. После открывающейся и перед закрывающейся круглой скобкой пробел не ставится

Операторы в C++

  1. :: - Раскрытие области видимости
  2. Пример - std::cin
  3. = - Присваивание
  4. Пример - a = b
  5. + - Сложение
  6. Пример - a + b
  7. - - Вычитание
  8. Пример - a - b

Операторы в C++

  1. +a - Унарный плюс
  2. Пример - f = а *+ (b * с)
  3. -a - Унарный минус
  4. Пример - -a
  5. * - Умножение
  6. Пример - a * b
  7. / - Деление
  8. Пример - a / b

Операторы в C++

  1. % - Операция модуль (остаток от деления целых чисел)
  2. Пример - а%b
  3. ++ - Инкремент
  4. Пример - ++a
  5. ++ - суффиксный (постфиксный)
  6. Пример - a++
  7. -- - префиксный
  8. Пример - --a

Операторы в C++

  1. -- - суффиксный (постфиксный)
  2. Пример - a--
  3. == - Равенство
  4. Пример - a == b
  5. != - Неравенство
  6. Пример - !=
  7. > - Больше
  8. Пример - a > b

Операторы в C++

  1. < - Меньше
  2. Пример - a < b
  3. >= - Больше или равно
  4. Пример - a >= b
  5. <= - Меньше или равно
  6. Пример - a <= b
  7. ! - Логическое отрицание, НЕ
  8. Пример - !a

Операторы в C++

  1. && - Логическое умножение, И
  2. Пример - a && b
  3. || - Логическое сложение, ИЛИ
  4. Пример - a || b
  5. ~ - Побитовая инверсия
  6. Пример - ~a
  7. & - Побитовое И
  8. Пример - a & b

Операторы в C++

  1. | - Побитовое ИЛИ (or)
  2. Пример - a | b
  3. ^ - Побитовое исключающее ИЛИ (xor)
  4. Пример - a ^ b
  5. << - Побитовый сдвиг влево
  6. Пример - a << b
  7. >> - Побитовый сдвиг вправо
  8. Пример - a >> b

Операторы в C++

  1. += - Сложение, совмещённое с присваиванием
  2. Пример - a += b "a = a + b"
  3. -= - Вычитание, совмещённое с присваиванием
  4. Пример - a -= b "a = a - b"
  5. *= - Умножение, совмещённое с присваиванием
  6. Пример - a *= b "a = a * b"
  7. /= - Деление, совмещённое с присваиванием
  8. Пример - a /= b "a = a / b"

Операторы в C++

  1. %= - Вычисление остатка от деления, совмещённое с присваивание
  2. Пример - a %= b "a = a % b"
  3. &= - Побитовое «И» (AND), совмещённое с присваиванием
  4. Пример - a &= b "a = a & b"
  5. |= - Побитовое «ИЛИ» (or), совмещённое с присваиванием
  6. Пример - a |= b "a = a | b"
  7. ^= - Деление, совмещённое с присваиванием
  8. Пример - a ^= b "a = a ^ b"

Операторы в C++

  1. <<= - Побитовый сдвиг влево, совмещённый с присваиванием
  2. Пример - a <<= b "a = a << b"
  3. >>= - Побитовый сдвиг вправо, совмещённый с присваиванием
  4. Пример - a >>= b "a = a >> b"
  5. a[b] - Обращение к элементу массива
  6. Пример - a[b]
  7. *a - Непрямое обращение («объект, на который указывает a»)
  8. Пример - *a

Задача №10 // Электронные часы

				cin >> n;	
				s = n % 60;
				h = n / 3600;
				n -= h * 3600;
				h %= 24;
				m = n / 60 % 60;
		

Задача №10 // Электронные часы

					cout << h << ':';
					cout << (m < 10 ? "0" : "") << m << ':';
					cout << (s < 10 ? "0" : "") << s << std::endl;

		

Побитовый сдвиг

				#include /bitset/ 
				int num = 14;
				unsigned char num = 14;
				bitset<8> binary(num);
				cout << (num <<= 1) << " = " << (binary <<= 1) << endl;
		

Задача №1 // Белочки и орешки - 1

  1. N белочек нашли K орешков и решили разделить их поровну. Определите, сколько орешков достанется каждой белочке
  2. Формат входных данных
    • На вход дается два целых положительных числа N и K, каждое из которых не превышает 10000
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №1 // Белочки и орешки - 1 // Пример данных

  1. Sample Input:
    • 3
    • 14
  2. Sample Output:
    • 4

Задача №1 // Белочки и орешки - 1 // Решение

					 int a, c;
					 cin >> a, c;
					 int b = a / c;
					 cout << b;
				

Задача №2 // Белочки и орешки - 2

  1. N белочек нашли K орешков и решили разделить их поровну. Определите, сколько орешков останется после того, как все белочки возьмут себе равное количество орешков
  2. Формат входных данных
    • На вход дается два целых положительных числа N и K, каждое из которых не превышает 10000
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №2 // Белочки и орешки - 2// Пример данных

  1. Sample Input:
    • 3
    • 14
  2. Sample Output:
    • 2

Задача №2 // Белочки и орешки - 2 // Решение

							 int a, c;
							 cin >> a, c;
							 int b = (c % a)
							 cout << b;
						

Задача №3 // Последняя цифра

  1. Дано натуральное число, выведите его последнюю цифру
  2. Формат входных данных
    • На вход дается натуральное число N, не превосходящее 10000
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №3 // Последняя цифра // Пример данных

  1. Sample Input:
    • 753
  2. Sample Output:
    • 3

Задача №3 // Последняя цифра // Решение

								 int a;
								 cin >> a;
								 cout << a % 10 << std::endl;
							

Задача №4 // Первая цифра двузначного числа

  1. Дано двузначное число. Выведите его первую цифру (число десятков)
  2. Формат входных данных
    • На вход дается натуральное двузначное число N
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №4 // Первая цифра двузначного числа // Пример данных

  1. Sample Input:
    • 42
  2. Sample Output:
    • 4

Задача №4 // Первая цифра двузначного числа // Решение

								 int a;
								 cin >> a;
								cout << a / 10 << std::endl;
							

Задача №5 // Число десятков

  1. Дано целое неотрицательное число N, определите число десятков в нем (предпоследнюю цифру числа). Если предпоследней цифры нет, то можно считать, что число десятков равно нулю
  2. Формат входных данных
    • На вход дается целое положительное число N (0 ≤ N ≤ 1000000)
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №5 // Число десятков // Пример данных

  1. Sample Input:
    • 73
  2. Sample Output:
    • 7

Задача №5 // Число десятков // Решение

								 int a;
								 cin >> a;
								cout << a % 100 / 10 << endl;
							

Задача №6 // Сумма цифр трехзначного числа

  1. Дано целое трехзначное число. Найдите сумму его цифр
  2. Формат входных данных
    • На вход дается число от 100 до 999
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №6 // Сумма цифр трехзначного числа // Пример данных

  1. Sample Input:
    • 476
  2. Sample Output:
    • 17

Задача №6 // Сумма цифр трехзначного числа // Решение

								int a;
								cin >> a;
								cout << (a % 10) + (a % 100 / 10) + (a % 1000 / 100) << endl;
							

Задача №7 // Следующее четное

  1. На вход дается натуральное число N. Выведите следующее за ним четное число
  2. Формат входных данных
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №7 // Следующее четное // Пример данных

  1. Sample Input:
    • 7
    • 8
  2. Sample Output:
    • 8
    • 10

Задача №7 // Следующее четное // Решение

								int a;
								cin >> a;
								cout << a / 2 * 2 + 2 << endl;
							

Задача №8 // Парты

  1. В школе решили набрать три новых класса и оборудовать кабинеты для них новыми партами. За каждой партой может сидеть два учащихся. Известно количество учащихся в каждом из трех классов. Выведите наименьшее число парт, которое нужно приобрести для них. Каждый класс сидит в своем кабинете
  2. Формат входных данных
    • Программа получает на вход три целых неотрицательных числа: количество учащихся в каждом из трех классов (числа не превышают 1000)
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №8 // Парты // Пример данных

  1. Sample Input:
    • 20
    • 21
    • 22
  2. Sample Output:
    • 32

Задача №8 // Парты // Решение

								int a, b, c;
								cin >> a >> b >> c;
								cout << (a+1)/2 + (b+1)/2 + (c+1)/2 << endl;
								cout << (++a)/2 + (++b)/2 + (++c)/2 << endl;
							

Задача №9 // Покупка пирожков

  1. Пирожок в столовой стоит A рублей и B копеек. Определите, сколько рублей и копеек нужно заплатить за N пирожков
  2. Формат входных данных
    • Программа получает на вход три числа: A, B, N - целые, положительные, не превышают 10000
  3. Формат выходных данных
    • Программа должна вывести два числа через пробел: стоимость покупки в рублях и копейках

Задача №9 // Покупка пирожков // Пример данных

  1. Sample Input:
    • 10
    • 15
    • 2
  2. Sample Output:
    • 20 30

Задача №9 // Покупка пирожков // Решение

								int a, b, n;
								cin >> a >> b >> n;
								cout << (a * n) + (b * n / 100) << " " << b * n % 100 << endl;
							

Задача №10 // Электронные часы

  1. Электронные часы показывают время в формате h:mm:ss (от 0:00:00 до 23:59:59), то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями. С начала суток прошло N секунд. Выведите, что покажут часы
  2. Формат входных данных
    • На вход дается натурально число N, не превосходящее 107107 (10000000)
  3. Формат выходных данных
    • Выведите ответ на задачу

Задача №10 // Электронные часы // Пример данных

  1. Sample Input:
    • 3602
    • 129700
  2. Sample Output:
    • 1:00:02
    • 12:01:40

Задача №10 // Электронные часы // Решение

								int h, n, m, s;
								cin >> n;
								s = n % 60; h = n / 3600;
								n -= h * 3600; h %= 24;
								m = n / 60 % 60;
								cout << h << ':' << (m < 10 ? "0" : "") << m << ':' << (s < 10 ? "0" : "") << s << endl;
							

Задача №11 // Разность времен

  1. Даны значения двух моментов времени, принадлежащих одним и тем же суткам: часы, минуты и секунды для каждого из моментов времени. Известно, что второй момент времени наступил не раньше первого. Определите, сколько секунд прошло между двумя моментами времени
  2. Формат входных данных
    • Программа на вход получает три целых числа: часы, минуты, секунды, задающие первый момент времени и три целых числа, задающих второй момент времени
  3. Формат выходных данных
    • Выведите число секунд между этими моментами времени

Задача №11 // Разность времен // Пример данных

  1. Sample Input:
    • 1 1 1 2 2 2
    • 1 2 30 1 3 20
  2. Sample Output:
    • 3661
    • 50

Задача №11 // Разность времен // Решение

								int h, m, s, a, b, c;
								cin >> h >> m >> s >> a >> b >> c;
								cout << ((a - h) * 3600) + ((b - m) * 60) + (c - s) << endl;
							

Задача №12 // МКАД

  1. Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет со скоростью V километров в час. На какой отметке он остановится через T часов?
  2. Формат входных данных
    • Программа получает на вход целые числа V и T. Если V > 0, то Вася движется в положительном направлении по МКАД, если же значение V < 0, то в отрицательном. 0 ≤ T ≤ 1000, -1000 ≤ V ≤ 1000
  3. Формат выходных данных
    • Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася

Задача №12 // МКАД // Пример данных

  1. Sample Input:
    • 60 2
    • -1 1
  2. Sample Output:
    • 11
    • 108

Задача №12 // МКАД // Решение

	
								int v, t, s = 109;
								cin >> v >> t;
								cout << (s + (v * t % s)) % s;
								

Задача №13 // Симметричное число

  1. Дано четырехзначное число. Определите, является ли его десятичная запись симметричной. Если число симметричное, то выведите 1, иначе выведите любое другое целое число. Число может иметь меньше четырех знаков, тогда нужно считать, что его десятичная запись дополняется слева незначащими нулями
  2. Формат входных данных
    • Вводится единственное число
  3. Формат выходных данных
    • Выведите одно целое число - ответ на задачу

Задача №13 // Симметричное число // Пример данных

  1. Sample Input:
    • 2002
    • 2008
  2. Sample Output:
    • 1
    • 37

Задача №13 // Симметричное число // Решение

Число 2002 "симметричное", т.е. читается одинаково слева-направо и справа-налево.

	
									int n
									cin >> n
									cout << (n / 100 == n % 10 * 10 + n / 10 % 10) << endl;
								

Задача №14 // Улитка

  1. Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, а за ночь спускаясь на B метров. На какой день улитка доползет до вершины шеста?
  2. Формат входных данных
    • Программа получает на вход целые неотрицательные числа H, A, B, причем H > B. Числа не превосходят 100
  3. Формат выходных данных
    • Программа должна вывести одно натуральное число. Гарантируется, что A > B.

Задача №14 // Улитка // Пример данных

  1. Sample Input:
    • 10 3 2
  2. Sample Output:
    • 8

Задача №14 // Улитка // Решение

	
								int n, a, b;
								cin >> h >> a >> b;
								cout << (h / (a - b) - (a - (h % (a - b))) / (a - b)) + 1;
							

Задача №15 // Кубики

  1. Всего утята собрали n башенок. В i-й башенке оказалось ai кубиков, поставленных друг на друга. Скрудж решил, что он будет перекладывать, добавлять и убирать кубики так, чтобы все башенки оказались одинаковой высоты. За одно действие Cкрудж может переложить кубик с одной башенки на другую, убрать кубик из конструкции, или взять кубик из набора и положить его на какую-нибудь башенку. Кубиков в наборе неограниченное количество. Высота башенки определяется как количество кубиков в ней

Задача №15 // Кубики

  1. Помогите Скруджу подсчитать, какое минимальное количество действий ему понадобится для того, чтобы сделать все башенки одинаковой высоты!
  2. Формат входных данных
    • В первой строке даны два числа n (1n1000) — количество башенок. Во второй строке дано n чисел ai (1ai1000) — количество кубиков в i-й башенке
  3. Формат выходных данных
    • ВЕдинственнойСтрокеВыведитеЕдинственноеЧисло—ОтветНазадачу.

Задача №15 // Кубики // Пример данных

  1. Sample Input:
    • 5
    • 3 2 2 5 4
  2. Sample Output:
    • 3

Введение в программирование на C++

Условные операторы Павел Крансиков

С++

Неполная развилка

Shower logo

Неполная развилка

	
			if (Условие)
			{
			Блок Операций;
			}
		

Неполная развилка // Пример

			#include "stdafx.h" #include <iostream>
			using namespace std;
			int main() {	
				int a;
				cin >> a;
				if (a > 0) { cout << a; }
				if (a < 0) { cout << -a; }
			}
		

Полная развилка

Shower logo

Полная развилка

	
			if (Условие)
			{
				Блок Операций 1;
			}
			else
			{
			  Блок Операций 2; 
			} 
		

Тернарные операции

	
			Условие ? Вариант 1 : Вариант 2
			cout << (5 > 10 ? 1:0) << endl;
		

Полная развилка // Пример

				#include "stdafx.h" #include <iostream>
				using namespace std;
				int main() {	
					int a;
					cin >> a;
					if (a > 0) { cout << a; }
					else { cout << -a; }
				}
			

Логические выражения

  1. == - равно
  2. Пример - a == b
  3. != - не равно
  4. Пример - a != b
  5. < - меньше
  6. Пример - a < b
  7. > - больше
  8. Пример - a > b

Логические выражения

  1. <= - меньше или равно
  2. Пример - a <= b
  3. >= - больше или равно
  4. Пример - a >= b

Пример программы

		#include "stdafx.h" #include <iostream>
		using namespace std;
		int main() {	
			int a, b;
			cin >> a >> b;
			if (a = b) { cout << "Yes"; }
			else { cout << "No" ;}
		}
	

Вложенные инструкции

		int main() {	
			int eyes, legs;
			cin >> eyes >> legs;
			if (eyes >= 8) { if (legs == 8) { cout << "spider"; }
			else { cout << "scallop"; }
		 	} else { if (legs == 6) { cout << "bug"; }
		 	else { cout << "cat"; } } 
		}
	

Логические операторы

  1. ! - Логическое отрицание, НЕ
  2. Пример - !a
  3. && - Логическое умножение, И
  4. Пример - a && b
  5. || - Логическое сложение, ИЛИ
  6. Пример - a || b

Логические операторы // Привет

		int main() {	
			int eyes, legs;
			cin >> eyes >> legs;
			if (eyes == 8 && legs == 8) { 
				cout << "AAAAA!!!";
		 	} 
		}
	

Задача №1

  1. Даны два целых числа. Выведите значение наибольшего из них. Если числа равны, выведите любое из них.
  2. Формат входных данных
    • Вводятся два числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №1

  1. Sample Input:
    • 1 2
    • 5 3
  2. Sample Output:
    • 2
    • 5

Задача №1 // Решение

			int a, b;
			cin >> a >> b;
			if (a >= b) { cout << a; }
			else { cout << b; }
	

Задача №2

  1. Даны два целых числа. Программа должна вывести единицу, если первое число больше второго, двойку, если второе больше первого, или ноль, если они равны.
  2. Формат входных данных
    • Вводятся два числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №2

  1. Sample Input:
    • 1 2
  2. Sample Output:
    • 2

Задача №2 // Решение

			int a, b;
			cin >> a >> b;
			if (a > b) { cout << 1; }
			else { if (a = b) { cout << 0; } else { cout << 2; } } 
			
	

Задача №3

  1. Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число). Под наибольшим в этой задаче понимается число, которое не меньше, чем любое другое.
  2. Формат входных данных
    • Вводятся три числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №3

  1. Sample Input:
    • 1 2 3
  2. Sample Output:
    • 3

Задача №3 // Решение

			int a, b, c;
			cin >> a >> b >> c;
			if (a >= b && a >= c) { cout << a << endl; }
			else { if (b >= a && b >= c) { cout << b << endl; }
			else { if (c >= b && c >= a) { cout << c << endl; } } }
	

Задача №4

  1. Даны три натуральных числа A, B, C. Определите, существует ли треугольник с такими сторонами. Если треугольник существует, выведите строку YES, иначе выведите строку NO. Треугольник — это три точки, не лежащие на одной прямой.
  2. Формат входных данных
    • Вводятся три числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4

  1. Sample Input:
    • 3 4 5
  2. Sample Output:
    • YES

Задача №4 // Решение

			int a, b, c;
			cin >> a >> b >> c;
			if (a < (b+c) && b < (c + a) && c < (a + b))
			{ cout << "YES" << endl; }
			else { cout << "NO" << endl; }
	

Задача №5

  1. Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадает) или 0 (если все числа различны).
  2. Формат входных данных
    • Вводятся три числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №5

  1. Sample Input:
    • 1 2 3
  2. Sample Output:
    • 0

Задача №5 // Решение

	 	
					int a; c; b;
					cin , a , c , b;
					if (a = b && a = c) cout << 3 
					else if (a = b || b = c || a = c) cout << 2 
					else  cout << 0 
				

Задача №6

  1. Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом.
  2. Формат входных данных
    • Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
  3. Формат выходных данных
    • Программа должна вывести YES, если из первой клетки ходом ладьи можно попасть во вторую или NO в противном случае.

Задача №6

  1. Sample Input:
    • 4 4 5 5
  2. Sample Output:
    • NO

Задача №6 // Решение

	 	
							int x1;x2;y1;y2; 
							cin >> x1 , y1 , x2 , y2;
							 if (x1 = x2 || y1 = y2) { cout << "YES"; } 
							 else { cout << "NO"; 
						

Задача №7

  1. Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом.
  2. Формат входных данных
    • Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
  3. Формат выходных данных
    • Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.

Задача №7

  1. Sample Input:
    • 4 4 5 5
  2. Sample Output:
    • YES

Задача №7 // Решение

	 	
								int x1; y1; x2; y2; 
								cin , x1 , y1 , x2 , y2;
								 if ((x1 - x2 <= 1 && x1 - x2 >= -1) && (y1 - y2 <= 1 && y1 - y2 >= -1))
								 cout << "YES";}
								 else { cout << "NO";
							

Задача №8

  1. Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом.
  2. Формат входных данных
    • Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
  3. Формат выходных данных
    • Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае.

Задача №8

  1. Sample Input:
    • 4 4 5 5
  2. Sample Output:
    • YES

Задача №8 // Решение

	 	
								int x1; y1; x2; y2;
								cin , x1 , y1 , x2 , y2;
								if (y1 - y2 == x1 - x2 || y1 - y2 == -(x1 - x2)) {
								 cout << "YES";
								 else { cout << "NO";
							

Задача №9

  1. Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом.
  2. Формат входных данных
    • Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
  3. Формат выходных данных
    • Программа должна вывести YES, если из первой клетки ходом ферзя можно попасть во вторую или NO в противном случае.

Задача №9

  1. Sample Input:
    • 1 1 2 2
    • 1 1 2 3
  2. Sample Output:
    • YES
    • NO

Задача №9 // Решение

	 	
										int x1; y1; x2; y2;
										cin > x1 > y1 > x2 > y2;
										if (y1 - y2 == x1 - x2 || y1 - y2 == -(x1 - x2) || (x1 == x2 || y1 == y2)) { cout << "YES" }
										 esle { cout << "NO"; }
									

Задача №10

  1. Шахматный конь ходит буквой “Г” — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом.
  2. Формат входных данных
    • Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.
  3. Формат выходных данных
    • Программа должна вывести YES, если из первой клетки ходом коня можно попасть во вторую или NO в противном случае.

Задача №10

  1. Sample Input:
    • 1 1 1 4
    • 1 1 8 8
  2. Sample Output:
    • NO
    • NO

Задача №10 // Решение

	 	
											int x1 y1 x2 y2;
											cin >> x1, y1, x2, y2;
											if (abs(x2 - x1) = 1 && abs(y2 - y1) = 2) {	cout << "YES" }
											else { if (abs(x2 - x1) = 2 && abs(y2 - y1) = 1) { cout << "YES"; }
											else { cout << "NO" 
										

Задача №11

  1. Шоколадка имеет вид прямоугольника, разделенного на N×M долек. Шоколадку можно один раз разломить по прямой на две части. Определите, можно ли таким образом отломить от шоколадки ровно K долек.
  2. Формат входных данных
    • Программа получает на вход три числа: N, M, K
  3. Формат выходных данных
    • Программа должна вывести одно из двух слов: YES или NO.

Задача №11

  1. Sample Input:
    • 4 2 6
    • 2 10 7
  2. Sample Output:
    • YES
    • NO

Задача №11 // Решение

	 	
												int N. M. K;
												cin << N << M << K;
												if ((K <= N * M) && ((K % N == 0) || (K % M == 0))) cout < "YES"
												else cout << "NO";
											

Задача №12

  1. Яша плавал в бассейне размером N×M метров и устал. В этот момент он обнаружил, что находится на расстоянии X метров от одного из длинных бортиков (не обязательно от ближайшего) и Y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик?
  2. Формат входных данных
    • Программа получает на вход числа N, M, X, Y.
  3. Формат выходных данных
    • Программа должна вывести число метров, которое нужно проплыть Яше до бортика.

Задача №12

  1. Sample Input:
    • 23 52 8 43
  2. Sample Output:
    • 8

Задача №12 // Решение - 1

	
											int n, m, x, y, k, l, u, i;
											cin >> n >> m >> x >> y;
											if (n > m) { k = n; n = m; m = k; }
											if ((n - x < x) && (n - x < m - y) && (n - x < y)) {
											cout << n - x; }
										

Задача №12 // Решение - 2

	
												else if ((x < n - x) && (x < m - y) && (x < y)) {
												cout << x; }
												else if ((m - y < x) && (m - y < y) && (m - y < n - x)) {
												cout << m - y; }
												else { cout << y; } 
											

Задача №13

  1. Дано три числа. Упорядочите их в порядке неубывания.
  2. Формат входных данных
    • Вводятся три числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №13

  1. Sample Input:
    • 1 2 1
  2. Sample Output:
    • 1 1 2

Задача №13 // Решение

	
													int a. b. c. t;
													cin > a > b > c;
													if a>b) swap(a, b)
													if a>c) swap(a, c)
													if b>c) swap(b, c)
													cout << a << " " << b << " " << c
												

Задача №14

  1. Есть две коробки, первая размером A1×B1×C1, вторая размером A2×B2×C2. Определите, можно ли разместить одну из этих коробок внутри другой, при условии, что поворачивать коробки можно только на 90 градусов вокруг ребер. Толщиной коробок можно пренебречь
  2. Формат входных данных
    • Программа получает на вход числа A1, B1, C1, A2, B2, C2.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №14

  1. Формат выходных данных
    • Программа должна вывести одну из следующих строчек:
    • Boxes are equal, если коробки одинаковые,
    • The first box is smaller than the second one, если первая коробка может быть положена во вторую,
    • The first box is larger than the second one, если вторая коробка может быть положена в первую,
    • Boxes are incomparable, во всех остальных случаях.

Задача №14

  1. Sample Input:
    • 1 2 3 3 2 1
    • 2 2 3 3 2 1
  2. Sample Output:
    • Boxes are equal
    • The first box is larger than the second one

Задача №14 // Решение

	
														cin >> a >> b >> c >> a1 >> b1 >> c1;
														if ((a == a1 && b == b1 && c == c1) || (a == a1 && c == b1 && b == c1) || (b == a1 && a == b1 && c == c1) || (b == a1 && c == b1 && a == c1) || (c == a1 && a == b1 && b == c1) || (c == a1 && b == b1 && a == c1)) {
																cout << "Boxes are equal" << endl;
															}
														else {
																if ((a >= a1 && b >= b1 && c >= c1) || (a >= a1 && c >= b1 && b >= c1) || (b >= a1 && a >= b1 && c >= c1) || (b >= a1 && c >= b1 && a >= c1) || (c >= a1 && a >= b1 && b >= c1) || (c >= a1 && b >= b1 && a >= c1)) {
																	cout << "The first box is larger than the second one" << endl;
																}
													

Задача №14 // Решение 2

															else {
																	if ((a <= a1 && b <= b1 && c <= c1) || (a <= a1 && c <= b1 && b <= c1) || (b <= a1 && a <= b1 && c <= c1) || (b <= a1 && c <= b1 && a <= c1) || (c <= a1 && a <= b1 && b <= c1) || (c <= a1 && b <= b1 && a <= c1)) {
																		cout << "The first box is smaller than the second one" << endl;
																	}
															else {
																	cout << "Boxes are incomparable" << endl;
																}
															}
														}
														

Задача №15

  1. На шахматной доске необходимо расставить N ферзей так, чтобы они не угрожали друг другу.
  2. Формат входных данных
    • Программа получает на вход числа N ферзей
  3. Формат выходных данных
    • Необходимы найти координаты каждой ферзи и вывести их на экран

Задача №15

  1. Sample Input:
    • 6
  2. Sample Output:
    • 1,1; 2,5; 3,3; 5,8; 9,5; 2,6

ОРГАНИЗАЦИЯ ВЫВОДА РУССКИХ БУКВ В КОНСОЛИ

	
		setlocale(LC_ALL, "RUS"); // или setlocale(0, "RUS");
		cout << "ВШКСтарт";
	

Стандартные способы ввода-вывода С++

	
		setlocale(LC_ALL, "RUS"); // или setlocale(0, "RUS");
		int r;
		const float Pi = 3.14;		
		void main() { //заголовок главной функции
		cout<<"Введите радиус\n";	
		cin>>r;
		cout<<"Площадь круга = " << Pi*r*r << ‘\n’;	}	
	

Cпособы С++ c помощью макросов

	
		#define vyvod(x) cout<<(x) //макрос с параметрами для вывода текста на экран
		#define vvod(x) cin>>(x) //аналогично для ввода
		#define PI 3.14 //константа для хранения числа Пи 		
		void main() { //заголовок главной функции
			vyvod("Введите радиус\n"); //с помощью макроса выводим запрос	
			vvod(r); //запоминаем в переменную
			vyvod("Площадь равна ");
			vyvod(PI*r*r); //выводим на экран площадь
			cout<<”endl”;}	
	

Директивы препроцессора

  1. #include – создает копию указанного файла, которая включается в программу вместо директивы. Используется для подключения стандартных библиотек или включения в проект нескольких файлов программ, компилируемых вместе.

Директивы препроцессора

  1. #define создает символические константы, представленные символами и макросы – операции, определенные как символы
  2. Макросы можно определять с аргументами, например:
    • #define circle(x) (М_PI *(x)*(x))

Макрос

  1. или так
    • #define MY_ALLOC( n ) malloc( n )
    • int * p = MY_ALLOC( 1024 );

Математические функции в С++

Функции библиотеки <cmath> (math.h)
  1. abs(a) - модуль или абсолютное значение от а
  2. Пример - abs(-3.0)= 3.0
  3. sqrt(a) - корень квадратный из а, причём а не отрицательно
  4. Пример - sqrt(9.0)=3.0
  5. pow(a, b) - возведение а в степень b
  6. Пример - pow(2,3)=8
  7. ceil(a) - округление а до наименьшего целого, но не меньше чем а
  8. Пример - ceil(2.3)=3.0; ceil(-2.3)=-2.0

Математические функции в С++

Функции библиотеки <cmath> (math.h)
  1. floor(a) - округление а до наибольшего целого, но не больше чем а
  2. Пример - floor(12.4)=12; floor(-2.9)=-3
  3. fmod(a, b) - вычисление остатка от a/b
  4. Пример - fmod(4.4, 7.5) = 4.4; fmod( 7.5, 4.4) = 3.1
  5. exp(a) - вычисление экспоненты еа
  6. Пример - exp(0)=1
  7. Еще функции файла (math.h)

Задача №3.1

  1. Двумя способами написать программу для вычисления количества дней до конца месяца. Текущий день месяца запрашивается у пользователя. Во втором способе запрос текущего числа описать через макрос.
  2. Формат входных данных
    • Программа получает на вход числа N текущий день
  3. Формат выходных данных
    • Программа выводит сколько дней осталось до конца месяца

Задача №3.1

  1. Sample Input:
    • 26
  2. Sample Output:
    • 5

Задача №3.2

  1. Двумя способами написать программу, которая вычисляет размер свободной памяти на диске. Размер файлов, записанных на нем, запрашиваются у пользователя. Во втором способе объем диска описать через константу, вывод свободного места осуществить с помощью макроса.
  2. Формат входных данных
    • Программа получает на вход числа N число размер файлов (байтах), X обьем жесткого диска (байтах)
  3. Формат выходных данных
    • Программа выводит сколько осталось свободного места на диске в байтах

Задача №3.2

  1. Sample Input:
    • 111'148'998'656
  2. Sample Output:
    • 119'018'778'624

Задача №3.3

  1. Двумя способами написать программу для подсчета дней, оставшихся до нового года. Текущий месяц и число запрашиваются у пользователя. Количество дней в каждом месяце считать 30. Во втором способе количество дней в году и в месяце описать через константу, расчет представить через макрос
  2. Формат входных данных
    • Программа получает на вход числа M Текущий месяц, D день
  3. Формат выходных данных
    • Программа выводит сколько осталось дней до нового года

Задача №3.3

  1. Sample Input:
    • 01 01
  2. Sample Output:
    • 364

Задача №3.4

  1. Двумя способами написать программу, которая вычисляет объем куба. Ребро куба запрашивается у пользователя. Во втором способе ввод и вывод данных описать через макрос (Обьем куба)
  2. Формат входных данных
    • Программа получает на вход числа R длина ребра куба
  3. Формат выходных данных
    • Программа выводит обьем куба

Задача №3.4

  1. Sample Input:
    • 2
  2. Sample Output:
    • 8

Задача №3.5

  1. Двумя способами написать программу для вычисления х: а*(2*х-5*с)=?. Числа а и с и x запрашиваются у пользователя. Расчет уровнения представить в виде макроса
  2. Формат входных данных
    • Программа получает на вход числа a и число с и x
  3. Формат выходных данных
    • Программа выводит верно решоное уравнение

Задача №3.5

  1. Sample Input:
    • 3 5 6
  2. Sample Output:
    • -39

Цикл while

«While» переводится как «пока» и в программировании означает «пока условие верно, нужно выполнять следующие действия»

	
		cin >> n;
		i = 1;
		while (i <= n) {
			cout << i << " ";
			i = i + 1;
		}
	

Поиск минимального числа

	
		cin >> now;
		min = now;
		while (now != 0) {
			if (now < min) {
			min = now; }
		cin >> now; }
		cout << min; 
	

Подсчёт суммы последовательности чисел

	
		int sum = 0, now;
		cin >> now;
		while (now != 0) {
			sum = sum + now;
			cin >> now; }
		cout << sum;
	

Цифры числа

	
		int part1, part2;
		cin >> part1 >> part2;
		int sum1 = 0, sum2 = 0;
			while (part1 != 0) {
			sum1 = sum1 + part1 % 10;
		part1 = part1 / 10;}
	

Цифры числа

	
		while (part2 != 0) {
		sum2 = sum2 + part2 % 10;
		part2 = part2 / 10;}
		if (sum1 == sum2) {
		cout << "Lucky ticket";
		} else { cout << "unlucky :("; }
	

Задача №4.1

  1. По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания.
  2. Формат входных данных
    • Вводится натуральное число.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.1

  1. Sample Input:
    • 50
  2. Sample Output:
    • 1 4 9 16 25 36 49

Задача №4.2

  1. Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1.
  2. Формат входных данных
    • Вводится целое положительное число.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.2

  1. Sample Input:
    • 15
  2. Sample Output:
    • 3

Задача №4.3

  1. По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания.
  2. Формат входных данных
    • Вводится натуральное число.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.3

  1. Sample Input:
    • 50
  2. Sample Output:
    • 1 2 4 8 16 32

Задача №4.4

  1. Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.
  2. Формат входных данных
    • Вводится натуральное число.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.4

  1. Sample Input:
    • 1
    • 2
  2. Sample Output:
    • YES
    • YES

Задача №4.5

  1. Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и вывести количество членов последовательности (не считая завершающего числа 0). Числа, следующие за числом 0, считывать не нужно.
  2. Формат входных данных
    • Вводится последовательность целых чисел, заканчивающаяся числом 0.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.5

  1. Sample Input:
    • 1 7 9 0 5
  2. Sample Output:
    • 3

Задача №4.6

  1. Определите сумму всех элементов последовательности, завершающейся числом 0.
  2. Формат входных данных
    • Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.6

  1. Sample Input:
    • 3 6 8 0
  2. Sample Output:
    • 17

Задача №4.7

  1. Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение наибольшего элемента последовательности.
  2. Формат входных данных
    • Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.7

  1. Sample Input:
    • 1 7 9 0
  2. Sample Output:
    • 9

Задача №4.8

  1. Последовательность состоит из натуральных чисел и завершается числом 0. Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу.
  2. Формат входных данных
    • Вводится непустая последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.8

  1. Sample Input:
    • 1 7 9 0
    • 1 3 3 1 0
  2. Sample Output:
    • 1
    • 2

Задача №4.9

  1. Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент.
  2. Формат входных данных
    • Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.9

  1. Sample Input:
    • 4 4 2 3 0
    • 2 1 0
  2. Sample Output:
    • 4
    • 1

Задача №4.10

  1. Последовательность Фибоначчи определяется так: F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2). По данному числу N определите N-е число Фибоначчи F(N). Чи́сла Фибона́ччи (также Фибона́чи[1]) — элементы числовой последовательности 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, … (последовательность A000045 в OEIS), в которой первые два числа равны либо 1 и 1, либо 0 и 1, а каждое последующее число равно сумме двух предыдущих чисел. Названы в честь средневекового математика Леонардо Пизанского (известного как Фибоначчи)[2].
  2. Формат входных данных
    • Вводится натуральное число N.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.10

  1. Sample Input:
    • 6
  2. Sample Output:
    • 8

Задача №4.11

  1. Последовательность Фибоначчи определяется так: F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2). Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число N, что F(N) = A. Если А не является числом Фибоначчи, выведите число -1.
  2. Формат входных данных
    • Вводится натуральное число A > 1.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.11

  1. Sample Input:
    • 8
  2. Sample Output:
    • 6

Задача №4.12

  1. Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу. Если не нашлось ни одной пары, тройки и т.д. элементов, равных друг другу, то программа должна вывести число 1.
  2. Формат входных данных
    • Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.12

  1. Sample Input:
    • 1 7 7 9 1 0
  2. Sample Output:
    • 2

Задача №4.13

  1. Элемент последовательности называется локальным максимумом, если он строго больше предыдущего и последующего элемента последовательности. Первый и последний элемент последовательности не являются локальными максимумами. Дана последовательность натуральных чисел, завершающаяся числом 0. Определите количество строгих локальных максимумов в этой последовательности.
  2. Формат входных данных
    • Вводится последовательность натуральных чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.13

  1. Sample Input:
    • 1 2 1 2 1 0
  2. Sample Output:
    • 2

Задача №4.14

  1. Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0. Начальное и конечное значение при этом локальными максимумами не считаются. Расстоянием считается количество пробелов между элементами. В качестве примера смотрите первый тест.
  2. Формат входных данных
    • Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.14

  1. Sample Input:
    • 1 2 1 1 2 1 2 1 0
    • 1 2 3 0
  2. Sample Output:
    • 2
    • 0

Задача №4.15

  1. Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0. Начальное и конечное значение при этом локальными максимумами не считаются. Расстоянием считается количество пробелов между элементами. В качестве примера смотрите первый тест.
  2. Формат входных данных
    • Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания).
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №4.15

  1. Sample Input:
    • 1 2 1 1 2 1 2 1 0
    • 1 2 3 0
  2. Sample Output:
    • 2
    • 0

Действительные числа

  1. Действительные числа – это рациональные и иррациональные числа.
    • рациональные числа - число, представляемое обыкновенной дробью M/N, числитель m — целое число, а знаменатель n — натуральное число, к примеру 2/3
    • 1/2 3/5
    • Действительные числа - это вещественное число, которое не является рациональным, то есть не может быть представлено в виде дроби M/N, где m — целое число, n — натуральное число. Иррациональное число может быть представлено в виде бесконечной непериодической десятичной дроби.
    • Десятичная дробь - разновидность дроби, которая представляет собой способ представления действительных чисел в виде
    • 3,1415926535897...

Действительные числа

  1. Экспоненциальной записью
    • 5.972E23
    • Сначала выводится мантисса, затем — буква E, а затем — экспонента.
    • Масса земли равна 5.972*1024 килограмм. Здесь 5.972 — мантисса, а 24 — экспонента.

Действительные числа

  1. Работа с действительными переменными
		#include <"iostream> 
		#include <"cmath> 
		#include <"iomanip>
		double x, y; // Создаем переменные
		y = 3.1415; // Присваиваем переменной y число pi
		cin >> x; // вводит пользователь
		cout << setprecision(3) << x; // выводиться число 
		 с точностью до 3 знаков после точки
	

Действительные числа

  1. Целые и действительные числа в одном арифметическом выражении
		double x;
		int k,m;
		x = k/m
		x = 0
		x = (double) k/m
	

Библиотеку cmath

  1. trunc - отбрасывает дробную часть числа
  2. Пример - n = trunc(x);
  3. floor - округляет число в меньшую сторону
  4. Пример - n = floor(x);
  5. ceil - округляет число в большую сторону
  6. Пример - n = ceil(x);
  7. round - округляет число по математическим правилам
  8. Пример - n = round(x);

Еще болше функций

Разница между способами

Shower logo

Задача №5.1

  1. Дано положительное действительное число X. Выведите его дробную часть.
  2. Формат входных данных
    • Вводятся положительное действительное число.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №5.1

  1. Sample Input:
    • 17.9
  2. Sample Output:
    • 0.9

Задача №5.2

  1. Дано положительное действительное число X. Выведите его первую цифру после десятичной точки.
  2. Формат входных данных
    • Вводится положительное действительное число.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №5.2

  1. Sample Input:
    • 1.79
  2. Sample Output:
    • 7

Задача №5.3

  1. Даны длины сторон треугольника. Вычислите площадь треугольника.
  2. Формат входных данных
    • Вводятся три положительных числа.
  3. Формат выходных данных
    • Выведите ответ на задачу.

Задача №5.3

  1. Sample Input:
    • 3 4 5
  2. Sample Output:
    • 6

SpoonSweetFree MeanSaltNorth