Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral


21.Анализ программ с циклами и подпрограммами

Наибольшее значение функции

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

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

Function F(x:integer):integer;

begin

F:=x*x-8*x+10;

end;

BEGIN

a:=-5; b:=5;

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(R);

END.

По­яс­не­ние.

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

2. F(x)=x2-8x+10 гра­фик этой функ­ции – па­ра­бо­ла, оси ко­то­рой на­прав­ле­ны вверх, сле­до­ва­тель­но наи­боль­шее зна­че­ние на ин­тер­ва­ле будет до­сти­гать­ся в одном из его кон­цов(для по­ни­ма­ния по­лез­но на­ри­со­вать ри­су­нок)

3. По­счи­та­ем зна­че­ние функ­ции на кон­цах ин­тер­ва­ла: Fa=25+40+10=75; Fb=25-40+10=-5

4. В про­грам­ме на­пи­са­но "write(R)", сле­до­ва­тель­но наи­боль­шее зна­че­ние из двух по­лу­чив­ших­ся и будет от­ве­том.

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

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

Function F(x:integer):integer;

begin

F:= x*x - 8*x + 10;

end;

BEGIN

a:=-5; b:=5;

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(R);

END.

По­яс­не­ние.

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

2. F(x)=x2-8x+10  гра­фик этой функ­ции – па­ра­бо­ла, ветви ко­то­рой на­прав­ле­ны вверх, по­это­му функ­ция имеет наи­боль­шее зна­че­ние на одном из кон­цов от­рез­ка.

3. F(-5)=25+40+10=75

Ответ: 75

НЕ нашли? Не то? Что вы ищете?

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

Бей­сик

Пас­каль

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

A = -10: B = 27

M = A: R = F(А)

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 = 2*(x -5)*(x-5)+55

END FUNCTION

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

Function

F(x:integer):integer;

begin

F := 2*(x -5)*(x-5)+55 

end;

begin

a := -10; b := 27;

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.

По­яс­не­ние.

Ал­го­ритм пред­на­зна­чен для по­ис­ка наи­боль­ше­го t, при ко­то­ром функ­ция F(t) имеет наи­боль­шее зна­че­ние на от­рез­ке от a до b. Функ­ция F(x)=2(x-5)(x-5)-55 — квад­рат­ный трёхчлен с по­ло­жи­тель­ным стар­шим ко­эф­фи­ци­ен­том, сле­до­ва­тель­но, функ­ция до­сти­га­ет наи­боль­ше­го зна­че­ния в точке b. Таким об­ра­зом, про­грам­ма вы­ве­дет на экран число 27.

Ответ: 27.

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

Бей­сик

Пас­каль

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 = 19*(4+x)*(4+x)+ 52

END FUNCTION

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

Function F(x: integer):integer;

begin

F := 19*(4+x)*(4+x)+ 52;

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.

По­яс­не­ние.

Ал­го­ритм пред­на­зна­чен для по­ис­ка наи­мень­ше­го t, при ко­то­ром функ­ция F(t) имеет наи­боль­шее зна­че­ние на от­рез­ке от a до b. За­ме­тим, что функ­ция яв­ля­ет­ся квад­рат­ным трёхчле­ном с по­ло­жи­тель­ным стар­шим ко­эф­фи­ци­ен­том, сле­до­ва­тель­но, наи­боль­шее зна­че­ние до­сти­га­ет­ся на конце от­рез­ка [a; b]. Про­грам­ма вы­ве­дет на экран число 25.

Ответ: 25.

Наименьшее значение функции

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

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

Function F(x:integer):integer;

begin

F:=4*(x-5)*(x+3);

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(R);

END.

По­яс­не­ние.

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

2. F(x)=4(x-5)(x+3)  Квад­рат­ный трех­член F(t) с по­ло­жи­тель­ным стар­шим ко­эф­фи­ци­ен­том пе­ре­се­ка­ет ось абс­цисс в точ­ках 5 и −3 и, сле­до­ва­тель­но, наи­мень­шее зна­че­ние до­сти­га­ет­ся в вер­ши­не 1 и равно F(1) = −64.

Задача 2.  На­пи­ши­те в от­ве­те ко­ли­че­ство раз­лич­ных зна­че­ний вход­ной пе­ре­мен­ной k, при ко­то­рых про­грам­ма выдаёт тот же ответ, что и при вход­ном зна­че­нии k = 64. Зна­че­ние k = 64 также вклю­ча­ет­ся в подсчёт раз­лич­ных зна­че­ний k. Для Ва­ше­го удоб­ства про­грам­ма при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сик

Пас­каль

DIM K, I AS LONG

INPUT K

I = 12

WHILE I > 0 AND F(I) >= K

I = I - 1

WEND

PRINT I

FUNCTION F(N)

F = N * N + 20

END FUNCTION

var k, i : longint;

function f(n: longint) : longint;

begin

f := n * n + 20

end;

begin

readln(k);

i := 12;

while (i>0) and (f(i)>=k) do

i := i-1;

writeln(i)

end

По­яс­не­ние.

При k = 64 про­грам­ма вы­ве­дет число 6. Пе­ре­мен­ная k от­ве­ча­ет за ко­ли­че­ство вы­пол­не­ний цикла

«while (i>0) and (f(i)>=k) do

i := i-1;».

За­пи­шем не­ра­вен­ство: i2+20≥x  Для того, чтобы ре­зуль­тат вы­во­да про­грам­мы был равен 6 при i=7 не­ра­вен­ство ещё долж­но вы­пол­нять­ся, а при  i=6 уже нет. По­лу­ча­ем двой­ное не­ра­вен­ство: 56x≤ 69  То есть нам под­хо­дит 13 чисел.  Ответ: 13.

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

Бей­сик

Пас­каль

DIM A, B, T, N, P AS INTEGER

A = -20: B = 20

P = 130

N = 0

FOR T = A TO B

IF F(T) > P THEN

N = N+1

END IF

NEXT T

PRINT N

FUNCTION F(x)

F = 16*(9+x)*(9+x)+127

END FUNCTION

var a, b,t, N,P :integer;

Function F(x: integer):integer;

begin

F := 16*(9+x)*(9+x)+127;  end;

BEGIN

a := -20; b := 20;

P := 130;

N := 0;

for t := a to b do  begin

if (F(t) > P) then begin

N := N+1;  end;

end;

write(N);  END.

По­яс­не­ние.

Ал­го­ритм пред­на­зна­чен для на­хож­де­ния ко­ли­че­ства целых точек на от­рез­ке [−20; 20] в ко­то­рых функ­ция F(x) = 16 · (9 + x)2+127 имеет зна­че­ние боль­ше 130. Сле­до­ва­тель­но, за­да­чу можно све­сти к не­ра­вен­ству:16⋅(9+х)2+127>130  ⇔16⋅(9+х)2+127>3

Дан­ное не­ра­вен­ство будет вы­пол­нят­ся во всех целых точ­ках от­рез­ка [−20; 20], кроме точки −9, в ко­то­рой F(x) = 127. Всего от­ре­зок [−20; 20] со­дер­жит 41 целую точку. Сле­до­ва­тель­но, ответ 40.  Ответ: 40.

Задача 4.  66.На­пи­ши­те в от­ве­те число раз­лич­ных зна­че­ний вход­ной пе­ре­мен­ной k, при ко­то­рых про­грам­ма выдаёт тот же ответ, что и при вход­ном зна­че­нии k = 64. Зна­че­ние k = 64 также вклю­ча­ет­ся в подсчёт раз­лич­ных зна­че­ний k. Для Ва­ше­го удоб­ства про­грам­ма при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.

Бей­сик

Пас­каль

DIM K, I AS LONG

INPUT K

I = 12

WHILE I > 0 AND F(I) >= K

I = I - 1

WEND

PRINT I

FUNCTION F(N)

F = N * N

END FUNCTION

var k, i : longint;

function f(n: longint) : longint;

begin

f := n * n

end;

begin

readln(k);

i := 12;

while (i>0) and (f(i)>=k) do

i := i-1;

writeln(i)  end.

По­яс­не­ние.

При  k = 64 = 82, про­грам­ма вы­ве­дет число 7. Пе­ре­мен­ная k от­ве­ча­ет за ко­ли­че­ство вы­пол­не­ний цикла  «while (i>0) and (f(i)>=k) do  i := i-1;».

За­ме­тим, что при любом k боль­шем чем 64, про­грам­ма вы­ве­дет число боль­ше 7, а при k = 72 — мень­шее. Сле­до­ва­тель­но, нам под­хо­дят все целые числа, мень­шие или рав­ные 64, но боль­шие 49. Таких чисел 15.  Ответ: 15.

Задача 1 (рассматриваемая на МО).  На­пи­ши­те в от­ве­те число различных значений входной переменной k, при которых программа выдает тот же ответ, что и при входном значении  k=36. Значение k=36 также включается в подсчет различных  значений k.

Бей­сик

Пас­каль

DIM K, I AS LONG

INPUT K

I = 0

WHILE F(I) < K

I = I + 1

WEND

PRINT I

FUNCTION F(N)

F = N * (N-1)+10

END FUNCTION

var k, i : longint;

function f(n: longint) : longint;

begin  f := n * (n-1)+10  end;

begin

readln(k);

i := 0;

while (f(i)<k) do

i := i+1;

writeln(i) 

end.