e-olymp 67. New food for Anfisa — 2

Задача e-olimp.com №67

Ссылка на засчитанное решение.

Условие:

При разрезании сыра в задаче «Сыр для Анфисы» у хозяина оставались куски сыра в виде прямоугольного параллелепипеда с разными целыми длинами сторон. Готовя новое блюдо из сыра для Анфисы хозяину приходилось разрезать эти куски на кубики со стороной 1. Какое наименьшее количество разрезов приходилось ему делать для того, чтобы разрезать заданные куски сыра, если он каждый раз разрезал один кусок сыра на две части.

Тесты

Входные данные Выходные данные
a b c
2 3 4 23
1 2 3 5

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

Для запроса на выполнение нажать здесь.

Решение

При разрезании сторон a, b, c мы получаем a, b, c количество частей соответственно. Следовательно, при разрезании стороны A, мы выполняем [latex](a-1)[/latex] разрезов. Тогда, при разрезании стороны B, делаем [latex]a*(b-1)[/latex]; при разрезании стороны C — [latex]a*b*(c-1)[/latex] соответственно. Всего мы совершаем [latex](a-1)+a*(b-1)+a*b*(c-1)[/latex] разрезов. В итоге, получаем формулу [latex]a*b*c — 1[/latex].

Related Images:

e-olymp 935. Разложение трицифрового числа

Задача

Разложить заданное трицифровое число на цифры.

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

В единственной строке задано целое трицифровое число.

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

Вывести каждую цифру в новой строке. Порядок вывода приведён в примере.

 

Код

Тесты

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

2

3

2 98 0

9

8

3 -456 4

5

6

4 -1 0

0

1

5 -78 0

7

8

 

Решение

Для начала задаем переменную(a) в которой будет трехзначное число, которое мы вводим с клавиатуры. Затем проверяем: отрицательное или положительное это число. Если число отрицательное, то домножаем его на (-1). Если число останется отрицательным, то все выходные цыфры  тоже будут отрицательными, а это противоречит условию. Итак мы имеем трехзначное положительное число. Для того чтобы получить первую цифру этого числа воспользуемся простой формулой [latex]a/100[/latex], вторую цифру по формуле — [latex](a/10)%10[/latex], и третью [latex]a%10[/latex]. После отображения каждой цифры воспользуемся командой \n, для того чтобы каждая цифра была на отдельной строке.

Задача взята с сайта.

Related Images:

e-olymp 906. Произведение цифр

Задача взята с сайта e-olimp

Условие

Задано трицифровое число. Определить произведение его цифр.

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

В единственной строке заданное трицифровое число.

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

В единственной строке произведение цифр заданного числа.

Тесты

# Входные данные Результат
1 235 30
2 106 0
3 111 1

Решение

Описание решения

Для решения данной задачи необходимо задать переменную num, которая будет хранить в себе вводимые данные. Так как будут приниматься целочисленные данные, то используем тип данных int. Далее необходимо разбить исходное число на три цифры и перемножить их между собой.

Для разбиения на цифры воспользуемся формулой:

В данной формуле в первом множителе мы получаем первую цифру, во втором — вторую, и в третьем соответственно третью.

После выполнения всех операций перейдем на новую строку с помощью команды endl.

Для перехода к странице на e-olimp с полностью выполненным данным заданием щелкните здесь.

 

Related Images:

e-olymp 157. Зоопарк

Задача взята с сайта  e-olymp.com.

Постановка задачи

В зоопарке [latex] N [/latex] клеток выстроены в ряд. В зоопарке, кроме прочих обитателей, живут две мартышки, Слава и Юра. Слава и Юра всегда были большими друзьями и сидели в соседних клетках, но теперь они поссорились и больше не хотят видеть друг друга. Смотритель уже собрался переселить их в соответствии с их желанием, однако возникла проблема. Слава и Юра — очень образованные мартышки (каждый из них закончил аж по восемь классов!), и они непременно хотят знать, сколько всего существует способов расселить их так, чтобы их клетки не были соседними, и уж конечно их клетки должны быть различными. Можно считать, что все  [latex] N [/latex] клеток доступны, остальные обитатели зоопарка готовы переехать куда угодно.

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

В первой строке входных данных находится число [latex] N [/latex]  [latex](2\leq N\leq 100)[/latex] — количество клеток в зоопарке.

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

Выведите одно число — количество способов поселить Славу и Юру в разные клетки так, чтобы эти клетки не были соседними.

Тесты

4 6
15 182
30 812
48 2162
60 3422

Реализация

Здесь находится код в ideone.com

Решение

Рассмотрим  возможные расположения клеток при условии, что  одна из обезьян занимает первую клетку. Очевидно, что другая обезьяна не может занимать первую и вторую клетки, т к клетки должны быть разными и не соседними. Следовательно, существует [latex] (n — 2) [/latex] вариантов расположения второй обезьяны. Далее предположим, что первая обезьяна занимает вторую клетку. Тогда  количество вариантов расположения второй обезьяны равно [latex] (n-2-1) = (n-3) [/latex] . И так далее, до тех пор пока не останется один вариант расположения второй обезьяны. Таким образом, ключ к решению задачи лежит в рассмотрении количества вариаций расположения клеток обезьян как  арифметической  прогрессии. Исходя из условия задачи, нам необходимо найти сумму первых [latex] n [/latex]  членов прогрессии. Формула для вычислений: [latex] S=\frac{(a_1 + a_k}{2}*k [/latex], где  [latex] a_1=n-2 [/latex] и [latex] a_k=1 [/latex], и [latex] k=n-2 [/latex].  Применяя математические преобразования, получаем что [latex] S=\frac{(n-1) * (n-2)}{2} [/latex]. Однако,  имеет значение не только, непосредственно,  какие две клетки заняты, но и какая именно из обезьян занимает определенную клетку. То есть при [latex] n=3 [/latex] мы имеем лишь пару клеток, которые можем использовать, но два способа поселения. Следовательно, полученное выражение необходимо умножить на два. Таким образом, мы вывели необходимую нам формулу.

Выполненное задание на сайте  e-olimp.com здесь.

Related Images:

e-olymp 1. Простая задача

Задача. Программа считывает двузначное число и выводит через пробел каждую цифру отдельно.

Тесты

Ввод 10 12 45 99
Вывод 1  0 1 2 4 5 9 9

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

Алгоритм

В этой задаче мы дважды используем операцию целочисленного деления. Первой цифрой исходного числа будет частное от деления на 10, а последней — остаток.

Решение

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

Related Images:

e-olymp 7336. Пирожки

Условие задачи можно посмотреть здесь

Постановка задачи

Пирожок в столовой стоит [latex]a[/latex] гривен и [latex]b[/latex] копеек. Найдите сколько гривен и копеек заплатит Петя за [latex]n[/latex] пирожков.

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

Три натуральных числа [latex]a, b[/latex], [latex]n[/latex] [latex](0\leq a, b, n\leq 100)[/latex].

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

Через пропуск два числа: стоимость покупки в рублях и копейках.

Решение

Описание решения

Для решения данной задачи нужно использовать тип данных int, потому что вводим целочисленные данные: гривны, копейки и количество.

Этой формулой мы считаем, сколько в копейках заплатил Петя за определенное количество пирожков:  [latex]p=(a\cdot 100 + b)\cdot n[/latex]

Далее, из количества копеек высчитываем количество гривен [latex]p/ 100[/latex] и с помощью деления по модулю находим количество копеек [latex]p\% 100[/latex], и выводим ответ на экран.

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

Для того, чтобы посмотреть, как работает программа со входными данными [latex]1, 25, 2,[/latex] нужно нажать сюда.

Related Images:

e-olymp 57. Бабочка-санитар

Задача взята с сайта e-olymp.com.

Условие

Школьники, идя из дому в школу или наоборот — со школы домой, любят кушать конфеты. Но, как всегда, это приятное дело иногда имеет неприятные последствия – детки часто выбрасывают обертки на школьном дворе.

Мурзик всегда следил за чистотой школьного двора и ему в этом с радостью помогали бабочки, благодарные за прекрасные фотографии, сделанные им. Бабочки могли использовать собственные крылышки как линзы, причем они могли изменять их фокусное расстояние. Заметив обертку от конфетки, лежавшую на школьном дворе в точке с координатами [latex]X_1[/latex], [latex]Y_1[/latex], бабочка перелетала в точку с координатами [latex]X_2[/latex], [latex]Y_2[/latex], [latex]Z_2[/latex], расположенную на пути солнечных лучей к обертке и, изменяя фокусное расстояние своих крылышек-линз, сжигали обертку от конфеты.

Какую оптическую силу [latex]D[/latex] имели крылышки-линзы бабочки в этот момент?

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

В первой строке 2 числа: координаты [latex]X_1[/latex], [latex]Y_1[/latex], обертки от конфетки. Во второй – 3 числа: координаты [latex]X_2[/latex], [latex]Y_2[/latex], [latex]Z_2[/latex] бабочки в момент сжигания обертки.

Все входные данные целые числа, не превышающие по модулю 1000.

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

Единственное число – оптическая сила крылышек-линз [latex]D[/latex], вычисленная с точностью до 3-х знаков после запятой за правилами математических округлений.

Тесты:

[latex]X_1[/latex] [latex]Y_1[/latex] [latex]X_2[/latex] [latex]Y_2[/latex] [latex]Z_2[/latex] [latex]D[/latex]
10 20 10 20 100 0.010
10 30 10 30 50 0.020
10 30 20 40 110 0.009

Код:

 

Ход решения:

Вычисляем оптическую силу линзы D по формуле [latex]D = \frac{1}{f}[/latex], где f — расстояние между бабочкой и обёрткой. вычисляем его по формуле: [latex]f[/latex] = [latex]\sqrt{(X_2-X_1)^2+(Y_2-Y_1)^2+Z_2^2}[/latex]. Вычисление в одну строку:

Далее округляем результат до требуемой точности и выводим на экран:

Ссылки:

Зачитанный вариант на e-olimp.com: olymp.com

Рабочий код для тестирования на Ideaone.com: Ideaone.com

Related Images:

e-olymp 133. Квадрат и точки

Квадрат и точки.

Постановка задачи

Какое наибольшее количество точек с целочисельными координатами на листке в клеточку можно накрыть квадратом со стороной N клеток?

Алгоритм решения

Решения задачи сводится к нахождению площади квадрата, сторона которого на единицу больше исходного.

Тесты

Входные данные Выходные данные
1 4
2 9
3 16
4 25

Реализация

ideone: ссылка
Засчитаное решение на e-olymp: ссылка

 

Related Images:

Ю1.26

Задача:

Треугольник задается координатами своих вершин на плоскости : [latex]A(x_{1} , y_{2})[/latex] , [latex]B(x_{2} , y_{2})[/latex] , [latex]C(x_{3} , y_{3})[/latex] . Найти длину и основание высоты, опущенной из вершины A на сторону ВС.

Тесты

[latex]x_{А}[/latex] [latex]y_{A}[/latex] [latex]x_{B}[/latex] [latex]y_{B}[/latex] [latex]x_{C}[/latex] [latex]y_{C}[/latex] Основание ([latex]BC[/latex]) Высота[latex]h[/latex] Комментарий
7 9 45 9 34 5 11 13 пройден
0.75 1 0.25 2 0.5 3 1 0 пройден
98 67 56 47 34 95 52 47 пройден
0 1 0 3 0 4 1 0 пройден

В четвертом  примере имеем вырожденный треугольник, для которого площадь будет равна нулю , следовательно и высота так же равна 0

Код:

ссылка на C++ : http://ideone.com/fBfd8S

ссылка на Java : http://ideone.com/ut9G6J

 

Решение:

Для начала находим стороны треугольника :

далее выполняем условие , что если сумма двух сторон меньше третей то треугольник не существует. Если же наоборот начинаем считать плащадь треугольника по формуле :

и с помощью площади находим высоту :

и в конце выводим высоту и основание.

Related Images:

e-olymp 6277. Покупка воды

Задача №6277 с сайта e-olimp.com.

Стоимость бутылки воды, учитывая стоимость пустой бутылки, составляет 1 грн 20коп., а стоимость пустой бутылки 20 коп.
Сколько бутылок воды можно выпить на [latex]n[/latex] грн, учитывая, что пустые бутылки можно сдавать, и на полученные деньги приобретать новые бутылки воды.

Входные данные
Натуральное число [latex]n[/latex] (1 [latex]n[/latex] 1000).

Выходные данные
Количество бутылок воды, которое можно выпить на [latex]n[/latex] грн.

[latex]n[/latex] Результат
2 1
10 9
0.7 0

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

Задача решена методом моделирования. Вычисления проведены согласно условию, представленному в задаче. По условию задачи необходимо узнать сколько можно выпить бутылок имея [latex]n[/latex] грн. Для этого описываем и считываем количество денег [latex]n[/latex], а также создаем счетчик, определяющий сколько бутылок воды в итоге можно купить. Затем создаем цикл, в котором пока мы имеем достаточно средств покупаем воду за 1.2 грн и сразу же сдаем бутылку за 0.2 грн, в результате количество денег уменьшается на 1, а счетчик увеличивается на 1. Когда количество денег станет меньше 1.2 грн выходим из цикла и печатаем количество купленных бутылок.
Для проверки работы программы можно воспользоваться объектом.

Имеется альтернативный линейный вариант решения:

http://ideone.com/ClAaK4
Решение принято

Код на Javа:

Related Images:

Ю1.7

Задача: Селекция. Селекционер вывел новый сорт зерновой культуры и снял с опытной делянки [latex]k [/latex] кг семян. Посеяв 1 кг семян, можно за сезон собрать [latex]p [/latex] кг семян. Через сколько лет селекционер сможет засеять новой культурой поле площадью  [latex]s [/latex] га, если норма высева  [latex]n [/latex] кг/га?

k p s n y
1 2 3 4 4
6 10 20 41 3
0 1 2 3

Решение:

Ссылка на ideone C++: http://ideone.com/s7pxme

Ссылка на ideone Java: http://ideone.com/JpE5D1

 

Проверяем что б все данные были строго больше нуля

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

[latex] \frac{ln(ns/k)}{ln(p)} [/latex] (Количество лет округляем в большую сторону всегда)

 

Related Images:

Ю1.8

Задача: Среднегодовая производительность труда. За первый год производительность труда на предприятии возросла на [latex]p_{1}[/latex]%, за второй и третий — соответственно на [latex]p_{2}[/latex]% и [latex]p_{3}[/latex]%. Найти среднегодовой прирост производительности (в процентах).

[latex]p_{1}[/latex]% [latex]p_{2}[/latex]% [latex]p_{3}[/latex]% sp%
15 30 50 30.8913
5 5 5 5
-10 60 45 27.8135
0 0 0 0

C++:

Java:

Для всех переменных используем тип double, так как они могут быть вещественными числами.

Сначала найдем общий прирост за 3 года (обозначен переменной [latex]op[/latex]), воспользовавшись  формулой:

[latex]p_{\Sigma }=\left(1+\frac{p_{1}}{100} \right)\left(1+\frac{p_{2}}{100} \right)\left(1+\frac{p_{3}}{100} \right)[/latex]

Тогда для того, чтобы найти среднегодовой прирост за 3 года (обозначен переменной [latex]sp[/latex]), надо извлечь корень третьей степени из общего прироста.

Задача на Ideone:
C++
Java

Related Images:

А26

Задача:

Найти площадь сектора, радиус которого равен 13.7, а дуга содержит заданное число радиан [latex] \varphi[/latex].

Тесты:

Ввод Вывод Результат
1 93.845 Площадь найдена
-1 Неверный ввод Неправильные данные, подсчет невозможен
0.7 65.691 Площадь найдена
8.36 784.544 Площадь найдена
0 Неверный ввод Неправильные данные, подсчет невозможен
3.14 294.673 Площадь найдена

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

Решение:
Площадь сектора находится по формуле [latex]S=\frac{\varphi}{2}r^2[/latex], после чего выводится на экран. В случае, если введённый угол меньше или равен нулю, программа выдает сообщение о неверном вводе.

Использованную формулу можно найти по этой ссылке,  а здесь  находится код в Ideone.

 

 

Related Images:

А18

Задача. Треугольник задан величинами своих углов [latex]x[/latex], [latex]y[/latex], [latex]z[/latex]   и радиусом описанной окружности [latex]R[/latex].

Найти стороны треугольника.

x y z R a b c Комментарий
95 36 49 3  5.98 3.53 4.53 Тест пройден
90 45 45 7 14 9.9 9.9 Тест пройден
60 60 60 14 24.25 24.25 24.25 Тест пройден
47 34 56 9 Неверное значение углов.

Для решения этой задачи использовалась формулы:

[latex]a=R\sin(x)[/latex] [latex]b=R\sin(y)[/latex] [latex]c=R\sin(z)[/latex]

Если при выполнении программы вы зададите некоторое значение углов и при проверке программой окажется , что значение углов  больше или меньше 180+»eps» ( eps=0.01 ) , то программа не выполнит поставленную задачу, т.к. в этом случае треугольник существовать не будет.

Для выполнения программы и проверки тестов вы можете воспользоваться этой ссылкой

Related Images:

А23б

Задача. Треугольник задан длинами сторон. Найти длины медиан.

Длины сторон: [latex]a[/latex], [latex]b[/latex], [latex]c[/latex]. Длины медиан: [latex]a_1[/latex], [latex]b_1[/latex], [latex]c_1[/latex].

Тесты:

a b c a1 b1 c1 Комментарий
1 4 5 4,5 3 1,5 Пройден
21 12 9 1,5 15 16,5 Пройден
24 17 9 6,40312 16,0078 20,3039 Пройден
 

Решение:

Когда известны все стороны треугольника, медианы вычисляются по следующей формуле: [latex]\frac{1}{2}\sqrt{2a^2+2b^2-c^2}[/latex], где [latex]c[/latex] — сторона к которой проведена медиана, а [latex]a[/latex] , [latex]b[/latex] стороны треугольника.

Для проверки выполнения программы можно воспользоваться ссылкой .

Решение на Java:

Ссылка на решение.

Related Images:

Ю1.27

Задача: Треугольник задаётся координатами своих вершин на плоскости: [latex]A\left(x_{1};y_{1} \right), B\left(x_{2};y_{2} \right), C\left(x_{3};y_{3} \right)[/latex] . Найти точку [latex]D[/latex], симметричную точке [latex]A[/latex] относительно стороны [latex]BC[/latex].

[latex]a_{x}[/latex] [latex]a_{y}[/latex] [latex]b_{x}[/latex] [latex]b_{y}[/latex] [latex]c_{x}[/latex] [latex]c_{y}[/latex] [latex]d_{x}[/latex] [latex]d_{y}[/latex]
2 2 0 0 1 0 2 -2
-4 5 -2 3 -2 2 0 5
-3 -3 -4 -1 -1 -4 -2 -2
5 2 3.5 1 4.5 4 2.9 2.7

C++:

Java:

Для всех переменных ([latex]a_{x}[/latex], [latex]a_{y}[/latex], [latex]b_{x}[/latex], [latex]b_{y}[/latex], [latex]c_{x}[/latex], [latex]c_{y}[/latex] — координаты точек [latex]A, B, C[/latex], даны по условию; [latex]d_{x}[/latex], [latex]d_{y}[/latex] — координаты точки [latex]D[/latex] — нужно найти) я использовала тип double, так как они могут быть вещественными числами.

Найдём уравнение прямой [latex]BC[/latex] по формуле [latex]\frac{\left(x-x_{1} \right)}{\left(x_{2}-x_{1} \right)}=\frac{\left(y-y_{1} \right)}{\left(y_{2}-y_{1} \right)}[/latex]. Подставляем значения: [latex]\frac{\left(x-b_{x} \right)}{\left(c_{x}-b_{x} \right)}=\frac{\left(y-b_{y} \right)}{\left(c_{y}-b_{y} \right)}[/latex]. Приводим к виду: [latex]x\left(c_{y}-b_{y} \right)-y\left(c_{x}-b_{x} \right)+b_{y}\left(c_{x}-b_{x} \right)-b_{x}\left(c_{y}-b_{y} \right)=0[/latex].
Переменными [latex]A_{1}[/latex],  [latex]B_{1}[/latex],  [latex]C_{1}[/latex]  я обозначила постоянные при [latex]x, y[/latex] и свободный член, чтобы уравнение приняло вид: [latex]A_{1}\cdot x+B_{1}\cdot y+C_{1}=0[/latex].

Проведём прямую через точку [latex]A[/latex] перпендикулярно прямой [latex]BC[/latex]. Составим её уравнение по формуле: [latex]A\left(y-a_{y} \right)-B\left(x-a_{x} \right)=0[/latex]. Получим: [latex]A_{1}\cdot y-B_{1}\cdot x+B_{1}\cdot a_{x}-A_{1}\cdot a_{x}=0[/latex].  Аналогично для постоянных в этом уравнении я использовала переменные [latex]A_{2}[/latex],  [latex]B_{2}[/latex],  [latex]C_{2}[/latex]. Соответственно, [latex]A_{2}=-B_{1}[/latex],   [latex]B_{2}=A_{1}[/latex],   [latex]C_{2}=B_{1}\cdot a_{x}-A_{1}\cdot a_{y}[/latex].

Теперь найдём точку пересечения этой прямой и прямой  [latex]BC[/latex] — точку [latex]O\left(o_{x};o_{y} \right)[/latex]. Получим: [latex]o_{x}=\frac{B_{1}\cdot C_{2}-B_{2}\cdot C_{1}}{A_{1}\cdot B_{2}-A_{2}\cdot B_{1}}[/latex]   и   [latex]o_{y}=\frac{C_{1}\cdot A_{2}-C_{2}\cdot A_{1}}{A_{1}\cdot B_{2}-A_{2}\cdot B_{1}}[/latex].

Так как точка [latex]D[/latex] симметрична точке [latex]A[/latex] относительно [latex]BC[/latex], и [latex]AD[/latex] пересекается с [latex]BC[/latex] в точке [latex]O[/latex]: точка [latex]O[/latex] — середина [latex]AD[/latex]. Из формулы координаты середины отрезка (  [latex]o_{x}=\frac{a_{x}+d_{x}}{2}[/latex] и [latex]o_{y}=\frac{a_{y}+d_{y}}{2}[/latex]  ) находим [latex]d_{x}=2\cdot o_{x}-a_{x}[/latex]  и  [latex]d_{y}=2\cdot o_{y}-a_{y}[/latex].

Задача на Ideone:
C++
Java

Related Images:

Ю1.20

Приближение [latex]\sin(x)[/latex]. Функция [latex]y=\sin(x)[/latex] на отрезке [latex][0;\frac{\pi}{2}][/latex] хорошо аппроксимируется разложением: [latex]y=x-\frac{x^3}{6} + \frac{x^5}{120}[/latex]. Для заданного значения аргумента [latex]x[/latex] вычислить [latex]y[/latex] по этой формуле и сравнить с точным значением, вычисленным с помощью стандартной функции [latex]\sin[/latex].

x Ответ: Комментарий:
0 0 Тест пройден
0.5 0.000002 Тест пройден
1 0.000196 Тест пройден
1,57 0,004509 Тест пройден

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

По условию задачи необходимо для заданного значения аргумента [latex]x[/latex] вычислить [latex]y[/latex] по этой формуле и сравнить с точным значением, вычисленным с помощью стандартной функции [latex]\sin[/latex]. Вводим переменную [latex]x[/latex] c типом данных «float»,
так как нам потребуются не только целые числа на отрезке [latex][0;\frac{\pi}{2}][/latex].

После введения числа  выводим модуль разности значения [latex]\sin(x)[/latex] и значения функции по формуле:

[latex]f=x-\frac{x^3}{6}+\frac{x^5}{120}[/latex].
Погрешность при аппроксимации функции возрастает с увеличением [latex]x[/latex]. На отрезке [latex]x \in [0;0.4][/latex] погрешности практически нет, начиная с [latex]x=0.5[/latex] погрешность возрастает и в точке [latex](\frac{\pi}{2})[/latex], [latex]b[/latex](погрешность) составляет 0.004509. При [latex]x>\frac{\pi}{2}[/latex] она становится значительной, поэтому формула [latex]f=x-\frac{x^3}{6}+\frac{x^5}{120}[/latex] подходит лишь для аппроксимации на отрезке [latex][0;\frac{\pi}{2}][/latex].
Для выполнения программы и проверки тестов можно воспользоваться следующим объектом.

 

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

Related Images:

А23a

Задача: Треугольник задан длинами сторон [latex] a,b,c [/latex].

Найти длины высот [latex] h_{1},h_{2},h_{3}[/latex].

a b c p h1 h2 h3 Коментарий
1 2 3 3 0 0 0 Пройден
3 4 5 6 4 3 2,4 Пройден
6 8 10 12 8 6 4,8 Пройден
13 14 15 21 12,92 12 11,2 Пройден
Решение:
Высота треугольника находится по формуле [latex]h=\frac{2S}{a}[/latex].
[latex] S [/latex]- площадь треугольника [latex] S=\sqrt{p(p-a)(p-b)(p-c)} [/latex].
[latex] p [/latex]- полупериметр треугольника [latex] p=\frac{a+b+c}{2} [/latex].
Затем вычисляем высоты [latex] h_{1},h_{2},h_{3}[/latex].

Related Images:

Ю1.8

Задача:

Среднегодовая производительность труда

За первый год производительность труда на предприятии возросла на [latex]p[/latex]1[latex]%[/latex], за второй и третий — соответственно на [latex]p[/latex]2[latex]%[/latex] и  [latex]p[/latex]3[latex]%.[/latex] Найти среднегодовой прирост производительности (в процентах).

P1(%) P2(%) P3(%) Р (среднегодовой прирост  производительности)  (%)
50 68 34 50.03
0 25 75 29.81
-25 25 78 18.61
0 -25 0 -9.14
1.4 43 0.7 13.45

Код программы на С++

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

Алгоритм задачи предельно прост.

Пользователь задает нам три показателя прироста производительности на предприятии, за каждый год соответственно.

Предположим, что производительность труда в году, предшествующему увеличению, это  [latex]a[/latex], тогда в следующем году прирост будет вычисляться по формуле  [latex]a\cdot \left( \frac { { p }_{ n } }{ 100 } +1 \right)[/latex], где  [latex]{ p }_{ n }[/latex] это показатель прироста производительности за соответствующий год.

Учитывая, что для каждого следующего года показатель [latex]a[/latex] это производительность за предыдущий год, мы получим формулу:

[latex]p=\left( \sqrt [ 3 ]{ (\frac { { p }_{ 1 } }{ 100 } +1)\cdot (\frac { { p }_{ 2 } }{ 100 } +1)\cdot (\frac { { p }_{ 3 } }{ 100 } +1) } -1 \right) \cdot 100[/latex].

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

Related Images:

Ю1.10

Задача Ю1.10. Квадратное уравнение. Найти корни квадратного уравнения, заданного своими коэффициентами, с положительным дискриминантом; подстановкой в уравнение убедиться в погрешности вычислений.

a b c x1 x2 p1 p2 Комментарий
15 36 -25  0.56257  -2.96257  -2e-15  -7e-15 Пройден
0 0 0 Уравнение не квадратное
0 0 16 Уравнение не квадратное
1 2 3 Дискриминант не положителен
1.1112 2.2316 6.6345 Дискриминант не положителен
-24.182 15.77 36.2  -0.94015  1.59228  -3e-15  3e-15 Пройден

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

Код на Java:

Даны коэффициенты [latex]a[/latex], [latex]b[/latex] , [latex]c[/latex]. У задачи есть несколько разных путей решения в зависимости от введенных коэффициентов.

  1. Уравнение в случае [latex] a=0. [/latex] В случаи ввода нулевого коэффициента при старшем члене программа должна вывести на экран «Уравнение не квадратное».
  2. Уравнение в случае   [latex] a\neq 0. [/latex] при [latex] D<=0. [/latex]  В данном случае программа должна вывести на экран «Дискриминант не положителен «.
  3. Уравнение в случае   [latex] a\neq 0. [/latex] при [latex] D>0. [/latex]..Если дискриминант положительный,то  уравнение имеет два корня равных [latex]x_1=\frac{-b+\sqrt{D}}{2a}[/latex] и  [latex]x_2=\frac{-b-\sqrt{D}}{2a}[/latex]   . Подставив корни в уравнение получим погрешность [latex]p_1[/latex]  и [latex] p_2. [/latex]

 

Запустить код на С++ и проверить тесты можно тут
Запустить код на Java и проверить тесты можно тут

Related Images: