№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка Готово, можно копировать.
Вариант № 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 = int(input())

b = int(input())

x = int(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