e-olymp 4812. Функция

Задача

Функция [latex]f(x)[/latex] определена следующим образом:
[latex]f\left(x\right)= \sin x + \sqrt{\log_{4}3x}+ \lceil 3e^x \rceil[/latex] Вычислите значение [latex]f(x)[/latex] для заданного [latex]x[/latex].

Входные данные

Каждая строка содержит действительное значение [latex]x (x ≥ 1)[/latex].

Выходные данные

Для каждого значения x выведите в отдельной строке [latex]f(x)[/latex] с 6 десятичными знаками.

Тесты

Входные данные Выходные данные
1
2.3
2.56
7.123456
10.731685
31.926086
40.762019
3725.231017

Код программы

Решение задачи

График функции

График функции $f\left(x\right) = \sin x + \sqrt{\log_{4}3x}+ \lceil 3e^x \rceil$

Для решения этой задачи я считывал каждое число из потока ввода и передавал значение в функцию, которая возвращало нужное значение, после чего выводил на экран полученное значение с округлением до 6-го знака после запятой. Использовал стандартную библиотеку <cmath>, для вычисления синуса, корня, логарифма, нахождения экспоненты и округления вверх.

Ссылки

  • Задача на сайте e-olymp
  • Код решения в Ideone

Related Images:

А48

Задача:

Даны действительные числа [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] ([latex]a[/latex]≠0). Выяснить, имеет ли уравнение [latex]ax^2 + bx + c = 0[/latex]  действительные корни. Если корни имеются, то найти их. В противном случае ответом должно служить сообщение, что корней нет.

Тесты:

Ввод: Вывод: Результат
a b c
0 *ввод не доступен* *ввод не доступен* неверный ввод Нарушено первоначальное условие, дальнейший ввод не доступен
1 -3 2 уравнение имеет два действительных корня:x1=1.00×2=2.00 уравнение обладает двумя действительными корнями, которые были найдены
9 54 81 уравнение имеет один действительный корень:x0=-3.00 уравнение обладает единственным действительным корнем, который был найден
3 11 19 уравнение не имеет действительных корней корни уравнения отсутствуют
 4  21  24 уравнение имеет два действительных корня:x1=-6.73×2=-14.27 уравнение обладает двумя действительными корнями, которые были найдены
 -2 -3.7 5 уравнение имеет два действительных корня:x1=5.51×2=-1.81 уравнение обладает двумя действительными корнями, которые были найдены

Код программы:

 

Отчёт:

В случае, если параметр не равен нулю, программа позволяет ввести последующие параметр b и константу c. После этого программа ищет дискриминант D по формуле [latex]b^2-4ac[/latex]. Если дискриминант меньше нуля, то программа выдаст сообщение об отсутствии действительных корней в уравнении. Если же дискриминант равен нулю, тогда получим сообщение о наличии единственного корня  уравнения x0, который будет посчитан по формуле [latex]\frac{-b}{2a}[/latex]. В случае, когда дискриминант больше нуля, программа сообщит, что у уравнения есть два действительных корня, после чего будет посчитан корень от дискриминанта d для удобства нахождения первого корня x1: [latex]\frac{-b+d}{2a}[/latex], а затем второго x2: [latex]\frac{-b-d}{2a}[/latex]. Оба корня будут выведены на экран.

Ссылка на дубликат кода в Ideone: http://ideone.com/ZQv9AS

Related Images:

Ю3.22

Задача.

Для заданного [latex]x>1[/latex] вычислить [latex]y=\sqrt{x}[/latex] по итерационной формуле: [latex]y_{i}=\frac{1}{2}(y_{i-1}+\frac{x}{y_{i-1}})[/latex] c заданной погрешностью ε, задав начальное приближение [latex]y_{0}=x[/latex]. Сравнить с результатом использования встроенной функции. Сколько итераций пришлось выполнить?

Тесты.

x ε [latex]y_{i}[/latex] [latex]\left|\sqrt{x}-y_{i} \right|[/latex] i Комментарий
5 1e-2 2.236069 9.18e-07 4 Пройден
100 1e-1 10.000053 5.29e-05 6 Пройден
100 1e-2 10.000000 1.40e-10 7 Пройден
100 1e-6 10.000000 0.00e+00 8 Пройден
100 1e-10 10.000000 0.00e+00 9 Пройден

Решение.

C++

Java

Для подсчета значения квадратного корня для заданного числа создадим цикл. Цикл выполняется пока [latex]\left|y_{i}-y_{i-1}>=\varepsilon\right|[/latex].

С повышением точности растёт количество итераций, но из-за того что, начиная с [latex]\varepsilon=10^{-5}[/latex], погрешность не вычисляется, зависимость оценить нельзя.

Для выполнения программы и проверки тестов можно воспользоваться следующей ссылкой(C++) или другой(Java).

Related Images: