Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zada4nik-Канель-Фрайман.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.8 Mб
Скачать

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

8.

Перед вами один из способов кодировки текста:

  • из строки текста убираются все пробелы;

  • после каждой буквы вставляется дополнительная буква по следующему правилу: если буква в тексте «меньше», чем М, вставляется следующая (по алфавиту) буква, иначе вставляется предыдущая (по алфавиту) буква.

Например, текст «GOODLUCK» будет закодирован как «GHONONDELMUTCDKL».

Напишите программу, которая читает с клавиатуры строку текста и печатает строку после кодировки.

Примечание: Можно предполагать, что строка текста состоит только из заглавных букв латинского алфавита (A–Z) и пробелов.

Часть 3 (20 баллов)

Необходимо ответить на 1 вопрос из вопросов 9–10.

9.

Введем следующее определение:

Пусть а – двумерный массив, содержащий отличные друг от друга целые числа, и b – один из элементов массива а.

Тогда «подмассив» – часть массива а, вправо и вниз от числа b (включая само число).

Например, для данного массива а размером 45 и числа b=4

2

7

12

3

17

27

22

4

0

1

9

-2

8

13

-9

-1

5

-20

20

10

«подмассив» будет следующим:

4

0

1

8

13

-9

-20

20

10

Разработайте алгоритм, который вводит целые числа в массив размером 1825,

находит минимальное число в массиве и печатает «подмассив» для этого числа.

Кроме того, алгоритм напечатает сообщение «ЧЕТНЫЙ», если все элементы «подмассива» являются четными числами.

А. Разделите алгоритм на подзадачи, сформулируйте необходимые параметры и требуемые результаты для каждой подзадачи.

Б. Напишите методы для реализации каждой подзадачи.

В. Напишите программу для реализации алгоритма.

10.

Перед областной олимпиадой по программированию были организованы отборочные соревнования, в которых приняли участие 1750 учеников. В областной олимпиаде должны принять участие учащиеся, которые получили оценки выше средней. Соревнования проходили отдельно для двух групп учащихся – в зависимости от языка программирования (Pascal и Java).

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

А. Разделите алгоритм на подзадачи, сформулируйте необходимые параметры и требуемые результаты для каждой подзадачи.

Б. Напишите методы для реализации каждой подзадачи.

В. Напишите программу для реализации алгоритма.

        1. Экзамен на аттестат зрелости 2004 года

Часть 1

Необходимо ответить на все вопросы 1–5. Каждый вопрос – 10 баллов.

1.

Дан метод secret:

public static int secret(int a, int b)

{

if(a>b) return a;

else return (b-a);

}

А. Перед вами два вызова метода secret (i-ii)

  1. secret(7,3);

  2. secret(8,8);

Запишите, что будет возвращено в результате каждого вызова.

Б. Объясните, что выполняет метод secret.

2.

Перед вами алгоритм:

  1. 100 pul

  2. Для i от 1 до 4 выполнить

    1. Ввести число в переменную num

    2. Если num больше i

      1. Тогда выполнить: pul - numpul

      2. Иначе выполнить: pul/i pul

  3. Вывести значение pul

Проследите с помощью таблицы трассировки за исполнением алгоритма и запишите, каким будет вывод для следующего ввода:

10, 1, 3, 8.

3.

Дан одномерный массив размером 28 ячеек, каждая из которых содержит целое значение от 1 до 99 включительно.

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

4.

Дана переменная st1 строкового типа.

А. Напишите команду (команды) для вывода на печать первых 4 символов строки st1.

Б. Напишите команду (команды) для вывода на печать последних 4 символов строки st1.

В. Напишите команду (команды) для вывода на печать сообщения «YES!», если в строке st1 есть буква Y, и сообщение «NO!», если такой буквы нет.

5.

Перед вами двумерный массив m размером 34 и фрагмент программы, использующей этот массив:

5

3

7

4

2

2

2

2

8

9

8

8

for( t=0;t<4; t++)

m[1][t]=t*t;

s=2;

m[s][0]=m[0][s];

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]