Задания
Версия для печати и копирования в MS Word
Тип Д21 № 10395
i

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

Бей­сикPython

DIM A, B, T, M, R AS INTEGER

A = -10: B = 20

M = A: R = F(A)

FOR T = A TO B

  IF F(T) < R THEN

    M = T

    R = F(T)

  END IF

NEXT T

PRINT M+10

 

FUNCTION F(x)

  F = 2*(x*x-1)*(x*x-1)+7

END FUNCTION

def F(x):

  return 2*(x*x-1)*(x*x-1)+7

a=-10; b=20

M=a

R=F(a)

for t in range(a,b+1):

  if F(t) < R:

    M=t; R=F(t)

print(M+10)

Пас­кальАл­го­рит­ми­че­ский язык

var a,b,t,M,R: integer;

Function F(x:integer):integer;

  begin

    F := 2*(x*x-1)*(x*x-1)+7;

  end;

BEGIN

  a := -10; 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+10);

END.

алг

нач

  цел a, b, t, M, R

  a := -10; b := 20

  M := a; R := F(a)

  нц для t от a до b

    если F(t) < R

      то M := t; R := F(t)

    все

  кц

  вывод M+10

кон

алг цел F(цел x)

нач

  знач := 2*(x*x-1)*(x*x-1)+7

кон

Си++

#include <iostream>

using namespace std;

int F(int x)

{

  return 2*(x*x-1)*(x*x-1)+7;

}

int main()

{

  int a, b, t, M, R;

  a = -10; b = 20;

  M = a; R = F(a);

  for (t=a; t<=b; t++) {

    if (F(t) < R) {

      M = t; R = F(t);

    }

  }

  cout << M+10 << endl;

  return 0;

}

Спрятать решение

Ре­ше­ние.

Пусть f левая круг­лая скоб­ка x пра­вая круг­лая скоб­ка = 2 умно­жить на левая круг­лая скоб­ка x в квад­ра­те минус 1 пра­вая круг­лая скоб­ка в квад­ра­те плюс 7.

Про­грам­ма ищет такой целый x из про­ме­жут­ка [-10; 20], что f левая круг­лая скоб­ка x пра­вая круг­лая скоб­ка = \min\limits_a при­над­ле­жит левая квад­рат­ная скоб­ка минус 10; 20 пра­вая квад­рат­ная скоб­ка f левая круг­лая скоб­ка a пра­вая круг­лая скоб­ка , то есть функ­ция при­ни­ма­ет ми­ни­маль­ное зна­че­ние на этом про­ме­жут­ке. При этом, если ми­ни­маль­ное зна­че­ние функ­ции до­сти­га­ет­ся в не­сколь­ких точ­ках, из них вы­би­ра­ет­ся ми­ни­маль­ная.

f левая круг­лая скоб­ка минус 1 пра­вая круг­лая скоб­ка = f левая круг­лая скоб­ка 1 пра­вая круг­лая скоб­ка = 7. Но -1 мень­ше, по­это­му про­грам­ма найдёт -1.

И так как на экран вы­во­дит­ся x + 10, про­грам­ма вы­ве­дет 9.


Аналоги к заданию № 5754: 6012 5786 5818 ... Все