СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 12.07.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Анализ программы с подпрограммами

Категория: Информатика

Нажмите, чтобы узнать подробности

Подборка задач для подготовки к ЕГЭ задание № 21

Просмотр содержимого документа
«Анализ программы с подпрограммами»

Задание 21

Анализ программы с подпрограммами


Вариант №1

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


  Бей­сик

Пас­каль

DIM A, B, T, M, R ASINTEGER

A = -10: B = 31

M = A: R = F(А)

FOR T = A TO B

    IF F(T) R THEN

        M = T

        R = F(T)

    ENDIF

NEXT T

PRINT M

    FUNCTION F(x)

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

    ENDFUNCTION

vara,b,t,M,R :integer;

Function

F(x:integer):integer;

    begin

    F := 2*(x*x-1)*(x*x-1)+17

    end;

begin

    a := -10; b := 31;

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

    for t := a to b dobegin

        if (F(t) R) thenbegin

            M := t;

            R := F(t)

        end

    end;

    write(M)

end.

Си

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

#include

int F(int x)

{

    return2*(x*x-1)*(x*x-1)+17;

}

void main()

{

    int a, b, t, M, R;

    a = -10; b = 31;

    M = a; R = F(a);

    for (t = a; t {

        if (F(t) R) {

            M = t; R = F(t);

        }

    }

    printf("%d", M);

}

алг

нач

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

a := -10; b := 31

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

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

    если F(t) R

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

    все

кц

вывод M

кон

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

нач

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

кон




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

 

Бей­сик

Python

DIM K, I ASLONG

INPUT K

I = 0

WHILE F(I)

    I = I + 1

WEND

PRINT I

FUNCTION F(N)

    F = N*(N-1)+10

ENDFUNCTION

def f(n):

    return n*(n-1)+10

k = int(input())

i = 0

while f(i)

    i = i + 1

print(i)

Пас­каль

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n*(n-1)+10

        end;

begin

    readln(k);

    i := 0;

    while (f(i) do

        i := i+1;

    writeln(i)

end.

алг

нач

целi, k

ввод k

i := 0

нцпока f(i)

i := i+1

кц

вывод i

кон

алгцелf(цел n)

нач

знач := n*(n-1)+10

кон

Си

#include

long f(long n)

{

    return n*(n-1)+10;

}

void main()

{

    long k, i;

    scanf("%ld", &k);

    i = 0;

    while (f(i)

        i++;

    printf("%ld", i);

}



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

vara,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)

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

end;

write(M+7)

end.


  1. Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 30.

var k, i : longint;

function f(n: longint): longint;

begin

f := n * n * n;

end;

function g(n: longint): longint;

begin

g := 3*n + 6;

end;

begin

readln(k);

i := 1;

while f(i)

i := i+1;

writeln(i)

end.



Вариант №2


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

 

Бей­сик

Пас­каль

DIM A, B, T, M, R ASINTEGER

A = -21: B = 21

M = A: R = F(A)

FOR T = A TO B

    IF F(T) R THEN

        M = T

        R = F(T)

    ENDIF

NEXT T

PRINT M

FUNCTION F(x)

    F = 12 *(9+x)*(9+x)+7

ENDFUNCTION

vara,b,t,M,R :integer;

    Function F(x: integer):integer;

        begin

            F := 12*(9+x)*(9+x)+7;

        end;

BEGIN

    a := -21; b := 21;

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

    for t := a to b dobegin

        if (F(t) R) thenbegin

            M := t;

            R := F(t);

        end;

    end;

    write(M);

END.

Си

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

#include

int F(int x)

{

    return12*(9+x)*(9+x)+7;

}

void main()

{

    int a, b, t, M, R;

    a = -21; b = 21;

    M = a; R = F(a);

    for (t=a; t{

        if (F(t) R) {

            M = t; R = F(t);

        }

    }

    printf ("%d", M);

}

алг

нач

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

a := -21; b := 21

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

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

если F(t) R

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

все

кц

вывод M

кон

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

нач

знач := 12 *(9+x)*(9+x)+7

кон









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

 

Бей­сик

Python

DIM K, I ASLONG

INPUT K

I = 0

WHILE F(I)

    I = I + 1

WEND

PRINT I

FUNCTION F(N)

    F = N*(N+1)- 5

ENDFUNCTION

def f(n):

    return n*(n+1)-5

k = int(input())

i = 0

while f(i)

    i = i + 1

print(i)

Пас­каль

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n*(n+1)-5

        end;

begin

    readln(k);

    i := 0;

    while (f(i)do

        i := i+1;

    writeln(i)

end.

алг

нач

целi, k

ввод k

i := 0

нцпока f(i)

i := i+1

кц

вывод i

кон

алгцелf(цел n)

нач

знач := n*(n+1)-5

кон

Си

#include

long f(long n)

{

    return n*(n+1)-5;

}

void main()

{

    long k, i;

    scanf("%ld", &k);

    i = 0;

    while (f(i)

        i++;

    printf("%ld", i);

}

 

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

vara,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)

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

end;

write(M+15)

end.


  1. Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 18.

var k, i : longint;

function f(n: longint): longint;

begin

f := n * n;

end;

function g(n: longint): longint;

begin

g := 2*n + 5;

end;

begin

readln(k);

i := 1;

while f(i)

i := i+1;

writeln(i)

end.





Вариант № 3


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

  

Бей­сик

Пас­каль

DIM A, B, T, M, R ASINTEGER

A = -7: B = 25

M = A: R = F(A)

FOR T = A TO B

    IF F(T) R THEN

        M = T

        R = F(T)

    ENDIF

NEXT T

PRINT R

 

FUNCTION F(x)

    F = 514 - 3 * (17 + x) * (17 + x);

ENDFUNCTION

vara,b,t,M,R :integer;

    Function F(x:integer):integer;

    begin

  F : = 514 - 3 * (17 + x) * (17 + x);

    end;

begin

    a : = -7; b : = 25;

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

    for t : = a to b dobegin

        if (F(t) R ) thenbegin

            M : = t;

            R : = F(t)

        end

    end;

    write(R);

end.

Си

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

#include

int F(int x)

{

    return514 - 3 * (17 + x) * (17 + x);

}

void main()

{

    int a, b, t, M, R;

    a = -7; b = 25;

    M = a; R = F(a);

    for (t = a; t {

        if (F(t) R) {

            M = t; R = F(t);

        }

    }

    printf("%d", R);

}

алг

нач

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

a : = -7; b : = 25

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

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

если F(t) R

то

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

все

кц

вывод R

кон

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

нач

знач : = 514 - 3 * (17 + x) * (17 + x)

кон









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

  

Бей­сик

Python

DIM K, I ASLONG

INPUT K

I = 0

WHILE F(I)

    I = I + 1

WEND

PRINT I

FUNCTION F(N)

    F = 3*N*N+1

ENDFUNCTION

def f(n):

    return 3*n*n+1

k = int(input())

i = 0

while f(i)

    i = i + 1

print(i)

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

Пас­каль

алг

нач

    цел i, k

    ввод k

    i := 0

    нцпока f(i)

        i := i+1

    кц

    вывод i

кон

алгцелf(цел n)

нач

    знач := 3*n*n+1

кон

var k, i : longint;

function f(n: longint):longint;

begin

    f := 3*n*n+1

end;

begin

    readln(k);

    i := 0;

    while (f(i)do

        i := i+1;

    writeln(i)

end.

Си

#include

long f(long n) {

    return3*n*n+1;

}

void main()

{

    long k, i;

    scanf("%ld", &k);

    i = 0;

    while (f(i)

        i++;

    printf("%ld", i);

}

 



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

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

Function F(x: integer):integer;

begin

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

end;

BEGIN

a := -10; b := 10;

Z := F(a);

N := 0;

for t := a to b do begin

if (F(t)

N := N+1;

Z:=F(t);

end;

end;

write(N);

END.


  1. Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 12.

var k, i : longint;

function f(n: longint): longint;

begin

f := n * n * n;

end;

function g(n: longint): longint;

begin

g := 3*n + 2;

end;

begin

readln(k);

i := 1;

while f(i)

i := i+1;

writeln(i)

end.




Вариант №4

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

  Бей­сик

Пас­каль

DIM A, B, T, M, R ASINTEGER

A = -10: B = 27

M = A: R = F(А)

FOR T = A TO B

    IF F(T) R THEN

        M = T

        R = F(T)

    ENDIF

NEXT T

PRINT M

FUNCTION F(x)

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

ENDFUNCTION

vara,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 dobegin

        if (F(t) R) thenbegin

            M := t;

            R := F(t)

        end

    end;

    write(M)

end.

Си

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

#include

int F(int x)

{

    return2*(x -5)*(x-5)+55;

}

void main()

{

    int a, b, t, M, R;

    a = -10; b = 27;

    M = a; R = F(a);

    for (t = a; t {

        if (F(t) R) {

            M = t; R = F(t);

        }

    }

    printf("%d", M);

}

алг

нач

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

a := -10; b := 27

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

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

если F(t) R

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

все

кц

вывод M

кон

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

нач

знач:=2*(x -5)*(x-5)+55

кон




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


 Бей­сик

Python

DIM K, I ASLONG

INPUT K

I = 0

WHILE F(I)

    I = I + 1

WEND

PRINT I

FUNCTION F(N)

    F = 2*N*N+10

ENDFUNCTION

def f(n):

    return 2*n*n+10

k = int(input())

i = 0

while f(i)

    i = i + 1

print(i)

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

Пас­каль

алг

нач

    цел i, k

    ввод k

    i := 0

    нцпока f(i)

        i := i+1

    кц

    вывод i

кон

алгцелf(цел n)

нач

    знач := 2*n*n+10

кон

var k, i : longint;

function f(n: longint):longint;

begin

    f := 2*n*n+10

end;

begin

    readln(k);

    i := 0;

    while (f(i)do

        i := i+1;

    writeln(i)

end.

Си

#include

long f(long n) {

    return2*n*n+10;

}

void main()

{

    long k, i;

    scanf("%ld", &k);

    i = 0;

    while (f(i)

        i++;

    printf("%ld", i);

}




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

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

begin

if (F(t)R) then

begin

M := t;

R:= F(t);

end;

t:=t+2;

end;

write(M);

End.


  1. Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 16.

var k, i : longint;

function f(n: longint): longint;

begin

f := n * n * n;

end;

function g(n: longint): longint;

begin

g := 3*n + 3;

end;

begin

readln(k);

i := 1;

while f(i)

i := i+1;

writeln(i)

end.





Вариант №5


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


 Бей­сик

Пас­каль

DIM A, B, T, M, R ASINTEGER

A = -10: B = 33

M = A: R = F(А)

FOR T = A TO B

    IF F(T) R THEN

        M = T

        R = F(T)

    ENDIF

NEXT T

PRINT M

FUNCTION F(x)

    F = 3*(x -1)*(x-1)+37

ENDFUNCTION

vara,b,t,M,R :integer;

    Function

    F(x:integer):integer;

        begin

            F := 3*(x -1)*(x-1)+37

        end;

begin

    a := -10; b := 33;

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

    for t := a to b dobegin

        if (F(t) R) thenbegin

            M := t;

            R := F(t)

        end

    end;

    write(M)

end.

Си

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

#include

int F(int x)

{

    return3*(x -1)*(x-1)+37;

}

void main()

{

    int a, b, t, M, R;

    a = -10; b = 33;

    M = a; R = F(a);

    for (t = a; t {

        if (F(t) R) {

            M = t; R = F(t);

        }

    }

    printf("%d", M);

}

алг

нач

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

a := -10; b := 33

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

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

если F(t) R

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

все

кц

вывод M

кон

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

нач

знач:=3*(x -1)*(x-1)+37

кон




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

 

Бей­сик

Python

DIM K, I ASLONG

INPUT K

I = 0

WHILE F(I)

    I = I + 1

WEND

PRINT I

FUNCTION F(N)

    F = N*(N-1)+10

ENDFUNCTION

def f(n):

    return n*(n-1)+10

k = int(input())

i = 0

while f(i)

    i = i + 1

print(i)

Пас­каль

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

var k, i : longint;

    function f(n: longint) : longint;

        begin

            f := n*(n-1)+10

        end;

begin

    readln(k);

    i := 0;

    while (f(i) do

        i := i+1;

    writeln(i)

end.

алг

нач

целi, k

ввод k

i := 0

нцпока f(i)

i := i+1

кц

вывод i

кон

алгцелf(цел n)

нач

знач := n*(n-1)+10

кон

Си

#include

long f(long n)

{

    return n*(n-1)+10;

}

void main()

{

    long k, i;

    scanf("%ld", &k);

    i = 0;

    while (f(i)

        i++;

    printf("%ld", i);

}

 

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

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

Function F(x: integer):integer;

begin

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

end;

BEGIN

a := 2; b := 9;

Z := F(a);

N := 0;

for t := a to b do begin

if (F(t)

N := N+1;

Z:=F(t);

end;

write(N);

END.


  1. Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k = 14.

var k, i : longint;

function f(n: longint): longint;

begin

f := n * n * n;

end;

function g(n: longint): longint;

begin

g := 5*n + 1;

end;

begin

readln(k);

i := 1;

while f(i)

i := i+1;

writeln(i)

end.




Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!