Если (справа свободно) и (не снизу свободно) то. Для по­вто­ре­ния по­сле­до­ва­тель­но­сти ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий сле­ду­ю­щий вид:



Вправо

Все

 

Для по­вто­ре­ния по­сле­до­ва­тель­но­сти ко­манд можно ис­поль­зо­вать цикл «пока», име­ю­щий сле­ду­ю­щий вид:

 

нц пока условие

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

кц

 

Например, для дви­же­ния вправо, пока это возможно, можно ис­поль­зо­вать сле­ду­ю­щий алгоритм:

 

нц пока спра­ва сво­бод­но

Вправо

кц

 

Выполните задание.

 

Робот на­хо­дит­ся в пра­вой клет­ке уз­ко­го го­ри­зон­таль­но­го коридора. Ши­ри­на ко­ри­до­ра — одна клетка, длина ко­ри­до­ра может быть произвольной. Воз­мож­ный ва­ри­ант на­чаль­но­го рас­по­ло­же­ния Ро­бо­та приведён на ри­сун­ке (Робот обо­зна­чен бук­вой «Р»):

 

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

20.2

На­пи­ши­те программу, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет ко­ли­че­ство трёхзначных чисел, крат­ных 4. Про­грам­ма по­лу­ча­ет на вход на­ту­раль­ные числа, ко­ли­че­ство введённых чисел неизвестно, по­сле­до­ва­тель­ность чисел за­кан­чи­ва­ет­ся чис­лом 0 (0 — при­знак окон­ча­ния ввода, не вхо­дит в последовательность).

Количество чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти одно число: ко­ли­че­ство трёхзначных чисел, крат­ных 4.

 

Пример ра­бо­ты программы:

 

Входные данные Выходные данные
120 9 365 4 0 1

 

 

Контрольная работа

Тема: Единый государственный экзамен по информатике

Задание 1.Вычислите: 101011102 – 2568 + A16. Ответ запишите в десятичной системе счисления. В ответе запишите только число, основание системы счисления писать не нужно.

Задание 2.Дан фраг­мент таб­ли­цы ис­тин­но­сти вы­ра­же­ния F:

 

x1 x2 x3 x4 x5 x6 F
0 1 0 0 1 1 0
0 0 1 0 0 1 0
0 1 0 1 0 1 0

 

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

 

1) (x1 ∧ x2) ∨ (x3 ∧ x4) ∨ (x5 ∧ x6)

2) (x1 ∧ x3) ∨ (x3 ∧ x5) ∨ (x5 ∧ x1)

3) (x2 ∧ x4) ∨ (x4 ∧ x6) ∨ (x6 ∧ x2)

4) (x1 ∧ x4) ∨ (x2 ∧ x5) ∨ (x3 ∧ x6)

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

 

  A B C D E F
A   1        
B 1   10 7 10  
C   10     8  
D   7     2  
E   10 8 2   5
F         5  

 

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

Задание 4.В некотором каталоге хранился файл Задача5. После того, как в этом каталоге создали подкаталог и переместили в созданный подкаталог файл Задача5, полное имя файла стало Е:\Класс9\Физика\Задачник\Задача5. Каково было полное имя этого файла до перемещения?

 

1) Е:\Физика\Задачник\Задача5

2) Е:\Физика\Задача5

3) Е:\Класс9\Задачник\Задача5

4) Е:\Класс9\Физика\Задача5

Задание 5.Для пе­ре­да­чи дан­ных по ка­на­лу связи ис­поль­зу­ет­ся 5-битовый код. Со­об­ще­ние со­дер­жит толь­ко буквы А, Б и В, ко­то­рые ко­ди­ру­ют­ся сле­ду­ю­щи­ми ко­до­вы­ми словами:

A — 11011, Б — 10000, В — 00111.

При пе­ре­да­че воз­мож­ны помехи. Од­на­ко не­ко­то­рые ошиб­ки можно по­пы­тать­ся исправить. Любые два из этих трёх ко­до­вых слов от­ли­ча­ют­ся друг от друга не менее чем в трёх позициях. По­это­му если при пе­ре­да­че слова про­изо­шла ошиб­ка не более чем в одной позиции, то можно сде­лать обос­но­ван­ное пред­по­ло­же­ние о том, какая буква передавалась. (Говорят, что «код ис­прав­ля­ет одну ошибку».) Например, если по­лу­че­но ко­до­вое слово 10010, считается, что пе­ре­да­ва­лась буква Б. (Отличие от ко­до­во­го слова для Б толь­ко в одной позиции, для осталь­ных ко­до­вых слов от­ли­чий больше.) Если при­ня­тое ко­до­вое слово от­ли­ча­ет­ся от ко­до­вых слов для букв А, Б, В более чем в одной позиции, то считается, что про­изо­шла ошиб­ка (она обо­зна­ча­ет­ся «x»).

Получено сообщение: 01111 10001 11100 11011. Де­ко­ди­руй­те это сообщение.

Задание 6.У исполнителя Троечник две команды, которым присвоены номера:

 

Прибавь 2,

Умножь на 3.

 

Первая из этих команд увеличивает число на экране на 2, а вторая — умножает его на 3. Программа исполнителя Троечник — это последовательность номеров команд. Например, 1211 — это программа

 

Прибавь 2

Умножь на 3

Прибавь 2

Прибавь 2

 

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

 

Запишите программу, которая преобразует число 12 в число 122 и содержит не более 5 команд. Если таких программ более одной, запишите любую из них.

Задание 7.В ячейке Е16 электронной таблицы записана формула. Эту формулу скопировали в ячейки D17 и С18. В соответствии с формулой, полученной в ячейке D17, значение в этой ячейке равно сумме значений в ячейках D31 и С32; в соответствии с формулой, полученной в ячейке С18, значение в этой ячейке равно сумме значений в ячейках D32 и В32.

 

Укажите, какая формула могла быть написана в ячейке Е16.

 

Примечание: знак $ используется для обозначения абсолютной адресации.

 

1) =$D30 + D$32

2) =$D$32 + $В$32

3) =$D$31 + $С$32

4) =Е$32 + $D30

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

 

Бейсик Паскаль
DIM N, S AS INTEGER N = 0 S = 0 WHILE S <= 249 S = S + 24 N = N + 3 WEND PRINT N var n, s: integer; begin n : = 0; s : = 0; while s <= 249 do begin s : = s + 24; n : = n + 3 end; write(n) end.
Си Алгоритмический язык
#include <stdio.h> void main() { int n, s; n = 0; s = 0; while (s <= 249) { s = s + 24; n = n + 3; } printf("%d", n); } алг нач цел n, s n : = 0 s : = 0 нц пока s <= 249 s : = s + 24 n : = n + 3 кц вывод n кон

 

Задание 9.Производится двухканальная (стерео) звукозапись с частотой дискретизации 16 кГц и 32-битным разрешением. Запись длится 12 минут, ее результаты записываются в файл, сжатие данных не производится.

Какое из приведенных ниже чисел наиболее близко к размеру полученного файла, выраженному в мегабайтах?

 

1) 30

2) 60

3) 75

4) 90

Задание 10.Все 5-буквенные слова, составленные из букв Б, К, Ф, Ц, записаны в алфавитном порядке и пронумерованы. Вот начало списка:

1. БББББ

2. ББББК

3. ББББФ

4. ББББЦ

5. БББКБ

……

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

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

F(1) = 3

F(n) = F(n–1) * (n–1), при n >1

Чему равно значение функции F(6)?

В ответе запишите только натуральное число.

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

 

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

Маска: 255.255.248.0

 

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

 

A B C D E F G H
0 102 110 130 135 200 208 210

 

Пример.

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

 

A B C D E F G H
255 167 128 151 157 0 191 201

 

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

Задание 13.При ре­ги­стра­ции в ком­пью­тер­ной си­сте­ме каж­до­му поль­зо­ва­те­лю выдаётся пароль, со­сто­я­щий из 10 сим­во­лов и со­дер­жа­щий толь­ко сим­во­лы из 26-символьного на­бо­ра ла­тин­ско­го алфавита. В базе дан­ных для хра­не­ния све­де­ний о каж­дом поль­зо­ва­те­ле от­ве­де­но оди­на­ко­вое и ми­ни­маль­но воз­мож­ное целое число байт. При этом ис­поль­зу­ют по­сим­воль­ное ко­ди­ро­ва­ние паролей, все сим­во­лы ко­ди­ру­ют оди­на­ко­вым и ми­ни­маль­но воз­мож­ным ко­ли­че­ством бит. Кроме соб­ствен­но пароля, для каж­до­го поль­зо­ва­те­ля в си­сте­ме хра­нят­ся до­пол­ни­тель­ные сведения, для чего вы­де­ле­но целое число байт; это число одно и то же для всех пользователей.

Для хра­не­ния све­де­ний о 10 поль­зо­ва­те­лях по­тре­бо­ва­лось 500 байт. Сколь­ко байт вы­де­ле­но для хра­не­ния до­пол­ни­тель­ных све­де­ний об одном пользователе? В от­ве­те за­пи­ши­те толь­ко целое число — ко­ли­че­ство байт.

Задание 14.Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b – целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с ко­ор­ди­на­та­ми (x, y), в точку с ко­ор­ди­на­та­ми (x+a, y+b). Если числа a, b положительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается, если от­ри­ца­тель­ные — уменьшается.

Например, если Чертёжник на­хо­дит­ся в точке с ко­ор­ди­на­та­ми (1, 1), то ко­ман­да Сместиться на (–2, 4) пе­ре­ме­стит его в точку (–1, 5).

 

Запись

Повтори k раз

Команда1 Команда2 Команда3

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 Команда3 по­вто­рит­ся k раз.

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

Сместиться на (–3, 1)

Повтори 2 раз

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

Конец

Какую един­ствен­ную ко­ман­ду надо вы­пол­нить Чертёжнику, чтобы вер­нуть­ся в ис­ход­ную точку, из ко­то­рой он начал движение?

 

1) Сместиться на (–7,–1)

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

3) Сместиться на (–4,–2)

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

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

Сколько су­ще­ству­ет раз­лич­ных путей из го­ро­да А в город Ф?

Задание 16.Запишите де­ся­тич­ное число 48 в си­сте­ме счис­ле­ния с ос­но­ва­ни­ем 4. Ос­но­ва­ние си­сте­мы счис­ле­ния (нижний ин­декс после числа) пи­сать не нужно.

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

 

Запрос Найдено стра­ниц (в тысячах)
театр & комедия 315
театр & Москва 225
театр & Москва & комедия 110

 

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

 

(Москва | комедия) & театр

 

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

Задание 18.Какое из приведенных названий животных удовлетворяет логическому условию: В слове пять букв /\ Четвертая буква гласная?

 

1) Зебра

2) Слон

3) Кабан

4) Олень

Задание 19.Ниже приведён фраг­мент программы, за­пи­сан­ный на четырёх язы­ках программирования. Мас­сив A одномерный; в про­грам­ме рас­смат­ри­ва­ет­ся его фрагмент, со­от­вет­ству­ю­щий зна­че­ни­ям ин­дек­са от 1 до n.

 

Бейсик Паскаль
n = 10 FOR i = 0 TO n K = A(i) A(K) = 0 NEXT i n:=10; for i:=0 to n do begin K := A[i]; A[K] := 0; end;
Си Алгоритмический язык
n=10; for (i = 0; i <= n; i++){ K = A[i]; A[K] = 0; } n:=10 нц для i от 0 до n K := A[i] A[K] := 0 кц

 

В на­ча­ле вы­пол­не­ния этого фраг­мен­та в мас­си­ве на­хо­ди­лись числа 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, т. е. A[0] = 10, A[1] = 9 и т. д. Сколь­ко эле­мен­тов мас­си­ва после вы­пол­не­ния про­грам­мы будут иметь не­ну­ле­вые значения?

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

 

Бейсик Python
DIM X, A, B AS INTEGER INPUT X A = 0: B = 1 WHILE X > 0 A = A+1 B = B * (X MOD 100) X = X\100 WEND PRINT A PRINT B x = int(input()) a, b = 0, 1 while x > 0: a = a + 1 b = b * x%100 x = x//100 print(a) print(b)
Паскаль Алгоритмический язык
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. алг нач цел x, a, b ввод x a:=0; b:=1 нц пока x > 0 a := a+1 b := b*mod(x,100) x := div(x,100) кц вывод a, нс, b кон

Си

#include <stdio.h>

void main()

{

int x, a, b;

scanf("%d", &x);

a = 0; b = 1;

while (x > 0) {

a = a+1;

b = b * (x%100);

x = x/100;

}

printf("%d\n%d", a, b);

}

 

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

 

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

Function F(x : integer) : integer;

Begin

F:=4*(x-5)*(x+3);

end;

BEGIN

a:= −20; b:=0;

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

for t:=a to b do begin

if (F(t)< R) then begin

M:=t;

R:=F(t);

end;

end;

write(R);

END.

Задание 22.Исполнитель Осень16 преобразует число на экране.

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

1) Прибавить 1;

2) Прибавить 2;

3) Прибавить 4.

Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья — увеличивает на 4.

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

Сколько существует программ, для которых при исходном числе 1 результатом является число 15 и при этом траектория вычислений содержит число 8?

Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 10, 11.

Задание 23.Сколько су­ще­ству­ет раз­лич­ных на­бо­ров зна­че­ний ло­ги­че­ских пе­ре­мен­ных x1, x2, x3, x4, x5,x6, y1, y2, y3, y4, y5, y6, ко­то­рые удо­вле­тво­ря­ют всем пе­ре­чис­лен­ным ниже условиям

 

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

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

x6→y6 = 1

 

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

Задание 24.Дано на­ту­раль­ное число N, не пре­вос­хо­дя­щее 108. Не­об­хо­ди­мо найти и вы­ве­сти число, ко­то­рое по­лу­чит­ся при за­пи­си N спра­ва на­ле­во и уда­ле­нии всех единиц. Ве­ду­щие нули вы­во­дить не надо. Если в числе N нет цифр кроме еди­ниц и нулей, не­об­хо­ди­мо вы­ве­сти 0. Например, при вводе числа 1984 нужно вы­ве­сти 489, а при вводе 2001 нужно вы­ве­сти 2. Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал такую программу:

 

Бейсик Паскаль
DIM N, M AS LONG DIM D AS INTEGER INPUT N M = 0 WHILE N>=1 D = N MOD 10 IF D>1 THEN M = 10*D + M END IF N = (N – D) \ 10 WEND PRINT M END var n, m: longint; d: integer; begin read(n); m := 0; while n>=1 do begin d := n mod 10; if d > 1 then begin m := 10*d + m; end; n := (n – d) div 10; end; write(m); end.
Си Алгоритмический
#include <stdio.h> void main(){ long int n, m; int d; scanf("%ld",&n); m = 0; while (n>=1) { d = n%10; if (d>1) { m = 10*d + m; } n = (n – d) / 10; } printf("%ld", m); } алг нач цел n, m цел d ввод n m := 0 нц пока n>=1 d := mod(n,10) если d>1 то m := 10*d + m все n := div(n-d,10) кц вывод m кон

 

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

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

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

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

 

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

Задание 25.Дан це­ло­чис­лен­ный массив из 50 элементов. Эле­мен­ты массива могут при­ни­мать целые зна­че­ния от 0 до 10 000 включительно. Опи­ши­те на есте­ствен­ном языке или на одном из язы­ков программирования алгоритм, поз­во­ля­ю­щий найти и вы­ве­сти количество пар эле­мен­тов массива, в ко­то­рых оба числа двузначные. В дан­ной задаче под парой под­ра­зу­ме­ва­ет­ся два под­ряд идущих эле­мен­та массива.

Например, для мас­си­ва из пяти элементов: 16 2 14 91 21 — ответ: 2. Ис­ход­ные данные объ­яв­ле­ны так, как по­ка­за­но ниже на при­ме­рах для не­ко­то­рых языков про­грам­ми­ро­ва­ния и есте­ствен­но­го языка. За­пре­ща­ет­ся использовать переменные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать некоторые из опи­сан­ных переменных.

 

Бейсик Python
CONST N = 50 DIM A (1 TO N) AS INTEGER DIM I, J, K, AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I ... END //допускается также использовать //две це­ло­чис­лен­ные переменные j и k a = [] n = 50 for i in range(0, n): a.append(int(input())) ...
Алгоритмический язык Паскаль
алг нач цел N = 50 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон const N = 50; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); ... end.
Си Естественный язык
#include <stdio.h> #define N 50 int main() { int a[N]; int i, j, k; for (i = 0; i<N; i++) scanf("%d", &a[i]); ... return 0; } Объ­яв­ля­ем массив A из 50 элементов. Объ­яв­ля­ем целочисленные пе­ре­мен­ные I, J, K. В цикле от 1 до 50 вво­дим элементы мас­си­ва A с 1-го по 50-й. …

 

 

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

Задание 26.Два игрока, Петя и Ваня, иг­ра­ют в сле­ду­ю­щую игру. Перед ними лежат две кучки камней, в пер­вой из ко­то­рых 4, а во вто­рой - 3 камня. У каж­до­го иг­ро­ка не­огра­ни­чен­но много камней. Иг­ро­ки ходят по очереди, пер­вый ход де­ла­ет Петя. Ход со­сто­ит в том, что игрок или утра­и­ва­ет число кам­ней в какой-то куче, или до­бав­ля­ет 1 ка­мень в какую-то кучу. Игра за­вер­ша­ет­ся в тот момент, когда общее ко­ли­че­ство кам­ней в двух кучах ста­но­вит­ся не менее 20. Если в мо­мент за­вер­ше­ния игры общее число кам­ней в двух кучах не менее 35, то вы­иг­рал Ваня, в про­тив­ном слу­чае - Петя. Кто вы­иг­ры­ва­ет при без­оши­боч­ной игре обоих игроков? Укажите, стра­те­гию вы­иг­ры­ва­ю­ще­го иг­ро­ка - какой ход он дол­жен сде­лать в каж­дой из позиций, ко­то­рые могут ему встре­тить­ся при пра­виль­ной игре. Докажите, что опи­сан­ная стра­те­гия - выигрышная.

Задание 27.В телевизионном танцевальном марафоне с определением победителя с помощью телезрителей после каждого тура объявляется sms-голосование, в котором зрители указывают наиболее понравившуюся им пару из максимум 16 пар, которые участвуют в проекте. Вам предлагается написать программу, которая будет обрабатывать результаты sms-голосования по данному вопросу. Результаты голосования получены в виде номеров пар (каждый элемент списка соответствует одному sms-сообщению).

 

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

 

Задание А. Имеется набор данных, состоящий из 15 чисел.

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

Максимальная оценка за правильную программу – 2 балла.

 

Задание Б. Имеется набор данных, состоящий из целых чисел. Набор может быть очень большим.

Напишите программу для решения этой задачи.

Постарайтесь сделать программу эффективной по времени и используемой памяти (или хотя бы по одной из этих характеристик).

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

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

Максимальная оценка за правильную программу, эффективную по времени и памяти, — 4 балла.

Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, — 3 балла.

 

Следует учитывать, что количество голосов в списке может быть очень велико. Перед текстом программы кратко опишите используемый Вами алгоритм решения задачи. На вход программе в первой строке подаётся количество пришедших sms-сообщений N. В каждой из последующих N строк записан номер пары от 1 до 16. Пример входных данных:

 

4

2

16

3

2

 

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

 

2 2

3 1

16 1


Дата добавления: 2018-02-28; просмотров: 1346; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!