תורגבה ןחבמ לש תיסורל םוגרת םכינפל 'א בשחמה יעדמב 899222

advertisement
899222 , ‫ קיץ תשס"א‬,'‫מדעי המחשב א‬
2001 год, базовый уровень (2 первых «учебных единицы» из 5)
‫לפניכם תרגום לרוסית של מבחן הבגרות‬
‫ מקיץ תשס"א‬899222 '‫במדעי המחשב א‬
.‫המבחן תורגם ע"י יבגני קנל מתיכון עירוני א' אשקלון‬
Часть 1
Необходимо ответить на все вопросы 1-5. Каждый вопрос – 10 баллов.
1.
Дан алгоритм:
(1) Обнулить переменную TOT
(2) Прочитать число в переменную N
(3) Прочитать число в переменную NUMBER
(4) Выполнить N раз:
(4.1.) Заменить TOT на (TOT + NUMBER)
(5) Напечатать значение TOT
А. Введите в переменную N число 4 и в переменную NUMBER- число по
вашему усмотрению. Проследите с помощью таблицы трассировки за
выполнением алгоритма и запишите, что будет напечатано.
Б. Дайте пример таких значений для N и NUMBER, что в результате работы
алгоритма будет напечатано число 30.
2.
Дан следующий алгоритм
(1). Прочитать символ в переменную TAV1
(2). Прочитать символ в переменную TAV2
(3). Если TAV1 больше, чем TAV2
(3.1) тогда напечатать TAV1, TAV2, TAV1
(3.2) иначе, если TAV2 больше, чем ‘D’
(3.2.1) тогда напечатать TAV2, TAV1, TAV1
(3.2.2) иначе напечатать TAV2, TAV1, TAV2
Перед Вами два результата работы алгоритма: BFB и LLL.
Для каждого из результатов запишите, какими были значения введенных
символов и в какой строке алгоритма выполнялась команда печати.
3.
Дан двумерный массив А размером 4 х 4
3
7
1
5
8
6
9
1
2
5
8
2
4
3
1
0
Д-р Евгений Канель
(1). Установить значение переменной J в 1.
(2). Для I от 1 до 3 выполнить:
(2.1)
Напечатать значение J
(2.2)
Напечатать элемент массива A(I, J)
(2.3)
Увеличить значение J на 1
21/1/16
899222 , ‫ קיץ תשס"א‬,'‫מדעי המחשב א‬
2001 год, базовый уровень (2 первых «учебных единицы» из 5)
А. Проследите с помощью таблицы трассировки за выполнением вышеприведенного
алгоритма и укажите, что будет напечатано в результате его выполнения.
Б. Измените алгоритм следующим образом: вместо строки 2.1 запишите строку:
(2.1) 1  J
Проследите с помощью таблицы трассировки за выполнением алгоритма после
проведенных изменений.
4.
Напишите программу, которая вводит 200 строк длиной 15 символов каждая.
Вывод программы – только те строки, которые начинаются с последовательности
символов «WWW».
Примечание: каждая строка вводится целиком.
5.
Даны два одномерных массива A и B, каждый размером 999 элементов,
содержащие целые положительные числа.
А. Напишите программу, которая печатает все элементы массива А, находящиеся
на четных местах.
Б. Напишите программу, которая печатает все четные элементы массива B.
Часть 2
Необходимо ответить на 2 вопроса из вопросов 6-8. Каждый вопрос – 15
баллов.
6.
Перед Вами функция MAKENUMBER, которая получает в качестве параметра
два однозначных числа n, k. При этом k  0 и n  4.
C
int makenumber (int n, int k)
{
int num = 0;
int i = 0;
while (i<= n)
{
num= num *10 +k;
i++;
}
return (num);
}
Д-р Евгений Канель
PASCAL
FUNCTION MAKENUMBER(n, k: integer):integer;
VAR
L, NUM: INTEGER;
BEGIN
NUM:=0;
I:=0;
WHILE (I <= n ) DO
BEGIN
NUM:=NUM * 10 + k;
I:=I+1;
END;
MAKENUMBER:= NUM;
END;
21/1/16
899222 , ‫ קיץ תשס"א‬,'‫מדעי המחשב א‬
2001 год, базовый уровень (2 первых «учебных единицы» из 5)
А. Сформулируйте, что выполняет функция. Обоснуйте свой ответ с помощью
таблицы трассировки.
Б. Измените тело функции так, чтобы она выполняла возвращала целое число
длиной n цифр, каждая из которых равна k. Запишите функцию после
проведенных изменений.
В. В переменной MIS хранится положительное двузначное число. Напишите
команду вызова измененной функции, так, чтобы функция возвратила бы число,
длина которого равна цифре десятков в MIS, и каждая цифра в вовращаемом
числе была бы равна цифре единиц в MIS.
7.
Школа организует вечер встречи выпускников. Каждый, кто хочет принять
участие в вечере, должен заполнить анкету, в которой надо указать фамилию, 1
или 2 – в зависимости, придет ли он один или с мужем (женой), а также число
детей, которых он собирается привести с собой (если выпускник планирует
придти без детей – следует указать 0). Для детей, которые придут на вечер с
родителями, будут организованы групповые игры – для каждой группы в 20
детей будет приглашен ведущий.
Напишите программу, которая выполняет ввод (с клавиатуры) данных из
присланных анкет (ввод данных завершается с вводом строкового значения
FINISH в качестве имени выпускника). Программа должна определять (и
распечатывать) число выпускников, пришедших на вечер, и число ведущих,
которых следует пригласить для детей.
Задача 8.
Дан массив А размером в 71 элемент, содержащий числа.
Напишите подпрограмму, которая определит пару смежных ячеек с самой
большой суммой и распечатает место этих ячеек в массиве и их сумму (если
таких пар в массиве окажется несколько – следует выполнить вывод только
относительно одной из таких пар).
Например, для массива
1
2
3
4
5
13
-8
7
2
-5
следует напечатать – CELLS 3 & 4, SUM=9.
Часть 3 (20 баллов)
Необходимо решить 1 задачу из задач 9 и 10.
9.
Дан заголовок функции:
Паскаль:
FUNCTION F (N, K : INTEGER; S : STRING) : INTEGER;
C
:
int f (int n, int k,char *s);
Условие входа: функция принимает два целых числа и строковую переменную.
Д-р Евгений Канель
21/1/16
899222 , ‫ קיץ תשס"א‬,'‫מדעי המחשב א‬
2001 год, базовый уровень (2 первых «учебных единицы» из 5)
Условие выхода: если в S встречается пара символов ‘aa’ – по крайней мере один
раз – функция возвращает произведение числовых параметров. Если в S
встречается по крайней мере один раз знак ‘a’ – но только рядом с другими
знаками – функция возвращает сумму числовых параметров. Во всех случаях
функция возвращает разницу между первым и вторым числовыми параметрами.
А. Напишите тело функции
Б. Необходимо заполнить значениями двумерный массив размером 25х35,
для чего следует использовать указанную функция следующим образом:
числовыми параметрами являются индексы ячейки (номер строки и номер
столбца) и строковая переменная, значения которой вводятся с клавиатуры.
Для каждого элемента массива следует ввести новое значение. После
заполнения массива следует сосчитать число положительных и число
отрицательных значений в массиве.
(i)
Опишите
необходимые
(выбранные) переменные, их типы
и назначение.
(ii)
Укажите подзадачи, необходимые
для выполнения задания и то, в
виде функции или процедуры
следует
реализовать
каждую
подзадачу. Для каждой необходимо
указать условие входа и условие
выхода.
(iii)
Напишите
программу
для
реализации задания. Программа
должна напечатать содержимое
массива, число положительных и
число отрицательных значений в
массиве.
10.
Расчет за пребывание в гостинице осуществляется в последний день. Расчет
выполняется как произведение числа дней проживания на 400 шекелей за
каждый день – плюс плата за отдельно заказанные каждым клиентом
дополнительные услуги.
А. Напишите процедуру для расчета платы за проживание в гостинице,
принимающую в качестве параметров: номер, в котором проживал клиент,
число дней, в течении которых он занимал номер, сумму платежа за
дополнительные услуги. Процедура должна распечатать квитанцию, в которой
указаны: номер, в котором проживал клиент, число дней его проживания в
гостинице и общую сумму платежа. Если общая сумма платежа окажется более
2,000 шекелей – следует напечатать также дополнительное сообщение
‘возможна оплата в 4 платежа’.
Б. Владельцы гостиницы решили распечатывать подробный счет для каждого
клиента, уезжающего из гостиницы. В качестве ввода указываются следующие
данные: номер , в котором проживал клиент, число дней, в течении которых он
Д-р Евгений Канель
21/1/16
899222 , ‫ קיץ תשס"א‬,'‫מדעי המחשב א‬
2001 год, базовый уровень (2 первых «учебных единицы» из 5)
занимал номер. Кроме того, за каждый день пребывания вводятся платежи за
дополнительные услуги – их в итоге следует просуммировать.
i. Опишите
необходимые
(выбранные)
переменные, их типы и назначение.
ii. Укажите
подзадачи,
необходимые
для
выполнения задания и то, в виде функции или
процедуры
следует
реализовать
каждую
подзадачу. Для каждойфункции или процедуры
необходимо указать условие входа и условие
выхода. Используйте процедуру, написанную в
разделе (А).
iii. Напишите программу для реализации задания
(ввод данных об уезжающих из гостиницы
клиентах завершается, когда в качестве номера,
который занимал клиент, указывается число
999).
Д-р Евгений Канель
21/1/16
Download