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

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.


спросил от (39 баллов) в категории Информатика
оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от (39 баллов)

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

оставил комментарий от (39 баллов)

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

оставил комментарий от Бакалавр (13.9k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Бакалавр (13.9k баллов)

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

оставил комментарий от (39 баллов)

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

оставил комментарий от Бакалавр (13.9k баллов)

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

оставил комментарий от Архангел (142k баллов)

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

оставил комментарий от Бакалавр (13.9k баллов)

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

1 Ответ
0 голосов
ответил от Бакалавр (13.9k баллов)
 
Лучший ответ

Уберите лишние пробелы после ":" и все заработает, на выходе получите 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.

...