Помогите решить, пожалуйста) var a,b,t,M,R :integer; Function F(x:integer):integer; ...

0 голосов
150 просмотров

Помогите решить, пожалуйста)
var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin
F : = 9 * (x + 19) * (x - 19) + 1;
end;
begin
a : = -20; b : = 20;
M : = a; R : = F(a);
for t : = a to b do begin
if (F(t) < R ) then begin
M : = t;
R : = F(t)
end
end;
write(M);
end.


Информатика (39 баллов) | 150 просмотров
0

А в чем должно состоять это "решить"?

0

Опре­де­ли­те, какое число будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­ще­го ал­го­рит­ма

0

Извините, само задание не написала

0

Ну, код был с ошибками. Поэтому он вряд ли что выдал бы...

0

Конечно, оператор присваивания := нельзя разбивать пробелом. А так, программа напечатает 0 - значение аргумента, при котором заданная функция на интервале [-20;20] минимальна при заданном шаге, равном 1. У нас функция имеет вид y=x^2+C - это квадратная парабола и неудивительно, что минимум достигается при х=0.

0

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

0

спасибо большое, просто задание из ЕГЭ, но я запущу обязательно)

0

Вот, и это правильно. Всегда надо проверять код. Вдруг мы ошиблись. Редко, но бывает. Успехов на ЕГЭ!

0

Действительно, вдруг мы оба ошиблись?))

0

Ну такое уж оооочень редко)))

Дан 1 ответ
0 голосов
Правильный ответ

Уберите лишние пробелы после ":" и все заработает, на выходе получите 0
Исправленный вариант кода:
var
  a, b, t, M, R: integer;

function F(x: integer): integer;
begin
  F := 9 * (x + 19) * (x - 19) + 1;
end;

begin
  a := -20;b := 20;
  M := a;R := F(a);
  for t := a to b do
  begin
    if (F(t) < R ) then begin
      M := t;
      R := F(t)
    end
  end;
  write(M);
end.

(13.9k баллов)