Переменные и выражения
Линейные алгоритмы, вычисление выражений, ввод исходных данных и вывод результатов.
Цель и порядок работы
Освоить структуру программы C++, порядок записи выражений, операторы ввода и вывода.
В каждом варианте два задания: вычисление значений по формулам и отдельная задача на числовые данные. Сначала определите исходные данные и порядок вычислений, затем переведите математическую запись в выражения C++.
- Выполните оба задания своего варианта. Переменные, указанные как входные данные, вводите с консоли.
- Составьте схему алгоритма, напишите программу, выполните компиляцию, отладку и тестирование.
- Покажите полученные результаты и оформите отчёт по лабораторной работе.
Требования к коду, заготовка отчёта, тестирование и блок-схемы →
Скачать текущие задания и варианты+ в PDF
Перед началом: Лекция 1 · main · Лекция 1 · типы · Лекция 1 · ввод и вывод · Лекция 1 · заголовки и структура программы
Математическая степень не записывается оператором ^: в C++ это побитовое исключающее ИЛИ. Для квадрата подходит x * x, для общего показателя — std::pow из <cmath>. Тригонометрические функции принимают радианы.
Задания по вариантам
Выполните все задания назначенного варианта.
Общие требования к вариантам
В обычном варианте выполните оба задания. В варианте+ задания связаны общей задачей и требуют нескольких последовательных вычислений.
Для формул используйте <cmath>: std::sqrt, std::cbrt, std::pow, std::sin, std::cos, std::tan, std::log и std::log10. Подключение стандартных заголовков разобрано в лекции 1; смысл этих математических функций соответствует их названиям. Углы задаются в радианах.
Работайте с входными данными из области определения. Запишите ограничения в отчёте: знаменатели ненулевые, аргументы логарифмов положительные, подкоренные выражения квадратных корней неотрицательные. Для вещественной степени используйте положительное основание, если отдельно не предусмотрен целый показатель. Кубический корень вычисляйте через std::cbrt.
Здесь достаточно линейного алгоритма: без циклов, контейнеров и указателей. Факториалы в формулах имеют фиксированные аргументы от 0 до 5: подставьте их значения (например, 5! = 120). Для выделения заданий используйте простые функции по общей заготовке; сложные способы передачи параметров пока не нужны.
Вариант 1 · Формулы и перевод длины
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Полные метры
Введите неотрицательное целое количество сантиметров. Найдите число полных метров и остаток сантиметров. Проверка: 250 см → 2 м и 50 см.
Вариант 2 · Формулы и площадь треугольника
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Формула Герона
Введите длины трёх сторон существующего невырожденного треугольника. Найдите полупериметр и площадь.
Вариант 3 · Формулы и размер файла
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Байты и кибибайты
Введите целое неотрицательное количество байт. Найдите число полных КиБ и оставшиеся байты. В этой задаче 1 КиБ содержит 1024 байта; именуйте коэффициент перевода константой.
Вариант 4 · Формулы и окружности треугольника
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Площадь и радиусы
По трём сторонам существующего треугольника найдите площадь, радиусы вписанной и описанной окружностей.
Вариант 5 · Формулы и цилиндр
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Объём и поверхность цилиндра
Введите положительные радиус и высоту. Вычислите объём, площадь основания, боковой и полной поверхности.
Вариант 6 · Формулы и прямоугольный параллелепипед
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Геометрические характеристики
Введите три положительных ребра. Найдите объём, площадь поверхности и пространственную диагональ.
Вариант 7 · Формулы и цифры двузначного числа
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Сумма и произведение цифр
Введите положительное двузначное целое число. Выделите десятки и единицы с помощью целочисленного деления и остатка. Выведите их сумму и произведение.
Вариант 8 · Формулы и равнобедренная трапеция
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Площадь трапеции
Введите большее основание B, высоту h и угол при большем основании. Считайте трапецию существующей; найдите меньшее основание и площадь.
Вариант 9 · Формулы и первая цифра числа
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Сотни
Введите положительное трёхзначное число. Найдите его первую цифру и число, которое останется после удаления этой цифры. Например, 407 → 4 и 7.
Вариант 10 · Формулы и последние цифры
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Единицы и десятки
Введите положительное трёхзначное число. Выведите сначала последнюю цифру, затем среднюю. Проверка: 572 → 2 и 7.
Вариант 11 · Формулы и все цифры числа
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Сумма и произведение
Введите положительное трёхзначное число. Выделите все три цифры. Выведите цифры, их сумму и произведение. Проверьте число с нулём внутри.
Вариант 12 · Формулы и разворот числа
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Обратный порядок
Введите положительное трёхзначное число. Составьте число с цифрами в обратном порядке, не используя строки. Ведущие нули результата не сохраняются: 120 → 21.
Вариант 13 · Вложенные дроби и перестановка цифр
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Циклический сдвиг
Введите положительное трёхзначное число. Перенесите цифру сотен в конец: 372 → 723, 105 → 51. Решите арифметически, без строки.
Вариант 14 · Числовые константы и перевод массы
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Полные тонны
Введите целое неотрицательное количество килограммов. Найдите число полных тонн и остаток килограммов. Коэффициент перевода задайте именованной константой.
Вариант 15 · Полином и обмен цифр
Вычисления по формулам
Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.
Сотни и десятки
Введите положительное трёхзначное число. Поменяйте местами первые две цифры без строк и циклов: 572 → 752. Объясните результат для 105.
Вариант 16+ · Геометрия комнаты
Ремонт по размерам
Введите положительные длину, ширину и высоту комнаты, площадь двери и окна, расход краски в литрах на квадратный метр и цену литра. Проёмы меньше суммарной площади стен. Вычислите площадь стен без проёмов, объём комнаты, расход и стоимость краски. Покажите промежуточные результаты.
Обратная проверка
На одном наборе данных вручную проверьте площадь и стоимость. Покажите, как изменение высоты на один метр влияет на расход, остальные величины фиксированы.
Вариант 17+ · Время и стоимость поездки
Маршрут с пересадкой
Введите длины двух участков, их скорости, время остановки в минутах, расход топлива на 100 км и цену литра. Найдите длительность поездки в часах, расход и стоимость топлива, среднюю скорость с учётом остановки.
Представление времени
Для целого количества секунд отдельным вводом получите часы, минуты и секунды с помощью деления и остатка. Циклы и разбор строки не нужны.
Вариант 18+ · Показания датчика
Калибровка
Введите два разных эталонных сигнала и соответствующие им температуры, затем третий сигнал. Найдите коэффициенты линейной калибровки, температуру по третьему сигналу и её значение в кельвинах.
Погрешность
Для известной контрольной температуры вычислите абсолютную погрешность и относительную в процентах. Контрольная температура ненулевая.
Вариант 19+ · Составной вклад
Три периода без цикла
Введите начальный вклад и годовые проценты для трёх последовательных лет. Вычислите сумму после каждого года с капитализацией и общий доход. Не складывайте ставки вместо последовательного начисления.
Сравнение моделей
Вычислите результат без капитализации, когда проценты каждого года начисляются только на исходную сумму. Выведите разность двух итогов и объясните её знак для положительных ставок.
Вариант 20+ · Расстояния и площадь по координатам
Треугольник на плоскости
Введите координаты трёх неколлинеарных точек. Вычислите длины сторон, периметр, площадь по координатам и радиус вписанной окружности.
Независимая проверка
Отдельно вычислите площадь по формуле Герона. Выведите абсолютную разность двух значений. Проверка: точки (0,0), (3,0), (0,4) дают площадь 6.
Возможные вопросы к защите
Попробуйте ответить своими словами и показать соответствующее место в своей программе. Под вопросом можно открыть ориентир для ответа и перейти к нужной теме лекции.
Зачем нужна main и что означает return 0?
Объясните точку входа и различие между кодом завершения и выводом на экран.
Повторить: Лекция 1 · main
Чем отличаются целочисленное деление и деление вещественных чисел?
Сравните 5 / 2 и 5.0 / 2; свяжите выбор типа с формулами вашего варианта.
Повторить: Лекция 1 · типы
Для чего подключается cmath и какие функции нужны в вашем варианте?
Назовите std::sqrt, std::cbrt или std::pow, покажите заголовок и вызов. Различайте математическую запись и синтаксис вызова C++.
Повторить: Лекция 1 · подключение заголовков
Какие ограничения на исходные данные заданы вашими формулами?
Назовите допустимые значения знаменателей и аргументов корней и логарифмов. Здесь достаточно математического объяснения, без терминологии о UB.
Повторить: Лекция 1 · типы
Чем инициализация отличается от присваивания?
Покажите объявление переменной с начальным значением и последующее изменение этого же объекта.
Повторить: Лекция 1 · сущности языка
Как проверить успешность чтения данных?
Покажите проверку состояния потока до использования введённых значений.
Повторить: Лекция 1 · ввод и вывод