Анализ программы, содержащей циклы и ветвления

За правильное выполненное задание получишь 1 балл. На решение отводится примерно 5 минут.

Задачи для тренировки

Задача №1

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 6, а потом 7.

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 5, а потом 7.

Бейсик Python

DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
    M = M + 1
    IF X MOD 2 = 0 THEN
        L = L + 1
    ENDIF
    X = X \ 2
WEND
PRINT L
PRINT M

x = int(input())
L = 0
M = 0
while x > 0:
    M = M + 1
    if x % 2 == 0:
       L = L + 1
    x = x // 2
print(L)
print(M)

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

var x, L, M: integer;
begin
    readln(x);
    L := 0;
    M := 0;
    while x > 0 do
    begin
        M := M + 1;
        if x mod 2 = 0 then
            L := L + 1;
        x := x div 2;
    end;
    writeln(L);
    writeln(M);
end.

алг
нач
    цел x, L, M
    ввод x
    L := 0
    M := 0
    нц пока x > 0
        M := M + 1
        если mod(x,2) = 0
            то
                L := L + 1
        все
        x := div(x,2)
    кц
    вывод L, нс, M
кон

С++

#include
using namespace std;
int main()
{
    int x, L, M;
    cin >> x;
    L = 0;
    M = 0;
    while (x > 0){
        M = M + 1;
        if(x % 2 == 0){
            L = L + 1;
        }
        x = x / 2;
    }
    cout << L << endl << M << endl;
    return 0;
}

Задача №2

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 5, а потом 7.

Бейсик Python

DIM X, L, M AS INTEGER
INPUT X
L = 0
M = 0
WHILE X > 0
    M = M + 1
     IF X MOD 2 <> 0 THEN
      L = L + 1
     END IF
X = X \ 2
WEND
PRINT L
PRINT M

x = int(input())
L = 0
M = 0
while x > 0:
     M = M + 1
     if x % 2 != 0:
      L = L + 1
     x = x // 2
print(L)
print(M)

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

var x, L, M: integer;
begin
     readln(x);
     L := 0;
     M := 0;
     while x>0 do
    begin
          M := M + 1;
          if x mod 2 <> 0 then
            L := L + 1;
          x := x div 2;
    end;
    writeln(L)
    writeln(M)
end.

алг
нач
     цел x, L, M
     ввод x
     L := 0
     M := 0
    нц пока x > 0
        M := M + 1
         если mod(x,2) <> 0
            то
             L := L + 1
        все
        x := div(x,2)
     кц
     вывод L, нс, M
кон

С++

#include
using namespace std;
int main(){
     int x, L, M;
     cin >> x;
     L = 0;
     M = 0;
     while (x > 0) {
          M = M + 1;
          if(x % 2 != 0) 
             L = L + 1;
          x = x / 2; }
        cout << L << endl << M << endl;
        return 0;}

Задача №3

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 6, а потом 7.

Бейсик Python

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

     IF X MOD 2 <> 0 THEN

      L = L + 1

     END IF

X = X \ 2

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

     M = M + 1

     if x % 2 != 0:

      L = L + 1

     x = x // 2

print(L)

print(M)

 

 

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

var x, L, M: integer;

begin

     readln(x);

     L := 0;

     M := 0;

     while x>0 do

    begin

          M := M + 1;

          if x mod 2 <> 0 then

            L := L + 1;

          x := x div 2;

    end;

    writeln(L)

    writeln(M)

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        M := M + 1

         если mod(x,2) <> 0

            то

             L := L + 1

        все

        x := div(x,2)

     кц

     вывод L, нс, M

кон

С++

#include

using namespace std;

int main(){

     int x, L, M;

     cin >> x;

     L = 0;

     M = 0;

     while (x > 0) {

          M = M + 1;

          if(x % 2 != 0) 

             L = L + 1;

          x = x / 2;

        }

        cout << L << endl << M << endl;

        return 0;}

Задача №4

  Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наименьшее число x, при вводе которого алгоритм печатает сначала 4, а потом 6.

Бейсик Python

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

     IF X MOD 3 <> 0 THEN

      L = L + 1

     END IF

X = X \ 3

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

     M = M + 1

     if x % 3 != 0:

      L = L + 1

     x = x // 3

print(L)

print(M)

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

var x, L, M: integer;

begin

     readln(x);

     L := 0;

     M := 0;

     while x>0 do

    begin

          M := M + 1;

          if x mod 3 <> 0 then

            L := L + 1;

          x := x div 3;

    end;

    writeln(L)

    writeln(M)

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        M := M + 1

         если mod(x,3) <> 0

            то

             L := L + 1

        все

        x := div(x,3)

     кц

     вывод L, нс, M

кон

С++

#include

using namespace std;

int main(){

     int x, L, M;

     cin >> x;

     L = 0;

     M = 0;

     while (x > 0) {

          M = M + 1;

          if(x % 3 != 0) 

             L = L + 1;

          x = x / 3;

        }

        cout << L << endl << M << endl;

        return 0;}

Задача №5

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 3, а потом 8.

Бейсик Python

DIM X, L, M AS INTEGER

INPUT X

L = 0

M = 0

WHILE X > 0

    M = M + 1

     IF X MOD 4 <> 0 THEN

      L = L + 1

     END IF

X = X \ 4

WEND

PRINT L

PRINT M

x = int(input())

L = 0

M = 0

while x > 0:

     M = M + 1

     if x % 4 != 0:

      L = L + 1

     x = x // 4

print(L)

print(M)

 

 

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

var x, L, M: integer;

begin

     readln(x);

     L := 0;

     M := 0;

     while x>0 do

    begin

          M := M + 1;

          if x mod 4 <> 0 then

            L := L + 1;

          x := x div 4;

    end;

    writeln(L)

    writeln(M)

end.

алг

нач

     цел x, L, M

     ввод x

     L := 0

     M := 0

    нц пока x > 0

        M := M + 1

         если mod(x,4) <> 0

            то

             L := L + 1

        все

        x := div(x,4)

     кц

     вывод L, нс, M

кон

С++

#include

using namespace std;

int main(){

     int x, L, M;

     cin >> x;

     L = 0;

     M = 0;

     while (x > 0) {

          M = M + 1;

          if(x % 4 != 0) {

             L = L + 1;

          }

          x = x / 4;

        }

        cout << L << endl << M << endl;

        return 0; }

Пройти тест

Начать