899222 , קיץ תש"ס,'מדעי המחשב א 2000 год, базовый уровень (2 первых «учебных единицы» из 5) לפניכם תרגום לרוסית של מבחן הבגרות מקיץ תש"ס899222 'במדעי המחשב א .המבחן תורגם ע"י יבגני קנל מתיכון עירוני א' אשקלון Часть 1 Необходимо ответить на все вопросы 1-5. Каждый вопрос – 10 баллов. 1. Дан алгоритм: (1) Прочитать двузначное число в переменную NUM (2) Cохранить в переменной SIF случайное целое число в интервале от 0 до 9. (3) Если цифра единиц NUM равна SIF (3.1.) тогда – сохранить в R значение NUM (3.2.) иначе - сохранить в R значение NUM MOD 10 + SIF (4) Напечатать значение R. А. Приведите пример значений SIF и NUM, для которых будет выполнена строка 3.1. Запишите, что будет напечатано в результате работы алгоритма. Б. Приведите пример значений SIF и NUM, для которых будет выполнена строка 3.2. Запишите, что будет напечатано в результате работы алгоритма. В. Какому требованию должны отвечать вводимые значения, чтобы выполнялась строка 3.2 ? 2. Дан следующий алгоритм (1) Обнулить переменную PULL (2) Прочитать число в переменную X (3) Прочитать число в переменную Y (4) Пока X > Y выполнять (4.1) Увеличить Y на 1 (4.2) Сохранить в PULL значение PULL + Y (5) Напечать значения X, Y , PULL А. Введите в переменную X число 6, а в переменную Y – число 3. Проследите с помощью таблицы трассировки за выполнением вышеприведенного алгоритма и укажите, что будет напечатано в результате его выполнения. Б. Как можно охарактеризовать вводиме значения, для которых НЕ будет выполняться цикл? 3. Д-р Евгений Канель 19/1/16 899222 , קיץ תש"ס,'מדעי המחשב א 2000 год, базовый уровень (2 первых «учебных единицы» из 5) Ученики получили следующее задание : «Разработать алгоритм, который читает целое число в переменную N и печатает все четные числа от 2 до 2*N включительно. Перед Вами решения двух учениц. Проследите с помощью таблицы трассировки за выполнением каждого из них и отметьте, является ли данное решение верным. Решение Зои: (1) Прочитать число в переменную N (2) Для J от 1 до N выполнять: (2.1) Сохранить в переменной B значение J*2 (2.2) Напечатать B. Решение Лили: (1) (2) (3) Прочитать число в переменную N Обнулить переменную X Пока X < N*2 выполнять: (3.1) Увеличить X на 2 (3.2) Напечатать X. 4. Напишите программу, которая заполняет массив размером 100 элементов целыми случайными числами от 1 до 20 включительно. Программа должна дважды распечатать массив : от начала к концу и от конца к началу. 5. Напишите программу, которая читает 100 чисел и печатает каждое число, которое больше предыдущего ( первое число не печатается). Например: Для следующих 10 вводимых чисел: 7, 9, 18, 6, 15, 3, 3, 19, 2, 1 будут напечатаны числа 9, 18, 15, 19. Часть 2 Необходимо ответить на 2 вопроса из вопросов 6-8. Каждый вопрос – 15 баллов. 6. Перед Вами два алгоритма: Алгоритм 1 (1) (2) Обнулить переменную SUM Выполнять N раз: (1.1) Прочитать число в переменную GIL (1.2) Если GIL больше 6 или GIL меньше 16 (1.2.1) тогда увеличить SUM на 1 Д-р Евгений Канель 19/1/16 899222 , קיץ תש"ס,'מדעי המחשב א 2000 год, базовый уровень (2 первых «учебных единицы» из 5) (1.3) Напечатать SUM. Алгоритм 2 Обнулить переменную SUM Выполнять N раз: (2.1) Прочитать число в переменную GIL (2.2) Если GIL больше 6 (2.2.1) тогда если GIL меньше 16 (2.2.1.1) тогда увеличить SUM на 1 (3) Напечатать SUM. (1) (2) А. Проследите помощью таблицы трассировки за выполнением обоих алгоритмов для N=7 и следующих вводимых данных, которые представляют собой возраст учеников: 15,10,19,18,7,16,8. Какой из алгоритмов подсчитывает и печатает число учеников в возрасте от 6 до 16 лет? Б. Напишите программу, вводом которой являются N чисел, представляющие собой возраста учеников. Программа должна подсчитать и напечать число учеников в возрасте от 6 до 16. Кроме того, программа должна напечать максимальный возраст среди тех учеников, которые удовлетворяют этому условию. 7. Дан массив размером 80 элементов, содержащий числа. Напишите программу, которая читает дополнительное число К и проверяет, действительно ли сумма первых К элементов массива больше, чем сумма его остальных элементов. Если да – программа печатает сумму первых элементов. Если нет – соовтсвующее сообщение. Программа должна включать в себя необходимые проверки правильности вводимого значения К. 8. Туристическая фирма, организующая ежегодную экскурсию для школьников, предложила следующие условия: если в экскурсии примут участие 100 учеников или меньше – стоимость каждой путевки составит 150 шекелей; если в экскурсии примут участие более 100 учеников – стоимость каждой путевки составит 120 шекелей; если в экскурсии примут участие более 200 учеников – стоимость каждой путевки составит 100 шекелей. Школа располагает бюджетом в 25000 шекелей, предназначенным для организации экскурсии. Напишите программу для записи учеников на экскурсию. Вводимыми данными программы будут личные номера учеников (число от 1000 до 5000 включительно). Результатом работы программы будет количество записавшихся Д-р Евгений Канель 19/1/16 899222 , קיץ תש"ס,'מדעי המחשב א 2000 год, базовый уровень (2 первых «учебных единицы» из 5) учеников, цена каждой путевки и общая стоимость экскурсии. Ввод данных закончится, когда в качестве личного номера ученика будет введено неверное число. Программа также должна проверить, вышла ли общая стоимость экскурсии из рамок отведенного бюджета, и если да – то на сколько. Д-р Евгений Канель 19/1/16 899222 , קיץ תש"ס,'מדעי המחשב א 2000 год, базовый уровень (2 первых «учебных единицы» из 5) Часть 3 (20 баллов) Необходимо решить 1 задачу из задач 9 и 10. 9. Назовем «весом» трехзначного числа сумму произведения его первых двух цифр и произведения его последних двух цифр. Например: «вес» числа 327 равен 20, так как 3*2 + 2*7 = 20. А. Напишите функцию, которая получает в качестве параметра трехзначное число и возвращает его «вес». Б. Напишите программу, которая читает трехзначные числа и вычисляет их вес с помощью функции из раздела А. Программа вычисляет и печатает сумму «весов» введенных чисел. Ввод программы завершается, когда сумма «весво» превысит 100. 10. А. Напишите функцию, которая получает в качестве параметра массив размером в 10 элементов, содержащий целые числа. Если элементы массива упорядочены в возрастающем порядке – функция возвращает значение “TRUE”, иначе – значение “FALSE”. Б. Массив, размером 120 элементов, разделен на 12 «подмассивов» – каждый размером в 10 элементов. (Первый «подмассив» включает первые десять элементов, второй – следующие 10, начиная с одиннадцатого и т.д.) Напишите программу, которая читает целые числа в массив размером 120 элементов, и проверяет, сколько из его «подмассивов» упорядочены в возрастающем порядке. Используйте функцию, которую Вы написали. Д-р Евгений Канель 19/1/16