Ю4.3

Задача

Центрирование массива. От каждого из заданных чисел {x}_{1}, {x}_{2}, \ldots, {x}_{m} отнять их среднее арифметическое \overline{x}_{i} = {x}_{i}{x}_{cp}, i = 1, 2, … , m.

\overline{x} = 1/m;
E от m при i = 1 (x_1);
{x}_{i} = {x}_{i}\overline{x}; i = 1, 2, … , m

Результаты разместить на месте исходных данных.

Тесты

Количество элементов в массиве — m Массив Результат
2 2

5

-1,5

1,5

2 2

6

-2

2

7 2

6

-3

5

1

0

0

0.43

4.43

-4.57

3.43

-0.57

-1.57

-1.57

Код

Протестированный код можно увидеть тут.

Решение

Объявляем массив типа double размерностью m. Считываем размерность из первой строки ввода, конвертируем из типа string в тип int; затем считываем элементы массива из второй строки ввода (их конвертируем в double — для точности вычислений). В циклах: находим сумму введенных чисел, затем их среднее арифметическое, затем высчитываем новые значения элементов массива, вычитая от каждого из них среднее арифметическое всего массива. Записываем новые значения поэлементно в исходный массив arr[ ]. Выводим arr[ ].

 

 

MS 7. Средняя зарплата

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

Входные данные
Фамилия работника name и величина его зарплаты salary.

Выходные данные
Средняя зарплата по компании.

Тесты

Входные данные Выходные данные
name salary  totalSalary/employeesNum
1. Ivanov 100 100
Ivanov 300 200
2. Smirnov 150 150
3. Popov 200 200

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

Пояснение

С потока данных считывается первое значение и записывается в переменную name. Затем считывается заработная плата и записывается в переменную sal. В переменную total записывается общая полученная сумма работниками, увеличивается счетчик количества выплат sum. Средняя зарплата считается по формуле среднего арифметического: x = \frac{total}{sum} и выводится потоком вывода.

Ссылка на код по тесту 1.

Ссылка на источник.

 

ML4.Линейные вычисления

Условие
Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.

Тесты

Входные данные Выходные данные
1 -1 -3 -2 1.73205
2 5 6 5.5 5.47723
3 4 6 5 4.89898
4 100 2.6 51.3 16.1245
Решение
Так как нам в задаче не указано какой длины будут числа, мы используем тип данных long double, который поможет охватить весь их диапазон. Для того, чтобы найти среднее арифметическое чисел нам нужно воспользоваться формулой: A=\frac{x_1+x_2+ \ldots +x_n}{n}, но так как у нас задано всего два числа, будем пользоваться этой формулой: A= \frac{a+b}{2}. Среднее геометрическое вычисляется по формуле: G=\sqrt[n]{x_1+x_2+ \ldots +x_n}, но нам понадобиться формула только для двух чисел: G=\sqrt{a . b}

Ideone.com