Прошу о помощи с паскалем
Выдает такую ошибку Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла. В чем может быть ошибка?
program Calculation;
var
x, y, sum: real;
count: integer;
begin
sum := 0;
count := 0;
for x := -2 to 2 step 0.2 do
begin
if x > 0 then
begin
y := power(x, 3) + power(cos(x), 4);
sum := sum + y;
count := count + 1;
end;
end;
if count > 0 then
writeln('Среднее арифметическое положительных значений функции: ', sum/count:0:2)
else
writeln('Нет положительных значений функции');
end.
Вообще нужно вычислить среднее арифметическое всех положительных значений функции
y(x) = x3 + cos4x, на промежутке [-2; 2] с шагом h = 0.2.
Ошибка заключается в том, что параметр цикла for в PascalABC.NET должен быть целочисленным, а не вещественным. В данном случае параметр step указан как 0.2, что является вещественным числом.
Для того чтобы исправить ошибку, необходимо изменить параметр шага цикла for на целочисленный, например, использовать шаг 1:
vbnet
Copy code
for x := -20 to 20 step 2 do
После внесения данного изменения программа должна корректно вычислить среднее арифметическое всех положительных значений функции на заданном промежутке.
Это не ошибка. Это просто плохо сформулированное замечание от разработчиков PascalABC.NET , что это не обычный Pascal и в нем есть гораздо более продвинутые средства, чем в обычном Pascal. Но обычный вид цикла и в PascalABC.NET сработает, несмотря на это замечание. Так что просто игнорируй его.
и как решить проблему тогда?
var
x, y, sum: real;
count: integer;
begin
sum := 0;
count := 0;
for x := -2 to 2 step 0.2 do
begin
if x > 0 then
begin
y := power(x, 3) + power(cos(x), 4);
sum := sum + y;
count := count + 1;
end;
end;
if count > 0 then
writeln('Среднее арифметическое положительных значений функции: ', sum/count:0:2)
else
writeln('Нет положительных значений функции');
end.
и что поменялось кроме удаления 1 строчки? тем более проблема не решилась
это уже предустановленно в паскале