Рубрики
ЕГЭ Информатика

Ответом к заданиям этой части (В1-В15) является число, последовательность букв или цифр

Ответом к заданиям этой части (В1-В15) является число, последовательность букв или цифр. Впишите ответы сначала в текст работы, а затем перенесите их в бланк ответов № 1 справа от номера соответствующего задания, начиная с первой клеточки, без пробелов, запятых и других дополнительных символов. Каждую букву или цифру пи­шите в отдельной клеточке в соответствии с приведёнными в бланке образцами.

подпись: blподпись: в2Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке длиной в 20 символов, первоначально записанного в 2-байтном коде Unicode, в 8-битную кодировку КОИ-8. На сколько бит уменьшилась длина сообще­ния? В ответе запишите только число.

Ответ:.

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

1. прибавь 1,

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

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

Запишите порядок команд в программе преобразования числа 1 в число 22, содержа­щей не более 5 команд, указывая лишь номера команд. (Например, 21211 — Это про­грамма

Умножь на 3

Прибавь 1

Умножь на 3

Прибавь 1

Прибавь 1,

Которая преобразует число 1 в 14.)

(Если таких программ более одной, то запишите любую из них.)

Ответ:.

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

Бейсик

Паскаль

DIM k, s AS INTEGER s = 0 к = 0 WHILE s < 1024 s = s + 10 к = к + 1

WEND PRINT к

Var к, s : integer; BEGIN

S : = 0 ;

К := 0;

While s<1024 do begin

S := s + 10;

К := к+1;

End;

Write (к);

END.

Си

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

{

Int к, s;

S = 0;

К = 0;

While (s<1024) {

S = s + 10;

К = к+1;

}

Printf(«%d», к);

}

Нач

Цел k, s

S :*= 0

К := 0

Нц пОкаS < 1024 s := s+10 к := к+1

КЦ

Вывод к

KOH

Ответ:.

B4

Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Вот начало списка:

1) AAAAA

2) AAAAO

3) ААААУ

4) AAAOA

Запишите слово, которое стоит на 240-м месте От начала списка.

Ответ:

В5

А

В

C

D

1

3

3

2

2

=(C1+A1)∕2

=Cl-Dl

=Al-Dl

=B 1/2

Дан фрагмент электронной таблицы:

Какое число должно быть записано в ячейке Bl, чтобы построенная после выполнения вычислений диаграмма по значениям диапа­зона ячеек A2:D2 соответствовала рисунку?

Ответ:.

В6

Определите значение переменной С после выполнения следующего фрагмента про­граммы (записанного ниже на разных языках программирования).

Бейсик

Паскаль

А = 40

Ь = 80

B = — a-2*b IF а < b THEN с = b - а

ELSE с = а — 2 * b

END IF

А := 40;

B := 80;

B := — а — 2 * Ь;

If а < b then с : = b - а

Else

С := а — 2 * Ь;

Си

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

А = 40;

B = 80;

B = — а — 2 * Ь;

If (а <Ь)

С = b — а;

Else

C=a-2*b;

А := 40

B := 80

B : = — а — 2 *Ь Если а < b

То с := b — а

Иначе с := а — 2 * b Все

Ответ:.

подпись: b7подпись: в8

Ниже на 4-х языках записан алгоритм. Получив на вход число Х, этот алгоритм печата­ет два числа LИ М. Укажите наибольшее из таких чисел Х, при вводе которых алго­ритм печатает сначала 3, а потом 7.

Бейсик

Паскаль

DIM X, Lz M AS INTEGER INPUT X L=0: M=O WHILE X > 0

L = L+l

IF M < (X MOD 10) THEN M=X MOD 10

ENDIF

X = X ∖ 10

WEND PRINT L PRINT M

Var xz Lz M: integer; begin

Readln(x) ;

L := 0; M := 0; while x>0 do ■ begin

L := L+l;

If M < (x mod 10) then begin

M := x mod 10; end;

X := x div 10; end;

Writeln(L); write (M); end.

Си

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

#include void main () {

Int x, Lz M;

Scanf(,,%d»z&x);

L=0; M=0;

While (x>0){

L=L+1;

If M < x % 10 { M = x % 10

}

X= x/10;

}

Printf(«%d∖n%d»z L, M) ; }

Алг Нач ЦелXz Lz M ВВОДX

L := 0; M := 0 Нц пока х>0

L := L+1

ЕслиM < mod(xz10) ТО

M := mod(х,10) Все Х := div(xz10) Кц выводLzнс, M

KOH

Ответ:.

Запись числа 67ю в системе счисления с основанием N оканчивается на 1 и содержит 4 цифры. Чему равно основание этой системы счисления N?

Ответ:.

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

Ответ:.

подпись: bloУ Кати есть доступ в Интернет по высокоскоростному одностороннему радиоканалу, обеспечивающему скорость получения информации 220 бит в секунду. У Сергея нет скоростного доступа в Интернет, но есть возможность получать информацию от Кати по телефонному каналу со средней скоростью 213 бит в секунду. Сергей договорился с Катей, что она скачает для него данные объёмом 9 Мбайт по высокоскоростному ка­налу и ретранслирует их Сергею по низкоскоростному каналу.

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

В ответе укажите только число, слово «секунд» или букву «с» добавлять не нужно.

Ответ:.

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

По заданным IP-адресу узла и маске определите адрес сети.

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

Маска: 255.255.252.0

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

А

В

C

D

E

F

G

H

0

3

217

233

232

244

252

255

Пример.

Пусть искомый LPAPec 192.168.128.0, и дана таблица [8][9]

А

В

C

D

E

F

G

H

128

168

255

8

127

0

17

192

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

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

Запрос

Найдено страниц (в тысячах)

Шахматы | Теннис

7770

Теннис

5500

Шахматы & Теннис

1000

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

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

Ответ:.

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

1. прибавь 3,

2. вычти 2.

Первая из них увеличивает число на экране на 3, вторая — уменьшает его на 2 (отрица­тельные числа допускаются).

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

Ответ:.

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

Бейсик

Паскаль

DIM А, В, Т, М, R AS INTEGER А = -20: В = 20 M = A: R = F(A) FOR T = А ТО В

IF F(T) < R THEN M = T R = F(T)

END IF NEXT T PRINT M

FUNCTION F (x)

F = 4 * (x-l) * (x — 3) END FUNCTION

Var a, b,t, M,R :integer; Function

F(x:integer) : integer; begin

F := 4*(x-l)*(x-3); end;

BEGIN

A := -20; b := 20;

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

For t := a to b do begin

If (F(t)

R := F(t) ;

End;

End;

Write (M);

END.

Си

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

Int F(int х) {

Return 4∙'(х-1) А (х-3) ;

Void main ()

Int a, b, t, М, R;

А = -20; b = 20;

M = a; R = F (а) ;

For (t=a; t<=b; t++){ if ( F(t)

M = t; R = F (t) ;

}

Printf(«%d», М);

}

Ал г нач целA, b, t, М, R а := -20; b := 20 M := a; R:= F(a) Нц дляT От а ДоB ЕслиF (t)< R ТО

M := t; R := F(t) Все кц выводM KOH Алг целF(Цел х) Нач знач:= 4*(х-1)*(х-3) KOH

Ответ:.

подпись: b15Сколько существует различных наборов значений логических переменных x/t x2, … хр, Xi о, которые удовлетворяют всем перечисленным, ниже условиям?

((X∕ ≡ X2) V (Xj ≡ X4)) Л (-(X/ ≡ X2) V ^^,(x3 ≡ X4)) =1

((хз ≡ Х4)V (x5 ≡ x6)) Л (-ι(x3 ≡ X4) M ~X5X6)) =1

((xj ≡ Х6)V (x7 ≡ xδ)) Л (~ι(x5 ≡ x6) V =(x7 ≡ x⅛)) =1

((x7 ≡ X8) V (x9 ≡ Хю)) Л (~,(x7 ≡ X8) V ~,(xp ≡ Xιo)) =1

В ответе Не нужноПеречислять все различные наборы значений x7, Х2, … хр, Хю, при которых выполнена данная система равенств. В качестве ответа вам нужно указать ко­личество таких наборов.

Ответ:.

Не забудьте перенести все ответы в бланк ответов № 1.

Часть 3

Для записи ответов на задания этой части (С1-С4) используйте бланк ответов № 2. Запишите сначала номер задания (Cl, С2 и т. д.), а затем полное решение. Ответы за — писывайте чётко и разборчиво.

Cl

 

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

Бейсик

Паскаль

INPUT х, у

IF y>=x THEN

IF y>=0 THEN

IF y<=2-x*x THEN

PRINT «принадлежит»

ELSE

PRINT «не принадлежит»

ENDIF

ENDIF

ENDIF

END

Var x, y: real;

Begin

Readln(x, у);

If y>=x then

If y>=0 then

If y<=2-x*x then

Write (‘принадлежит’)

Else

Write (‘не принадлежит’) end.

Си

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

Void main(void){

Float x, y;

Scanf («%f %f», &x, &y) ;

If (y>=x)

If (y>=0)

If (y<=2-x*x) printf("принадлежит");

Else printf(«не принадлежит»);

}

Ал г

Нач

ВещXzу

ВводXzу

ЕслиY>=x То

Если у>=0 То

ЕслиY<=2-x*x То

Вывод ’принадлежит’ Иначе

Вывод ’не принадлежит’ Все

Все

Все

KOH

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

1. Перерисуйте и заполните таблицу, которая показы­вает, как работает программа при аргументах, при­надлежащих различным областям (А, В, С, D, Е, F, G иН).

Точки, лежащие на границах областей, отдельно не рассматривать.

Область

Условие 1 (y>=x)

Условие 2 (у>=0)

Условие 3 (y<=2-x*x)

Программа выведет

Область обрабатывается верно

А

В

C

D

E

F

G

H

В столбцах условий укажите «да», если условие выполнится, «нет» если условие не вы­полнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если програм­ма ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если про­грамма ничего не выводит, напишите «—» (прочерк). Если для разных значений, при­надлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».

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

подпись: с2Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программиро­вания алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на три. Гарантируется, что в исход­ном массиве есть хотя бы один элемент, значение которого чётно и не кратно трем.

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

Паскаль

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

Const

N = 20;

Var

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

I, j, min: integer;

Begin

For i := 1 to N do readln(a[i]);

End.

Алг

Нач

ЦелN = 20

ЦелтабA[l:N]

ЦелI, j, MIN

Нц дляI от 1 ДоN Ввод а[i]

Кц

KOH

Бейсик

Си

N = 20

DIM A(N) AS INTEGER

DIM I, J, MIN AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

END

⅛include ⅜define N 20 void main(void){ int a[N]; int i, j, min; for (i=0; i

}

________________________ Русский (естественный) язык

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

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

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

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

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

1. прибавь 1,

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

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

Программа для Утроителя — это последовательность команд.

Сколько есть программ, которые число 1 преобразуют в число 29?

Ответ обоснуйте.

В командных олимпиадах по программированию для решения предлагается не больше 11 задач. Команда может решать предложенные задачи в любом порядке. Подготов­ленные решения команда посылает в единую проверяющую систему соревнований. Вам предлагается написать эффективную, в том числе по используемой памяти, про­грамму, которая будет статистически обрабатывать пришедшие запросы, чтобы опре­делить наиболее популярные задачи. Следует учитывать, что количество запросов в списке может быть очень велико, так как многие соревнования проходят с использо­ванием Интернет.

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

На вход программе в первой строке подаётся количество пришедших запросов N. В каждой из последующих N строк записано название задачи в виде текстовой строки. Длина строки не превосходит 100 символов, название может содержать буквы, цифры, пробелы и знаки препинания.

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

6

А+В

Крестики-Нолики Прямоугольник Простой делитель А+В

Простой делитель

Программа должна вывести список из трёх наиболее популярных задач с указанием количества запросов по ним. Если в запросах упоминаются менее трех задач, то выве­дите информацию об имеющихся задачах. Если несколько задач имеют ту же частоту встречаемости, что и третья по частоте встречаемости задача, их тоже нужно вывести. Пример выходных данных для приведённого выше примера входных данных: А+В 2

Простой делитель 2

Крестики-Нолики 1

Прямоугольник 1

Система оценивания экзаменационной работы по информатике и ИKT

Ответы к заданиям с выбором ответа

№ задания

. Ответ

Al

2

А2

1

АЗ

1

А4

2

А5

2

А6

3

А7

2

А8

3

А9

4

AlO

1

All

1

А12

2

А13

2

Ответы к заданиям с кратким ответом

№ задания

Ответ

Bl

160

В2

12121

ВЗ

103

В4

УУУОУ

В5

2

В6

440

В7

777

В8

3

В9

13

BlO

9224

Bll

CDEA

В12

3270

В13

6

В14

2

В15

64

Критерии оценивания заданий с развернутым ответом

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

Бейсик

Паскаль

INPUT х, у

IF y>=x THEN

IF y>=0 THEN

IF y<=2-x*x THEN

PRINT «принадлежит»

ELSE

PRINT «не принадлежит»

ENDIF

ENDIF

ENDIF

END

Var x, y: real;

Begin

Readln(x, у);

If y>=x then

If y>=0. then

If y<=2-x*x then

Write (‘принадлежит’)

Else

Write (‘не принадлежит’) end.

Си

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

Void main(void){

Float x, y;

Scanf («% f % f», &x, &y) ;

If (y>=x)

If (y>=0)

If (y<=2-x*x)

Printf(«принадлежит»);

Else

Printf(«не принадлежит»);

Ал г

Нач

Вещ хуу

ВводXrу

ЕслиY>=x То

Если у>=0 То

ЕслиY<=2-x*x То

Вывод‘принадлежит’

Иначе

Вывод ’не принадлежит’

Все

Все

Все

KOH

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

1. Перерисуйте и заполните таблицу, которая пока­зывает, как работает программа при аргументах, принадлежащих различным областям (А, В, С, D, Е, F, G и Н).

Точки, лежащие на границах областей, отдельно не рассматривать.

Область

Условие 1 (y>=x)

Условие 2 (У>=0)

Условие 3 (y<=2-x*x)

Программа выведет

Область обрабаты­вается верно

A

В

C

D

E

F

G

H

В столбцах условий укажите «да», если условие выполнится, «нет» если условие не вы­полнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если програм­ма ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если про­грамма ничего не выводит, напишите «—» (прочерк). Если для разных значений, при­надлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».

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

Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)

Элементы ответа: 1.

Область

Условие 1 (y>=x)

Условие 2 (У>=0)

Условие 3 (y<=2-x*x)

Программа выведет

Область обрабатывается верно

А

Да

Да

Нет

Не принадлежит

Да

В

Да

Нет

Нет

C

Нет

Нет

D

Нет

Нет

E

Да

Да

Да

Принадлежит

Да

F

Да

Нет

Нет

G

Нет

Нет

H

Нет

Нет

2. Возможная доработка (Паскаль):

If (x<0) and (y<=2-x*x) and (y>=x) or (x>=0) and (y>=0) and (y<=2-x*x) then

Write (,принадлежит’) else

Write (,не принадлежит’)

Возможны и другие способы доработки.

Пример:

If (y<=2-x*x) and ((y>=0) or (y>=x)) then write (‘принадлежит’)

Else write (‘не принадлежит’)

Указания по оцениванию

Баллы

Обратите внимание! В задаче требуется выполнить три следующих дейст­вия.

1. Указать для каждой области, как будет работать программа — заполнить таблицу.

2. Исправить ошибку, связанную с неверной расстановкой операторных скобок (отсутствуют случаи ELSE). Исправлением этой ошибки может быть либо добавление случая ELSE к каждому условию IF, либо объединение всех условий IF в одно при помощи конъюнкции.

В сложных случаях это действие считается выполненным, если программа выдает одно из двух сообщений «принадлежит» или «не принадлежит» для любых чисел Х и У, при этом программа не стала работать хуже, чем рань­ше, то есть для всех точек, для которых программа ранее выдавала верный ответ, доработанная программа также должна выдавать верный ответ.

3. Исправить ошибку в проверяемых условиях: приведенным трем ограни­чениям не удовлетворяют точки плоскости, у которых Y<=2-X*X, Y>=XИ У<0 а такжеY<=2-X*X, у<х и у>=0. Исправлением этой ошибки может быть разбиение области на две части и использование дизъюнкции либо отбра­сывание от большей области ее части.

В сложных случаях это действие считается выполненным, если верно опре­делена закрашенная область, то есть программа выводит сообщение «при­надлежит» для всех точек закрашенной области и только для них, для точек вне закрашенной области программа выводит «не принадлежит» или не вы­водит ничего.

В целом, критерий оценки работ такой: количество баллов равно количест­ву выполненных действий. Детально критерии для каждого случая рас­смотрены ниже.

Задание выполнено полностью:

1) Правильно заполнена вся таблица.

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

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

3

1. Правильно выполнены два действия из трех.

При этом:

А) Действие по заполнению таблицы засчитывается, даже если ошибки есть, но не более, чем в одной строке.

Б) При написании операций сравнения допускается одно неправильное использование строгих/нестрогих неравенств (считается несущественной ошибкой, погрешностью записи). Например, вместо «у>=-х» один раз ис­пользуется «у>-х».

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

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

2

Правильно выполнено только одно действие из трех.

При этом:

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

Б) При написании операций сравнения допускается любое количество

1

Неправильных использований строгих/нестрогих неравенств (т. е. не учиты­вается корректность работы программы на границах областей)

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

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

Ни один из пунктов задания не выполнен, т. е. не выполнены критерии, по­зволяющие поставить ученику 1 балл.

0

Максимальный балл

3

подпись: c2Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программиро­вания алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на три. Гарантируется, что в исход­ном массиве есть хотя бы один элемент, значение которого чётно и не кратно трем.

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

Паскаль

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

Const N = 20;

Var

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

I, j, min: integer;

Begin

For i := 1 to N do readln(a[i]) ;

Алг

Нач

ЦелN = 20 ЦелтабA[l:N] ЦелI, j, MIN Нц ДляI От1 ДоN Ввод а[i]

Кц

End.

KOH

Бейсик

СИ

N = 20

DIM A(N) AS INTEGER

DIM I, J, MIN AS INTEGER

FOR I = 1 TO N INPUT A(I) NEXT I

#include ⅛define N 20 void main(void){ int a[N]; int i, j, min; for (i=0; i

Scanf(«%d», &a[i]);

END

}

Русский (естественный) язык

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

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

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

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

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

На языке Паскаль

Min := 1000;

For i : =1 to N do

If (a[i] mod 2=0) and (a[i] mod 3<>0) and (a[i]

Writein(min);

Then

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

MIN := 1000;

Нц дляI от 1 до N

ЕслиMod(а[i], 2)=0 и mod(а[i], 3)<>0 и a[i]

ТО

MIN := a[i]

Все кц Вывод MIN

На языке Бейсик

MIN = 1000

FOR I = 1 ТО N

IF (A(I) MOD 2 = 0) AND (A(I) MOD 3 <> 0) AND (A(I) < MIN) THEN MIN = A(I)

END IF

NEXT I

PRINT MIN

На языке СИ

Min = 1000;

For (i=0; i

If (a[i]%2==0 && a[i]%3!=0 && a[i]

Printf(«⅝d», min);

На естественном языке

Записываем в переменную MIN начальное значение, равное 1000. В цикле от первого элемента до двадцатого находим остаток от деления элемента исходного массива на два и на три. Если остаток от деления на два равен нулю и остаток от деления на три не равен нулю, то сравниваем значение текущего элемента массива со значением пе­ременной MIN. Если текущий элемент массива меньше MIN, то записываем в MIN значение этого элемента массива. Переходим к следующему элементу.

После завершения цикла выводим значение переменной MIN.

Указания по оцениванию

Баллы

Предложен правильный алгоритм, выдающий верное значение.

Допускается запись алгоритма на другом языке, использующая аналогич­ные переменные. В случае, если язык программирования использует типи­зированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизиро — ванных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество перемен­ных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора про­граммы.

2

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

1

1. Не инициализируется или неверно инициализируется переменная MIN (например, ей присваивается значение а[1] или число, меньшее 1000).

2. Неверно осуществляется проверка чётности элемента массива.

3. На чётность проверяется не значение элемента, а его индекс.

4. Неверно осуществляется проверка делимости на три.

5. На делимость на три проверяется не значение элемента, а его ин­декс.

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

7. Отсутствует вывод ответа.

8. Используется переменная, не объявленная в разделе описания переменных.

9. Не указано или неверно указано условие завершения цикла.

10. Индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно.

11. Неверно расставлены операторные скобки.

Ошибок, перечисленных в п. 1-11, две или больше, или алгоритм сформу­лирован неверно.

0

Максимальный балл

2

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

1. прибавь 1,

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

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

Программа для Утроителя — это последовательность команд.

Сколько есть программ, которые число 1 преобразуют в число 29?

Ответ обоснуйте.

Содержание верного ответа и указания к оцениванию (допускаются иные формулировки ответа, не искажающие его смысла) Обозначим R(Ri) — количество программ, которые преобразуют число 1 в число П. Обозначим T(Ri)Наибольшее кратное трем, не превосходящее П.

Обе команды исполнителя увеличивают исходное число, поэтому общее количе­ство команд в программе не может превосходить 28.

Верны следующие соотношения:

1. Если П не делится на 3, то тогда R(N) = R(T(Ri)),Так как существу­ет единственный способ получения И из T(Ri) — прибавлением единиц.

2. Пусть л делится на 3.

Тогда R(N) — R(N∕3)+R(NL)= R(N∕3)+R(N-3) (еслиW>3).

При N=3 R(N) = 2 (два способа: прибавлением двух единиц или однократным ум­ножением на 3).

Поэтому достаточно постепенно вычислить значения R(N)Для всех чисел, крат­ных трем и не превосходящих 29: сначала вычисляем R(I),Затем R(3), R(6)И т. д. Имеем: ад=1

R(3) = 2 = /?(4)=7?(5)

R(6) = R(2)+R(3) =1+2 = 3= R(I)=R(Z)

R(9) = R(3)+R(6) =2+3 =5 = R( 10)=Λ( 11)

/?(12) = Λ(4)+Λ(9) = 2+5 = 7 = R( 13)=R( 14)

R( 15) = R(5)+R( 12) =2+7 =9 = R( 16)=R( 17)

R( 18) = R(6)+R( 15) = 3+9 = 12 = R( 19)=/?(20)

Я(21) = Λ(7)+Λ(18) = 3+12 = 15 = R(22)=R(23)

R(24) = 7?(8)+/?(21) = 3+15=18 = R(25)=R(26)_________________________________

Λ(27) = ∕e(9)+tf(24) = 5 + 18 = 23 = Λ(28)=Λ(29)

Ответ: 23

Другая форма решения

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, 29 (то есть

Для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число П, будем обозначать через R(Ri).Число 1 у нас уже есть, значит, его можно получить с помощью “пустой” программы. Любая непустая программа увеличит исходное число, т. е. даст число, больше 1. Значит, /?(1) = 1. Для каждого следующего числа рассмотрим, из ка­кого числа оно может быть получено за одну команду исполнителя. Если число не де­лится на три, то оно может быть получено только из предыдущего с помощью коман­ды Прибавь 1. Значит, количество искомых программ для такого числа равно количе­ству программ для предыдущего числа: R(ι) = R(IV).Если число на 3 делится, то ва­риантов последней команды два: Прибавь 1 И Умножь на 3, Тогда R(I) = R(IV) + R(I∕3′).Заполним соответствующую таблицу по приведенным формулам слева напра­во:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1

1

2

2

2

3

3

3

5

5

5

7

7

7

9

16

17

18

19

20

21

22

23

24

25

26

27

28

29

9

9

12

12 ‘

12

15

15

15

18

18

18

23

23

23

При ЭТОМ 5 опустить

Шейки, относящиеся к числам, которые не делятся на 3, можно в решении и за исключением первого и последнего чисел):

1

3

6

9

12

15

18

21

24

27

30

31

1

2

3

5

7

9

12

15

18

23

28

28

Указания по оцениванию

Баллы

Правильное указание количества возможных программ со строгим до­казательством правильности (одним из приведенных выше способов или любым другим).

3

Два балла ставятся в одном из двух случаев:

1. Правильное указание количества возможных программ, основанное на верных рассуждениях, но доказательст­во правильности неполно. В частности, оценка в 2 бал­ла выставляется в случае, если просто перечислены все правильные программы и не доказано отсутствие дру­гих программ, кроме приведенных.

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

2

Представленное решение обладает одним из свойств

1. Указано, что нужно рассматривать значения П, меньшие, чем 29, и приведены правильные рекуррентные соотношения (см. вы­ше), возможно, неполные.

2. Правильно выписаны и обоснованы значения R(Ri)Для небольших П.

3. Правильно написан ответ, но нет его обоснования.

1

Не выполнено ни одно из перечисленных выше условий

0

Максимальный балл

3

подпись: c4В командных олимпиадах по программированию для решения предлагается не больше 11 задач. Команда может решать предложенные задачи в любом порядке. Подготовленные решения команда посылает в единую проверяющую систему соревнований. Вам предла­гается написать эффективную, в том числе по используемой памяти, программу, которая будет статистически обрабатывать пришедшие запросы, чтобы определить наиболее по­пулярные задачи. Следует учитывать, что количество запросов в списке может быть очень велико, так как многие соревнования проходят с использованием Интернет.

Перед текстом программы кратко опишите используемый вами алгоритм решения задачи. На вход программе в первой строке подаётся количество пришедших запросов N. В каждой из последующих N строк записано название задачи в виде текстовой строки. Длина строки не превосходит 100 символов, название может содержать буквы, цифры, пробелы и знаки препинания.

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

6

А+В

Крестики-Нолики

Прямоугольник

Простой делитель

А+В

Простой делитель

Программа должна вывести список из трёх наиболее популярных задач с указанием количества запросов по ним. Если в запросах упоминаются менее трех задач, то выве­дите информацию об имеющихся задачах. Если несколько задач имеют ту же частоту встречаемости, что и третья по частоте встречаемости задача, их тоже нужно вывести. Пример выходных данных для приведённого выше примера входных данных: А+В 2

Простой делитель 2

Крестики-Нолики 1

Прямоугольник 1

Содержание верного ответа и указания по оцениванию

_____ (допускаются иные формулировки ответа, не искажающие его смысла)_______ Программа читает все входные данные один раз, не запоминая их в массиве, размер которого равен N, а составляя только список встретившихся задач и количества за­просов по каждой из них. Во время чтения данных об очередной задаче просматри­вается список ранее сохраненных задач; если она уже есть в списке, то количество запросов по ней увеличивается на 1, иначе задача добавляется в массив упомянутых в запросах задач (при корректных данных он не может быть больше 11). После окончания ввода производится сортировка массивов задач и количества запросов, отданных за них, в порядке убывания количества запросов, затем выводится список из трёх первых задач с указанием частоты встречаемости (или весь список, если его длина меньше трёх). Вместо сортировки можно применить и алгоритм поиска трёх максимальных элементов в массиве. Затем выводятся задачи, частота встречаемости которых не ниже, чем у третьей задачи. Баллы начисляются только за программу, которая решает задачу хотя бы для одного частного случая. Ниже приведены при­меры решения задания на Алгоритмическом языке, а также на языках Паскаль и Бейсик. Допускаются решения, записанные на других языках программирования. При оценивании решений на других языках программирования необходимо учиты­вать особенности этих языков программирования. Так, на языке C++ при считыва­нии строковой переменной будет считано не все название задачи, а только его пер­вое слово, поэтому следует использовать функцию getline (cin, s), аналогичная проблема возникает и в языке Си.

Var N, Num, i, j, t: integer;

Count: array[l..ll] of integer;

S: string;

Names: array[l..ll] of string;

Begin

Num:=0; {Число различных задач в списке запросов} ReadLn(N); {Считываем количество запросов} for i:=l to N do begin

ReadLn(s); {считали очередную задачу}

{Осуществляем ее поиск в списке уже встретившихся} j :=1;

While (j<=Num) and (s<>Names [ j ] ) do j.∙=j + l;

{Если она найдена}

If j<=Num then {Увеличиваем счетчик числа запросов}

Count[j]:=Count[ j ] +1

Else begin {Иначе добавляем задачу в конец списка}

Names[j]:=s;

Count[j]:=1;

Num:=Num+1 end end;

{Сортируем массивы Names и Count в порядке убывания значений массива Count}

For i:=Num downto 2 do

For j:=2 to i do if Count[j-l]

T:=Count[j]; Count[j]:=Count[j-1]; Count[j-1]:=t;

S:=Names[j]; Names[j]:=Names[j-l]; Names[j-l]:=s; end;

If Num >= 3 then j := 3 else j := Num;

I := 1;

While (i <= Num) and (Count[i] >= Count[j]) do begin

WriteLn(Names[i], ‘,, Count[i]);

I := i + 1;

End end.

ЛиттабNames[1:11] | названия задач ЦелтабCount[1:11] | счетчики числа запросов по каждой за­даче ЦелI, j, t ЛитS

I 1. Чтение списка запросов

I 1.1. Инициализация количества запросов и счетчика задач

Num:=0 !Число различных задач в списке запросов

ВводN I Считываем количество запросов

I 1.2. Цикл чтения

Нц дляI От1 ДоN ВводS I Считали очередную задачу

I Осуществляем ее поиск в списке уже встретив­шихся

*j:=l

Нц Пока(j<=Num) и (s<>Names[j])

J:=j+l

КЦ

I

Обрабатываем очередную задачу

Если j<=Num ∣

Если задача найдена в списке,

То I

Увеличиваем счетчик числа запросов

Count[j]:=Count[j]+l

ИначеI Добавляем задачу в конец списка

Names[j]:=S

Count[j]:=1 Num:=Num+1 все Кц

I 2. Совместно сортируем массивы Names и Count

I в порядке убывания значений массива Count

Нц дляI ОтNum До2 Шаг-1 Нц дляJ от 2 ДоI ЕслиCount[j-1] кц

Кц

I 3. Вывод задач-«призеров»

I 3.1. Определение порога для количества запросов по за­

Даче

I Порог равен Count[j]

ЕслиNum >= 3 ТоJ :=3 ИначеJ := Num; Все I 3.2. Цикл вывода

I := 1;

Нц Пока(i <= Num) и (Count[i] >= Count[j]) Вывод Нс, Names[i], ,’, Count[i] i := i+ 1

Кц KOH

DIM N, Num, i, j, t AS INTEGER DIM Count(Il) AS INTEGER DIM s AS STRING DIM Names(Il) AS STRING

REM Число различных задач в списке запросов Num = О

REM Считываем количество запросов INPUT N

FOR i = 1 ТО N

REM Считываем очередную задачу INPUT s

REM Осуществляем ее поиск в списке уже встретившихся j = 1 WHILE j <= Num AND s <> Names(j) j = j + 1 WEND IF j <= Num THEN

REM Если она найдена, увеличиваем счетчик числа запросов Count (j) = Count (j)+l

ELSE

REM Иначе добавляем задачу в конец списка

Names(j) = s: Count(j) = 1

Num = Num + 1

ENDIF

NEXT i

REM Сортируем массивы Names и Count

REM в порядке убывания значений массива Count FOR i = Num TO 2 Step -1

FOR j =2 TO i

IF Count (j-l) < Count(j) THEN t = Count (j) Count (j) = Count (j-l) Count (j - 1)=t s = Names (j) Names (j) = Names (j-l) Names (j - 1)=s

END IF

NEXT j

NEXT i

REM определение порога для количества появлений REM задач из списка вывода; порог равен Count (j) IF Num >= 3 THEN j = 3

ELSE

J = Num END IF i = 1 REM Вывод наиболее популярных задач WHILE i <= Num AND CountXi) >= Count (j) PRINT Names(i), Count (i) i = i + 1

WEND

Указания по оцениванию

Баллы

Программа работает для любых входных данных произвольного размера и находит ответ, не сохраняя входные данные в массиве, размер которого соответствует числу N (количеству запросов). Про­грамма просматривает входные данные один раз, сохраняя в массиве размером 11 данные о количестве решений, поданных для каждой из встретившихся в списке задач (и учитывает, что в списке их может быть и меньше И). Допускается наличие в тексте про­граммы одной синтаксической ошибки: пропущен или неверно ука­зан знак пунктуации, неверно написано или пропущено зарезерви­рованное слово языка программирования, не описана или неверно описана переменная, применяется операция, недопустимая для со­ответствующего типа данных (если одна и та же ошибка встречает­ся несколько раз, то это считается за одну ошибку).

4

Программа работает верно, но входные данные запоминаются в массиве, размер которого соответствует числу N. Этот массив, возможно, потом сортируется. Допускается наличие от одной до трех синтаксических ошибок. Возможно, в принципиально верно организованном вводе данных есть одна ошибка (например, исполь­зование read вместо readln в Паскале или неверное считывание строки в C++). Три балла также выставляется, если в эффективной программе, удовлетворяющей критериям выставления 4 баллов, есть одна ошибка, в результате которой программа работает невер­но на некоторых наборах нетипичных входных данных (например, все запросы относятся к одной и той же задаче).

3

Программа работает в целом верно, эффективно или нет, но в реализации алгоритма содержится до двух ошибок (неверная ини­циализация счётчиков — хотя в предложенных выше решениях об­нулять их не требуется; возможно, программа неверно работает, ес­ли в списке упомянуто меньше 11 задач, выход за границу массива, допущена ошибка в принципиально верно организованной сорти­ровке или алгоритме поиска минимальных элементов, используется знак “<” вместо “or” вместо “and” и т. п.). Возможно, некор­

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

2

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

1

Задание не выполнено или выполнено неверно.

0

Максимальный балл

4

[I] Здесь и далее пометка ОС означает, что задачи взяты из открытого сегмента федеральной базы тестовых заданий (Www. fipi. ru).

Writein (max) ;__________________________

__________________________________ На Языке Бейсик__________________________________ MAX = 5 FOR I = 1 TO N IF A(I)>0 AND A(I) MOD 5=0 AND A(I)>MAX THEN MAX = A(I) ENDIF NEXT I PRINT MAX

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

Ответ:.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *