№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка
PDF-версия PDF-версия (вертикальная) PDF-версия (крупный шрифт) PDF-версия (с большим полем) Версия для копирования в MS Word
Вариант № 4871409

1.

Даны 4 целых числа, записанных в двоичной системе:

 

10001011; 10111000; 10011011; 10110100.

 

Сколько среди них чисел, больших, чем 9A16?

2.

Логическая функция F задаётся выражением (x ∧ ¬y) \/ (yz) \/ ¬w. На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F ложна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z. Все строки в представленном фрагменте разные.

 

Перем.1Перем.2Перем.3Перем.4
????????????
0
100
100

 

В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (без разделителей).

3.

На рисунке слева изображена схема дорог Н-ского района, в таблице звёздочкой обозначено наличие дороги из одного населённого пункта в другой. Отсутствие звёздочки означает, что такой дороги нет.

 

 

Каждому населённому пункту на схеме соответствует его номер в таблице, но неизвестно, какой именно номер. Определите, какие номера населённых пунктов в таблице могут соответствовать населённым пунктам B и C на схеме. В ответе запишите эти два номера в возрастающем порядке без пробелов и знаков препинания.

4.

В фрагменте базы данных представлены сведения о родственных отношениях. На основании приведённых данных определите ID родного брата Седых В. А.

 

Таблица 1
IDФамилия_И._О.Пол
1588Саенко М. А.Ж
1616Билич А. П.М
1683Виктюк И. Б.М
1748Кеосаян А. И.Ж
1960Виктюк П. И.М
1974Тузенбах П. А.Ж
2008Виктюк Б. Ф.М
2106Чижик Д. К.Ж
2339Седых Л. А.М
2349Виктюк А. Б.Ж
2521Меладзе К. Г.М
2593Билич П. А.М
2730Виктюк Т. И.Ж
2860Панина Р. Г.Ж
2882Шевченко Г. Р.Ж
2911Седых В. А.Ж

Таблица 2
ID_РодителяID_Ребенка
16161588
23491588
20081683
21061683
16831960
28821960
28601974
28602339
20082349
21062349
16162593
23492593
16832730
28822730
16162911
23492911

5.

Черно-белое растровое изображение кодируется построчно, начиная с левого верхнего угла и заканчивая в правом нижнем углу. При кодировании 1 обозначает черный цвет, а 0 – белый.

Закодируйте таким образом изображение и запишите результат в восьмеричной системе счисления.

6.

У исполнителя, который работает с положительными однобайтовыми двоичными числами, две команды, которым присвоены номера:

1. сдвинь вправо

2. прибавь 4

Выполняя первую из них, исполнитель сдвигает число на один двоичный разряд вправо, а выполняя вторую, добавляет к нему 4. Исполнитель начал вычисления с числа 191 и выполнил цепочку команд 112112. Запишите результат в десятичной системе.

7.

В ячейке М21 электронной таблицы записана формула. Эту формулу скопировали в ячейку L22. В соответствии с формулой, полученной в ячейке L22, значение в этой ячейке равно произведению значений в ячейках В36 и A37. Напишите, сколько из следующих четырёх утверждений не противоречат этим данным.

 

A) Значение в ячейке М21 равно х·у, где х — значение в ячейке В36, а у — значение в ячейке A37.

Б) Значение в ячейке М21 равно х·у, где х — значение в ячейке С35, а у — значение в ячейке A37.

В) Значение в ячейке М21 вычисляется по формуле х·у, где х — значение в ячейке С36, а у — значение в ячейке А36.

Г) Значение в ячейке М21 равно х2 , где х — значение в ячейке В36.

8.

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

 

БейсикPython

DIM K, S AS INTEGER

S = 0

K = 0

WHILE K < 30

    K = K + 3

    S = S + K

WEND

PRINT S

s = 0

k = 0

while k < 30:

    k += 3

    s += k

print(s)

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

var k, s: integer;

begin

       s:=0;

       k:=0;

      while k < 30 do begin

             k:=k+3;

            s:=s+k;

       end;

      write(s);

end.

алг

нач

    цел k, s

    s := 0

    k := 0

    нц пока k < 30

        k := k + 3

        s := s + k

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main() {

    int s, k;

    s = 0, k = 0;

    while (k < 30) {

        k = k + 3;

        s = s + k;

    }

    cout << s << endl;

    return 0;

}

 

9.

Производилась четырехканальная (квадро) звукозапись с частотой дискретизации 24 кГц и 16-битным разрешением. В результате был получен файл размером 1800 Мбайт, сжатие данных не производилось. Определите приблизительно, сколько минут производилась запись.

В качестве ответа укажите ближайшее к времени записи целое число минут.

10.

Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 5. Сколько различных вариантов шифра можно задать, если известно, что цифра 1 встречается ровно три раза, а каждая из других допустимых цифр может встречаться в шифре любое количество раз или не встречаться совсем?

11.

Ниже на пяти языках программирования записан рекурсивный алгоритм F.

 

БейсикPython

SUB F(n)

    PRINT n

    IF n < 5 THEN

        F(n + 1)

        F(n + 3)

    END IF

END SUB

def F(n):

    print(n)

    if n < 5:

        F(n + 1)

        F(n + 3)

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

procedure F(n: integer);

    begin

        writeln(n);

        if n < 5 then

            begin

                F(n + 1);

                F(n + 3)

            end

    end

алг F(цел n)

нач

вывод n, нс

если n < 5 то

    F(n + 1)

    F(n + 3)

все

кон

С++

void F(int n)

{

    cout << n << endl;

    if (n < 5) {

        F(n + 1);

        F(n + 3);

    }

}

 

Чему равна сумма всех чисел, напечатанных на экране при выполнении вызова F(1)?

12.

Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют значение 1; младшие биты, отведенные в IP-адресе компьютера для адреса компьютера в подсети, имеют значение 0.

Если маска подсети 255.255.255.224 и IP-адрес компьютера в сети 162.198.0.157, то порядковый номер компьютера в сети равен_____

13.

B некоторой стране автомобильный номер длиной 6 символов составляют из заглавных букв (используются только 33 различных буквы) и десятичных цифр в любом порядке. Каждый такой номер в компьютерной программе записывается минимально возможным и одинаковым целым количеством байтов (при этом используют посимвольное кодирование и все символы кодируются одинаковым и минимально возможным количеством битов). Определите объём памяти, отводимый этой программой для записи 125 номеров. (Ответ дайте в байтах.)

 

14.

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, включает в себя 4 команды-приказа и 4 команды проверки условия. Команды-приказы: вверх, вниз, влево, вправо. При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх ↑, вниз ↓, влево ←, вправо →. Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится, и программа прервётся.

Другие 4 команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ: сверху свободно, снизу свободно, слева свободно, справа свободно.

Цикл

ПОКА условие

последовательность команд

КОНЕЦ ПОКА

 

выполняется, пока условие истинно.

 

В конструкции

ЕСЛИ условие

ТО команда1

ИНАЧЕ команда2

КОНЕЦ ЕСЛИ

 

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 

Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?

НАЧАЛО

ПОКА снизу свободно ИЛИ справа свободно

ПОКА справа свободно

вправо

КОНЕЦ ПОКА

вниз

КОНЕЦ ПОКА

КОНЕЦ

15.

На рисунке представлена схема дорог. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город К, проходящих через город Г и НЕ проходящих через город З?

16.

Чему равно наименьшее основание позиционной системы счисления x, при котором 225x = 405y?

Ответ записать в виде целого числа.

17.

В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».

В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.

 

 

 

ЗапросНайдено страниц (в тысячах)
Новосибирск & (Красноярск & Хабаровск | Норильск)570
Новосибирск & Красноярск & Хабаровск436
Новосибирск & Красноярск & Хабаровск & Норильск68

 

Какое количество страниц (в тысячах) будет найдено по запросу

Новосибирск & Норильск

Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.

18.

Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n.

Так, например, 14&5 = 11102&01012 = 01002 = 4.

Для какого наименьшего неотрицательного целого числа А формула

 

x&51 = 0 ∨ (x&41 = 0 → x&А = 0)

 

тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной x)?

19.

Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы. В программе описан одномерный целочисленный массив A; в представленном фрагменте обрабатываются элементы массива с индексами от 1 до 10.

 

БейсикPython

n = 10

d = 6

FOR j = 1 TO d

  s = A(1)

  FOR i = 1 TO n-1

    A(i) = A(i+1)

  NEXT i

  A(10) = s

NEXT j

n = 10

d = 6

for j in range(1,d+1):

  s = A[1]

  for i in range(1,n):

    A[i] = A[i+1]

  A[10] = s

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

n := 10;

d := 6;

for j:=1 to d do begin

  s := A[1];

  for i:=1 to n-1 do begin

    A[i] := A[i+1];

  end;

  A[10] := s;

end;

n := 10

d := 6

нц для j от 1 до d

  s := A[1]

  нц для i от 1 до n-1

    A[i] := A[i+1]

  кц

  A[10]:= s

кц

Си++

n = 10;

d = 6;

for (j = 1; j <= d; j++) {

  s = A[1];

  for (i = 1; i <= n-1; i++) {

    A[i] = A[i+1];

  }

  A[10] = s;

}

 

 

Перед началом выполнения программы эти элементы массива имели значения 0, 1, 4, 9, 6, 5, 6, 8, 4, 1 (т.е. A[1] = 0; A[2] = 1; …; A[10] = 1).

Значение какого из этих элементов массива будет наибольшим после выполнения фрагмента программы? В ответе укажите индекс элемента – число от 1 до 10.

20.

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

 

БейсикPython

DIM X,S,D,R AS LONG

INPUT X

S = X

R = 0

WHILE X > 0

  D = X MOD 2

  R = 10*R + D

   X = X \ 2

WEND

S = R + S

PRINT S

x = int(input())

S = x;

R = 0

while x > 0:

   d = x % 2

   R = 10*R + d

  x=x / / 2

S = R + S

print(S)

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

var x,d,R,S: longint;

begin

     readln(x);

     S := x;

     R := 0;

     while x > 0 do

     begin

       d := x mod 2;

       R := 10*R + d;

       x := x div 2;

     end;

     S := R + S;

     writeln(S);

end.

алг

нач

     цел x, d, R, S

     ввод x

     S := x

     R := 0

     нц пока x > 0

         d := mod(x, 2)

         R := 10*R + d

         x := div(x, 2)

     кц

     S := R + S

    вывод S

кон

Си++

#include <iostream>

using namespace std;

int main()

{

     long x,d,R,S;

     cin >> x;

     S = x;

     R = 0;

     while (x > 0){

         d = x % 2;

         R = 10*R + d;

         x = x / 2;

       }

     S = R + S

     cout << S << endl;

    return 0;

}

 

21.

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

 

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

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

A = -15: B = 15

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+50

 

FUNCTION F(x)

F=10*x*x-100*ABS(x)+210

END FUNCTION

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

Function

F(x:integer):integer;

  begin

    F := 10*x*x-100*abs(x)+210

    end;

 

begin

  a := -15; b := 15;

  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+50)

end.

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

#include <iostream>

using namespace std;

int F(int x)

{

  return 10*x*x-100*abs(x)+210;

}

 

int main()

{

  int a, b, t, M, R;

  a = -15; b = 15;

  M = a; R = F(a);

  for (t = a; t <= b; t++) {

    if (F(t) < R) {

      M = t; R = F(t);

    }

  }

  cout << M+50 << endl;

}

алг

нач

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

  a := -15; b := 15

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

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

    если F(t) < R

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

    все

  кц

  вывод M+50

кон

 

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

нач

  знач:=10*x*x-100*iabs(x)+210

кон

Python

def f(x):

    return 10*x*x-100*abs(x)+210

a = -15

b = 15

M = a

R = f(a)

for t in range(a, b+1):

    if (f(t) < R):

        M = t

        R = f(t);

print(M+50)

 

22.

У исполнителя Калькулятор две команды:

 

1. прибавь 2

2. прибавь 3.

 

Первая из них увеличивает число на экране на 2, вторая — на 3. Сколько различных чисел можно получить из числа 2 с помощью программы, которая содержит ровно 10 команд?

23.

Сколько существует различных наборов значений логических переменных x1, x2, … x7, y1, y2, … y7, которые удовлетворяют всем перечисленным ниже условиям?

 

(x1 ∨ y1) ∧ ((x2 ∧ y2) → (x1 ∧ y1)) = 1

(x2 ∨ y2) ∧ ((x3 ∧ y3) → (x2 ∧ y2)) = 1

(x6 ∨ y6) ∧ ((x7 ∧ y7) → (x6 ∧ y6)) = 1

(x7 ∨ y7) = 1

 

В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ..., x7, y1, y2, ..., y7, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.

24.

На обработку поступает последовательность из четырёх целых чисел. Нужно написать программу, которая выводит на экран количество неотрицательных чисел последовательности и их произведение. Если неотрицательных чисел нет, требуется вывести на экран «NO». Известно, что вводимые числа по абсолютной величине не превышают 10. Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

Бейсик Python

count = 0

p = 0

FOR I = 1 TO 4

    INPUT x

    IF x >= 0 THEN

        p = p*x

        count = count + 1

    END IF

NEXT I

IF count > 0 THEN

    PRINT x

    PRINT p

ELSE

    PRINT "NO"

END IF

count = 0

p = 0

for i in range(1, 5):

    x = int(input())

    if x >= 0:

        p = p*x

        count = count + 1

if count > 0:

    print(x)

    print(p)

else:

    print("NO")

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

алг

нач

    цел p,i,x,count

    count := 0

    p := 0

    нц для i от 1 до 4

        ввод x

        если x >= 0 то

            p := p*x

            count := count+1

        все

    кц

    если count > 0 то

        вывод x, нс

        вывод p

    иначе

        вывод "NO"

    все

кон

var p,i,x,count: integer;

begin

    count := 0;

    p := 0;

    for i := 1 to 4 do

    begin

        read (x);

        if x >= 0 then begin

            p := p*x;

            count := count+1;

        end

    end;

    if count > 0 then

    begin

        writeln(х);

        writeln(p);

    end

    else

        writeln('NO');

end.

Си++

#include <iostream>

using namespace std;

int main(void)

{

    int p, i, x, count;

    count = 0;

    p = 0;

    for (i = 1; i <= 4; i++)

    {

        cin >> x;

        if (x >= 0)

        {

            p = p*x;

            count = count+1;

        }

    }

    if (count > 0)

    {

        cout << x << "\n";

        cout << p << "\n";

    }

    else

        cout << "NO\n";

    }

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе последовательности -5 2 1 3.

2. Приведите пример такой последовательности, содержащей хотя бы одно неотрицательное число, что, несмотря на ошибки, программа печатает правильный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

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

Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

25.

Дан массив, содержащий неотрицательные целые числа. Если сумма всех элементов массива чётная, нужно вывести количество чётных (по значению) элементов массива, если нечётная – количество нечётных.

Например, для массива из 6 элементов, равных соответственно 2, 6, 12, 17, 3, 8, ответом будет 4 – количество чётных элементов, так как общая сумма всех элементов чётна.

Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже.

Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

 

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

CONST N=2000

DIM A(N) AS INTEGER

DIM I, K AS INTEGER

FOR I = 1 TO N

    INPUT A(I)

NEXT I

END

...

END

const

N=2000;

var

a: array [1..N] of integer;

i, k: integer;

begin

    for i:=1 to N do

        readln(a[i]);

    …

end.

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

алг

нач

    цел N=2000 | Изменять значение
этой переменной нельзя

    целтаб a[1:N]

    цел i, k

    нц для i от 1 до N

        ввод a[i]

    кц

    …

кон

// допускается также использовать

// целочисленные переменные i, k

a = []

N=2000 //менять значение N нельзя

for i in range(0, N):

    a.append(int(input()))

Си++

#include <iostream>

using namespace std;

#define N 2000

int main(){

    int a[N];

    int i, k;

    for (i=0; i < N; i++)

        cin >> a[i];

    …

    return 0;

}

 

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в приведённых фрагментах.

26.

Два игрока играют в следующую игру. На координатной плоскости стоит фишка. Игроки ходят по очереди. В начале игры фишка находится в точке с координатами (3, −5). Ход состоит в том, что игрок перемещает фишку из точки с координатами (x, y) в одну из трёх точек: или в точку с координатами (x + 3, y), или в точку с координатами (x, y + 4), или в точку с координатами (x, y + 5). Выигрывает игрок, после хода которого расстояние по прямой от фишки до точки с координатами (0, 0) больше 9 единиц. Кто выиграет при безошибочной игре обоих игроков — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.

Постройте дерево партии для выигрышной стратегии (в виде рисунка или таблицы).

27.

На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен). Необходимо определить количество пар, для которых произведение элементов не делится на 34.

Описание входных и выходных данных

В первой строке входных данных задаётся количество чисел N (1≤N≤1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000. В качестве результата программа должна напечатать одно число: количество пар, в которых произведение элементов не кратно 34.

Пример входных данных:

5

3

4

10

11

17

Пример выходных данных для приведённого выше примера входных данных:

8

Пояснение. Из шести заданных чисел можно составить 10 попарных произведений: 3·4, 3·10, 3·11, 3·17, 4·10, 4·11, 4·17, 10·11, 10·17, 11·17 (результаты: 12, 30, 33, 51, 40, 44, 68, 110, 170, 187). Из них на 34 не делятся 8 произведения (3·4=12, 3·10=30, 3·11=33, 3·17=51, 4·10=40, 4·11=44, 10·11=110, 11·17=187).

Требуется написать эффективную по времени и по памяти программу для решения описанной задачи.

Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.

Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 Кбайт и не увеличивается с ростом N.

Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и по памяти, — 4 балла.

Максимальная оценка за правильную программу, эффективную только по времени — 3 балла.

Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности, — 2 балла.

Вы можете сдать одну программу или две программы решения задачи (например, одна из программ может быть менее эффективна). Если Вы сдадите две программы, то каждая из них будет оцениваться независимо от другой, итоговой станет бо́льшая из двух оценок.

Перед текстом программы обязательно кратко опишите алгоритм решения. Укажите использованный язык программирования и его версию.