Сегодня я расскажу вам, как посчитать среднее арифметическое дробных чисел из файла на языке программирования D. Вроде бы простая задача, но давайте разберем её на практике и научимся работать с файлами, обрабатывать данные и записывать результат в другой файл.
Что такое среднее арифметическое?
Прежде чем перейти к кодированию, давайте вспомним, что такое среднее арифметическое. Это сумма всех чисел, деленная на количество этих чисел. Например, для чисел 1, 2 и 3 среднее арифметическое будет:
Подготовка
Прежде чем мы начнем, убедитесь, что у вас установлен компилятор D. Если нет, скачайте и установите его с официального сайта.
Теперь давайте создадим два файла: input.txt
и output.txt
. В input.txt
запишем несколько дробных чисел, каждое с новой строки:
3.14
2.71
1.41
6.28
4.67
Написание кода
Шаг 1: Чтение данных из файла
Начнем с того, что прочитаем числа из файла input.txt
. Для этого создадим файл main.d
и напишем следующий код:
import std.stdio;
import std.file;
import std.string;
void main() {
string inputFileName = "input.txt";
string[] lines = readText(inputFileName).splitLines();
double[] numbers;
foreach (line; lines) {
if (!line.empty) {
numbers ~= line.to!double;
}
}
writeln(numbers);
}
Здесь мы:
- Считываем содержимое файла
input.txt
. - Разделяем содержимое на строки.
- Преобразуем строки в числа и сохраняем их в массив
numbers
.
Шаг 2: Подсчет среднего арифметического
Теперь, когда у нас есть массив чисел, можем посчитать их среднее арифметическое:
double calculateMean(double[] numbers) {
double sum = 0;
foreach (num; numbers) {
sum += num;
}
return sum / numbers.length;
}
void main() {
string inputFileName = "input.txt";
string[] lines = readText(inputFileName).splitLines();
double[] numbers;
foreach (line; lines) {
if (!line.empty) {
numbers ~= line.to!double;
}
}
double mean = calculateMean(numbers);
writeln("Среднее арифметическое: ", mean);
}
Здесь мы добавили функцию calculateMean
, которая принимает массив чисел, суммирует их и делит на количество чисел. В итоге мы получаем среднее арифметическое и выводим его на экран.
Шаг 3: Запись результата в файл
Теперь запишем результат в файл output.txt
:
void writeResultToFile(string fileName, double result) {
File file = File(fileName, "w");
file.writeln("Среднее арифметическое: ", result);
file.close();
}
void main() {
string inputFileName = "input.txt";
string outputFileName = "output.txt";
string[] lines = readText(inputFileName).splitLines();
double[] numbers;
foreach (line; lines) {
if (!line.empty) {
numbers ~= line.to!double;
}
}
double mean = calculateMean(numbers);
writeResultToFile(outputFileName, mean);
}
Здесь мы добавили функцию writeResultToFile
, которая открывает файл для записи, записывает в него результат и закрывает файл.
Полный код программы
Вот полный код нашей программы:
import std.stdio;
import std.file;
import std.string;
double calculateMean(double[] numbers) {
double sum = 0;
foreach (num; numbers) {
sum += num;
}
return sum / numbers.length;
}
void writeResultToFile(string fileName, double result) {
File file = File(fileName, "w");
file.writeln("Среднее арифметическое: ", result);
file.close();
}
void main() {
string inputFileName = "input.txt";
string outputFileName = "output.txt";
string[] lines = readText(inputFileName).splitLines();
double[] numbers;
foreach (line; lines) {
if (!line.empty) {
numbers ~= line.to!double;
}
}
double mean = calculateMean(numbers);
writeResultToFile(outputFileName, mean);
}
Теперь запустите этот код, и результат будет записан в файл output.txt
.
Мы рассмотрели, как на языке программирования D считать среднее арифметическое дробных чисел, прочитанных из файла, и записать результат в другой файл. Это простая, но полезная задача, которая может пригодиться в различных проектах, будь то анализ данных или простая автоматизация рутинных задач.
Что дальше?
Попробуйте усложнить задачу: добавить проверку на ошибки, учесть пустые строки или строки с некорректными данными, расширить функциональность программы. Язык D предоставляет множество возможностей для этого.
Надеюсь, этот пример был полезен для вас. Удачи в ваших проектах и до новых встреч!
Автор статьи:
Обновлено:
Добавить комментарий