В начало страницы

Вариант «ЕГЭ 05.05.2015. Досрочная волна» (ДОСР-2015)

Список тем

1, Д1, 3, 5, 6, 7, Д7, Д7, 8, Д8, 11, 12, Д12, Д12, 13, 15, 16, Д17, Д19, 22, Д23, Д24 C1, Д24 C1, Д25 C2, Д26 C3, Д27 C4

Задания

Задание 1 (тема 1, №8093)

Текст задания

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

 

ABCDEF
A34416
B35
C42
D452610
E63
F16103

 

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

Задание Д1 (тема Д1, №8092)

Текст задания

Сколько единиц в двоичной записи восьмеричного числа 17318?

Задание 3 (тема 3, №8091)

Текст задания

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

 

Пояснение: дядей считается родной брат отца или матери.

 

Таблица 1
IDФамилия_И.О.Пол
16Окуло И.М.Ж
26Котий А.В.М
27 Котий В.А.М
28Котий В.В.М
36Брамс Т.А.Ж
37 Брамс Б.Г.Ж
38 Брамс Г.Г.М
46 Щука А.С.Ж
47 Щука В.А.М
48Ващенко К.Г.Ж
49 Ващенко И.К.М
56Рисс Н.В.Ж
66 Мирон Г.В.Ж
.........

Таблица 2
ID_РодителяID_Ребёнка
2627
4627
2728
6628
2636
4636
3637
3837
1638
3648
3848
2756
6656
......

Задание 5 (тема 5, №8094)

Текст задания

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1) Строится двоичная запись числа N.

2) К этой записи дописываются справа ещё два разряда по следующему правилу:

а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;

б) над этой записью производятся те же действия — справа дописывается остаток от деления суммы цифр на 2.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.

Укажите минимальное число R, которое превышает 43 и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе.

Задание 6 (тема 6, №8096)

Текст задания

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

 

БейсикPython

DIM S, N AS INTEGER

S = 301

N = 0

WHILE S > 0

    S = S - 10

    N = N + 2

WEND

PRINT N

s = 301

n = 0

while s > 0:

    s = s - 10

    n = n + 2

print(n)

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

var s, n: integer;

begin

    s := 301;

    n := 0;

    while s > 0 do

    begin

        s := s - 10;

        n := n + 2;

    end;

    writeln(n)

end.

алг

нач

    цел n, s

    s := 301

    n := 0

    нц пока s > 0

        s := s - 10

        n := n + 2

    кц

    вывод n

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int s = 301, n = 0;

    while (s > 0) {

        s = s - 10;

        n = n + 2;

    }

    cout << n << endl;

    return 0;

}

 

Задание 7 (тема 7, №8097)

Текст задания

Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи за 30 секунд. Затем тот же музыкальный фрагмент был оцифрован повторно с разрешением в 2 раза выше и частотой дискретизации в 1,5 раза меньше, чем в первый раз. Сжатие данных не производилось. Полученный файл был передан в город Б; пропускная способность канала связи с городом Б в 4 раза выше, чем канала связи с городом А. Сколько секунд длилась передача файла в город Б? В ответе запишите только целое число, единицу измерения писать не нужно.

Задание Д7.1 (тема Д7, №8095)

Варианты

Текст задания

Дан фрагмент электронной таблицы. Из ячейки D2 в ячейку E1 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке E1?

 

ABCDE
11101001000
2220200=$B2+C$320000
3330300300030000
4440400400040000

 

Примечание. Знак $ обозначает абсолютную адресацию.

Задание Д7.2 (тема Д7, №18813)

Варианты

Текст задания

Дан фрагмент электронной таблицы. Из ячейки D2 в ячейку E1 была скопирована формула. При копировании адреса ячеек в формуле автоматически изменились. Каким стало числовое значение формулы в ячейке E1?

 

ABCDE
11101001000
2220200=$B2+C$320000
3330300300030000
4440400400040000

 

Примечание. Знак $ обозначает абсолютную адресацию.

Задание 8 (тема 8, №8098)

Текст задания

Вася составляет 5-буквенные слова, в которых есть только буквы С, Л, О, Н, причём буква С используется в каждом слове ровно 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?

Задание Д8 (тема Д8, №8089)

Текст задания

По каналу связи передаются сообщения, каждое из которых содержит 16 букв А, 8 букв Б, 4 буквы В и 4 буквы Г (других букв в сообщениях нет). Каждую букву кодируют двоичной последовательностью. При выборе кода учитывались два требования:

а) ни одно кодовое слово не является началом другого (это нужно, чтобы код допускал однозначное декодирование);

б) общая длина закодированного сообщения должна быть как можно меньше.

Какой код из приведённых ниже следует выбрать для кодирования букв А, Б, В и Г?

 

1) А:0, Б:10, В:110, Г:111

2) А:0, Б:10, В:01, Г:11

3) А:1, Б:01, В:011, Г:001

4) А:00, Б:01, В:10, Г:11

Задание 11 (тема 11, №8101)

Текст задания

При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 15 символов и содержащий только символы из 12-символьного набора: А, В, C, D, Е, F, G, H, К, L, M, N. В базе данных для хранения сведений о каждом пользователе отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего отведено 12 байт на одного пользователя.

Определите объём памяти (в байтах), необходимый для хранения сведений о 50 пользователях. В ответе запишите только целое число — количество байт.

Задание 12 (тема 12, №8102)

Текст задания

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a, b), где a, b – целые числа. Эта команда перемещает Чертёжника из точки с координатами (x, y) в точку с координатами (x + a; y + b). Например, если Чертёжник находится в точке с координатами (4, 2), то команда сместиться на (2, −3) переместит Чертёжника в точку (6, −1).

Цикл

ПОВТОРИ число РАЗ

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

КОНЕЦ ПОВТОРИ

означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

 

Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):

 

НАЧАЛО

сместиться на (1, 2)

ПОВТОРИ … РАЗ

сместиться на (…, …)

сместиться на (-1, -2)

КОНЕЦ ПОВТОРИ

сместиться на (-26, -12)

КОНЕЦ

 

В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ … РАЗ»?

Задание Д12.1 (тема Д12, №8090)

Текст задания

Миша заполнял таблицу истинности для выражения F. Он успел заполнить лишь небольшой фрагмент таблицы:

 

 

 

 

 

 

x1x2x3x4x5x6x7x8F
101
001
010

 

Каким выражением может быть F?

 

1) x1 ∧ ¬x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7 ∧ ¬x8

2) ¬x1 ∧ x2 ∧ ¬x3 ∧ x4 ∧ x5 ∧ x6 ∧ x7 ∧ x8

3) x1 ∨ x2 ∨ ¬ x3 ∨ x4 ∨ x5 ∨ ¬x6 ∨ x7 ∨ x8

4) x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7 ∨ ¬x8

Задание Д12.2 (тема Д12, №8100)

Текст задания

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

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 117.191.88.37 адрес сети равен 117.191.80.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Задание 13 (тема 13, №8103)

Текст задания

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

 

Задание 15 (тема 15, №8106)

Текст задания

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».

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

 

¬ДЕЛ(x, А) → (ДЕЛ(x, 6) → ¬ДЕЛ(x, 4))

 

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

Задание 16 (тема 16, №8099)

Текст задания

Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): F и G.

 

БейсикPython

DECLARE SUB F(n)

DECLARE SUB G(n)

 

SUB F(n)

    IF n > 0 THEN G(n - 1)

END SUB

 

SUB G(n)

    PRINT "*"

    IF n > 1 THEN F(n - 2)

END SUB

def F(n):

    if n > 0:

        G(n - 1)

 

def G(n):

    print("*")

    if n > 1:

        F(n - 2)

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

procedure F(n: integer); forward;

procedure G(n: integer); forward;

 

procedure F(n: integer);

begin

    if n > 0 then

        G(n - 1);

end;

 

procedure G(n: integer);

begin

    writeln('*');

    if n > 1 then

        F(n - 2);

end;

алг F(цел n)

нач

    если n > 0 то

        G(n - 1)

    все

кон

алг G(цел n)

нач

    вывод "*"

    если n > 1 то

        F(n - 2)

    все

кон

Си

void F(int n);

void G(int n);

 

void F(int n){

    if (n > 0)

         G(n - 1);

}

 

void G(int n){

    printf("*");

    if (n > 1)

         F(n - 2);

}

 

Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(11)?

Задание Д17 (тема Д17, №8105)

Текст задания

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

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

 

ЗапросНайдено страниц, тыс.
Математика & Информатика330
Математика & Физика270
Математика & (Информатика | Физика)520

 

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

 

Математика & Информатика & Физика?

 

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

Задание Д19 (тема Д19, №8107)

Текст задания

В программе используется одномерный целочисленный массив A с индексами от 0 до 9. Значения элементов равны 8, 4, 3, 0, 7, 2, 1, 5, 9, 6 соответственно, т.е. A[0] = 8, A[1] = 4 и т. д. Определите значение переменной s после выполнения следующего фрагмента этой программы (записанного ниже на разных языках программирования).

 

БейсикPython

s = 0

FOR j = 0 TO 8

    IF A(j) > A(j+1) THEN

        s = s + 1

        t = A(j)

        A(j) = A(j+1)

        A(j+1) = t

    ENDIF

NEXT j

s = 0

for j in range(9):

    if A[j] > A[j+1]:

        s = s + 1

        t = A[j]

        A[j] = A[j+1]

        A[j+1] = t

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

s := 0;

for j := 0 to 8 do

    if A[j] > A[j+1] then

    begin

        s := s + 1;

        t := A[j];

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

        A[j+1] := t;

    end;

s := 0

нц для j от 0 до 8

    если A[j] > A[j+1] то

        s := s + 1

        t := A[j]

        A[j] := A[j+1]

        A[j+1] := t

    все

кц

Си++

s = 0;

for (j = 0; j < 9; j++) {

    if (A[j] > A[j+1])

    {

        s++;

        t = A[j];

        A[j] = A[j+1];

        A[j+1] = t;

    }

}

 

Задание 22 (тема 22, №8108)

Текст задания

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

 

Бейсик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 <iostream>

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;

}

 

Задание Д23 (тема Д23, №8111)

Текст задания

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

 

(x1 ∧ y1) ≡ (¬x2 ∨ ¬y2)

(x2 ∧ y2) ≡ (¬x3 ∨ ¬y3)

(x5 ∧ y5) ≡ (¬x6 ∨ ¬y6)

 

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

Задание Д24 C1.1 (тема Д24 C1, №8112)

Варианты

Текст задания

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

Напоминание: 0 делится на любое натуральное число.

 

 

БейсикPython

DIM N, DIGIT, MAXDIGIT AS LONG

INPUT N

MAXDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 3 = 0 THEN

        IF DIGIT > MAXDIGIT THEN

            MAXDIGIT = DIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MAXDIGIT = 0 THEN

    PRINT "NO"

ELSE

    PRINT MAXDIGIT

END IF

N = int(input())

maxDigit = N % 10

while N > 0:

    digit = N % 10

    if digit % 3 == 0:

        if digit > maxDigit:

            maxDigit = digit

    N = N // 10

if maxDigit == 0:

    print("NO")

else:

    print(maxDigit)

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

var N,digit,maxDigit: longint;

begin

    readln(N);

    maxDigit := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 3 = 0 then

            if digit > maxDigit then

                maxDigit := digit;

        N := N div 10;

    end;

    if maxDigit = 0 then

        writeln('NO')

    else

        writeln(maxDigit)

end.

алг

нач

    цел N, digit, maxDigit

    ввод N

    maxDigit := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

            если mod(digit, 3) = 0 то

            если digit > maxDigit то

                maxDigit := digit

            все

        все

        N := div(N,10)

    кц

    если maxDigit = 0 то

        вывод "NO"

    иначе

        вывод maxDigit

    все

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int N, digit, maxDigit;

    cin >> N;

    maxDigit = N % 10;

    while (N > 0)

    {

        digit = N % 10;

        if (digit % 3 == 0)

            if (digit > maxDigit)

                maxDigit = digit;

        N = N / 10;

    }

    if (maxDigit == 0)

        cout << "NO";

    else

        cout << maxDigit<< endl;

    return 0;

}

 

 

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

1. Напишите, что выведет эта программа при вводе числа 134.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

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

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

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

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

Задание Д24 C1.2 (тема Д24 C1, №18726)

Варианты

Текст задания

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

Напоминание: 0 делится на любое натуральное число.

 

 

БейсикPython

DIM N, DIGIT, MAXDIGIT AS LONG

INPUT N

MAXDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 3 = 0 THEN

        IF DIGIT > MAXDIGIT THEN

            MAXDIGIT = DIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MAXDIGIT = 0 THEN

    PRINT "NO"

ELSE

    PRINT MAXDIGIT

END IF

N = int(input())

maxDigit = N % 10

while N > 0:

    digit = N % 10

    if digit % 3 == 0:

        if digit > maxDigit:

            maxDigit = digit

    N = N // 10

if maxDigit == 0:

    print("NO")

else:

    print(maxDigit)

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

var N,digit,maxDigit: longint;

begin

    readln(N);

    maxDigit := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 3 = 0 then

            if digit > maxDigit then

                maxDigit := digit;

        N := N div 10;

    end;

    if maxDigit = 0 then

        writeln('NO')

    else

        writeln(maxDigit)

end.

алг

нач

    цел N, digit, maxDigit

    ввод N

    maxDigit := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

            если mod(digit, 3) = 0 то

            если digit > maxDigit то

                maxDigit := digit

            все

        все

        N := div(N,10)

    кц

    если maxDigit = 0 то

        вывод "NO"

    иначе

        вывод maxDigit

    все

кон

Си++

#include <iostream>

using namespace std;

int main()

{

    int N, digit, maxDigit;

    cin >> N;

    maxDigit = N % 10;

    while (N > 0)

    {

        digit = N % 10;

        if (digit % 3 == 0)

            if (digit > maxDigit)

                maxDigit = digit;

        N = N / 10;

    }

    if (maxDigit == 0)

        cout << "NO";

    else

        cout << maxDigit<< endl;

    return 0;

}

 

 

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

1. Напишите, что выведет эта программа при вводе числа 134.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

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

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

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

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

Задание Д25 C2 (тема Д25 C2, №8113)

Текст задания

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм,

позволяющий найти и вывести количество пар элементов массива, в которых оба числа делятся на 3. В данной задаче под парой подразумевается два подряд идущих элемента массива.

Например, для массива из пяти элементов: 6; 2; 9; –3; 6 – ответ: 2.

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

 

 

 

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

CONST N AS INTEGER = 20

DIM A (1 TO N) AS INTEGER

DIM I AS INTEGER,

    J AS INTEGER,

    K AS INTEGER

FOR I = 1 TO N

    INPUT A(I)

NEXT I

...

 

END

const

    N = 20;

var

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

    i, j, k: integer;

begin

    for i := 1 to N do

        readln(a[i]);

    ...

 

end.

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

#include <iostream>

using namespace std;

#define N 20

    int main() {

    int a[N];

    int i, j, k;

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

        cin >> a[i];

    ...

    return 0;

}

алг

нач

    цел N = 20

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

    цел i, j, k

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

        ввод a[i]

    кц

    ...

 

кон

PythonЕстественный язык

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

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

# целочисленные переменные j и k

a = []

n = 20

for i in range(0, n):

    a.append(int(input()))

...

Объявляем массив A из 20 элементов.

Объявляем целочисленные переменные I, J, K.

В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.

 

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

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

Задание Д26 C3 (тема Д26 C3, №8114)

Текст задания

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Например, пусть в одной куче 10 камней, а в другой 7 камней; такую позицию в игре будем обозначать (10, 7). Тогда за один ход можно получить любую из четырёх позиций: (11, 7), (20, 7), (10, 8), (10, 14). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.

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

В начальный момент в первой куче было 5 камней, во второй куче – S камней; 1 ≤ S ≤ 49.

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

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

1. а) Укажите все такие значения числа S, при которых Петя может выиграть за один ход, и соответствующие выигрывающие ходы. Если при некотором значении S Петя может выиграть несколькими способами,

достаточно указать один выигрывающий ход.

б) Сколько существует значений S, при которых Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом?

2. Укажите такое значение S, при котором у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

− Петя не может выиграть за один ход;

− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Для указанного значения S опишите выигрышную стратегию Пети.

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

− у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

− у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте ходы,

в узлах указывайте позиции. В заданиях 2 и 3 достаточно указать одно значение S и объяснить, почему это

значение удовлетворяет условию соответствующего задания.

Задание Д27 C4 (тема Д27 C4, №8115)

Текст задания

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

нечётное произведение двух показаний, между моментами передачи которых прошло не менее 6 минут. Если получить такое произведение не удаётся, ответ считается равным −1. Количество энергии, получаемое прибором за минуту, не превышает 1000 условных единиц. Общее количество показаний прибора в серии не превышает 10 000.

 

Вам предлагается два задания, связанных с этой задачей: задание А и задание Б. Вы можете решать оба задания или одно из них по своему выбору.

Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание — 0 баллов.

Задание Б является усложнённым вариантом задания А, оно содержит дополнительные требования к программе.

 

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

Перед программой укажите версию языка программирования. ОБЯЗАТЕЛЬНО укажите, что программа является решением ЗАДАНИЯ А. Максимальная оценка за выполнение задания А — 2 балла.

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

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

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

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

ОБЯЗАТЕЛЬНО укажите, что программа является решением ЗАДАНИЯ Б. Максимальная оценка за правильную программу, эффективную по времени и по памяти, — 4 балла. Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, — 3 балла.

 

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

 

Входные данные представлены следующим образом. В первой строке задаётся число N — общее количество показаний прибора. Гарантируется, что N > 6. В каждой из следующих N строк задаётся одно неотрицательное целое число — очередное показание прибора.

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

11

12

45

5

3

17

23

21

20

19

12

26

Программа должна вывести одно число — описанное в условии произведение, либо — 1, если получить такое произведение не удаётся.

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

95