Условия и решение задач по информатике Демо 2005

Успеха при сдаче экзамена!

 

 

А1

Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения из пушкинского четверостишия:

Певец-Давид был ростом мал, Но повалил же Голиафа!

 

 

1)

400 бит

2)

50 бит        

3)

400 байт

4)

5 байт

 

Решение: используем алфавитный подход кодирования информации.

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

40 – букв

3 – знака препинания

7 – пробелов

Итого 50 знаков по 1 байту – 8 бит

I = 50*8 = 400 бит

Верный ответ 1)

 

А2

 Сколько существует различных последовательностей из символов «плюс» и «минус», длиной ровно в пять символов?

 

1)

64

2)

50

3)

32

4)

20

 

Решение: На каждой позиции два варианта минус или плюс.

Всего вариантов 25 = 32.

Верный ответ 3)

 

А3

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

 

1)

37

2)

38

3)

50

4)

100

 

 Решение: Найдём информационный объём одного сигнала. 22 < 6 < 23. Значит один сигнал имеет объём 3 бита. Сигналов 100. 100*3 = 300 бит=300/8 байт=37,7байт=38байт.

Верный ответ 2)

 

А4

Как представлено число 8310 в двоичной системе счисления?

 

1)

10010112

2)

11001012

3)

10100112

4)

1010012

Решение: делим число 83 на 2, потом полученное частное на 2 и т.д.

Получим 83=2*41 + 1= 2*(2*20+1)+1=2*(2*(2*10)+1)+1=2*(2*(2*(2*5))+1)+1=

2*(2*(2*(2*(2*2+1))+1)+1=26+24+2+1=1*26 + 0*25 + 1*24 + 0*23 +  0*22 + 1*21 + 1*20 = =10100112

Верный ответ 3).

А5

Вычислите сумму двоичных чисел x и y, если  

x=10101012

y=10100112

 

1)

101000102

2)

101010002

3)

101001002

4)

101110002

 

Решение: Складываем также как натуральные числа в начальных классах, учитывая, 12 + 12 = 102, 12 + 02 = 12, 02 + 02 = 02

  10101012

  10100112

101010002

Верный ответ 2).

 

А6

Фрагмент блок-схемы

 

 

 

 

 

 

 

представляет алгоритм, который содержит две команды ветвления.

 

1)

команду ветвления в сокращенной форме, в которую вложена команда ветвления в полной форме

2)

две команды ветвления в полной форме, одна из которой вложена в другую

3)

две команды ветвления в сокращенной форме, одна из которой вложена в другую

4)

команду ветвления в полной форме, в которую вложена команда ветвления в сокращенной форме

 

 

Решение: в полной форме два варианта(да или нет), в данном случае так и есть.

Верный ответ 2).

А7

Определите значение целочисленных переменных a и b после выполнения фрагмента программы (ниже представлена одна и та же программа, записанная на разных языках программирования):

 

 

Бейсик

Паскаль

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

a=42
b=14
a=a\b
b=a*b
a=b\a

 \ — стандартная операция, вычисляющая
результат деления нацело первого аргумента на второй

a:=42;

b:=14;
a:=a div b;
b:=a*b;
a:=b div a; {div — 

стандартная операция, вычисляющая результат деления нацело первого аргумента на второй}

a:=42

b:=14
a:= div(a, b)
b:= a*b
a:= div(b, a) | div —

стандартная функция, вычисляющая результат деления нацело первого аргумента на второй|

 

1)

a = 42, b = 14

2)

a = 1, b = 42

3)

a = 0, b = 588

4)

a = 14, b = 42

 

Будем определять на Бейсик

a = a\b = 42\14=3

b = a*b = 3*14 = 42 – окончательный результат

a = b\a = 42\3 = 14 - окончательный результат

Верный ответ 4).

 

А8

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

 

Бейсик

Паскаль

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

FOR n=1 TO 4

FOR k=n TO 4

A(n,k)=A(n,k)+1

A(k,n)=A(k,n)+1

NEXT k

NEXT n

for n:=1 to 4 do

   for k:=n to 4 do

   begin

      A[n,k]:=A[n, k]+1;

      A[k,n]:=A[k, n]+1;

   end

нц для n от 1 до 4

   нц для k от n до 4

   A[n, k]:=A[n, k]+1

   A[k, n]:=A[k, n]+1

   кц

кц

 

Сколько элементов массива в результате будут равны 1?

 

1)

0

2)

16

3)

12

4)

4

 

Решение: В результате цикла, значение 1 получат элементы массива A[1,1], A[1,2], A[1,3], A[1,4], A[2,2], A[2,3], A[2,4], A[3,3], A[3,4], A[4,4]  после выполнения      A[n,k]:=A[n, k]+1;

И после выполнения A[k,n]:=A[k, n]+1; значения 1 будут добавлены к A[1,1], A[2,1], A[3,1], A[4,1], A[2,2], A[3,2], A[4,2], A[3,3], A[4,3], A[4,4], но значение 1 получат те элементы, у которых был значением 0, а у одинаковых  с элементами первого ряда будет 2. Сосчитаем все различные элементы. Это все, кроме A[1,1], A[2,2], A[3,3], A[4,4]. Таких элементов 12.

Верный ответ 3).

 

А9

 

          Для какого числа X истинно высказывание

 

X>1 /\ ((X<5) -> (X<3))

 

1)

1

2)

2

3)

3

4)

4

 

Решение: Здесь Выясняем истинность конъюнкции. Конъюнкция двух высказываний истинна, когда истинны оба высказывания. Высказывание X>1 истинно в случаях 2)б, 3), 4), потому что 2, 3, 4 больше чем 1.

Высказывание ((X<5) -> (X<3)) является импликацией, а импликация ложна только тогда, когда посылка истинна, а следствие ложно. В случаях 2), 3), 4) все значения меньше 5, поэтому посылка истинна всегда, значит для истинности импликации необходимо, чтобы было истинно и следствие, из этих значений только 2 < 3 истинно. Это вариант 2).

Верный ответ 2).

 

А10

Укажите, какое логическое выражение равносильно выражению
 ¬ (¬А /\  B)

 

1)

A \/ ¬B

2)

¬A \/ B

3)

B /\ ¬A

4)

A /\ ¬B

 

Решение: Используя закон де Моргана  можно записать ¬ (¬А /\  B) = ¬ (¬А) \/¬( B)=А\/¬B.

Верный ответ 1).

 

А11

 

 Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z.

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

 

 

X

Y

Z

F

0

0

0

1

0

0

1

0

0

1

0

0

 

Чему равно F?

 

 

1)

X/\Y/\Z   

2)

¬X\/¬Y\/Z    

3)

X/\Y/\¬Z   

4)

¬X/\¬Y/\¬Z

 

 Проверим первую строчку таблицы для 1) 0/\0/\0 = 1 – ложно. Не подходит.

Проверим вторую строчку для 2) ¬0\/¬0\/Z0 = 1\/1\/0 = 1 – истинно , значит проверяем вторую строчку.

¬0\/¬0\/1 = 1\/1\/1 = 0 – ложно. Не подходит.

Проверим для 3) , первую 0/\0/\¬0 = 0/\0/\1 = 1 – ложно. Не вариант.

Осталось 4)

Для первой строчки   ¬0/\¬0/\¬0  =1/\1/\1 = 1 – истинно

Для второй строчки  ¬0/\¬0/\¬1 = 1/\1/\0 = 0 – истинно

Для третьей строчки  ¬0/\¬1/\¬0 = 1/\0/\1 = 0 – истинно

 

Верный ответ 4).

 

А12

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

 

 

A

B

C

D

A

 

4

 

5

B

4

 

3

6

C

 

3

 

 

D

5

6

 

 

 

 

 

1)

2)

3)

4)

 

Решение: АВ =4 во всех схемах. AD = 5, только в схеме 4). Проверим для неё ВС = 3 – соответствует, BD = 6 тоже соответствуют.

Верный ответ 4).

 

А13

  

 Для 5 букв латинского алфавита заданы их двоичные коды (для некоторых букв ‑ из двух бит, для некоторых - из трех). Эти  коды представлены в таблице:

 

A

B

C

D

E

000

01

100

10

011

 

Определить, какой набор букв закодирован двоичной строкой 0110100011000

 

1)

EBCEA

2)

BDDEA

3)

BDCEA

4)

EBAEA

 

Решение: Пусть первый код 01 – В, Второй код – 10 – D  или 101 – такого нет, значит второй 10,третий код может быть или 10 или 100, если третий 10, то четвёртый 00 или 001, но таких нет , выбираем третий 100 – С, то есть начало набора BDC, четвёртый E – 011, пятый  А – 000 . Всё подходит.

Верный ответ 3).

 

А14

 

 

  Для составления цепочек используются бусины, помеченные буквами: A, B, C, DE. На первом месте в цепочке стоит одна из бусин A, C, E. На втором – любая гласная, если первая буква согласная, и любая согласная, если первая гласная. На третьем месте – одна из бусин C, D, E, не стоящая в цепочке на первом месте.

Какая из перечисленных цепочек создана по этому правилу?

 

1)

CBE

2)

ADD

3)

ECE

4)

EAD

 

E

 Решение: На первом A, C, E – подходят все варианты. На втором может быть A, E, если первая B, C, D – такого варианта нет. На втором может быть B, C, D, если первая  A, E, такой вариант 2) ADD, ECE . На третьем C, D, E не стоящая на первом. Такой случай 2).

Верный ответ 2).

 

А15

 Какие из перечисленных ниже устройств используются для ввода информации в компьютер?

 

A)

Джойстик

Б)

Динамики

В)

Клавиатура

Г)

Мышь

Д)

Плоттер

Е)

Принтер

Ж)

Сканер

З)

Стример

 

 

1)

АВГДЖ

2)

АВГЖЗ

3)

БВГЖЗ

4)

ВГЕЖЗ

 

 Решение: Для ввода информации используются те, которые дают команды или вводят текст, изображения, звук и т.д.

Это АВГЖЗ.

Верный ответ 2).

 

А16

 Ниже перечислено 8 различных программных средств. Какие из них являются операционными системами? (Выберите ответ, в котором перечислены только операционные системы)

 

A)

Acrobat Reader

Б)

ASP Linux

В)

IBM PC DOS

Г)

Macromedia Dreamweaver

Д)

Microsoft Office

Е)

Microsoft Windows

Ж)

Norton SystemWorks

З)

RealOne Player

 

1)

АВЕЗ

2)

БВЕ

3)

ВДЕ

4)

ЕЖ


 

Решение: По названиям: АГДЖЗ – программы

                                        БВЕ – операционные системы.

Верный ответ 2).

 

А17

 

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

 

1)

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

2)

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

3)

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

4)

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

 

Решение: Е:\Класс9\Физика\Задача5. Создали подкаталог Задачник

Верный ответ  4).

 

 

А18

 Сколько записей в нижеследующем фрагменте турнирной таблицы удовлетворяют условию «Место <=4 И (Н>2 ИЛИ О>6)»?

 

Место

Участник

В

Н

П

О

1

Силин

5

3

1

6 ½

2

Клеменс

6

0

3

6

3

Холево

5

1

4

5 ½

4

Яшвили

3

5

1

5 ½

5

Бергер

3

3

3

4 ½

6

Численко

3

2

4

4

 

1)

5

2)

2

3)

3

4)

4

 

Решение:  Место <=4 ={ 1,2,3,4}; H>2 = {1,4,5}; О>6 = {1}; => (Н>2 ИЛИ О>6) ={1,4,5} => Место <=4 И (Н>2 ИЛИ О>6) ={ 1,2,3,4}Ç{1,4,5} = {1,4}. Такие записи 1 и 4.

Верный ответ 2).

 

А19

 

 

Стандартный алгоритм вычисления среднего арифметического элементов числового массива работает на массиве из миллиона элементов 0,5 сек. Оцените время работы того же алгоритма на том же компьютере, если длина массива 3 миллиона.

 

1)

1 сек.

2)

1,5 сек.

3)

3 сек.

4)

4,5 сек.

 

 

 Решение: обычная арифметика 3*0,5 = 1,5.

Верный ответ 2).

 

А20

 Для хранения растрового изображения размером 128x128 пикселей отвели 4 килобайта памяти. Каково максимально возможное число цветов в палитре изображения?

 

1)

8

2)

2

3)

16

4)

4

 

 Решение: Объём изображения Ii = 128*128*I (I - глубина цвета) Ii = 4*1024*8 бит = 32768 бит => I = 32768/128*128 = 2 бит

Количество цветов N = 2I = 22 = 4.

Верный ответ 4).

 

А21

   В ячейке C2 записана формула $E$3+D2. Какой вид приобретет формула, после того как ячейку C2 скопируют в ячейку B1?

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

 

1)

$E$3+C1

2)

$D$3+D2

3)

$E$3+E3

4)

$F$4+D2

 

Решение: Запись  такого вида $E$3   не меняется, а В1 будет ссылаться на С1.

Верный ответ 1).

 

А22

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

 

 

А

В

1

=B1+1

1

2

=A1+2

2

3

=B2-1

 

4

=A3

 

 

После выполнения вычислений, была построена диаграмма  по значениям диапазона ячеек A1:A4. Укажите получившуюся диаграмму.

 

1)

2)

3)

4)

 

 Решение: В ячейках A1, A2, A3, A4 будут значения 2, 4, 1, 1.

Верный ответ 2).

 

А23

 Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существуют две команды:

Вперед n, где n ‑ целое число, вызывающая передвижение черепашки на n шагов в направлении движения.

Направо m, где m ‑ целое число, вызывающая изменение направления движения на m градусов по часовой стрелке.

Запись Повтори 5 [Команда1 Команда2 ]означает, что последовательность команд в скобках повторится 5 раз.

 

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

Повтори 5 [Вперед 10 Направо 72]

Какая фигура появится на экране?

 

 

1)

Незамкнутая ломаная линия

2)

Правильный треугольник

3)

Квадрат

4)

Правильный пятиугольник

            

Внешний угол правильного пятиугольника 72° , длины сторон одинаковые.

Правильный ответ 4)

 

А24

Для каждого файла в таблицу записывался исходный размер файла (поле РАЗМЕР), а также размеры архивов, полученных после применения к файлу различных архиваторов: программы WinZIP (поле ZIP), программы WinRAR (поле RAR) и программы StuffIt (поле SIT). Вот начало этой таблицы (все размеры в таблице - в килобайтах):

 

Имя файла

РАЗМЕР

ZIP

RAR

SIT

Аквариум.mw2

296

124

88

92

Муар.mw2

932

24

20

28

 

Нужно отобрать файлы, исходный размер которых больше 1 мегабайта и размер которых при использовании WinZip уменьшился более чем в 2 раза. Для этого достаточно найти в таблице записи, удовлетворяющие условию:

 

1)

(РАЗМЕР > 100) ИЛИ (РАЗМЕР / ZIP > 2)

2)

(РАЗМЕР > 100) И (ZIP < 50)

3)

(РАЗМЕР > 1024) И (РАЗМЕР / ZIP > 2)

4)

(РАЗМЕР > 1024) ИЛИ (РАЗМЕР / ZIP > 2)

 

Решение: Нужно найти (РАЗМЕР>1мегабайта(РАЗМЕР/ZIP>2)=> (РАЗМЕР>1024 килобайт)И(РАЗМЕР/ZIP>2).

Верный ответ 3).

 

B1

 

Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 23 оканчивается на 2.

 

 

Решение: 2310=101112=2123=1134=435=356=327=278=259=2111=1(11)12=1(10)13=1915=1815=1716=1617=1518=1419=1320=1221=1122=

=1023=1024=…..

Оканчиваются на 2 системе счисления 3, 7,21.

Записать: 3, 7, 21.

B2

Сколько различных решений имеет уравнение

 

(K/\L/\M)\/(¬L/\¬M/\N) = 1

 

где K, L, M, N - логические переменные?

В ответе не нужно перечислять все различные наборы значений K, L, M и N, при которых выполнено данное равенство. В качестве ответа вам нужно указать только количество таких наборов.

 

Решение:

Дизъюнкция двух высказываний  истинна, если истинно хотя бы одно из высказываний.

1.Высказывание K/\L/\M истинно, а высказывание ¬L/\¬M/\N ложно
2.Высказывание K/\L/\M ложно, а высказывание ¬L/\¬M/\N истинно

3.Высказывание K/\L/\M истинно, и высказывание ¬L/\¬M/\N истинно

Вариант1.

Высказывание K/\L/\M истинно, когда K =L=M=1 – один вариант по определению конъюнкции.

Высказывание ¬L/\¬M/\N = 0/\0 /\N – ложно при N = 0 и при N=1 – 2 возможности. Вариант 3. не выполняется никогда.

Вариант 2. Высказывание K/\L/\M ложно (K=0 или L=0 или M=0). Посмотрим,  когда  будет высказывание ¬L/\¬M/\N истинно – (L=0,M=0,N=1). В этом случае K/\L/\M ложно при К=1 и при K=0 – 2 возможности.

Значит количество наборов равно 4.

Записать: Уравнение имеет 4 решения.

B3

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

1. вычти 1

2. умножь на 3

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

Запишите порядок команд в программе получения из числа 3 числа 16, содержащей не более 5 команд, указывая лишь номера команд.

(Например, программа 21211 это программа)

умножь на 3

вычти 1

умножь на 3

вычти 1

вычти 1

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

Решение:  Например (3-1)*3*3-1-1=2*3*3-2=16. Пять команд.

12211.

Записать ответ: 12211.

B4

 

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

‑ Кто это сделал? ‑ спросила мама.

‑ Коля не бил по мячу, ‑ сказал Саша. ‑ Это сделал Ваня.

Ваня ответил: ‑ Разбил Коля, Саша не играл в футбол дома.
‑ Так я и знала, что вы друг на дружку сваливать будете, ‑ рассердилась мама. ‑ Ну, а ты что скажешь? ‑ спросила она Колю.
‑ Не сердись, мамочка! Я знаю, что Ваня не мог этого сделать. А я сегодня еще не сделал уроки, ‑ сказал Коля.
Оказалось, что один из мальчиков оба раза солгал, а двое в каждом из своих заявлений говорили правду.

Кто разбил вазу?

Решение: Решим средствами алгебры логики.

Введём буквенные обозначения

V – «Разбил Коля»

B – «Это сделал Ваня»

A – «Разбил Саша»

Можно высказывания записать формулами:

  ¬V*B=1

   V*¬A=1

  ¬B=1

По условию задачи два мальчика оба раза сказали правду, а один оба раза сказал неправду. Поэтому среди записанных формул две истинны, а одна ложна. Мы не знаем, какая формула ложна, но можно утверждать, что если образовать из формул парные дизъюнкции, то, поскольку в дизъюнкцию входит одна истинная формула то  дизъюнкция будет истинна. Запишем их.

¬V*B  + ¬A*V=1   (1)

 VA + ¬B =1   (2)

¬V*B + ¬B = 1      (3)

Умножим уравнение (1) на (2)

(¬V*B  + ¬A*V)*( V*¬A + ¬B)= ¬V*B* V*¬A +  ¬A*V *V*¬A+ ¬V*B* ¬B +¬A*V*¬B= V*¬A+¬A*V*¬B= V*¬A(1+¬B)= =V*¬A

Умножим данное выражение на (3)

(¬V*B + ¬B)* V*¬A=¬V*B* V*¬A+¬B* V*¬A=¬B* V*¬A.

Из последнего выражения делаем вывод.

Записать: разбил вазу Коля.

 

B5

Сколько секунд потребуется модему, передающему сообщения со скоростью 28800 бит/с, чтобы передать цветное растровое изображение размером 640х480 пикселей, при условии, что цвет каждого пикселя кодируется тремя байтами?

 

Решение: Определим объём изображения  Ii = 640*480*3*8 = 7372800 бит.

Определим время передачи изображения. t = 7372800 бит : 28800 бит/с = 256 c.

Записать ответ 256.

 

B6

Записано 7 строк, каждая имеет свой номер – от «0»- до «6»-й.

В начальный момент в строке записана цифра 0 (ноль). На каждом из последующих 6 шагов выполняется следующая операция: в очередную строку записывается удвоенная предыдущая строка, а в конец строки приписывается очередная цифра (на i-м шаге приписывается цифра i).

Для удобства в скобках пишется номер строки (начиная с 0).
Ниже показаны первые строки, сформированные по описанному правилу:

(0)     0

(1)     001

(2)     0010012

(3)     001001200100123

Какая цифра стоит в последней строке на 123-м месте (считая слева направо)?

 

Решение:  В первой строке 3 элемента.

Во второй строке (3*2+1) = 7 – последняя цифра 2

(3)  7*2+1 = 15– последняя цифра 3

(4) 15*2+1=31– последняя цифра 4

(5) 31*2+1=63– последняя цифра 5

(6) 63*2+1 =127– последняя цифра 6

126 – 5 , 125 – 4, 124 – 3, 123 – 2.

Записать ответ 2.

 

 B7

Доступ к файлу http.txt, находящемуся на сервере www.net осуществляется по протоколу ftp. В таблице фрагменты адреса файла закодированы буквами от А  до Ж. Запишите последовательность этих букв, кодирующую адрес указанного файла.

 

A

://

Б

http

В

ftp

Г

.net

Д

.txt

Е

/

Ж

www

 

 

Решение: ftp:// www.net/ http.txt

Записать ответ: ВАЖГЕБД

 

B8

 

В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по  каждому запросу.

Для обозначения логической операции “ИЛИ” в запросе используется символ |, а для логической операции “И” - &.

 

A

чемпионы | (бег & плавание)

Б

чемпионы  & плавание

В

чемпионы | бег | плавание

Г

чемпионы & Европа & бег & плавание

 

Решение:  Г(чемпионы & Европа & бег & плавание) – Б (чемпионы  & плавание) – А (чемпионы | (бег & плавание)) – В (чемпионы | бег | плавание)

Записать ответ: ГБАВ

 

C1

Рассматривается стандартная шахматная доска размером 8х8. Примем, что i – номер вертикали (может принимать значения от 1 до 8), j – номер горизонтали (также может принимать значения от 1 до 8). В левом нижнем углу, т.е. на поле i =1, j=1 (это поле черного цвета) стоит черный король. Напомним, что король может ходить на 1 клетку в любом направлении (по горизонтали, вертикали или диагонали). В правом нижнем углу, т.е. на поле i =8, j=1 (это поле белого цвета) стоит белый король. Введены обозначения: P(i,j) ‑ минимальное число ходов, за которое черный король может попасть на поле (i,j);   V(i,j)  ‑ минимальное число ходов, за которое белый король может попасть на поле (i,j).

Программист написал программу, в которой требовалось определить все такие поля (i,j), для которых P(i,j) = V(i,j), и выдать на экран соответствующие значения i,j (текст программы приведен ниже).

 

1) Выдаст ли программа, написанная программистом, поле, для которого
i=4, j=5 ?

2) Указать все из перечисленных ниже полей, которые удовлетворяют постановке задачи, т.е. для таких полей должно быть выполнено P(i,j) = V(i,j)

(i=1, j=8), (i=2, j=8), (i=1, j=7), (i=5, j=5), (i=8, j=6)

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

 

 

Программа на языке Паскаль

Программа на языке Бейсик

VAR i,j: integer;

BEGIN

writeln('искомые поля');

for j:=5 to 8 do

for i:=1 to 8 do

begin

 if (i=9-j) OR (i=j)

 then writeln('i=',i, 'j=',j);

end;

END.

PRINT "Искомые поля"

FOR J=5 TO 8

FOR I=1 TO 8

IF (I=9-J) OR (I=J) THEN

     PRINT "I="; I

     PRINT "J="; J

ENDIF

NEXT I

NEXT J

END

 

 

 

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

1) Поле i=5, j=4 будет выдано приведенной программой

(т.к. i+j=9)

2) (i=1, j=8), (i=2, j=8), (i=5, j=5) – эти поля удовлетворяют постановке задачи (ответ очевиден, если нарисовать шахматную доску 8х8 и королей в двух нижних углах)

3) Возможный (самый короткий) способ доработки:

вместо if (i=9-j) OR (i=j)

проверять условие if (i>=9-j) AND (i<=j)

 

C2

Квадратный массив А размера NxN (где N=5) в программе сначала обнуляется, а затем производится некоторая дальнейшая обработка в соответствии с программой. Текст программы приведен ниже.

Требуется выяснить состояние массива А по окончании работы программы, а именно:

1) Какое число будет стоять в  элементе массива А[1,2] ?

2) Сколько всего ненулевых чисел будет в массиве А ?

а также ответить на следующий вопрос:

3) В программе после начального обнуления массив А заполняется с помощью следующих операторов

i:=1; j:=1; A[1,1]:=1; k:=1; while (i<N) OR (j<N) do

  begin   if (i+j) mod 2 = 0   then j:=j+1 else i:=i+1;

  k:= -k; A[i,j]:=k;

  end;

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

 

Программа на языке Паскаль

Программа на языке Бейсик

CONST N=5;

VAR i, j: integer;{i - строка  j - столбец}

       k: integer;

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

BEGIN

  for i:=1 to N do

  for j:=1 to N do A[i,j]:=0;

i:=1; j:=1; A[1,1]:=1; k:=1;

while (i<N) OR (j<N) do

  begin

  if (i+j) mod 2 = 0

  then j:=j+1 else i:=i+1;

  k:= -k; A[i,j]:=k;

  end;

END.

 

N=5

DIM A(N, N) AS INTEGER

FOR I=1 TO N

FOR J=1 TO N

A (I, J) = 0

NEXT J

NEXT I

I=1

J=1

A(1, 1)=1

K=1

WHILE (I<N) OR (J<N)

IF (I+J) MOD 2 = 0 THEN

J=J+1

ELSE

I=I+1

ENDIF

K=-K

A(I,J)=K

WEND

END

 

 

 

 

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

1) A[1,2] = -1

2) В массиве А будет 9 ненулевых элементов

(5 значений "1" по главной диагонали и 4 значения "-1" над главной диагональю)

3) Доработку можно провести следующим образом:

for i:=1 to N do

begin A[i,i]:=1; if i<N then A[i,i+1]:=-1;

end;

 

C3

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

 

Введем целочисленную переменную Max, в которую будем заносить максимальный из просмотренных элементов массива, и целочисленную переменную Num, в которой будем подсчитывать число повторений максимального элемента в просмотренной части массива. В цикле до конца массива: сравниваем очередной элемент массива с текущим значением переменной Max, если он больше, то заносим его значение в Max и устанавливаем счетчик Num в 1, если они равны, то увеличиваем счетчик Num на 1. По окончании цикла переменная Num содержит число повторений максимального элемента массива.

Пример правильной и эффективной программы (на основе алгоритма, использующего однократный проход по массиву):

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

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

Const N=30;

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

    Max, Num, i: integer;

Begin

 Max:=a[1];

 Num:=1;

 For i:=2 to N do

  Begin

    If a[i]>Max then

       begin

         Max:=a[i];

         Num:=1;

       end

          else

            if a[i]=Max then

              Num:=Num+1;

  End;

  Writeln(Num);

End.

N=30

DIM i, Max, Num, a(N) AS INTEGER

Max=a(1)

Num=1

LOOP

FOR i = 2 TO N

IF a(i)>Max THEN     

                 Max=a(i)

                  Num=1

             ELSE

             IF a(i)=Max THEN

                  Num=Num+1

             ENDIF

 ENDIF

NEXT i

PRINT Num

END

 

 

 

C4

Два игрока играют в следующую игру. Перед ними лежат две кучки камней, в первой из которых 4, а во второй – 3  камня.  У каждого игрока неограниченно много камней. Игроки ходят по очереди. Ход состоит в том, что игрок или увеличивает в 3 раза число камней в какой-то куче или добавляет 2 камня в какую-то кучу. Выигрывает игрок, после хода которого общее число камней в двух кучах становится не менее 24 камней. Кто выигрывает при безошибочной игре обоих игроков – игрок, делающий первый ход или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока? Ответ обоснуйте.

 

Выигрывает второй игрок. Для доказательства рассмотрим неполное дерево игры.

 

Начальная позиция

1-й ход первого игрока

Выигрывающий ход второго игрока

Пояснение

 

 

 

 

 

 

 

6,3

6,5

 

второй игрок выигрывает после любого ответа первого игрока, утроив число камней в самой большой куче

 

 

 

 

 

 

4,3

4,5

6,5

-"-

 

 

 

 

 

 

 

12,3

36,3

выигрыш второго игрока

 

 

 

 

 

 

 

4, 9

4,27

-"-

 

 

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

 

C5

На вход программе подаются 366 строк, которые содержат информацию о среднесуточной температуре всех дней 2004 года. Формат каждой из строк следующий: сначала записана дата в виде dd.mm (на запись номера дня и номера месяца в числовом формате отводится строго два символа, день от месяца отделен точкой), затем через пробел записано значение температуры — число со знаком плюс или минус, с точностью до 1 цифры после десятичной точки. Данная информация отсортирована по значению температуры, то есть хронологический порядок нарушен. Требуется написать программу на языке Паскаль или Бейсик, которая будет выводить на экран информацию о месяце (месяцах), среднемесячная температура у которого (которых) наименее отклоняется от среднегодовой. В первой строке вывести среднегодовую температуру. Найденные значения для каждого из месяцев следует выводить в отдельной строке в виде: номер месяца, значение среднемесячной температуры, отклонение от среднегодовой температуры.

 

 

 

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

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

 

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

Const d:array[1..12] of integer =

  (31,29,31,30,31,30,31,31,30,31,30,31);

var tm:array[1..12] of real;

    m:1..12;

    data:string[5];

    min,ty,t:real;

    i:integer;

begin

  for i:=1 to 12 do

    tm[i]:=0;

  ty:=0;{среднегодовая температура}

  for i:=1 to 366 do

  begin

    readln(data,t);

    {вычисляем номер месяца}

    m:=(ord(data[4])-ord('0'))*10

          +ord(data[5])-ord('0');

    tm[m]:=tm[m]+t;

    ty:=ty+t;

  end;

  for i:=1 to 12 do

    tm[i]:=tm[i]/d[i];

  ty:=ty/366;

  min:=100;

  for i:=1 to 12 do

    if abs(tm[i]-ty)<min then

      min:=abs(tm[i]-ty);

  writeln('Среднегодовая температура = ',ty:0:2);

  for i:=1 to 12 do

    if abs(abs(tm[i]-ty)-min)<0.0001 then

      writeln(i,' ',tm[i]:0:2,' ',abs(tm[i]-ty):0:2);

  readln

end.

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

DATA 31,29,31,30,31,30,31,31,30,31,30,31

DIM i, m, d(12) AS INTEGER

DIM tm(12)

DIM dat AS STRING *5

FOR i = 1 TO 12

    tm(i) = 0

    READ d(i)

NEXT i

Ty = 0

'ty – среднегодовая температура

FOR i = 1 TO 366

 INPUT dat, t

'Вычисляем номер месяца

 m=(ASC(MID$(dat,4,1))-ASC("0"))*10+

    ASC(MID$(dat,5,1))-ASC("0")

 tm(m) = tm(m) + t

 ty = ty + t

NEXT i

FOR i = 1 TO 12

  tm(i) = tm(i) / d(i)

NEXT i

Ty = ty / 366

Min = 100

FOR i = 1 TO 12

  IF ABS(tm(i) - ty) < min THEN min = ABS(tm(i) - ty)

NEXT i

PRINT "Среднегодовая температура = ";

PRINT USING "##.##"; ty

FOR i = 1 TO 12

  IF ABS(ABS(tm(i) - ty) - min) < .0001 THEN

      PRINT i;

      PRINT USING "##.##   "; tm(i); ABS(tm(i) - ty)

  END IF

NEXT i

END

 

 

Задания С1 – С5 выполнены как в демонстрационном Варианте.

По остальным, при нахождении ошибки пишите progmat@list.ru

Используются технологии uCoz