Задание С4

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

Критерии оце­ни­ва­ния вы­пол­не­ния задания Баллы
Программа пра­виль­но ра­бо­та­ет для любых вход­ных дан­ных про­из­воль­но­го размера. Ис­поль­зу­е­мая па­мять не за­ви­сит от ко­ли­че­ства про­чи­тан­ных чисел, а время ра­бо­ты про­пор­ци­о­наль­но этому количеству. До­пус­ка­ет­ся на­ли­чие в тек­сте про­грам­мы до трех син­так­си­че­ских оши­бок од­но­го из сле­ду­ю­щих видов: 1) про­пу­щен или не­вер­но ука­зан знак пунктуации; 2) не­вер­но на­пи­са­но или про­пу­ще­но за­ре­зер­ви­ро­ван­ное слово языка программирования; 3) не опи­са­на или не­вер­но опи­са­на переменная; 4) при­ме­ня­ет­ся операция, не­до­пу­сти­мая для со­от­вет­ству­ю­ще­го типа данных. Если одна и та же ошиб­ка встре­ча­ет­ся не­сколь­ко раз, это счи­та­ет­ся за одну ошибку.
Не вы­пол­не­ны условия, поз­во­ля­ю­щие по­ста­вить 4 балла. Про­грам­ма в целом ра­бо­та­ет пра­виль­но для любых вход­ных дан­ных про­из­воль­но­го размера. Время ра­бо­ты про­пор­ци­о­наль­но ко­ли­че­ству введённых чисел, пра­виль­но указано, какие ве­ли­чи­ны долж­ны вы­чис­лять­ся по ходу чте­ния эле­мен­тов по­сле­до­ва­тель­но­сти чисел. Ко­ли­че­ство син­так­си­че­ских оши­бок (описок) ука­зан­ных выше видов — не более пяти. Ис­поль­зу­е­мая память, возможно, за­ви­сит от ко­ли­че­ства про­чи­тан­ных чисел (например, вход­ные дан­ные за­по­ми­на­ют­ся в массиве, кон­тей­не­ре STL в C++ или дру­гой ана­ло­гич­ной струк­ту­ре данных). До­пус­ка­ет­ся ошиб­ка при вводе данных, не­вер­ный или не­пол­ный вывод ре­зуль­та­тов или не­вер­ная ра­бо­та про­грам­мы в «экзотических» ситуациях. Кроме того, до­пус­ка­ет­ся на­ли­чие одной ошибки, при­над­ле­жа­щей к од­но­му из сле­ду­ю­щих видов ошибок: 1) ошиб­ка при ини­ци­а­ли­за­ции максимумов; 2) не­вер­но об­ра­ба­ты­ва­ет­ся ситуация, когда один или не­сколь­ко мак­си­му­мов не опре­де­ле­ны (все или все, кроме одного, эле­мен­ты ис­ход­ных дан­ных имеют оди­на­ко­вую чётность); 3) до­пу­щен выход за гра­ни­цу массива; 4) ис­поль­зу­ет­ся знак < вме­сто <=, or вме­сто and и т. п.
Не вы­пол­не­ны условия, поз­во­ля­ю­щие по­ста­вить 3 или 4 балла. Про­грам­ма ра­бо­та­ет в целом верно, эф­фек­тив­но или нет, но в ре­а­ли­за­ции ал­го­рит­ма есть до трёх со­дер­жа­тель­ных ошибок, до­пу­сти­мые виды оши­бок пе­ре­чис­ле­ны в кри­те­ри­ях на 3 балла. Ко­ли­че­ство син­так­си­че­ских «описок» не долж­но быть более девяти. Программа может быть не­эф­фек­тив­на по времени. Например, все числа за­по­ми­на­ют­ся в массиве, и пе­ре­би­ра­ют­ся все воз­мож­ные пары эле­мен­тов последовательности: max := 0; for i := 1 to N - 1 do begin for j := i + 1 to N do begin if ((a[i]+a[j]) mod 2 = 0) and (a[i]+a[j] > max) then max := a[i]+a[j]; end end;
Не вы­пол­не­ны условия, поз­во­ля­ю­щие по­ста­вить 2, 3 или 4 балла. Из опи­са­ния ал­го­рит­ма или общей струк­ту­ры про­грам­мы видно, что эк­за­ме­ну­е­мый в целом пра­виль­но пред­став­ля­ет путь ре­ше­ния за­да­чи не­за­ви­си­мо от эффективности. При этом про­грам­ма может от­сут­ство­вать или быть пред­став­лен­ной от­дель­ны­ми фрагментами, без огра­ни­че­ний на ко­ли­че­ство ошибок.
Не вы­пол­не­ны критерии, поз­во­ля­ю­щие по­ста­вить 1, 2, 3 или 4 балла
Максимальный балл

 

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

1) R — сумма двух раз­лич­ных пе­ре­дан­ных эле­мен­тов по­сле­до­ва­тель­но­сти («раз­лич­ные» озна­ча­ет, что нель­зя про­сто удва­и­вать пе­ре­дан­ные числа, суммы раз­лич­ных, но рав­ных по ве­ли­чи­не эле­мен­тов до­пус­ка­ют­ся);

2) R — чётное число. В ре­зуль­та­те помех при пе­ре­да­че как сами числа, так и кон­троль­ное зна­че­ние могут быть ис­ка­же­ны.

На­пи­ши­те про­грам­му (ука­жи­те ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Free Pascal 2.6.4), ко­то­рая будет про­ве­рять пра­виль­ность кон­троль­но­го зна­че­ния. Про­грам­ма долж­на на­пе­ча­тать отчёт по сле­ду­ю­щей форме:

Вы­чис­лен­ное кон­троль­ное зна­че­ние:

Кон­троль прой­ден (или Кон­троль не прой­ден)

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

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

На вход про­грам­ме в пер­вой стро­ке подаётся ко­ли­че­ство чисел N (N > 2). В каж­дой из по­сле­ду­ю­щих N строк за­пи­са­но одно на­ту­раль­ное число, не пре­вы­ша­ю­щее 1000. В по­след­ней стро­ке за­пи­са­но кон­троль­ное зна­че­ние. При­мер вход­ных дан­ных:

При­мер вы­ход­ных дан­ных для при­ведённого выше при­ме­ра вход­ных дан­ных: Вы­чис­лен­ное кон­троль­ное зна­че­ние: 184.

 


Пояснение.

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

М01 — самое боль­шое чётное число;

return false">ссылка скрыта

М02 — вто­рое по ве­ли­чи­не чётное число;

M11 — самое боль­шое нечётное число.

М12 — вто­рое по ве­ли­чи­не не­чет­ное число;

После того как все дан­ные про­чи­та­ны, ис­ко­мое кон­троль­ное зна­че­ние вы­чис­ля­ет­ся, как боль­шая из сумм M01+M02 и M11+M12.

По­сколь­ку N > 2, обя­за­тель­но найдётся хотя бы одна пара чисел оди­на­ко­вой чет­но­сти и кон­троль­ное зна­че­ние все­гда будет вы­чис­ле­но, но надо от­дель­но об­ра­бо­тать слу­чаи, когда среди дан­ных нет пары чётных или пары нечётных эле­мен­тов. Эту про­вер­ку сле­ду­ет де­лать очень ак­ку­рат­но. На­при­мер, сле­ду­ю­щий очень по­хо­жий на пра­виль­ный фраг­мент на самом деле оши­бо­чен:

if (M12=0) or (M01+M02 > M11+M12) then res:=M01+M02 else res := M11+M12

Этот фраг­мент даст не­вер­ный ре­зуль­тат, на­при­мер, при M01=100, M02=0, M11=25, M12=13.

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

 

При­мер пра­виль­ной и эф­фек­тив­ной про­грам­мы на языке Пас­каль

var M01,M02,M11,M12,res,i,N,x: longint;

begin

M01 := 0; M02:=0;

M11 := 0; M12:=0;

readln(N);

for i := 1 to N do

begin

readln(x);

if x mod 2 = 0 then begin

if x > M01 then begin

M02:=M01; M01:=x

end

else if x > M02 then M02:=x;

end

else begin

if x > M11 then begin

M12:=M11; M11:=x

end

else if x > M12 then M12:=x;

end

end;

if M02=0 then res:=M11+M12

else if M12=0 then res:=M01+M02

else if M01+M02 > M11+M12 then res := M01+M02

else res := M11+M12

writeln('Вы­чис­лен­ное кон­троль­ное зна­че­ние: ',res);

readln(R);

if R = res

then writeln('Кон­троль прой­ден')

else writeln('Кон­троль не прой­ден');

end.

 

При­мер пра­виль­ной и эф­фек­тив­ной про­грам­мы на ал­го­рит­ми­че­ском языке

алг

нач

цел N | ко­ли­че­ство чисел на входе

цел x | ис­ход­ные дан­ные

цел m01=0

цел m02=0

цел m11=0

цел m12=0

цел R | вве­ден­ное кон­троль­ное зна­че­ние

цел res | вы­чис­лен­ное кон­троль­ное зна­че­ние

ввод N

нц N раз

ввод x

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

выбор

при x > m01:

m02:=m01; m01:=x

при x > m02:

m02:=x

все

иначе

выбор

при x > m11:

m12:=m11; m11:=x

при x > m12:

m12:=x

все

кц

выбор

при m02=0: res:=m11+m12

при m12=0: res:=m01+m02

при m01+m02 > m11+m12: res:=m01+m02

иначе res:=m11+m12

все

вывод нс, 'Вы­чис­лен­ное кон­троль­ное зна­че­ние: ',res

ввод R

если R=res

то вывод нс, "Кон­троль прой­ден"

иначе вывод нс, "Кон­троль не прой­ден"

все

кон


1.Для ко­ди­ро­ва­ния не­ко­то­рой по­сле­до­ва­тель­но­сти, со­сто­я­щей из букв К, Л, М, Н, ре­ши­ли ис­поль­зо­вать не­рав­но­мер­ный дво­ич­ный код, удо­вле­тво­ря­ю­щий усло­вию Фано. Для буквы Н ис­поль­зо­ва­ли ко­до­вое слово 0, для буквы К — ко­до­вое слово 110. Ка­ко­ва наи­мень­шая воз­мож­ная сум­мар­ная длина всех четырёх ко­до­вых слов?

 

1) 7

2) 8

3) 9

4) 10

 

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

2.Для таб­ли­цы ис­тин­но­сти функ­ции F из­вест­ны зна­че­ния толь­ко не­ко­то­рых ячеек.

 

x1 x2 x3 x4 x5 x6 x7 F
         
         
         

 

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

 

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

2) x1 ∨ x2 ∨ x3 ∨ x4 ∨ x5 ∨ x6 ∨ x7

3) x1 ∧ x2 ∧ x3 ∧ x4 ∧ x5 ∧ x6 ∧ x7

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

3.Для груп­по­вых опе­ра­ций с фай­ла­ми ис­поль­зу­ют­ся маски имён фай­лов. Маска пред­став­ля­ет собой по­сле­до­ва­тель­ность букв, цифр и про­чих до­пу­сти­мых в име­нах фай­лов сим­во­лов, в ко­то­рой также могут встре­чать­ся сим­во­лы.

Сим­вол «?» (во­про­си­тель­ный знак) озна­ча­ет ровно один про­из­воль­ный сим­вол.

Сим­вол «*» (звёздоч­ка) озна­ча­ет любую по­сле­до­ва­тель­ность сим­во­лов про­из­воль­ной длины, в том числе «*» может за­да­вать и пу­стую по­сле­до­ва­тель­ность.

 

В ка­та­ло­ге на­хо­дит­ся 6 фай­лов:

 

chifera.dat

chifera.doc

ferrum.doc

deLafer.doc

oferta.doc

tokoferol.docx

 

Опре­де­ли­те, по какой из масок из ка­та­ло­га будет ото­бра­но ровно 2 файла.

 

1) *fer?*.d*

2) ?*fer*.doc

3) *?fer*?.doс*

4) ?*fer?*.doc

4.Ука­жи­те наи­мень­шее четырёхзнач­ное вось­ме­рич­ное число, дво­ич­ная за­пись ко­то­ро­го со­дер­жит ровно 5 нулей. В от­ве­те за­пи­ши­те толь­ко само вось­ме­рич­ное число, ос­но­ва­ние си­сте­мы счис­ле­ния ука­зы­вать не нужно.

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

 

  A B C D E F
A    
B        
C        
D  
E        
F      

 

Опре­де­ли­те длину крат­чай­ше­го пути между пунк­та­ми A и F, про­хо­дя­ще­го через пункт E и не про­хо­дя­ще­го через пункт B. Пе­ре­дви­гать­ся можно толь­ко по ука­зан­ным до­ро­гам.

6.Ав­то­мат по­лу­ча­ет на вход трёхзнач­ное число. По этому числу стро­ит­ся новое число по сле­ду­ю­щим пра­ви­лам.

 

1. Скла­ды­ва­ют­ся пер­вая и вто­рая, а также вто­рая и тре­тья цифры ис­ход­но­го числа.

2. По­лу­чен­ные два числа за­пи­сы­ва­ют­ся друг за дру­гом в по­ряд­ке воз­рас­та­ния (без раз­де­ли­те­лей).

 

При­мер. Ис­ход­ное число: 348. Суммы: 3+4 = 7; 4+8 = 12. Ре­зуль­тат: 712.

Ука­жи­те наи­мень­шее число, в ре­зуль­та­те об­ра­бот­ки ко­то­ро­го ав­то­мат вы­даст число 1115.

7. Дан фраг­мент элек­трон­ной таб­ли­цы. Из ячей­ки B2 в одну из ячеек диа­па­зо­на A1:A4 была ско­пи­ро­ва­на фор­му­ла. При ко­пи­ро­ва­нии ад­ре­са ячеек в фор­му­ле ав­то­ма­ти­че­ски из­ме­ни­лись, и чис­ло­вое зна­че­ние в этой ячей­ке стало рав­ным 8. В какую ячей­ку была ско­пи­ро­ва­на фор­му­ла? В от­ве­те ука­жи­те толь­ко одно число — номер стро­ки, в ко­то­рой рас­по­ло­же­на ячей­ка.

 

  A B C D E
 
  = D$3 + $C2
 
 

 

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

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

 

Пас­каль
var n, s: integer; begin n := 1; s := 0; while n <= 100 do begin s := s + 30; n := n * 3 end; write(s) end.

 

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

10.Сколь­ко слов длины 6, на­чи­на­ю­щих­ся с со­глас­ной буквы, можно со­ста­вить из букв Г, О, Д? Каж­дая буква может вхо­дить в слово не­сколь­ко раз. Слова не обя­за­тель­но долж­ны быть осмыс­лен­ны­ми сло­ва­ми рус­ско­го языка.

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

 

Пас­каль
function F(n: integer): integer; begin if n > 2 then F := F(n - 1) + F(n - 2) else F := n; end;

 

Чему будет равно зна­че­ние, вы­чис­лен­ное ал­го­рит­мом при вы­пол­не­нии вы­зо­ва F(5)?

12.В тер­ми­но­ло­гии сетей TCP/IP маска сети — это дво­ич­ное число, мень­шее 232; в маске сна­ча­ла (в стар­ших раз­ря­дах) стоят еди­ни­цы, а затем с не­ко­то­ро­го места нули. Маска опре­де­ля­ет, какая часть IP-ад­ре­са узла сети от­но­сит­ся к ад­ре­су сети, а какая — к ад­ре­су са­мо­го узла в этой сети. Обыч­но маска за­пи­сы­ва­ет­ся по тем же пра­ви­лам, что и IP-адрес — в виде четырёх байт, причём каж­дый байт за­пи­сы­ва­ет­ся в виде де­ся­тич­но­го числа. Адрес сети по­лу­ча­ет­ся в ре­зуль­та­те при­ме­не­ния по­раз­ряд­ной конъ­юнк­ции к за­дан­но­му IP-ад­ре­су узла и маске. На­при­мер, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32. 240.0.

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

13.При ре­ги­стра­ции в ком­пью­тер­ной си­сте­ме каж­до­му поль­зо­ва­те­лю выдаётся па­роль, со­сто­я­щий из 12 сим­во­лов и со­дер­жа­щий толь­ко сим­во­лы А, Б, В, Г, Д, Е. Каж­дый такой па­роль в ком­пью­тер­ной про­грам­ме за­пи­сы­ва­ет­ся ми­ни­маль­но воз­мож­ным и оди­на­ко­вым целым ко­ли­че­ством байт, при этом ис­поль­зу­ют по­сим­воль­ное ко­ди­ро­ва­ние и все сим­во­лы ко­ди­ру­ют­ся оди­на­ко­вым и ми­ни­маль­но воз­мож­ным ко­ли­че­ством бит. Опре­де­ли­те, сколь­ко байт не­об­хо­ди­мо для хра­не­ния 20 па­ро­лей.

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

Цикл

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

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

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

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

 

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

 

НА­ЧА­ЛО

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

ПО­ВТО­РИ … РАЗ

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

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

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

сме­стить­ся на (−25, −12)

КОНЕЦ

 

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

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

 

16.Ре­ши­те урав­не­ние 121x + 110 = 1019.

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

 

За­прос Най­де­но стра­ниц, тыс.
Но­во­си­бирск & (Крас­но­ярск & Ха­ба­ровск | Но­рильск)
Но­во­си­бирск & Но­рильск
Но­во­си­бирск & Крас­но­ярск & Ха­ба­ровск & Но­рильск

 

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

 

Но­во­си­бирск & Крас­но­ярск & Ха­ба­ровск?

 

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

18.Эле­мен­та­ми мно­жеств А, P, Q яв­ля­ют­ся на­ту­раль­ные числа, причём P = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, Q = {3, 6, 9, 12, 15, 18, 21, 24, 27, 30}. Из­вест­но, что вы­ра­же­ние

 

( (x ∈ A) → (x ∈ P) ) ∧ ( (x ∈ Q) → (x ∈ A) )

 

ис­тин­но (то есть при­ни­ма­ет зна­че­ние 1) при любом зна­че­нии пе­ре­мен­ной х. Опре­де­ли­те наи­боль­шее воз­мож­ное ко­ли­че­ство эле­мен­тов в мно­же­стве A.

19.В про­грам­ме опи­сан од­но­мер­ный це­ло­чис­лен­ный мас­сив с ин­дек­са­ми от 0 до 10. Ниже пред­став­лен за­пи­сан­ный на раз­ных язы­ках про­грам­ми­ро­ва­ния фраг­мент одной и той же про­грам­мы, об­ра­ба­ты­ва­ю­щей дан­ный мас­сив.

 

Пас­каль
s:=27; n:=10; for i:=0 to n-1 do begin s:=s+A[i]-A[i+1] end;

 

Из­вест­но, что в на­ча­ле вы­пол­не­ния этого фраг­мен­та в мас­си­ве на­хо­ди­лась убы­ва­ю­щая по­сле­до­ва­тель­ность чисел, то есть A[0] > A[1] >…> A[10]. Какое наи­мень­шее зна­че­ние может иметь пе­ре­мен­ная s после вы­пол­не­ния дан­ной про­грам­мы?

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

 

Пас­каль
var x, a, b: integer; begin readln(x); a := 0; b := 1; while x > 0 do begin a := a+1; b := b*(x mod 100); x := x div 100; end; writeln(a); write(b); end.

 

21.При каком наи­мень­шем зна­че­нии вход­ной пе­ре­мен­ной k про­грам­ма выдаёт тот же ответ, что и при вход­ном зна­че­нии k = 64? Для Ва­ше­го удоб­ства про­грам­ма при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.

 

Пас­каль
var k, i : longint; function f(n: longint) : longint; begin f := n * n - 20 end; begin readln(k); i := 12; while (i>0) and (f(i)> k) do i := i-1; writeln(i) end.

 

22.Ис­пол­ни­тель А22 пре­об­ра­зу­ет целое число, за­пи­сан­ное на экра­не. У ис­пол­ни­те­ля три ко­ман­ды, каж­дой ко­ман­де при­сво­ен номер:

1) При­бавь 1

2) При­бавь 2

3) При­бавь преды­ду­щее

Пер­вая ко­ман­да уве­ли­чи­ва­ет число на экра­не на 1, вто­рая уве­ли­чи­ва­ет это число на 2, тре­тья при­бав­ля­ет к числу на экра­не число, мень­шее на 1 (к числу 3 при­бав­ля­ет­ся 2, к числу 11 при­бав­ля­ет­ся 10 и т. д.). Про­грам­ма для ис­пол­ни­те­ля А22 — это по­сле­до­ва­тель­ность ко­манд. Сколь­ко су­ще­ству­ет про­грамм, ко­то­рые число 2 пре­об­ра­зу­ют в число 9?

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

 

(x1 → x2) ∧ (x2 → x3) ∧ (x3 → x4) ∧ (x4 → x5) ∧ (x5→ x6) = 1

(y1 → y2) ∧ (y2 → y3) ∧ (y3 → y4) ∧ (y4 → y5) ∧ (y5 → y6) = 1

(z1 → z2) ∧ (z2→ z3) ∧ (z3 → z4) ∧ (z4→ z5) ∧ (z5 → z6) = 1

x6 ∧ y6 ∧ z6 = 0

 

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

24.Для за­дан­но­го по­ло­жи­тель­но­го ве­ще­ствен­но­го числа A не­об­хо­ди­мо найти ми­ни­маль­ное целое число K, при ко­то­ром вы­пол­ня­ет­ся не­ра­вен­ство Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал такую про­грам­му.

Пас­каль
var a, s: real; k: integer; begin read(a); k := 0; s := 1; while s>=a do begin k := k + 1; s := s + 1.0/k; end; write(k); end.

 

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

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

2. Сколь­ко су­ще­ству­ет на­ту­раль­ных чисел А, при вводе ко­то­рых про­грам­ма вы­ве­дет ответ 1?

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или не­сколь­ко).

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

25. Дан мас­сив, со­дер­жа­щий не­от­ри­ца­тель­ные целые числа. Не­об­хо­ди­мо вы­ве­сти:

- мак­си­маль­ный чётный эле­мент, если ко­ли­че­ство чётных эле­мен­тов не мень­ше, чем нечётных;

- мак­си­маль­ный нечётный эле­мент, если ко­ли­че­ство нечётных эле­мен­тов боль­ше, чем чётных.

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

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

 

Пас­каль
const N=2000; var a: array [1..N] of integer; i, j, k, m: integer; begin for i:=1 to N do readln(a[i]); … end.

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

 

26.Два иг­ро­ка, Петя и Ваня, иг­ра­ют в сле­ду­ю­щую игру. Перед иг­ро­ка­ми лежит куча кам­ней. Иг­ро­ки ходят по оче­ре­ди, пер­вый ход де­ла­ет Петя. За один ход игрок может: до­ба­вить в кучу один ка­мень (дей­ствие А) или утро­ить ко­ли­че­ство кам­ней в куче, а затем убрать из кучи один ка­мень (дей­ствие Б). На­при­мер, имея кучу из 10 кам­ней, за один ход можно по­лу­чить кучу из 11 или 29 кам­ней. У каж­до­го иг­ро­ка, чтобы де­лать ходы, есть не­огра­ни­чен­ное ко­ли­че­ство кам­ней. Игра за­вер­ша­ет­ся в тот мо­мент, когда ко­ли­че­ство кам­ней в куче ста­но­вит­ся более 32. По­бе­ди­те­лем счи­та­ет­ся игрок, сде­лав­ший по­след­ний ход, то есть пер­вым по­лу­чив­ший кучу, в ко­то­рой будет 33 или боль­ше кам­ней. В на­чаль­ный мо­мент в куче было S кам­ней, 1 ≤ S ≤ 32.

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

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

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

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

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

3. Ука­жи­те такое зна­че­ние S, при ко­то­ром

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

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

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

27.По ка­на­лу связи пе­ре­да­ют­ся по­ло­жи­тель­ные целые числа, не пре­вы­ша­ю­щие 1000, — ре­зуль­та­ты из­ме­ре­ний, по­лу­чен­ных в ходе экс­пе­ри­мен­та (ко­ли­че­ство из­ме­ре­ний N из­вест­но за­ра­нее, га­ран­ти­ру­ет­ся, что N > 2). После окон­ча­ния экс­пе­ри­мен­та пе­ре­даётся кон­троль­ное зна­че­ние — наи­боль­шее число R, удо­вле­тво­ря­ю­щее сле­ду­ю­щим усло­ви­ям:

1) R — сумма двух раз­лич­ных пе­ре­дан­ных эле­мен­тов по­сле­до­ва­тель­но­сти («раз­лич­ные» озна­ча­ет, что нель­зя про­сто удва­и­вать пе­ре­дан­ные числа, суммы раз­лич­ных, но рав­ных по ве­ли­чи­не эле­мен­тов до­пус­ка­ют­ся);

2) R — чётное число. В ре­зуль­та­те помех при пе­ре­да­че как сами числа, так и кон­троль­ное зна­че­ние могут быть ис­ка­же­ны.

На­пи­ши­те про­грам­му (ука­жи­те ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Free Pascal 2.6.4), ко­то­рая будет про­ве­рять пра­виль­ность кон­троль­но­го зна­че­ния. Про­грам­ма долж­на на­пе­ча­тать отчёт по сле­ду­ю­щей форме:

Вы­чис­лен­ное кон­троль­ное зна­че­ние:

Кон­троль прой­ден (или Кон­троль не прой­ден)

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

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

На вход про пре­вы­ша­ет 1 ки­ло­бай­та.

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

На вход про­грам­ме в пер­вой стро­ке подаётся ко­ли­че­ство чисел N (N > 2). В каж­дой из по­сле­ду­ю­щих N строк за­пи­са­но одно на­ту­раль­ное число, не пре­вы­ша­ю­щее 1000. В по­след­ней стро­ке за­пи­са­но кон­троль­ное зна­че­ние. При­мер вход­ных дан­ных:

При­мер вы­ход­ных дан­ных для при­ведённого выше при­ме­ра вход­ных дан­ных: Вы­чис­лен­ное кон­троль­ное зна­че­ние: 184.