Программа вычисления среднего гармонического чисел

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

Теория

Среднее гармоническое (гармоническое среднее) чисел — это один из видов средних, используемых для оценки среднего значения числового набора. Оно отличается от обычного арифметического среднего и среднего квадратичного (среднего квадратического отклонения), и имеет свои особенности.

Среднее гармоническое чисел вычисляется по следующей формуле:

Основная особенность среднего гармонического заключается в том, что оно учитывает обратное значение чисел. Это означает, что меньшие значения в наборе будут оказывать более значительное влияние на итоговое среднее гармоническое, чем большие значения. Именно поэтому среднее гармоническое применяется в ситуациях, где необходимо учесть влияние менее значительных значений на среднее.

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

Чтобы вычислить среднее гармоническое набора чисел, следует выполнить следующие шаги:

  • Найдите обратные значения каждого числа в наборе.
  • Сложите все обратные значения.
  • Разделите количество чисел в наборе на сумму обратных значений.
  • Полученное значение является средним гармоническим чисел.

Среднее гармоническое помогает учесть влияние меньших значений и может быть полезным в контексте различных приложений, где такие взаимосвязи имеют значение.

C++

Для вычисления среднего гармонического двух чисел в C++ можно использовать следующий код:

#include <iostream>
#include <cmath>

int main() {
    double num1, num2;
    double harmonic_mean;

    // Ввод двух чисел от пользователя
    std::cout << "Введите первое число: ";
    std::cin >> num1;
    std::cout << "Введите второе число: ";
    std::cin >> num2;

    // Проверка на ноль, так как в гармоническом среднем не допускаются нулевые значения
    if (num1 == 0 || num2 == 0) {
        std::cout << "Гармоническое среднее не определено для нулевых значений." << std::endl;
    } else {
        // Вычисление среднего гармонического
        harmonic_mean = 2.0 / (1.0 / num1 + 1.0 / num2);

        // Вывод результата
        std::cout << "Среднее гармоническое: " << harmonic_mean << std::endl;
    }

    return 0;
}

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

C#

using System;

class Program
{
    static void Main()
    {
        double num1, num2;
        double harmonicMean;

        Console.Write("Введите первое число: ");
        if (double.TryParse(Console.ReadLine(), out num1))
        {
            Console.Write("Введите второе число: ");
            if (double.TryParse(Console.ReadLine(), out num2))
            {
                if (num1 != 0 && num2 != 0)
                {
                    harmonicMean = 2.0 / (1.0 / num1 + 1.0 / num2);
                    Console.WriteLine("Среднее гармоническое: " + harmonicMean);
                }
                else
                {
                    Console.WriteLine("Среднее гармоническое не определено для нулевых значений.");
                }
            }
            else
            {
                Console.WriteLine("Ошибка при вводе второго числа.");
            }
        }
        else
        {
            Console.WriteLine("Ошибка при вводе первого числа.");
        }
    }
}

Python

# Функция для вычисления среднего гармонического
def harmonic_mean(num1, num2):
    if num1 == 0 or num2 == 0:
        return "Среднее гармоническое не определено для нулевых значений."
    else:
        return 2 / (1 / num1 + 1 / num2)

# Ввод двух чисел от пользователя
try:
    num1 = float(input("Введите первое число: "))
    num2 = float(input("Введите второе число: "))
    
    result = harmonic_mean(num1, num2)
    print(f"Среднее гармоническое: {result}")
except ValueError:
    print("Ошибка: Введите числа в правильном формате.")

Java

import java.util.Scanner;

public class HarmonicMeanCalculator {
    public static void main(String[] args) {
        double num1, num2;
        double harmonicMean;

        Scanner scanner = new Scanner(System.in);

        System.out.print("Введите первое число: ");
        if (scanner.hasNextDouble()) {
            num1 = scanner.nextDouble();
            System.out.print("Введите второе число: ");
            if (scanner.hasNextDouble()) {
                num2 = scanner.nextDouble();

                if (num1 != 0 && num2 != 0) {
                    harmonicMean = 2.0 / (1.0 / num1 + 1.0 / num2);
                    System.out.println("Среднее гармоническое: " + harmonicMean);
                } else {
                    System.out.println("Среднее гармоническое не определено для нулевых значений.");
                }
            } else {
                System.out.println("Ошибка при вводе второго числа.");
            }
        } else {
            System.out.println("Ошибка при вводе первого числа.");
        }

        scanner.close();
    }
}

Pascal

program HarmonicMeanCalculator;
var
  num1, num2, harmonicMean: real;
begin
  writeln('Введите первое число: ');
  readln(num1);
  
  writeln('Введите второе число: ');
  readln(num2);
  
  if (num1 <> 0) and (num2 <> 0) then
  begin
    harmonicMean := 2 / (1 / num1 + 1 / num2);
    writeln('Среднее гармоническое: ', harmonicMean);
  end
  else
    writeln('Среднее гармоническое не определено для нулевых значений.');
end.

JavaScript

// Функция для вычисления среднего гармонического
function harmonicMean(num1, num2) {
    if (num1 === 0 || num2 === 0) {
        return "Среднее гармоническое не определено для нулевых значений.";
    } else {
        return 2 / (1 / num1 + 1 / num2);
    }
}

// Ввод двух чисел от пользователя
const num1 = parseFloat(prompt("Введите первое число:"));
const num2 = parseFloat(prompt("Введите второе число:"));

if (!isNaN(num1) && !isNaN(num2)) {
    const result = harmonicMean(num1, num2);
    console.log("Среднее гармоническое: " + result);
} else {
    console.log("Ошибка: Введите числа в правильном формате.");
}

PHP

<?php
// Функция для вычисления среднего гармонического
function harmonicMean($num1, $num2) {
    if ($num1 == 0 || $num2 == 0) {
        return "Среднее гармоническое не определено для нулевых значений.";
    } else {
        return 2 / (1 / $num1 + 1 / $num2);
    }
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $num1 = floatval($_POST["num1"]);
    $num2 = floatval($_POST["num2"]);

    if (!is_nan($num1) && !is_nan($num2)) {
        $result = harmonicMean($num1, $num2);
        echo "Среднее гармоническое: " . $result;
    } else {
        echo "Ошибка: Введите числа в правильном формате.";
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Вычисление среднего гармонического</title>
</head>
<body>
    <form method="post" action="">
        <label for="num1">Введите первое число: </label>
        <input type="text" name="num1" id="num1">
        <br>
        <label for="num2">Введите второе число: </label>
        <input type="text" name="num2" id="num2">
        <br>
        <input type="submit" value="Вычислить">
    </form>
</body>
</html>
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Давайте поможем друг другу! Если вы нашли ошибку или хотите предложить лучшее решение, пожалуйста, напишите об этом в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *