Задача: посчитать среднее арифметическое дробных чисел, получаемых из файла data.txt, записать результат в файл average.txt.
Решение на D:
import std.stdio, std.file, std.conv : to; void main(){ string input = "data.txt"; string output = "average.txt"; // Если файл с данными существует if(exists(input)){ File file1, file2; file1.open(input, "r"); // Инициализируем дин.массив типа float для считанных чисел float[] tmp; // Строка для накопления елементов строки файла string acc; // Считываем файл построчно foreach(str; file1.byLine){ // Разбиваем строки по элементам foreach(elem; str){ // Накопляем элемент во временную строку if(elem != ' ') acc ~= elem; else{ // Добавляем элемент в массив из временной строки tmp ~= to!float(acc); // Обнуляем временную строку acc = ""; } } } // Добавляем последний элемент в массив tmp ~= to!float(acc); file1.close; float avg; float s = 0; for(int i; i < tmp.length; i++){ // Подсчет суммы всех элементов s = s + tmp[i]; // Подсчет среднего avg = s / tmp.length; } file2.open(output, "w"); // Запись рез-та в файл file2.writeln(avg); file2.close; // Вывод рез-та в консоль writeln(avg); } else{ // Если нет файла с данными, пишем об этом // в выходной файл и в консоль string avg = "The data file not found!"; File file2; file2.open(output, "w"); file2.writeln(avg); file2.close; writeln(avg); } }