Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
К. Поляков, 2009-2013
Тема: Анализ программы с подпрограммами.
Что нужно знать:
function F(x: integer):integer;
begin
...
F:= <результат функции>
end;
function F(x: integer; y: integer):integer;
function F(x, y: integer):integer;
M:=a; R:=F(a);
for t:=a to b do
if F(t) < R then begin
R:=F(t); M:=t;
end;
этот результат можно получить (вывести, если забыли), например, так:
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=4*(x-1)*(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(M);
END.
Решение (способ 1, ручная прокрутка, перебор):
for t:=a to b do begin
...
end;
M:=a; R:=F(a);
if (F(t)<R)then begin
M:=t;
R:=F(t);
end;
если новое значение функции меньше, чем значение R, в R записывается значение функции в точке t, а в переменной M запоминается само значение t (аргумент функции, соответствующий значению в R)
F:=4*(x-1)*(x-3);
t |
-20 |
-19 |
-18 |
-17 |
-16 |
-15 |
-14 |
-13 |
-12 |
-11 |
-10 |
-9 |
-8 |
-7 |
-6 |
-5 |
-4 |
-3 |
-2 |
-1 |
0 |
F |
1932 |
1760 |
1596 |
1440 |
1292 |
1152 |
1020 |
896 |
780 |
672 |
572 |
480 |
396 |
320 |
252 |
192 |
140 |
96 |
60 |
32 |
12 |
t |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
|
F |
0 |
-4 |
0 |
12 |
32 |
60 |
96 |
140 |
192 |
252 |
320 |
396 |
480 |
572 |
672 |
780 |
896 |
1020 |
1152 |
1292 |
Возможные проблемы:
|
Решение (способ 2, математический анализ):
Решение (способ 3, математический анализ, свойства параболы):
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=x*x + 4*x + 8;
end;
BEGIN
a:=-10; b:=10;
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.
Решение:
write(R);
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=4*(x-1)*(x-3);
end;
BEGIN
a:=-20; b:=0;
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.
Решение:
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(M);
END.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=-(x+4)*(x+2);
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=3*(x-2)*(x+6);
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(5-x)*(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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(x-5)*(x+3);
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(M);
END.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(x+5)*(x+3);
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(x+7)*(1-x);
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(M);
END.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(x+5)*(1-x);
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(M);
END.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=(x+3)*(1-x);
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:= 2*x*x + 8*x + 10;
end;
BEGIN
a:=-10; b:=10;
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:= x*x + 6*x + 10;
end;
BEGIN
a:=-10; b:=10;
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.
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:= x*x + 2*x + 10;
end;
BEGIN
a:=-10; b:=10;
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=4*(x-5)*(x+3);
end;
BEGIN
a:=-20; b:=0;
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:= 2*x*x + 8*x + 10;
end;
BEGIN
a:=0; b:=10;
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.
Var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:=-(x+4)*(x+2);
end;
BEGIN
a:=-2; 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.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 2*(x-9)*(x-9)+12;
end;
BEGIN
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do
if (F(t)<R) then begin
M := t;
R:= F(t);
end;
write(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 9*(x-15)*(x+17)+2;
end;
BEGIN
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do
if (F(t)<R) then begin
M := t;
R:= F(t);
end;
write(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := -3*(x-10)*(x+2)+2;
end;
BEGIN
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do
if (F(t)>R) then begin
M := t;
R:= F(t);
end;
write(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 5*(x+10)*(x+2)+2;
end;
BEGIN
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do
if (F(t)<R) then begin
M := t;
R:= F(t);
end;
write(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := -2*(x+2)*(x-6);
end;
Begin
a := -11; b := 11;
M := a; R:= F(a);
t:=a;
while t < b do
begin
if (F(t)>R) then
begin
M := t;
R:= F(t);
end;
t:=t+2;
end;
write(R);
End.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := -2*(x+2)*(x-6);
end;
Begin
a := -11; b := 11;
M := a; R:= F(a);
t:=a;
while t < b do
begin
if (F(t)>R) then
begin
M := t;
R:= F(t);
end;
t:=t+2;
end;
write(M);
End.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := -2*(x+2)*(x-6);
end;
Begin
a := -11; b := 11;
M := a; R:= F(a);
t:=a;
while t < b do
begin
if (F(t)>=R) then
begin
M := t;
R:= F(t);
end;
t:=t+2;
end;
write(M);
End.
var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F := 3*(x-8)*(x-8)
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.
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.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 19*(11-x)*(11-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(R);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 16* (9-х)*(9-х)+127;
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.
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;
writeln(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 26*(9+х)*(9+х)+131;
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.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 10*(5-x)*(5-x)+120;
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;
writeln(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 19-19*(x-1)*(x-1);
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;
writeln(M);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 6*(x+10)*(x+10)+30;
end;
BEGIN
a := -5; 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;
writeln(R);
END.
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 281 - 2*(17+x)*(17+x);
end;
BEGIN
a := -7; 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;
writeln(R);
END.
var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin
F := (x*x-9)*(x*x-9)+5 end;
begin
a := -13; b := 13; M := a; R := F (a) ;
for t := a to b do
if (F(t) < R) then begin
M := t; R := F(t)
end;
write(M+7)
end.
var a,b,t,M,R :integer;
Function F(x:integer):integer;
begin
F := (x*x-25)*(x*x-25)+15 end;
begin
a := -15; b := 15; M := a; R := F (a) ;
for t := a to b do
if (F(t) <= R) then begin
M := t; R := F(t)
end;
write(M+15)
end.
1 Источники заданий:
Демонстрационные варианты ЕГЭ 2012-2013 гг.
Тренировочные работы МИОО.
Авторские разработки.
26 http://kpolyakov.narod.ru