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

1.

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

 

10001011; 10111000; 10011011; 10110100.

 

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

2.

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

 

Перем. 1Перем. 2Перем. 3Перем. 4Функ­ция
????????????F
10000
11000
11100

 

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

 

При­мер. Если бы функ­ция была за­да­на вы­ра­же­ни­ем ¬xy, за­ви­ся­щим от двух пе­ре­мен­ных: x и y, и был при­ведён фраг­мент её таб­ли­цы ис­тин­но­сти, со­дер­жа­щий все на­бо­ры ар­гу­мен­тов, при ко­то­рых функ­ция F ис­тин­на.

 

Перем. 1Перем. 2Функ­ция
??????F
001
101
111

 

Тогда пер­во­му столб­цу со­от­вет­ство­ва­ла бы пе­ре­мен­ная y, а вто­ро­му столб­цу — пе­ре­мен­ная x. В от­ве­те сле­до­ва­ло бы на­пи­сать: yx.

3.

Между населёнными пунк­та­ми A, B, C, D, E, F по­стро­е­ны до­ро­ги, про­тяжённость ко­то­рых при­ве­де­на в таб­ли­це. (От­сут­ствие числа в таб­ли­це озна­ча­ет, что пря­мой до­ро­ги между пунк­та­ми нет.)

 

ABCDEF
A315
B325
C22
D5226
E25
F1565

 

Опре­де­ли­те длину крат­чай­ше­го пути между пунк­та­ми A и F (при усло­вии, что пе­ре­дви­гать­ся можно толь­ко по по­стро­ен­ным до­ро­гам).

4.

Ниже пред­став­ле­ны две таб­ли­цы из базы дан­ных. Каж­дая стро­ка таб­ли­цы 2 со­дер­жит ин­фор­ма­цию о ребёнке и об одном из его ро­ди­те­лей. Ин­фор­ма­ция пред­став­ле­на зна­че­ни­ем поля ID в со­от­вет­ству­ю­щей стро­ке таб­ли­цы 1. Опре­де­ли­те на ос­но­ва­нии при­ведённых дан­ных ID пле­мян­ни­ка Пет­рен­ко П. И.

 

По­яс­не­ние: пле­мян­ни­ком счи­та­ет­ся сын брата или сест­ры.

 

Таб­ли­ца 1
IDФа­ми­лия_И.О.Пол
14Грач Н.А.Ж
24Пет­рен­ко И.П.М
25Пет­рен­ко П.И.М
26Пет­рен­ко П.П.М
34Ерёма А.И.Ж
35Ерёма В.С.Ж
36Ерёма С.С.М
44Ле­бедь А.С.Ж
45Ле­бедь В.А.М
46Гресс О.С.М
47Гресс П.О.М
54Клыч­ко А.П.Ж
64Крот П.А.Ж

Таб­ли­ца 2
ID_Ро­ди­те­ляID_Ре­бен­ка
2425
4425
2526
6426
2434
4434
3435
3635
1436
3446
3646
2554
6454

5.

По каналу связи передаются шифрованные сообщения, содержащие только десять букв: А, Б, Е, И, К, Л, Р, С, Т, У. Для передачи используется неравномерный двоичный код. Для девяти букв используются кодовые слова. Для буквы А − 00, Е — 010, И — 011, К — 1111, Л — 1101, Р — 1010, С — 1110, Т — 1011, У — 100.

Укажите кратчайшее кодовое слово для буквы Б, при котором код будет удовлетворять условию Фано. Если таких кодов несколько, укажите код с наименьшим числовым значением.

Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

6.

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

 

1. прибавь 1,

2. умножь на 5.

Первая из них увеличивает число на экране на 1, вторая умножает его.

Например, программа 121 задает такую последовательность команд:

 

прибавь 1

умножь на 5

прибавь 1

 

Эта программа преобразует, например, число 7 в число 41.

Запишите в ответе программу, которая содержит не более пяти команд и переводит число 2 в число 280.

7.

В некоторые ячейки электронной таблицы записаны числа, как показано на рисунке.

 

ABCDEF
1012345
210
320
430
540
650

 

 

В ячейке D3 записали формулу =$A3–D$1. После этого ячейку D3 скопировали в ячейку E6. Какое число будет показано в ячейке E6? Примечание. Знак $ используется для обозначения абсолютной адресации.

8.

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

 

 

БейсикPython

DIM S, N AS INTEGER

S = 0

N = 25

WHILE S + N <= 100

S = S + 20

N = N − 5

WEND

PRINT S

s = 0

n = 25

while s + n <= 100:

    s = s + 20

    n = n − 5

print(s)

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

var s, n: integer;

begin

    s := 0;

    n := 25;

    while s + n <= 100 do

    begin

        s := s + 20;

        n := n − 5;

    end;

    writeln(s)

end.

алг

нач

    цел s, n

    s := 0

    n := 25

    нц пока s + n <= 100

        s := s + 20

        n := n − 5

    кц

    вывод s

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int s = 0, n = 25;

    while (s + n <= 100) {

        s = s + 20;

        n = n − 5;

    }

    cout << s;

    return 0;

}

 

 

9.

Документ объемом 5 Мбайт можно передать с одного компьютера на другой двумя способами:

 

А) Сжать архиватором, передать архив по каналу связи, распаковать

Б) Передать по каналу связи без использования архиватора.

 

Какой способ быстрее и насколько, если

– средняя скорость передачи данных по каналу связи составляет 218 бит в секунду,

– объем сжатого архиватором документа равен 20% от исходного,

– время, требуемое на сжатие документа – 7 секунд, на распаковку – 1 секунда?

 

В ответе напишите букву А, если способ А быстрее или Б, если быстрее способ Б. Сразу после буквы напишите количество секунд, насколько один способ быстрее другого.

Так, например, если способ Б быстрее способа А на 23 секунды, в ответе нужно написать Б23. Слов «секунд», «сек.», «с.» к ответу добавлять не нужно.

10.

Све­то­вое табло со­сто­ит из лам­по­чек. Каж­дая лам­поч­ка может на­хо­дить­ся в одном из трех со­сто­я­ний («вклю­че­но», «вы­клю­че­но» или «ми­га­ет»). Какое наи­мень­шее ко­ли­че­ство лам­по­чек долж­но на­хо­дить­ся на табло, чтобы с его по­мо­щью можно было пе­ре­дать 18 раз­лич­ных сиг­на­лов?

11.

Алгоритм вычисления значения функции F(n), где nнатуральное число, задан следующими соотношениями:

 

F(n) = 2 при n ≤ 2;

F(n) = 3 × F(n − 1) − F(n − 2) при n> 2.

 

Чему равно значение функции F(6)? В ответе запишите только натуральное число.

12.

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске. По заданным IP-адресу узла и маске определите адрес сети.

 

IP-адрес узла: 32.64.208.224

Маска: 255.255.192.0

 

При записи ответа выберите из приведённых в таблице чисел четыре элемента IP-адреса сети и запишите в нужном порядке соответствующие им буквы без использования точек.

 

ABCDEFGH
03264128192208224255

 

Пример. Пусть искомый IP-адрес: 192.168.128.0, и дана таблица:

 

ABCDEFGH
1281682558127017192

 

В этом случае правильный ответ будет записан в виде: HBAF.

13.

Сколь­ко бит со­дер­жит 8 Мбайт?

 

1) 223

2) 226

3) 8 • 106

4) 64 • 106

14.

Система команд исполнителя РОБОТ, «живущего» в прямоугольном лабиринте на клетчатой плоскости, состоит из 8 команд. Четыре команды - это команды-приказы:

вверхвнизвлевовправо

При выполнении любой из этих команд РОБОТ перемещается на одну клетку соответственно: вверх , вниз , влево , вправо .

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

сверху свободноснизу свободнослева свободносправа свободно

Цикл

ПОКА условие

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

КОНЕЦ ПОКА

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

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

ЕСЛИ условие

ТО команда1

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

КОНЕЦ ЕСЛИ

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

 

В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции.

 

Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.

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

 

НАЧАЛО

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

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

вправо

КОНЕЦ ПОКА

ЕСЛИ снизу свободнo

ТО

вниз

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

15.

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

 

16.

Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 39 оканчивается на 3.

17.

В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке убывания количества найденных страниц. В данной поисковой системе: символ & обозначает обязательное вхождение слов в одно предложение (логическое И); символ | обозначает поиск любого из заданных слов (логическое ИЛИ).

1) автобусы

2) (грузовики & легковые) | автобусы

3) (грузовики & легковые & мотоциклы) | автобусы

4) грузовики | легковые | мотоциклы | автобусы

18.

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

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

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

 

x&49 ≠ 0 → (x&41 = 0 → x&А ≠ 0)

 

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

19.

Значения элементов двумерного массива А размером 5x5 задаются с помощью вложенного цикла в представленном фрагменте программы:

 

 

БейсикPython

FOR i = 1 TO 5

    FOR j = 1 TO 5

        A(i,j) = i*j

    NEXT j

NEXT i

for i in range(1, 6):

    for j in range(1, 6):

        A[i,j] = i*j

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

for i:= 1 to 5 do

    for j:=1 to 5 do begin

        A[i,j]:= i*j;

    end;

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

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

        A[i,j]:= i*j

    кц

кц

Си++

for (i = 1; i <= 5; i++) {

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

        A[i][j]= i*j;

    }

}

 

 

Сколько элементов массива будут иметь значения больше 10?

20.

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

 

Бей­сикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

  A = A + 1

  IF X MOD 2 = 0 THEN

    B = B + X MOD 10

  END IF

  X = X \ 10

WEND

PRINT A

PRINT B

x = int(input())

a=0; b=0

while x>0:

  a = a+1

  if x%2==0:

    b += x%10

  x = x//10

print(a, b)

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

var x, a, b: integer;

begin

  readln(x);

  a := 0; b := 0;

  while x > 0 do

  begin

    a := a + 1;

    if x mod 2= 0 then

      b := b + x mod 10;

    x := x div 10;

  end;

  writeln(a); write(b);

end.

алг

нач

  цел x, a, b

  ввод x

  a := 0; b := 0

  нц пока x > 0

    a := a+1

    если mod(x,2)=0

      то b := b + mod(x,10)

    все

    x := div(x,10)

  кц

  вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

  int x, a, b;

  cin >> x;

  a = 0; b = 0;

  while (x > 0) {

    a = a+1;

    if (x%2 == 0) {

      b = b + x%10;

    }

    x = x / 10;

  }

  cout << a << endl << b << endl;

  return 0;

}

 

21.

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

 

 

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

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

A = -10: B = 10

M = A: R = F(А)

FOR T = A TO B

    IF F(T) < R THEN

        M = T

        R = F(T)

    END IF

NEXT T

PRINT R

FUNCTION F(x)

    F = 2*x*x+8*x+10

END FUNCTION

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

end.

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

#include <iostream>

using namespace std;

int F(int x)

{

return 2*x*x+8*x+10;

}

int main()

{

    int a, b, t, M, R;

    a = -10; b = 10;

    M = a; R = F(a);

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

        if (F(t) < R) {

            M = t; R = F(t);

        }

    }

    cout « R « endl;

}

алг

нач

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

a := -10; b := 10

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

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

если F(t) < R

то

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

все

кц

вывод R

кон

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

нач

знач := 2*x*x+8*x+10

кон

Python

def f(x):

    return 2*x*x+8*x+10

a = -10

b = 10

M = a

R = f(a)

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

    if (f(t) < R):

        M = t

        R = f(t);

print(R)

 

22.

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

 

1. прибавь 1,

2. увеличь старшую цифру числа на 1.

 

Первая из них увеличивает число на экране на 1, вторая увеличивает на 1 старшую (левую) цифру числа, например число 23 с помощью такой команды превратится в число 33. Если старшая цифра числа равна 9, то вторая команда оставляет это число неизменным. Программа для Прибавителя — это последовательность команд. Сколько есть программ, которые число 15 преобразуют в число 37?

23.

Сколько существует целых значений X, при которых ложно высказывание:

 

(|X| ≥ 5) ∨ (|X| < 1)

24.

Требовалось написать программу, которая решает неравенство относительно для любого ненулевого числа и любого неотрицательного числа и введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

 

БейсикPython

INPUT а, b, х

IF а = 0 THEN

IF b > 0 THEN

PRINT "нет решений"

ELSE

PRINT "x>0 или x<0"

ENDIF

ELSE

PRINT -a,"< x < 0"

a = float(input())

b = float(input())

x = float(input())

if a == 0:

    if b > 0:

        print("нет решений")

    else:

        print("x > 0 или x <0")

else:

    print(-a,'< x <0')

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

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

if b > 0 then

write ('нет решений')

else

write('x > 0 или x <0')

else

write(-a,'< x <0');

end.

алг

нач

    вещ a, b, x

    если a == 0 то

        если b > 0 то

            вывод 'нет решений'

        иначе

            вывод 'x > 0 или x <0'

        все

    иначе

        вывод -a,'< x <0'

    все

кон

Си++

#include <iostream>

using namespace std;

int main(void)

{ float a,b,x;

cin >> a >> b,&x;

if (a==0)

if (b>0)

cout << "нет решений"<< endl;

else

cout << "x>0 или x<0"<< endl;

else

cout << -a << "< x <0" << endl;

}

 

 

Последовательно выполните три задания:

1) Приведите пример таких чисел а, b, х, при которых программа неверно решает поставленную задачу.

2) Укажите, какая часть программы является лишней.

3) Укажите, как нужно доработать программу, чтобы не было случаев ее некорректной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

25.

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, меньших 200 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:

204

115

27

20

305

4

программа должна вывести следующий массив:

204

135

27

135

305

4

 

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 

БейсикPython

CONST N AS INTEGER = 30

DIM A (1 TO N) AS LONG

DIM I, J, K AS LONG

FOR I = 1 TO N

     INPUT A(I)

NEXT I

END

# допускается также

# использовать две

# целочисленные

# переменные j, k

a = []

n = 30

for i in range(0, n):

     a.append(int(input()))

...

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

const n = 30;

var

    a: array [1..n] of longint;

     i, j, k: longint;

begin

    for i := 1 to n do

        readln(a[i]);

     ...

end.

алг

нач

    цел N = 30

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

    цел i, j, k

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

        ввод a[i]

    кц

    ...

кон

Си++

#include <iostream>

using namespace std;

const int n = 30;

int main() {

    int a[n];

    int i, j, k;

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

        std::cin >> a[i];

    ...

     return 0;

}

 

 

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

26.

Два игрока, Паша и Валя, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Паша. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в три раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16 или 45 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

Игра завершается в тот момент, когда количество камней в куче становится не менее 36. Если при этом в куче оказалось не более 98 камней, то победителем считается игрок, сделавший последний ход. В противном случае победителем становится его противник. Например, если в куче было 33 камня и Паша утроит количество камней в куче, то игра закончится и победителем будет Валя. В начальный момент в куче было S камней, 1 ≤ S ≤ 35.

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

Выполните следующие задания.

1. а) При каких значениях числа S Паша может выиграть в один ход?

Укажите все такие значения и соответствующие ходы Паши.

б) У кого из игроков есть выигрышная стратегия при S = 34; 33; 32?

Опишите выигрышные стратегии для этих случаев.

2. У кого из игроков есть выигрышная стратегия при S = 11; 10?

Опишите соответствующие выигрышные стратегии.

3. У кого из игроков есть выигрышная стратегия при S = 9? Постройте дерево всех партий, возможных при этой выигрышной стратегии (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход, в узлах — количество камней в позиции.

27.

На вход программе подается набор символов, заканчивающийся точкой (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка, или считывать данные из файла). Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая сначала будет определять, есть ли в этом наборе символы, соответствующие десятичным цифрам. Если такие символы есть, то можно ли переставить их так, чтобы полученное число было симметричным (читалось одинаково как слева направо, так и справа налево). Ведущих нулей в числе быть не должно, исключение – число 0, запись которого содержит ровно один ноль.

Если требуемое число составить невозможно, то программа должна вывести на экран слово «NO». А если возможно, то в первой строке следует вывести слово «YES», а во второй – искомое симметричное число. Если таких чисел несколько, то программа должна выводить максимальное из них. Например, пусть на вход подаются следующие символы:

Do not 911 to 09 do.

В данном случае программа должна вывести

YES

91019