Top.Mail.Ru
Ответы

Прошу о помощи с паскалем

Выдает такую ошибку Параметр цикла 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 строчки? тем более проблема не решилась

Аватар пользователя
Ученик

это уже предустановленно в паскале



Видео по теме