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

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

 

Бэй­сик Пас­каль

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

A = -25: B = 25

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

 

FUNCTION F(x)

    F = 15*(5+x)*(5+x)+125

END FUNCTION

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

    Function F(x: integer):integer;

        begin

            F := 15*(5+x)*(5+x)+125;

        end;

BEGIN

    a := -25; b := 25;

    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.

Си++ Ал­го­рит­ми­че­ский

#include <iostream>

using namespace std;

int F(int x)

{

    return 15*(5+x)*(5+x)+125;

}

int main()

{

    int a, b, t, M, R;

    a = -25; b = 25;

    M = a; R = F(a);

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

        if (F(t) > R) {

            M = t; R = F(t);

        }

    }

    cout « M « endl;

}

алг

нач

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

a := -25; b := 25

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

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

если F(t) > R

то

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

все

кц

вывод M

кон

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

нач

знач := 15*(5+x)*(5+x)+125

кон

Python

def f(x):

    return 15*(5+x)*(5+x)+125

a = -25

b = 25

M = a

R = f(a)

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

    if (f(t) > R):

        M = t

        R = f(t);

print(M)

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

Ре­ше­ние.

1.  Ал­го­ритм ищет наи­боль­шее зна­че­ние функ­ции F(t) на ин­тер­ва­ле от a до b.

2.  Имеем: F левая круг­лая скоб­ка x пра­вая круг­лая скоб­ка = 15 левая круг­лая скоб­ка 5 плюс x пра­вая круг­лая скоб­ка левая круг­лая скоб­ка 5 плюс x пра­вая круг­лая скоб­ка плюс 125 =15x в квад­ра­те плюс 150x плюс 500, гра­фик этой функ­ции – па­ра­бо­ла, ветви ко­то­рой на­прав­ле­ны вверх, по­это­му функ­ция при­ни­ма­ет наи­боль­шее зна­че­ние на одном из кон­цов.

 

3.  Вы­чис­лим зна­че­ния функ­ции для кон­цов:

F левая круг­лая скоб­ка a пра­вая круг­лая скоб­ка =15 умно­жить на левая круг­лая скоб­ка 5 минус 25 пра­вая круг­лая скоб­ка в квад­ра­те плюс 125=15 умно­жить на 400 плюс 125 = 6125,

F левая круг­лая скоб­ка b пра­вая круг­лая скоб­ка =15 умно­жить на левая круг­лая скоб­ка 5 плюс 25 пра­вая круг­лая скоб­ка в квад­ра­те плюс 125=15 умно­жить на 900 плюс 125 = 13625.

Как видно, зна­че­ние на пра­вом конце боль­ше, чем на левом. То есть, наи­боль­шее зна­че­ние функ­ции равно зна­че­нию функ­ции на пра­вом конце. Абс­цис­са на пра­вом конце равна 25, сле­до­ва­тель­но, ответ  — 25.


Аналоги к заданию № 4953: 4986 5370 5402 ... Все