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

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

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

DIM А, В, Т, М, R AS INTEGER

А = -20: В = 20

М = A: R = F (А)

FOR Т = А ТО В

    IF F(T) < R THEN

        M = T

        R = F(T)

    END IF

NEXT T

PRINT M

FUNCTION F(x)

    F = 19 * (16 - x) * (16 - x) + 27

END FUNCTION

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

    Function F (x: integer):integer;

        begin

            F := 19 * (16 - x) * (16 - x) + 27;

        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.

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

#include <iostream>

using namespace std;

int F(int x) i

{

    return 19 * (16 - x) * (16 - x) + 27;

}

int main()

{

    int a, b, t, M, R;

    a = - 20; b = 20;

    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, М

а := - 20; Ь := 20

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

нц для t от а до Ь

если F(t) < R

то

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

все

кц

вывод М

кон

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

нач

знач := 19 * (16 - х) * (16 - х) + 27

кон

Python

def f(x):

    return 19 * (16 - x) * (16 - x) + 27

a = -20

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)

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

Ре­ше­ние.

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

2.  F левая круг­лая скоб­ка t пра­вая круг­лая скоб­ка =19 умно­жить на левая круг­лая скоб­ка 16 минус t пра­вая круг­лая скоб­ка левая круг­лая скоб­ка 16 минус t пра­вая круг­лая скоб­ка плюс 27 гра­фик этой функ­ции  — па­ра­бо­ла, оси ко­то­рой на­прав­ле­ны вверх.

 

3.  Най­дем абс­цис­су вер­ши­ны

 

F левая круг­лая скоб­ка t пра­вая круг­лая скоб­ка =19t в квад­ра­те минус 608t плюс 4891\Rightarrow t_\min = дробь: чис­ли­тель: минус b, зна­ме­на­тель: 2a конец дроби = дробь: чис­ли­тель: 608, зна­ме­на­тель: 2 умно­жить на 19 конец дроби =16.

 

Это и будет от­ве­том к за­да­че.