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

Информатика и ИКТ подготовка к ЕГЭ

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

Вариант 1

C1


1.



Область

Усл. 1

х ≥ -8

Усл. 2

х ≤ -2

Усл. 3

х ≥ 3

Усл. 4

х ≤ 16

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

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


А

нет

нет

В

да

да

нет

нет

С

да

нет

нет

D

да

нет

нет

Е

да

нет

нет

2. Возможная доработка программы на языке Паскаль:

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


С2

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

С3

Будем решать поставленную задачу последовательно для чисел 13, 14, 15,..., 45 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 13 в число n, будем обозначать через R(n). Будем считать, что R(13) = 1. Заметим, что команда 2 для чисел, меньших 90, соответствует условию «прибавь 10». Следовательно, числа 14, 15, ..., 22 можно получить только из числа 13 с помощью команды 1. Для каждого следующего числа i(i ≥ 22) количество искомых программ равно количеству программ для i — 1-го и i —10-го чисел: R(i) = R(i—1)+R(i—10). Заполним соответствующую таблицу по приведенным формулам слева направо:





13

14

15

16

17

18

19

20

21

22

23


1

1

1

1

1

1

1

1

1

I

2

24

25

26

27

28

29

30

31

32

33

34

3

4

5

6

7

8

9

10

11

13

16

35

36

37

38

39

40

41

42

43

44

45

20

25

31

38

46

55

65

76

89

105

125


Ответ: 125.


С4


Пример программы на языке Turbo Pascal 7.0.

{Массив для хранения информации о товаре}

{Массив для хранения информации о количестве одинакового товара}

{Считываем очередную информацию о товаре и проверяем совпадение первой буквы с первой буквой аббревиатуры. Если нет совпадения, считываем следующие данные списка}

{Проверяем на совпадение с заданной аббревиатурой.}

{Осуществляем поиск данных о товаре среди введенных ранее и подсчитываем количество совпадающей информации.}

{Выводим на экран значения массивов Tov и Kol в порядке убывания значений массива Kol. Для этого, начиная с первого элемента, находим наибольший элемент массива Kol и выводим на экран этот элемент и соответствующий ему элемент массива Tov. На место найденного элемента ставим первый. Далее находим наибольший, начиная со второго элемента массива Kol, и т.д.}

Вариант 2

C1


1.



Область

Уcл. 1

х ≤ 2

Уcл. 2

х ≥ 4

Уcл. 3

х ≤ 5

Уcл. 4

х ≥ 9

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

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


А

да

нет

нет

В

нет

нет

С

нет

нет

D

нет

нет

Е

нет

нет


2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

С3

Будем решать поставленную задачу последовательно для чисел 16, 17, 18, ..., 54 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 16 в число n, будем обозначать через R(n). Будем считать, что R(16) = 1. Заметим, что команда 2 для чисел, меньших 90 и оканчивающихся на 9, соответствует условию «прибавь 10», а для чисел, меньших 90 и не оканчивающихся на 9, соответствует условию «прибавь 11». Получаем.

1) Числа 17, 18, 26 можно получить только из числа 16 с помощью команды 1.

2) Числа i(i > 27), оканчивающееся на 9, можно получить либо из предыдущего числа с помощью команды 1, либо из наибольшего числа оканчивающегося на 8 и не превосходящего г (то есть из числа i — 11), с помощью команды 2, либо из наибольшего числа, оканчивающегося на 9 и не превосходящего i (то есть из числа i — 10), с помощью команды 2. Для таких чисел R(i) = R(i - 1) + R(i - 10) + R(i - 11).

3) Числа i(i > 27), оканчивающиеся на 0, можно получить только из предыдущего числа с помощью команды 1. Для таких чисел R(i) = R(i - 1).

4) Числа i(i ≥ 27), не указанные в пп. 1), 2) и 3) можно получить либо из предыдущего числа с помощью команды 1, либо из i — 11, с помощью команды 2. Для этих чисел R(i) = R(i- 1)+R(i - 11). Заполним соответствующую таблицу по приведенным формулам слева направо:



16

17

18

19

20

21

22

23

24

25

26

27


1

1

1

1

1

1

1

1

1

1

1

2

28

29

30

31

32

33

34

35

36

37

38

39

3

5

5

6

7

8

9

10

11

12

14

22

40

41

42

43

44

45

46

47

48




22

27

33

40

48

57

67

78

90





Ответ: 90.


С4

Пример программы на языке Pascal


Вариант 3

C1


1.



Область

Уcл. 1

у ≤ 3-х2

Уcл. 2

х > 0

Уcл. 3

у ≥ x * x

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

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


A

нет

нет

В

нет

нет

С

да

нет

нет

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

да

D

да

да

принадлежит

нет

E

да

нет

нет

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

да

F

да

нет

да

принадлежит

да

G

да

да

принадлежит

да

H

да

да

принадлежит

да


2. Возможная доработка программы на языке Паскаль:

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

C2

Пример фрагмента программы на языке Паскаль.

C3

Заметим, что все числа, получаемые с помощью заданных команд из числа 1, — нечётные. Будем решать поставленную задачу последовательно для чисел 1, 3, 5,..., 37 (то есть для каждого нечётного числа определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на 5, то оно может быть получено только из предыдущего с помощью команды прибавь 2. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа: R(i) = R(i — 2), i — нечётное. Если число на 5 делится, то вариантов последней команды два: прибавь 2 и умножь на 5, тогда R(i) = R(i — 2) + R(i/5), i — нечётное. Заполним соответствующую таблицу по приведенным формулам слева направо:


1

3

5

7

9

11

13

15

17

19

21

23

25

27


1

1

2

2

2

2

2

3

3

3

3

3

5

5

29

31

33

35

37










5

5

5

7

7











Ответ: 7.


C4


Организуем два массива, каждый из 25-ти элементов. В первом будем хранить только имена исполнителей, во втором — количество отданных голосов за каждого из них. Программа считывает все входные данные один раз. После считывания данных об очередном исполнителе в первом массиве осуществляется поиск данного исполнителя среди введенных ранее; если такой исполнитель в массиве уже есть, то во втором массиве значение элемента с соответствующим индексом увеличивается на 1, иначе исполнитель добавляется в первый массив, а во втором — элементу с соответствующим индексом присваивается значение 1. После окончания ввода производится сортировка второго массива по количеству отданных голосов в порядке убывания, и в соответствии с этой сортировкой сортируются элементы первого массива с исполнителями. После окончания сортировки выводится список из трёх элементов первого массива (с исполнителями), и соответственно из второго массива выводятся сведения о количестве набранных ими голосов (или все элементы каждого из массивов, если количество непустых (ненулевых) элементов меньше трёх). Затем выводятся исполнители, набравшие такое же количество голосов, что и третий из выведенного списка.

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

{Считываем очередного исполнителя и осуществляем поиск данного исполнителя среди введенных ранее}

С4

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

Вариант 4

C1


1.



Область

Уcл. 1

у ≤ 2 - х2

Уcл. 2

х > 0

Уcл. 3

у ≥ х3

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

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


A

нет

нет

В

нет

нет

С

да

нет

принадлежит

нет

D

да

да

нет

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

да

E

да

нет

принадлежит

нет

F

да

нет

принадлежит

да

G

да

не изв.

да

принадлежит

да

H

да

да

нет

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

да


2. Возможная доработка программы на языке Паскаль:


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


С2

Пример фрагмента программы на языке Паскаль.

С3

Заметим, что все числа, получаемые с помощью заданных команд — нечётные. Будем решать поставленную задачу последовательно для чисел 1, 3, 5,..., 37 (то есть для каждого нечётного числа определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать черезR(n). Будем считать, что R(1) = 1. Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на 3, то оно может быть получено только из предыдущего с помощью команды прибавь 2. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа: R(i) = R(i — 2), i — нечётное. Если число на 3 делится, то вариантов последней команды два: прибавь 2 и умножь на 3, тогда R(i) = R(i — 2) + R(i/3), i — нечётное. Заполним соответствующую таблицу по приведенным формулам слева направо:


























































1

3

5

7

9

11

13

15

17

19

21

23

25

27



1

2

2

2

4

4

4

6

6

6

8

8

8

12


29

31

33

35

37











12

12

16

16

16












Ответ: 16.



С4


Организуем два массива, каждый из 20-ти элементов. В первом будем хранить только название песен, во втором — количество отданных голосов за ту или иную из них. Программа считывает все входные данные один раз, пропуская символы до первой кавычки и сохраняя в переменной все остальные символы.

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

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

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

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


Вариант 5


C1


1.




Область

Уcл. 1

у ≥ х2 - 3

Уcл. 2

х ≤ 0

Уcл. 3

у ≤ -x

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

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



А

нет

нет


В

нет

нет


С

да

да

да

принадлежит

да


D

да

да

нет

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

да


Е

нет

нет


F

да

нет

нет


G

нет

нет


Н

да

нет

нет


2. Возможная доработка программы на языке Паскаль:

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


C2

Пример фрагмента программы на языке Паскаль.


C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 19 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на 2, то оно может быть получено только из предыдущего с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа: R(i) = R(i — 1). Если число на 2 делится, то вариантов последней команды два: прибавь 1 и умножь на 2, тогда R(i) = R(i — 1) + R(i/2). Заполним соответствующую таблицу по приведенным формулам слева направо:




1

2

3

4

5

6

7

8

9

10

11

12

13

14

15



1

2

2

4

4

6

6

10

10

14

14

20

20

26

26


16

17

18

19













36

36

46

46













Ответ: 46.

Программа на Turbo Pascal 7.0


С4



Вариант 6


C1


1. Обозначения:

Уcл. 1 — у ≤ 6 — |2х + 2|; Уcл. 2 — у ≥ 0, 5х + 1; Уcл. 3 — х ≤ 0



Область

Уcл. 1

Уcл. 2

Уcл. 3

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

Область

обрабатываетсяверно



А

да

нет

нет


В

да

нет

нет


С

нет

нет


D

да

да

да

принадлежит

да


Е

нет

нет


F

нет

нет


G

нет

нет


Н

да

да

нет

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

да


2. Возможная доработка программы на языке Паскаль:

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



С2

Пример фрагмента программы на языке Паскаль.


C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 19 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через Я(п). Число 2 из числа 1 можно получить с помощью команды 1 (также будем считать, что R(1) = 1). Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на 4, то оно может быть получено только из предыдущего с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа:R(i) = R(i — 1). Если число на 4 делится, то вариантов последней команды два: прибавь 1 и умножь на 4, тогда R(i) = R(i — 1) + R(i/4). Заполним соответствующую таблицу по приведенным формулам слева направо:




1

2

3

4

5

6

7

8

9

10

11

12

13

14

15



1

1

1

2

2

2

2

3

3

3

3

4

4

4

4


16

17

18

19













6

6

6

6














Ответ: 6.




























С4

Программа на Turbo Pascal 7.0


Вариант 7


C1


1.




Область

Уcл. 1

x ≤ у2

Уcл. 2

х2 + у2 ≤ 4

Уcл. 3

х ≤ 0

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

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



А

нет

да

нет

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

да


В

да

да

нет

нет


С

да

да

нет

нет


D

да

да

да

принадлежит

нет


Е

нет

нет

нет

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

да


F

да

да

да

принадлежит

нет


G

да

нет

не изв.

нет


Н

да

нет

не изв.

нет


2. Возможная доработка программы на языке Паскаль:

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



С2


Пример верного решения:




Бейсик




Паскаль




Си




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



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


Записываем в переменную МАХ начальное значение, равное 55. В цикле от первого элемента до сорок третьего находим остаток от деления элемента исходного массива на 2 и на 9. Если остаток от деления на 2 равен единице и остаток от деления на 9 не равен нулю, то сравниваем значение текущего элемента со значением переменной МАХ. Если текущий элемент массива больше МАХ, то записываем в МАХ значение этого элемента массива. Переходим к следующему элементу.

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






С3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 37 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Число 2 из числа 1 можно получить с помощью команды 1. (Также будем считать, что R(1) = 1). Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на 5, то оно может быть получено только из предыдущего с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа:R(i) = R(i — 1). Если число на 5 делится, то вариантов последней команды два: прибавь 1 и умножь на 5, тогда R(i) = R(i — 1) + R(i/5). Заполним соответствующую таблицу по приведенным формулам слева направо:

























































1

2

3

4

5

6

7

8

9

10

11

12

13


1

1

1

1

2

2

2

2

2

3

3

3

3

14

15

16

17

18

19

20

21

22

23

24

25

26

3

4

4

4

4

4

5

5

5

5

5

7

7

27

28

29

30

31

32

33

34

35

36

37



7

7

7

9

9

9

9

9

11

11

11




Ответ: 11.


С4

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

Пример верного решения на языке Паскаль:


Вариант 8

C1

1.

Таблица должна выглядеть следующим образом.



Область

Уcл. 1

у ≥ │x│

Уcл. 2

х2 + у2 ≤ 2

Уcл. 3

х3 + у2 ≤ 1

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

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


А

да

да

да

принадлежит

нет

В

да

да

нет

нет

С

да

да

нет

нет

D

нет

да

да

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

да

Е

нет

да

нет

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

да

F

нет

да

да

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

да

G

нет

да

нет

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

да

Н

да

нет

нет

нет

2. Возможная доработка программы на языке Паскаль:

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


С2

Пример верного решения:



Бейсик


Паскаль

Си



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


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

Записываем в переменную МАХ начальное значение, равное 1. В цикле от первого элемента до сотого сравниваем значение текущего элемента со значением переменной МАХ. Если текущий элемент массива больше МАХ, то записываем в МАХ значение этого элемента в массиве. Переходим к следующему элементу. Далее записываем в переменную MIN начальное значение, равное 500.

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

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 54 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Число 2 из числа 1 можно получить с помощью команды 1 (также будем считать, что R(1) = 1). Для каждого следующего числа рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число не делится на 5, то оно может быть получено только из предыдущего с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для предыдущего числа: R(i) = R(i — 1). Если число на 7 делится, то вариантов последней команды два: прибавь 1 и умножь на 7, тогда R(i) = R(i — 1) + R(i/7). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

1

1

1

1

2

2

2

2

2

2

2

3

15

16

17

18

19

20

21

22

23

24

25

26

27

28

3

3

3

3

3

3

4

4

4

4

4

4

4

5

29

30

31

32

33

34

35

36

37

38

39

40

41

42

5

5

5

5

5

5

6

6

6

6

6

6

6

7

43

44

45

46

47

48

49

50

51

52

53

54



7

7

7

7

7

7

9

9

9

9

9

9




Ответ: 9.


С4


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

Пример верного решения на языке Паскаль:

Вариант 9

C1


1.



Область

Уcл. 1

y ≥ 0,5x2 - 2

Уcл. 2

y ≤ x + 0,5

Уcл. 3

y ≤ 0

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

Область

обрабатывается верно


A

нет

нет

В

нет

нет

C

да

да

да

принадлежит

да

D

да

да

нет

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

нет

E

нет

нет

F

нет

нет

G

да

нет

нет

H

да

нет

нет

2. Возможная доработка программы на языке Паскаль:

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


С2

Пример фрагмента программы на языке Паскаль.

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 10 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Число 2 из числа 1 можно получить с помощью команды 1 (также будем считать, что R(1) = 1). Для каждого следующего числа i рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число i не делится на 3, то оно может быть получено либо из i — 1-го с помощью команды прибавь 1, либо из числа i — 2-го с помощью команда прибавь 2. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го и i — 2-го чисел: R(i) = R(i — 1) + R(i — 2). Если число на 3 делится, то вариантов последней команды три: прибавь 1, прибавь 2 и умножь на 3, следовательно R(i) = R(i — 1) + R(i —2) + R(i/3). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10


1

1

3

4

7

12

19

31

53

84

Ответ: 84.







С4

Программа читает все входные данные один раз, сразу подсчитывая в массиве с индексами от 1 до 20 количество камней, принадлежащих определённой ценовой категории.

Путём просмотра этого массива с конца (от 20-й ценовой категории) определяется число камней, заведомо попадающих в число 5% самых дорогих (добавление всех камней следующей ценовой категории приводит к выходу за 5%).

Последняя ценовая категория, в которую попало не менее одного драгоценного камня, запоминается. Если хотя бы один из камней следующей ценовой категории также попадает в 5%, то проверяется, имеют ли он и другие камни, набравшие столько же баллов, ценовую категорию не менее 15-й. В этом случае они все добавляются к числу драгоценных камней, которые необходимо поместить в сейф повышенной надёжности и ценовая категория которых является искомой.

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

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

{если ещё хотя бы один драгоценный камень попадёт в 5%, то проверяется: ценовая категория этого и таких же камней — не менее 15-й}


Вариант 10

C1


1.



Область

Уcл. 1

у ≤ 2 - |1 - х|

Уcл. 2

y ≥ х - 1

Уcл. 3

x ≥ 0

Уcл. 4

y ≥ 0

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

Область

обрабатывается верно


А

да

нет

нет

В

да

да

нет

нет

С

да

нет

нет

D

да

да

да

да

принадлежит

да

Е

нет

нет

F

нет

нет

G

нет

нет

Н

да

да

да

нет

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

нет

да

I

да

да

нет

нет

2. Возможная доработка программы на языке Паскаль:

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


С2

Пример фрагмента программы на языке Паскаль.

С3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, .... 14 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Число 2 из числа 1 можно получить только с помощью команды 1. Число 3 можно получить только из числа 2 с помощью команды 1. Для каждого следующего числа i (i ≥ 4) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число г не делится на 5, то оно может быть получено либо из i — 1-го с помощью команды прибавь 1, либо из числа i — 3-го с помощью команды прибавь 3. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го и i — 3-го чисел: R(i) = R(i — 1) + R(i — 3). Если число на 5 делится, то вариантов последней команды три: прибавь 1, прибавь 3 и умножь на 5, следовательно R(i) = R(i —1) + R(i — 3) + R(i/5). Заполним соответствующую таблицу по приведенным формулам слева направо:
































































1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

1

2

4

5

7

11

16

24

35

51

75

110


Ответ: 110.


С4

Программа читает все входные данные один раз, сразу подсчитывая в массиве с индексами от 1 до 30 количество камней, принадлежащих определённой ценовой категории.

Путем просмотра этого массива с конца (от 30-й ценовой категории) определяется число камней, заведомо попадающих в число 10% самых дорогих (добавление всех камней следующей ценовой категории приводит к выходу за 10%).

Последняя ценовая категория, в которую попало не менее одного драгоценного камня, запоминается. Если хотя бы один из камней следующей ценовой категории также попадает в 10%, то проверяется, имеют ли он и следующие, набравшие столько же баллов, ценовую категорию не менее 25-й. В этом случае они все добавляются к числу драгоценных камней, которые необходимо поместить в сейф повышенной надёжности и ценовая категория которых является искомой.

Ниже приведен пример решения задания на языке Паскаль.

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

{если ещё хотя бы один драгоценный камень попадёт в 10%, то проверяется ценовая категория этого и таких же камней — не менее 25-й}

Вариант 11

C1


1.



Область

Уcл. 1

х2 + у2 ≤ 4

Уcл. 2

y ≥ 0

Уcл. 3

у ≥ х

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

Область

обрабатываетсяверно


A

нет

нет

В

нет

нет

С

да

да

нет

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

нет

D

да

да

да

принадлежит

да

Е

нет

нет

F

нет

нет

G

да

нет

нет

H

да

нет

нет


2. Возможная доработка программы на языке Паскаль:

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


C2

Пример фрагмента программы на языке Паскаль.

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 20 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Каждое из чисел от 2-х до 5-и включительно можно получить только из предыдущего числа с помощью команды 1. Для каждого следующего числа г (г ^ 6) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число г не делится на 7, то оно может быть получено либо из i — 1-го с помощью команды прибавь 1, либо из числа i — 5-го с помощью команды прибавь 5. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го и i — 5-го чисел: R(i) = R(i — 1) + R(i — 5). Если число на 7 делится, то вариантов последней команды три: прибавь 1, прибавь 5 и умножь на 7, следовательно R(i) = R(i - 1) + R(i - 5) + R(i/7). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10


1

1

1

1

1

2

4

5

6

7

11

12

13

14

15

16

17

18

19

20

9

13

18

25

32

41

54

72

97

129


Ответ: 129.


С4

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

Вариант 12

C1


1.



Область

Уcл. 1

x2 + (y+4)2 ≤ 16

Уcл. 2

y ≤ 0

Уcл. 3

у ≥ х - 4

Уcл. 4

х ≥ 0

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

Область

обрабатываетсяверно


A

нет

нет

В

нет

нет

C

да

да

да

нет

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

да

D

да

да

да

да

принадлежит

да

E

нет

нет

F

нет

нет

G

да

да

нет

нет

H

нет

нет

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

С3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ...» 20 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Числа 2 и 3 можно получить только из предыдущего числа с помощью команды 1, значит R(2) = 1, R(3) = R(2) = 1. Число 4 можно получить двумя способами: из предыдущего, прибавлением единицы, и из 1, умножением на 4, следовательно, R(4) = 2. Числа 5 и 6 можно получить только из предыдущего числа с помощью команды 1, значит R(5) = R(4) = 2, R(6) = R(5) = 2. Для каждого следующего числа i (i≥ 7) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число i не делится на 4, то оно может быть получено либо из i — 1-го с помощью команды прибавь 1, либо из числа г — б-го с помощью команды прибавь 6. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го и i — 6-го чисел: R(i) = R(i — 1) + R(i — 6). Если число на 4 делится, то вариантов последней команды три: прибавь 1, прибавь 6 и умножь на 4, следовательно R(i) = R(i — 1) + R(I — 6) + R(i/4). Заполним соответствующую таблицу по приведенным формулам слева направо:




1

2

3

4

5

6

7

8

9

10

1

1

1

2

2

2

3

5

6

8

11

12

13

14

15

16

17

18

19

20

10

13

16

21

27

37

47

60

76

99


Ответ: 99.


С4

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

Вариант 13

C1


1.



Область

Уcл. 1

y ≥ х2 —3

Уcл. 2

х2 + у2 ≤ 9

Уcл. 3

х ≤ 0

Уcл. 4

y ≥ 0

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

Область

обрабатываетсяверно


А

нет

нет

В

нет

нет

С

да

да

да

да

принадлежит

да

D

нет

нет

Е

нет

нет

F

да

да

нет

нет

G

да

нет

нет

Н

да

да

нет

нет

J

да

да

да

нет

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

нет

2. Возможная доработка программы на языке Паскаль:

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


С2

Пример фрагмента программы на языке Паскаль.

С3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 28 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Числа 2 и 3 можно получить только из предыдущего числа с помощью команды 1, значит R(2) = 1, R(3) = R(2) = 1. Для каждого следующего числа i (г ^ 4) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число г не делится на 4 и не делится на 5, то оно может быть получено из i—1-го с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го числа: R(i) = R(i — 1). Если число делится на 4, но не делится на 5, то вариантов последней команды два: прибавь 1 и умножь на 4, следовательно R(i) = R(i - 1) + R(i/4). Если число делится на 5, но не делится на 4, то вариантов последней команды два: прибавь 1 и умножь на 5, следовательно, в этом случае R(i)= R(i — 1) + R(i/5). Если же число делится и на 5 и на 4, то вариантов последней команды три: прибавь 1, умножь на 4 и умножь на 5, в этом случае R(i) = R(i - 1) + R(i/4) + R(i/5).Заполним соответствующую таблицу по приведенным формулам слева направо:




































































1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

1

2

3

3

3

4

4

5

5

6

6

6

15

16

17

18

19

20

21

22

23

24

25

26

27

28

7

9

9

9

9

14

14

14

14

17

30

30

30

30

Ответ: 30.


С4

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

Вариант 14

C1


1.



Область

Уcл. 1

x2 + y3 ≤ 9

Уcл. 2

у ≤ -x2

Уcл. 3

х ≥ 0

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

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


A

нет

нет

В

нет

нет

c

да

нет

нет

D

да

нет

нет

E

нет

нет

F

да

да

да

принадлежит

да

G

да

да

нет

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

нет

H

да

нет

нет

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 28 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Число 2 можно получить только из предыдущего числа с помощью команды 1, значит R(2) = 1. Для каждого следующего числа i (i ≥ 3) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Если число iне делится на 3 и не делится на 7 (для i ≥ 7), то оно может быть получено из i — 1-го с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го числа: R(i) = R(i - 1). Если число делится на 3, но не делится на 7, то вариантов последней команды два: прибавь 1 и умножь на 3, следовательно R(i)= R(i — 1) + R(i/3). Если число делится на 7 (для i ≥ 7), но не делится на 3, то вариантов последней команды два: прибавь 1 и умножь на 7, следовательно, в этом случае R(i) = R(i - 1) + R(i/7). Если же число делится и на 3, и на 7, то вариантов последней команды три: прибавь 1, умножь на 3 и умножь на 7, в этом случае R(i) = R(i —1) + R(i/3) + R(i/7). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

2

2

2

3

4

4

6

6

6

8

8

9

15

16

17

18

19

20

21

22

23

24

25

26

27

28

11

11

11

14

14

14

18

18

18

22

22

22

28

30


Ответ: 30.


С4

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

Вариант 15

C1


1.



Область

Уcл. 1

у ≤ 2соs(2х)

Уcл. 2

х ≥ 0

Уcл. 3

у ≥ 0.5х — 1

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

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

верно


А

нет

нет

В

нет

нет

С

да

да

да

принадлежит

да

D

да

нет

нет

Е

да

да

нет

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

да

F

да

нет

нет

G

нет

нет

Н

да

да

нет

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

да

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, 28 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Число 2 можно получить только из предыдущего числа с помощью команды 1, значит R(2) = 1. Если число г не делится на 3, то оно может быть получено из i — 1-го с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го числа: R(i) = R(i — 1). Если число делится на 3, но не делится на 9, то вариантов последней команды два: прибавь 1 и умножь на 3, следовательно R(i) = R(i — 1) + R(i/3). Если число делится на 9, то вариантов последней команды три: прибавь 1, умножь на 3 и умножь на 9, в этом случае R(i) = R(i — 1) + R(i/3) + R(i/9). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

2

2

2

3

3

3

6

6

6

8

8

8

15

16

17

18

19

20

21

22

23

24

25

26

27

28

10

10

10

14

14

14

17

17

17

20

20

20

28

28


Ответ: 28.


С4

Программа читает все входные данные один раз, сразу подсчитывая в массиве с индексами от 0 до 50 количество участников, набравших тот или иной балл. Путём просмотра этого массива с конца (от 50-ти баллов) определяется число участников, заведомо попадающих в число 45% лучших (добавление всех участников, набравших следующий балл, приводит к выходу за 45%).

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

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

{определены те, кто наверняка стал призёром, и пропущены баллы, которые никто не набрал}

{если ещё хотя бы один участник попадает в 45%, то проверяется, какой балл набрали он и следующие участники}
































































Вариант 16

C1


1.



Область

Уcл. 1

y ≥ |1-x|-1

Уcл. 2

y ≤ 2

Уcл. 3

у ≤ 3 — |х—2|

Уел. 4

y ≤ 0

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

Область

обрабатываетсяверно


А

нет

нет

В

да

нет


нет

С

да

да

да

да

принадлежит

да

D

да

да

нет

нет

Е

да

да

да

нет

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

да

F

нет

нет

G

нет

_

нет

Н

да

да

нет

нет

I

нет

_

нет

J

да

нет

нет

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

С3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3, ..., 28 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Число 2 можно получить только из предыдущего числа с помощью команды 1, значит 72(2) = 1. Если число i не делится на 4, то оно может быть получено из i - 1-го с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го числа: R(i) = R(i — 1). Если число делится на 4, но не делится на 8, то вариантов последней команды два: прибавь 1 и умножь на 4, следовательно R(i) = R(i — 1) + R(i/4). Если число делится на 8, то вариантов последней команды три: прибавь 1, умножь на 4 и умножь на 8, в этом случае R(i) = R(i - 1) + Я(i/4) + R(i/8). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

1

2

2

2

2

4

4

4

4

5

5

5

15

16

17

18

19

20

21

22

23

24

25

26

27

28

5

8

8

8

8

10

10

10

10

13

13

13

13

15


Ответ: 15.


С4

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

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

Вариант 17

C1


1.



Промежуток

Уcл. 1

x > 2

Уcл. 2

-1 ≤ х ≤ 2

Выполняемая функция

Промежуток обрабатывается верно


(-∞; -1)

нет

нет

y = │x│

да

[-1; 2]

нет

да

у = 2х2 - 3

да

(2; +∞)

да

нет

у = │x│

нет

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3,.... 28 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Числа 2, 3 и 4 можно получить только из предыдущего числа с помощью команды 1, значит R(2) = 1, R(4) = R(3) = R(2) = 1. Для каждого следующего числа i (i ≥ 5) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Заметим, что при выполнении команды 2 мы можем поучить только нечётное число. Следовательно, если число i нечётное, то оно может быть получено либо из i — 1-го с помощью команды прибавь 1, либо из i — 3-го с помощью команды прибавь 3. Значит, количество искомых программ для такого числа: R(i) = R(i — 1) + R(i — 3). Если число i — чётное, оно может быть получено из i — 1-го с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для i — 1-го числа: R(i) = R(i — 1). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

1

1

2

2

3

3

5

5

8

8

13

13

15

16

17

18

19

20

21

22

23

24

25

26

27

28

21

21

34

34

55

55

89

89

144

144

233

233

377

377


Ответ: 377.


С4

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

Вариант 18

C1


1.



Промежуток

Усл. 1

х ≥ 1 или х = —2

Усл. 2

х < —2

Выполняемая функция

Промежуток обрабатывается верно


(-∞;-2)

нет

да

y = │x2 - 5|

да

(-2;1)

нет

нет

y = - 8

да

—2 U [1; +∞)

да

нет

y = - 8

нет

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

C3

Будем решать поставленную задачу последовательно для чисел 1, 2, 3,..., 28 (то есть для каждого из чисел определим, сколько программ исполнителя существует для его получения). Количество программ, которые преобразуют число 1 в число n, будем обозначать через R(n). Будем считать, что R(1) = 1. Числа 2, 3, 4, 5 и 6 можно получить только из предыдущего числа с помощью команды 1, значит R(2) = 1, R(6) = R(5) = R(4) = R(3) = R(2) = 1. Для каждого следующего числа i (i ≥ 7) рассмотрим, из какого числа оно может быть получено за одну команду исполнителя. Заметим, что при выполнении команды 2 мы можем получить только нечётное число. Следовательно, если число г нечётное, то оно может быть получено либо из i — 1-го с помощью команды прибавь 1, либо из i — б-го с помощью команды прибавь 6. Значит, количество искомых программ для такого числа: R(i) = R(i—1) + R(i—6). Если число i — чётное, оно может быть получено из i — 1-го с помощью команды прибавь 1. Значит, количество искомых программ для такого числа равно количеству программ для i— 1-го числа: R(i) = R(i — 1). Заполним соответствующую таблицу по приведенным формулам слева направо:


1

2

3

4

5

6

7

8

9

10

11

12

13

14


1

1

1

1

1

1

2

2

3

3

4

4

6

6

15

16

17

18

19

20

21

22

23

24

25

26

27

28

9

9

13

13

19

19

28

28

41

41

60

60

88

88

Ответ: 88.


С4

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

Вариант 19
































































C1


1.



Расположение координат

Условие

x1≤x3≤x2 или x1≤x4≤x2

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

Программа выполняется верно


x1 ≤ x2 ≤ x3 ≤ x4

нет

не пересекаются

да

x1 ≤ x3 ≤ x2 ≤ x4

да

пересекаются

да

x1 ≤ x3 ≤ x4 ≤ x2

да

пересекаются

да

x3 ≤ x4 ≤ x1 ≤ x2

нет

не пересекаются

да

x3 ≤ x1 ≤ x4 ≤ x2

да

пересекаются

да

x3 ≤ x1 ≤ x2 ≤ x4

нет

не пересекаются

нет




2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

C3

Обозначим R(n) — количество программ, которые преобразуют число 1 в число n. Обозначим через t(n) наибольшее кратное трём (не превосходящее n), такое, что - простое. Обе команды исполнителя увеличивают исходное число, поэтому общее количество команд в программе не может превосходить 42.

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

1. Если n делится на 3 и n/3 — простое, то R(n) = R(n/3) + R(n — 1) (для n > 3).

2. Для всех других чисел (не указанных в п. 1, за исключением числа 3) R(n) = R(t(n)), так как существует единственный способ получения n из t(n) — прибавлением единиц.

При n = 3 R(n) = 2 (два способа: прибавление двух единиц или однократное умножение на 3). Поэтому достаточно постепенно вычислить значения R(n) для всех чисел, кратных трем, не превосходящих 42, таких, что п/3 — простое: сначала вычисляем R(1), затем R(3), R(6) и т.д. Имеем:

Ответ: 18.

С4

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

Вариант 20

C1


1.



Значение переменных

Уcл. 1

(m= 1 или m = 3 или m = 5 или m = 7 или m = 8или m = 10 или m = 12) и ch ≥ 1 и ch ≤ 31

Уcл. 2

m = 4 или m = 6 или m = 9 или m= 11) и ch ≥ 1 н ch ≤ 30

Уcл. 3

m = 2 и ch ≥ 1 и

ch ≤29

Программа

выведет

Программа

выполняетсяверно


ch = 31, m = 10

да

нет

ch = 31, m = 11

нет

нет

нет

ch = 30, m = 2

нет

нет

нет

неправильно

да

ch = 20, m = 6

нет

да

нет

ch = 31, m = 10

да

_

нет

ch = 12, m = 2

нет

нет

да

правильно

да

2. Возможная доработка программы на языке Паскаль:

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

С2

Пример фрагмента программы на языке Паскаль.

С3

Обозначим R(n) — количество программ, которые преобразуют число 1 в число п. Обозначим через t(n) наибольшее кратное трём (не превосходящее n), такое, что — простое. Обе команды исполнителя увеличивают исходное число, поэтому общее количество команд в программе не может превосходить 56.

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

1. Если п делится на 5 и n/5 — простое, то R(n) = R(n/5) + R(n — 1) (для n > 5).

2. Для всех других чисел (не указанных в п. 1, за исключением числа 5) R(n) = R(t(n)), так как существует единственный способ получения n из t(n) — прибавлением единиц.

При n = 5 R(n) = 2 (два способа: прибавление двух единиц или однократное умножение на 5). Поэтому достаточно постепенно вычислить значения R(n) для всех чисел, кратных трем, не превосходящих 56, таких, что n/5 — простое: сначала вычисляем R(1), затем R(5), R(10) и т.д. Имеем:

Ответ: 11.

C4

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