| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Реализация среднеквадратического откл. на си |
| Автор: En_t_end 9.3.2005, 10:00 | ||
Нутром чую, что где-то напортачил, но вот где ? Эти функции в составе работющей 100% программы. in_f открыт и связан с файлом. |
| Автор: maxim1000 9.3.2005, 10:49 | ||||||||||
так все-таки
или
вообще, конечно же, такой подход не очень хорош, т.к. требует двух проходов по файлу (а если тебе понадобится вводить числа с клавиатуры, то вообще ужас получится) поэтому перед тем, как садиться за комп и писать программу, надо сесть за бумажку и пописать немного формул M(x-M(x))^2=M(x^2 - 2*x*M(x) + M(x)^2)=M(x^2) - 2*M(x)^2 + M(x)^2=M(x^2)-M(x)^2 M - среднее поэтому для вычисления ср.кв.отклонения достаточно вычислить среднее величины и среднее ее квадрата (а их можно вычислять независимо и параллельно) вот и получается:
Добавлено @ 10:51 и еще:
NULL - константа, специально предназначенная для указателей, не стоит ее использовать для double Добавлено @ 10:54 ну и еще
в этой строке сразу две ошибки 1. не стоит применять к double операторы ==, !=, кроме того если у тебя было несколько ненулевых чисел с нулевым средним, их среднее из-за округления очень редко будет 0 2. эта проверка вообще не нужна: ср.кв.отклонение успешно определяется и в случае нулевого среднего |
| Автор: En_t_end 9.3.2005, 15:54 | ||||
| Просто я сейчас решаю задачи, направленные на проверку знаний синтаксиса. В данном случае было поставленно условие - двойной проход по файлу.
О... а вот за это спасибо.
Написано было за 14 минут до школы, поэтому ни о какой бумажке, я подумать не успел )))) |