Загружаем лабораторные…
// C++ · Лабораторная 01

Переменные и выражения

Линейные алгоритмы, вычисление выражений, ввод исходных данных и вывод результатов.

Цель и порядок работы

Освоить структуру программы C++, порядок записи выражений, операторы ввода и вывода.

В каждом варианте два задания: вычисление значений по формулам и отдельная задача на числовые данные. Сначала определите исходные данные и порядок вычислений, затем переведите математическую запись в выражения C++.

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

Требования к коду, заготовка отчёта, тестирование и блок-схемы →

Скачать текущие задания и варианты+ в 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). Для выделения заданий используйте простые функции по общей заготовке; сложные способы передачи параметров пока не нужны.

15 основных + 5 вариантов+

Вариант 1 · Формулы и перевод длины

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=2cos⁡(x−π/6)0.5+sin⁡2ya=\frac{2\cos(x-\pi/6)}{0.5+\sin^2 y}
b=1+z23.2⋅10−5+(z3)2b=1+\frac{z^2}{3.2\cdot10^{-5}+\left(\sqrt[3]{z}\right)^2}
c=tan⁡(2.5x)+bcos⁡(ax)3c=\tan(2.5x)+b\sqrt[3]{\cos(ax)}

Полные метры

Введите неотрицательное целое количество сантиметров. Найдите число полных метров и остаток сантиметров. Проверка: 250 см → 2 м и 50 см.

Вариант 2 · Формулы и площадь треугольника

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

y=x2+b3−b2sin⁡3 ⁣(x+ax)y=\sqrt[3]{x^2+b}-b^2\sin^3\!\left(\frac{x+a}{x}\right)
z=a2x+b−xcos⁡(a+xy)yxz=\frac{a^{2x}+b^{-x}\cos(a+x^y)}{y^x}

Формула Герона

Введите длины трёх сторон существующего невырожденного треугольника. Найдите полупериметр и площадь.

p=u+v+w2,S=p(p−u)(p−v)(p−w)p=\frac{u+v+w}{2},\qquad S=\sqrt{p(p-u)(p-v)(p-w)}

Вариант 3 · Формулы и размер файла

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

y=atan⁡ ⁣(0.25⋅10−3+∣bsin⁡x∣)3y=\sqrt[3]{a\tan\!\left(0.25\cdot10^{-3}+|b\sin x|\right)}
z=a2cos⁡x+b−acos⁡(sin⁡x+a−b)xyz=\frac{a^{2\cos x}+b^{-a}\cos(\sin x+a^{-b})}{x^y}

Байты и кибибайты

Введите целое неотрицательное количество байт. Найдите число полных КиБ и оставшиеся байты. В этой задаче 1 КиБ содержит 1024 байта; именуйте коэффициент перевода константой.

Вариант 4 · Формулы и окружности треугольника

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=3.2⋅10−5exy(x−π/3)0.5+x2∣y−tan⁡3x∣a=\frac{3.2\cdot10^{-5}e^{x^y}(x-\pi/3)}{0.5+x^2|y-\tan^3 x|}
b=(x−y)22.5+∣(y−x)3∣sin⁡(x/z)b=\frac{(x-y)^2}{2.5}+\frac{|(y-x)^3|}{\sin(x/z)}
c=cos⁡(ax)−sin⁡ ⁣(a+bab)3c=\sqrt[3]{\cos(ax)-\sin\!\left(\frac{a+b}{ab}\right)}

Площадь и радиусы

По трём сторонам существующего треугольника найдите площадь, радиусы вписанной и описанной окружностей.

p=u+v+w2,S=p(p−u)(p−v)(p−w),r=Sp,R=uvw4Sp=\frac{u+v+w}{2},\quad S=\sqrt{p(p-u)(p-v)(p-w)},\quad r=\frac{S}{p},\quad R=\frac{uvw}{4S}

Вариант 5 · Формулы и цилиндр

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=31/4−(32)2/3cos⁡xa=3^{1/4}-\left(\frac{\sqrt3}{2}\right)^{2/3}\cos x
b=sin⁡ ⁣(3.2⋅10−5e3/2+5.1⋅10−3e3/x)b=\sin\!\left(3.2\cdot10^{-5}e^{3/2}+5.1\cdot10^{-3}e^{3/x}\right)
c=log⁡10(0.2acos⁡(3.1x))+ln⁡(e3/2+sin⁡x)c=\log_{10}(0.2a\cos(3.1x))+\ln(e^{3/2}+\sin x)

Объём и поверхность цилиндра

Введите положительные радиус и высоту. Вычислите объём, площадь основания, боковой и полной поверхности.

V=πr2h,S0=πr2,Sбок=2πrh,Sполн=2S0+SбокV=\pi r^2h,\quad S_0=\pi r^2,\quad S_{\text{бок}}=2\pi rh,\quad S_{\text{полн}}=2S_0+S_{\text{бок}}

Вариант 6 · Формулы и прямоугольный параллелепипед

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=log⁡10 ⁣((33)3)a=\log_{10}\!\left((\sqrt[3]{3})^{\sqrt3}\right)
b=0.362⋅10−5x+sin⁡(e−x+ln⁡∣x∣)3a+eπb=\frac{0.362\cdot10^{-5}x+\sqrt[3]{\sin(e^{-x}+\ln|x|)}}{\sqrt{a+e^\pi}}
c=ln⁡ ⁣(a2+bx3)c=\ln\!\left(a^{\sqrt2}+b^{\sqrt[3]{x}}\right)

Геометрические характеристики

Введите три положительных ребра. Найдите объём, площадь поверхности и пространственную диагональ.

V=uvw,S=2(uv+uw+vw),d=u2+v2+w2V=uvw,\quad S=2(uv+uw+vw),\quad d=\sqrt{u^2+v^2+w^2}

Вариант 7 · Формулы и цифры двузначного числа

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=2.4⋅10−3x4/x(x−π/3)0.21⋅10−5∣y∣/∣z∣+x2∣y−tan⁡3(x2)∣a=\frac{2.4\cdot10^{-3}x^{4/x}(x-\pi/\sqrt3)}{0.21\cdot10^{-5}\sqrt{|y|/|z|}+x^2|y-\tan^3(x^2)|}
b=y−xz−x+yz/y−xsin⁡2(x/z)b=\frac{y-x}{z-x}+\frac{y^{z/y-x}}{\sin^2(x/z)}
c=ln⁡∣z−x∣cos⁡(ax)−sin⁡ ⁣(a+bab)3c=\sqrt[3]{\ln|z-x|\cos(ax)-\sin\!\left(\frac{a+b}{ab}\right)}

Сумма и произведение цифр

Введите положительное двузначное целое число. Выделите десятки и единицы с помощью целочисленного деления и остатка. Выведите их сумму и произведение.

Вариант 8 · Формулы и равнобедренная трапеция

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=1+x+x2/3x+x2+x3/43a=\frac{1+x+x^{2/3}}{\sqrt{x+\sqrt[3]{x^2+x^{3/4}}}}
b=a+a+aa+eπb=\frac{\sqrt{a+\sqrt{a+\sqrt a}}}{\sqrt{a+e^\pi}}
c=ln⁡ ⁣(a2+bx3)c=\ln\!\left(a^{\sqrt2}+b^{\sqrt[3]x}\right)

Площадь трапеции

Введите большее основание B, высоту h и угол при большем основании. Считайте трапецию существующей; найдите меньшее основание и площадь.

b0=B−2htan⁡α>0,S=(B+b0)h2,0<α<π2b_0=B-\frac{2h}{\tan\alpha}>0,\qquad S=\frac{(B+b_0)h}{2},\qquad 0<\alpha<\frac\pi2

Вариант 9 · Формулы и первая цифра числа

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=1+x2+x3x+x+xa=\frac{1+x^2+x^3}{\sqrt{x+\sqrt{x+\sqrt x}}}
b=a3+a4a+πxb=\frac{\sqrt[3]a+\sqrt[4]a}{\sqrt{a+\pi^x}}
c=log⁡10 ⁣(a2+bx3)c=\log_{10}\!\left(a^{\sqrt2}+b^{\sqrt[3]x}\right)

Сотни

Введите положительное трёхзначное число. Найдите его первую цифру и число, которое останется после удаления этой цифры. Например, 407 → 4 и 7.

Вариант 10 · Формулы и последние цифры

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=x+x+x333x+x+xa=\frac{\sqrt[3]{x+\sqrt[3]{x+\sqrt[3]x}}}{\sqrt{x+\sqrt{x+\sqrt x}}}
b=x+a+π333ln⁡a+log⁡10πb=\frac{\sqrt[3]{x+\sqrt[3]{a+\sqrt[3]\pi}}}{\sqrt{\ln a+\log_{10}\pi}}
c=2+3+10tan⁡(x/(ab))c=\frac{\sqrt{2+\sqrt{3+\sqrt{10}}}}{\tan(x/(ab))}

Единицы и десятки

Введите положительное трёхзначное число. Выведите сначала последнюю цифру, затем среднюю. Проверка: 572 → 2 и 7.

Вариант 11 · Формулы и все цифры числа

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

y=x2+b⋅5!3−b sin⁡3 ⁣a+bxy=\sqrt[3]{x^2+b\cdot5!}-\sqrt b\,\sin^3\!\sqrt{\frac{a+b}{x}}
z=a2.3⋅10−3x+b−xcos⁡(πx+xπ)yxz=\frac{a^{2.3\cdot10^{-3}x}+b^{-x}\cos(\pi^x+x^\pi)}{y^x}

Сумма и произведение

Введите положительное трёхзначное число. Выделите все три цифры. Выведите цифры, их сумму и произведение. Проверьте число с нулём внутри.

Вариант 12 · Формулы и разворот числа

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=1!+x2⋅2!+x3⋅3!x3+x3+x3a=\frac{1!+x^2\cdot2!+x^3\cdot3!}{\sqrt{x^3+\sqrt{x^3+\sqrt{x^3}}}}
b=x/a3+a/x4xπ+πxb=\frac{\sqrt[3]{x/a}+\sqrt[4]{a/x}}{\sqrt{x^\pi+\pi^x}}
c=log⁡10 ⁣(a3!+bx3)c=\log_{10}\!\left(a^{\sqrt{3!}}+b^{\sqrt[3]x}\right)

Обратный порядок

Введите положительное трёхзначное число. Составьте число с цифрами в обратном порядке, не используя строки. Ведущие нули результата не сохраняются: 120 → 21.

Вариант 13 · Вложенные дроби и перестановка цифр

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=1x+1x2+1x3+1x4+1/x5a=\frac1{x+\frac1{x^2+\frac1{x^3+\frac1{x^4+1/x^5}}}}
b=1x+1x+1/x43b=\frac1{\sqrt{x+\frac1{\sqrt[3]{x+1/\sqrt[4]x}}}}
c=x1+x21+x31+x4c=\frac{x}{1+\frac{x^2}{1+\frac{x^3}{1+x^4}}}

Циклический сдвиг

Введите положительное трёхзначное число. Перенесите цифру сотен в конец: 372 → 723, 105 → 51. Решите арифметически, без строки.

Вариант 14 · Числовые константы и перевод массы

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=2⋅22⋅22+2⋅22+2+2a=2\cdot\frac2{\sqrt2}\cdot\frac2{\sqrt{2+\sqrt2}}\cdot\frac2{\sqrt{2+\sqrt{2+\sqrt2}}}
b=11+12+13+14+1/5b=\frac1{1+\frac1{2+\frac1{3+\frac1{4+1/5}}}}
c=200!+211!+222!+233!+244!+255!c=\frac{2^0}{0!}+\frac{2^1}{1!}+\frac{2^2}{2!}+\frac{2^3}{3!}+\frac{2^4}{4!}+\frac{2^5}{5!}

Полные тонны

Введите целое неотрицательное количество килограммов. Найдите число полных тонн и остаток килограммов. Коэффициент перевода задайте именованной константой.

Вариант 15 · Полином и обмен цифр

Вычисления по формулам

Введите исходные величины и последовательно вычислите результаты. Переменная, определённая предыдущей формулой, повторно не вводится. Используйте вещественные числа, если не сказано обратное.

a=x00!+x11!+x22!+x33!+x44!+x55!a=\frac{x^0}{0!}+\frac{x^1}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+\frac{x^4}{4!}+\frac{x^5}{5!}
b=1x+1x2+1x3+1x4+1/x5b=\frac1{x+\frac1{x^2+\frac1{x^3+\frac1{x^4+1/x^5}}}}
c=x⋅xx⋅xx+x⋅xx+x+xc=x\cdot\frac{x}{\sqrt x}\cdot\frac{x}{\sqrt{x+\sqrt x}}\cdot\frac{x}{\sqrt{x+\sqrt{x+\sqrt x}}}

Сотни и десятки

Введите положительное трёхзначное число. Поменяйте местами первые две цифры без строк и циклов: 572 → 752. Объясните результат для 105.

Вариант 16+ · Геометрия комнаты

Ремонт по размерам

Введите положительные длину, ширину и высоту комнаты, площадь двери и окна, расход краски в литрах на квадратный метр и цену литра. Проёмы меньше суммарной площади стен. Вычислите площадь стен без проёмов, объём комнаты, расход и стоимость краски. Покажите промежуточные результаты.

S=2h(l+w)−Sдверь−Sокно,V=lwh,L=qS,C=pLS=2h(l+w)-S_{\text{дверь}}-S_{\text{окно}},\quad V=lwh,\quad L=qS,\quad C=pL

Обратная проверка

На одном наборе данных вручную проверьте площадь и стоимость. Покажите, как изменение высоты на один метр влияет на расход, остальные величины фиксированы.

Вариант 17+ · Время и стоимость поездки

Маршрут с пересадкой

Введите длины двух участков, их скорости, время остановки в минутах, расход топлива на 100 км и цену литра. Найдите длительность поездки в часах, расход и стоимость топлива, среднюю скорость с учётом остановки.

T=s1v1+s2v2+tстоп60,F=q(s1+s2)100,C=pF,vср=s1+s2TT=\frac{s_1}{v_1}+\frac{s_2}{v_2}+\frac{t_{\text{стоп}}}{60},\quad F=\frac{q(s_1+s_2)}{100},\quad C=pF,\quad v_{\text{ср}}=\frac{s_1+s_2}{T}

Представление времени

Для целого количества секунд отдельным вводом получите часы, минуты и секунды с помощью деления и остатка. Циклы и разбор строки не нужны.

Вариант 18+ · Показания датчика

Калибровка

Введите два разных эталонных сигнала и соответствующие им температуры, затем третий сигнал. Найдите коэффициенты линейной калибровки, температуру по третьему сигналу и её значение в кельвинах.

k=T2−T1u2−u1,b=T1−ku1,T=ku+b,TK=T+273.15k=\frac{T_2-T_1}{u_2-u_1},\quad b=T_1-ku_1,\quad T=ku+b,\quad T_K=T+273.15

Погрешность

Для известной контрольной температуры вычислите абсолютную погрешность и относительную в процентах. Контрольная температура ненулевая.

Δ=∣T−Tконтр∣,δ=100Δ∣Tконтр∣\Delta=|T-T_{\text{контр}}|,\quad \delta=100\frac{\Delta}{|T_{\text{контр}}|}

Вариант 19+ · Составной вклад

Три периода без цикла

Введите начальный вклад и годовые проценты для трёх последовательных лет. Вычислите сумму после каждого года с капитализацией и общий доход. Не складывайте ставки вместо последовательного начисления.

S1=S0(1+r1/100),S2=S1(1+r2/100),S3=S2(1+r3/100),D=S3−S0S_1=S_0(1+r_1/100),\quad S_2=S_1(1+r_2/100),\quad S_3=S_2(1+r_3/100),\quad D=S_3-S_0

Сравнение моделей

Вычислите результат без капитализации, когда проценты каждого года начисляются только на исходную сумму. Выведите разность двух итогов и объясните её знак для положительных ставок.

Вариант 20+ · Расстояния и площадь по координатам

Треугольник на плоскости

Введите координаты трёх неколлинеарных точек. Вычислите длины сторон, периметр, площадь по координатам и радиус вписанной окружности.

d(A,B)=(xB−xA)2+(yB−yA)2d(A,B)=\sqrt{(x_B-x_A)^2+(y_B-y_A)^2}

Независимая проверка

Отдельно вычислите площадь по формуле Герона. Выведите абсолютную разность двух значений. Проверка: точки (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 · ввод и вывод