
- •Раздел 1Переменные и основные типы переменных. Объявление и инициализация переменных. Задание 1.1*
- •Задание 1.2*
- •Задание 1.3*
- •Задание 1.4*
- •Задание 1.5*
- •Задание 1.6*
- •Задание 2.6*
- •Задание 2.7*
- •Задание 3.10*
- •Задание 4.19*
- •Задание 4.20*
- •Задание 5.2*
- •Задание 5.3*
- •Задание 6.2*
- •Задание 6.3*
- •Задание 7.2*
- •Задание 7.3*
- •Задание 7.4*
- •Задание 8.2*
- •Задание 8.3*
- •Задание 8.4*
- •Задание 8.5*
- •Задание 8.6*
- •Задание 8.7*
- •Задание 8.8*
- •Задание 8.9*
- •Задание 8.29*
- •Задание 8.30*
- •Задание 9.2*
- •Задание 9.3*
- •Задание 9.4*
- •Задание 9.5*
- •Задание 9.6*
- •Задание 9.7*
- •Задание 9.13*
- •Задание 9.14*
- •Задание 9.15*
- •Задание 9.16*
- •Задание 10.9*
- •Задание 10.10*
- •Задание 10.11
- •Задание 10.21*
- •Раздел 11Цикл for Задание 11.1*
- •Задание 11.2*
- •Задание 11.3*
- •Задание 11.4*
- •Задание 11.5*
- •Задание 11.6*
- •Задание 11.22*
- •Задание 11.23*
- •Задание 11.24*
- •Задание 12.12*
- •Задание 12.13*
- •Задание 13.12*
- •Задание 13.13*
- •Задание 13.14*
- •Задание 13.29*
- •Задание 13.30*
- •Задание 13.31*
- •Задание 15.2*
- •Задание 15.3*
- •Задание 15.46*
- •Задание 15.47*
- •Задание 15.48*
- •Задание 15.49*
- •Задание 15.50*
- •Задание 15.51*
- •Задание 15.52*
- •Задание 16.21*
- •Раздел 17Использование методов в программах на языке Java
- •Задание 17.1*
- •Задание 17.2*
- •Задание 17.3*
- •Задание 17.4*
- •Задание 17.5*
- •Задание 17.6*
- •Задание 17.7*
- •Задание 18.11*
- •Задание 18.12*
- •Задание 18.13*
- •Задание 18.14*
- •Задание 18.15*
- •Задание 18.16*
- •Задание 18.17*
- •Задание 18.18*
- •Раздел 19Массивы и методы
- •Задание 19.1*
- •Задание 19.2*
- •Задание 19.3*
- •Задание 19.4*
- •Задание 19.5*
- •Задание 19.66*
- •Задание 19.67*
- •Задание 19.68*
- •Задание 19.69*
- •Задание 20.12*
- •Задание 20.13*
- •Задание 20.14*
- •Задание 20.15*
- •Задание 20.16*
- •Задание 20.17*
- •Задание 20.18*
- •Задание 20.19*
- •Задание 20.20*
- •Задание 20.21*
- •Задание 20.22*
- •Задание 20.23*
- •Задание 21.2*
- •System.Out.Println(twice("Мама");
- •Задание 21.21*
- •Задание 21.22*
- •Задание 22.2*
- •Задание 22.3*
- •Раздел 23Приложение Государственные экзамены на аттестат зрелости по специальности «Основы компьютерных наук» за 1993–2011 годы
- •Экзамен на аттестат зрелости 1993 года Часть 1
- •А. Дайте словесную интерпретацию этой блок-схеме. Б. Дано следующее утверждение: «в любом случае будет напечатано большее из двух введенных значений». Верно ли это утверждение? Объясните свой ответ.
- •Часть 2
- •Часть 2
- •Часть 3 (20 баллов)
- •Часть 2
- •Часть 3 (20 баллов)
- •Экзамен на аттестат зрелости 1996 года Часть 1
- •Часть 2
- •А. Проследите с помощью таблицы трассировки за выполнением алгоритма для двух пар вводимых чисел:
- •Б. Замените команду в строке 2 алгоритма на следующую команду:
- •Часть 2
- •Б. Дано следующее утверждение: «в результате выполнения алгоритма будет напечатано хотя бы одно число».
- •Часть 3 (20 баллов)
- •Б. Напишите программу, которая вводит целые положительные числа от 1 до 9 включительно. Ввод закончится, когда будет введено число, большее 9.
- •А. Дан одномерный массив м.
- •Часть 2
- •Часть 2
- •Часть 2
- •Часть 3 (20 баллов)
- •В. Определите и обоснуйте, какой из алгоритмов более эффективный.
- •Часть 3 (20 баллов)
- •Часть 2
- •А. Напишите метод. Б. Дан массив change размером 19 ячеек, заполненный целыми положительными числами, меньшими 100.
- •А. Выберите для переменной а три значения, для каждого из которых будет выведено свое сообщение. Объясните свой выбор.
- •Б. Заполните пропущенные сообщения. Часть 3 (20 баллов)
- •А. Разработайте алгоритм, позволяющий автоматизировать работу фирмы.
- •Б. Напишите программу, которая реализует разработанный алгоритм, используя написанные в пункте а методы.
- •А. Дан следующий массив a:
- •А. Напишите метод, который получает в качестве параметров стаж работы и уровень образования, вычисляет индекс sel и возвращает:
- •Часть 3 (20 баллов)
- •А. Напишите метод, который получает в качестве параметров:
- •Экзамен на аттестат зрелости 2006 года Часть 1
- •А. Проследите с помощью таблицы трассировки за исполнением алгоритма для следующего ввода: 10, 4. Запишите, каким будет вывод. Б. Приведите пример ввода, для которого цикл не будет выполняться.
- •Часть 2
- •А. Перед вами входные параметры и результат метода bigSums:
- •Б. Дан массив размером 23 ячейки. Каждое число в массиве – двузначное, положительное, с отличными друг от друга цифрами.
- •Б. Для другого массива a после исполнения фрагмента программы на экране было получено значение 0.
- •Часть 3 (20 баллов)
- •А. Напишите метод, получающий в качестве параметров:
- •Б. Дан массив размером 1010, элементами которого являются числа 0 или 1. Напишите фрагмент программы, который подсчитает и выведет на экран число «окруженных» элементов массива.
- •А. Разработайте алгоритм, обеспечивающий ввод заказов и расчет необходимых сумм.
- •Б. Напишите программу, которая реализует разработанный алгоритм, используя написанные в пункте а методы.
- •Экзамен на аттестат зрелости 2007 года Часть 1
- •Часть 2
- •А. Разработайте алгоритм, обеспечивающий управление стоянкой в определенный день. Алгоритм должен включать в себя следующие подзадачи:
- •Экзамен на аттестат зрелости 2008 года Часть 1
- •А. Проследите с помощью таблицы трассировки за выполнением алгоритма и запишите, каким будет его вывод для следующего ввода: 2, 3.
- •Б. Приведите пример ввода, при котором выводится сообщение «equals»
- •Часть 2
- •Часть 3 (20 баллов)
- •Часть 2
- •А. Проследите с помощью таблицы трассировки за выполнением метода для данного массива arr, и запишите, что вернет данный метод.
- •Б. Приведите пример массива из 9 ячеек, для которого метод вернет 3. В. Приведите пример массива из 9 ячеек, для которого метод вернет 0.
- •Часть 3 (20 баллов)
- •А. Напишите метод, который получит:
- •Экзамен на аттестат зрелости 2010 года Часть 1
- •Б. Приведите пример значений переменных X и y, для которых будет выведена только одна строка.
- •Часть 2
- •Б. Приведите пример значений переменных a и b, для которых вывод будет отличаться от вывода, полученного в пункте а.
- •Часть 2
- •А. Дан массив names длиной 5.
- •Б. Приведите пример массива длиной 5, для которого данный метод вернет значение, отличное от того, что он вернул в пункте а.
- •Часть 3 (20 баллов)
- •Б. Напишите метод, который получит первую введенную клиентом цифру (одну из цифр 1–8).
- •А. Напишите метод, который получит массив, содержащий целые числа. Метод вернет длину отрицательной группы, первой от начала массива.
- •Б. Напишите программу, которая 672 раза выполнит прием с клавиатуры целых чисел в массив длиной 83.
Часть 3 (20 баллов)
Необходимо решить 1 задачу из задач 9 и 10.
9.
Дан заголовок метода: public staticint f (int n, int k, String s)
Условие входа: метод принимает два целых числа и строковую переменную.
Условие выхода: если в S по крайней мере один раз встречается пара символов «а» («aa»), метод возвращает произведение числовых параметров. Если в S встречается по крайней мере один раз знак «a», но только рядом с другими знаками, метод возвращает сумму числовых параметров. Во всех других случаях метод возвращает разницу между первым и вторым числовыми параметрами.
А. Напишите тело метода.
Б. Необходимо заполнить значениями двумерный массив размером 2535, для чего следует использовать указанный метод следующим образом: числовыми параметрами являются индексы ячейки (номер строки и номер столбца) и строковая переменная, значения которой вводятся с клавиатуры. Для каждого элемента массива следует ввести новое значение. После заполнения массива следует сосчитать число положительных и число отрицательных значений в массиве.
Опишите необходимые (выбранные) переменные, их типы и назначение.
Укажите подзадачи, необходимые для выполнения задания, и методы для реализации каждой подзадачи. Для каждого метода необходимо указать условие входа и условие выхода.
Напишите программу для реализации задания. Программа должна напечатать содержимое массива, число положительных и число отрицательных значений в массиве.
10.
Расчет за пребывание в гостинице осуществляется в последний день. Расчет выполняется как произведение числа дней проживания на 4000 рублей за каждый день – плюс плата за отдельно заказанные каждым клиентом дополнительные услуги.
А. Напишите метод для расчета платы за проживание в гостинице, принимающую в качестве параметров: номер, в котором проживал клиент, число дней, в течение которых он занимал номер, сумму платежа за дополнительные услуги. Метод должен распечатать квитанцию, в которой указаны: номер, в котором проживал клиент, число дней его проживания в гостинице и общую сумму платежа. Если общая сумма платежа окажется более 20000 рублей – следует напечатать также дополнительное сообщение «возможна оплата в 4 платежа».
Б. Владельцы гостиницы решили распечатывать подробный счет для каждого клиента, уезжающего из гостиницы. В качестве ввода указываются следующие данные: номер, в котором проживал клиент, число дней, в течение которых он занимал номер. Кроме того, за каждый день пребывания вводятся платежи за дополнительные услуги – их в итоге следует просуммировать.
Опишите необходимые (выбранные) переменные, их типы и назначение.
Укажите подзадачи, необходимые для выполнения задания, и методы для реализации каждой подзадачи. Для каждого метода необходимо указать условие входа и условие выхода. Используйте метод, написанный в разделе А.
Напишите программу для реализации задания (ввод данных об уезжающих из гостиницы клиентах завершается, когда в качестве номера, который занимал клиент, указывается число 999).
Экзамен на аттестат зрелости 2002 года
Часть 1
Необходимо ответить на все вопросы 1–5. Каждый вопрос – 10 баллов.
1.
Дан алгоритм:
Присвоить переменной Count значение 0
Для I от 1 до 5 делать:
Ввести число для переменной Number
Если Number≤10, то
увеличить значение Count на 1
(3) Вывести значение Count
А. Что выведет алгоритм, для следующего ввода: 8, 15, 10, -2, 1?
Необходимо использовать таблицу трассировки.
Б. Объясните, какова общая цель алгоритма.
2.
Напишите программу, которая генерирует 57 пар случайных чисел из диапазона 1..18 (включая крайние значения) и показывает для каждой пары большее число из двух. Для пары, образованной равными по значению числами, показать одно из них.
3.
Перед вами часть программы:
Scanner in=new Scanner(System.in); int x=in.nextInt(); int y=in.nextInt(); if ((x>y) && (y>12) System.out.println(“Истина”); else System.out.println (“Ложь”); |
А. Выберите такие значения для x и y, чтобы выводилось сообщение Истина. Объясните свой выбор.
Б. Выберите такие значения для x и y, чтобы выводилось сообщение Ложь. Объясните свой выбор.
4.
Перед вами отрывок программы:
for (i=0; i< n-2; i++) if (a[i]+2= =a[i+2]) System.out.println(i+" "+a[i]); |
А. Дан массив a размером 10 ячеек:
а |
3 |
18 |
5 |
20 |
2 |
4 |
5 |
6 |
1 |
9 |
Каким будет вывод программы для n=10 и данного массива. Необходимо использовать программу трассировки.
Б. Объясните, почему в программе верхняя граница цикла указана как n-2.
5.
Дан заголовок метода:
public static int how_many (int num, int dig)
Входные параметры: метод получает 2 параметра, num и dig, причем num – двузначное положительное число, а dig – цифра из диапазона 0..9.
Результат: метод возвращает число появлений dig в num.
А. Укажите две пары параметров так, чтобы для каждой пары функция возвращала иное значение.
Б. Напишите тело функции.
Часть 2
Необходимо ответить на 2 вопроса из вопросов 6–8. Каждый вопрос – 15 баллов.
6.
Напишите программу, принимающую в качестве ввода серию положительных целых чисел. Ввод прекращается после введения 10 четных чисел. Программа должна распечатывать (показывать в качестве вывода) все четные числа из вводимой серии; кроме того, программа выводит общее число введенных значений.
Примечание: Допустимо предположить, что все вводимые числа соответствуют требованию задачи.
7.
Десятиклассники приняли участие в мероприятии по сбору двух видов отходов для последующей переработки: пластиковых бутылок и использованных батареек.
В двух десятых классах школы учатся 68 учеников. Решено в рамках мероприятия провести соревнование между этими двумя классами. Подсчет баллов было решено провести по следующей системе: за каждую пластмассовую бутылку начислять 3 балла, за батарейку – 7 баллов. Победителем признается класс, ученики которого получили в сумме большее число баллов.
Напишите программу, вводом для которой будут следующие данные: для каждого ученика вводится класс, в котором он учится, число бутылок и число батареек, которые он собрал.
Программа должна подсчитать число баллов для каждого класса и указать в качестве вывода класс-победитель; в случае, если суммы баллов равны, программа должна распечатать текстовое сообщение «НИЧЬЯ».
Примечание: Допустимо предположить, что все вводимые числа соответствуют требованию задачи.
8.
Перед вами метод, написанный на языке Java.
Входные параметры: массив vec, содержащий целые числа, и целое число m.
Результат: функция должна возвращать разницу между средним m первых ячеек массива и средним остальных его ячеек.
public static double diff(vec a, int m) { int i; double sum, avg1, avg2; sum=0; for (i=0; i<=m-1; i++) sum=sum+a[i]; avg1:=sum/m; sum:=0; fFor (i:=m-1;i<a.length; i++) sum:=sum+a[I]; avg2:=sum/(a.length-m);
return(avg1-avg2); } |
А. Дан массив а:
а |
1 |
3 |
2 |
4 |
6 |
0 |
4 |
Проследите за исполнением метода diff для m=3 и данного массиваа с помощью таблицы трассировки.
Б. Измените одну из команд так, чтобы функция работала правильно. Объясните сделанное изменение.
Часть 3 (20 баллов)
Необходимо ответить на 1 вопрос из вопросов 9–10.
9.
А. Дан массив размером, содержащий целые числа. Известно, что все элементы массива различны. Напишите метод, который принимает в качестве параметров данный массив и целое число m и проверяет, находится ли m в массиве. В случае, если m действительно находится в массиве, метод должен возвращать число элементов массива, меньших m и находящихся перед m (в «начальной части» массива). В случае, если m не находится в массиве, метод должен вернуть число элементов, меньших m во всем массиве.
Б. Напишите программу, заполняющую массив размером 20 ячеек различными целыми числами и затем читающую с клавиатуры еще 10 дополнительных чисел. Программа должна передавать массив и каждое из 10 дополнительных чисел в качестве параметров в метод, написанный в предыдущем разделе задачи.
Примечание: Предположите, что все вводимые числа соответствуют требованию задачи.
В. Предположим, что написанный метод возвращает 0.
Что в этом случае можно сказать о значении m? Обоснуйте свой ответ.
Что можно сказать о значении m, если метод возвратил 20 для массива в 20 ячеек?
Г. Известно, что массив отсортирован в возрастающем порядке и подпрограмма возвратила 20 (для массива в 20 ячеек). Добавьте в метод команду, которая для подобных случаев исключает необходимость просмотра всего массива.
10.
А. Напишите метод, который принимает в качестве параметра целое положительное число mis. Метод должен проверить, существуют ли два целых положительных числа, произведение которых равно mis и разница между которыми равна 3. Если такая пара чисел действительно существует, метод возвращает меньшее из них, если нет – метод возвращает 0.
Б. Напишите алгоритм, который принимает в качестве ввода 83 целых числа из диапазона 1..100. Для каждого из введенных чисел алгоритм вызывает метод, написанный в разделе А. Алгоритм должен печатать сообщение «ДА», если среди значений, возвращенных подпрограммой, были все числа от 1 до 10, в ином случае алгоритм должен печатать сообщение «НЕТ».
Выберите основные переменные, опишите их типы и укажите их назначение.
Разделите задачу на подзадачи и сформулируйте их цели.
В. Напишите программу для реализации алгоритма.
Примечание: Допустимо предположить, что все вводимые числа соответствуют требованию задачи.
Экзамен на аттестат зрелости 2003 года
Часть 1
Необходимо ответить на все вопросы 1–5. Каждый вопрос – 10 баллов.
1.
Перед вами алгоритм:
Ввести число в переменную number
Пока number отличается от нуля
Если number меньше 0
Тогда выполнить: number*(-1)→number
Вывести значение number
Ввести число в переменную number
А. Проследите с помощью таблицы трассировки за исполнением алгоритма и запишите, каким будет вывод для следующего ввода:
3, -7, -2, 4, 1, 0
Б. Объясните, что выполняет алгоритм.
2.
Дан заголовок метода mean и его описание: public static double mean (int a, int b)
Параметры: метод получает два целых числа.
Результат: метод возвращает среднее арифметическое двух чисел.
А. Дополните тело метода mean.
Б. Напишите команду, выводящую на экран среднее арифметическое значений двух переменных х и у, используя метод mean.
3.
Перед вами фрагмент программы:
Scanner in=new Scanner(System.in);
a=in.nextInt();
b=in.nextInt();
if((a<b)||(a<100)
System.out.println(“TRUE”);
else
System.out.println(“FALSE”);
А. Выберите значение для ввода в переменную a и переменную b, так чтобы было выведено сообщение FALSE. Объясните свой выбор.
Б. Дано логическое выражение: (z>x)||(x<0)&&(z-y>9)
Чему равно значение этого выражения для следующих значений переменных:
x=-2; y=5; z=13?
4.
А. Дан массив a размером 27 ячеек, содержащий строки. Все элементы массива отличны друг от друга.
Напишите фрагмент программы, которая вводит строку текста и печатает ее место в массиве.
Примечание: Предполагается, что вводимая строка присутствует в массиве a.
Б. Содержимое массива изменилось, и теперь он содержит две строки, идентичные вводимой строке: одна на 3 месте, другая на 10 месте.
Напишите, что будет выведено в результате работы программы, написанной в пункте А, для измененного массива.
5.
Перед вами двумерный массив game размером 33 и фрагмент программы, использующей этот массив:
X |
O |
X |
O |
X |
O |
O |
X |
X |
m=0;
for( i=0;i<3; i++)
if(game[i][i]==’X’)
m=m+1;
System.out.println(m);
А. Проследите с помощью таблицы трассировки за исполнением фрагмента программы.
Объясните, что выполняет фрагмент программы.
Б. Условный оператор в данном фрагменте программы изменен на следующий условный оператор:
if(game[1][i]==’X’)
m=m+1
Объясните, что теперь выполняет фрагмент программы.
Часть 2
Необходимо ответить на 2 вопроса из вопросов 6–8. Каждый вопрос – 15 баллов.
6.
В парке развлечений есть два лабиринта: big и small. Лабиринт big предназначен для посетителей, чей рост не менее 170 см, лабиринт small предназначен для посетителей ростом менее 170 см.
А. Напишите программу, которая принимает в качестве ввода целое число, определяющее рост каждого посетителя, и печатает название соответствующего лабиринта.
Ввод данных завершается, когда вводится 0. После окончания ввода программа напечатает количество посетителей в каждом из лабиринтов.
Б. Гиды в каждом из лабиринтов получают бонусы к зарплате, в зависимости от числа посетителей:
в лабиринте big один бонус за каждых 15 посетителей;
в лабиринте small один бонус за каждых 20 посетителей.
Например, если лабиринт big посетили 39 человек, гид получит 2 бонуса. Если лабиринт small посетили 80 человек, гид получит 4 бонуса.
Добавьте к программе, написанной в пункте А, команды, которые обеспечат вывод общего числа бонусов, полученных гидами.
7.
Перед вами описание двух алгоритмов А и Б, предназначенных для решения одной и той же задачи:
Алгоритм А |
Алгоритм Б |
|
|
А. Проследите с помощью таблицы трассировки за исполнением обоих алгоритмов для n=2 и p=3 и запишите, каким будет вывод.
Б. Запишите, сколько раз выполняется команда s+p → s в каждом из алгоритмов.