Помощь - Поиск - Пользователи - Календарь
Полная версия: Линейные алгоритмы (Проверка)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Stas86
Всем привет.
Условие: Заданы 4 числа. Вычислить среднее арифметическое и среднее геометрическое модулей. Исходные данные a,b,c,d.

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

Program zad1;
Uses crt;
Var a,b,c,d:longint;
begin
a:=abs (a);
b:=abs (b);
c:=abs ©;
d:=abs (d);
writeln ('vvedite 4 4isla');
readln (a,b,c,d);
writeln ('srednee arifmetich=', (0.5*(a+b+c+d)):8:3);
writeln ('srednee geometri4 modulei=', (sqrt(a*b*c*d)):8:3);
writeln ('nagmi enter');
readln;
end.
TarasBer
Среднее геометрическое считается неправильно.
Надо брать корень 4 степени, а не второй.
volvo
Цитата
все ли в ней правильно
Нет, не все... Среднее арифметическое N элементов - это их сумма, деленная на N (а не на 2). Точно так же и среднее геометрическое - это не квадратный корень, а корень степени N... В твоем случае - четвертой степени...
TarasBer
Упс, накладочка с сообщениями...
Stas86
Получилось вот так, но ошибка лезет, в формуле среднего геометрического. Поправьте меня.

writeln ('srednee arifmetich=', ((a+b+c+d)/4):8:3);
writeln ('srednee geometri4 modulei=', ((a*b*c*d)^(1/4):8:3);
readln;
end.

volvo
Ошибка - потому что в Паскале нет операции возведения в степень "^". Это тебе не Бейсик. Сделай sqrt(sqrt(abs(a*b*c*d)))...
Stas86
Спасибо, работает.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.