899222 , קיץ תשנ"ו,'מדעי המחשב א 1996 год, базовый уровень (2 первых «учебных единицы» из 5) לפניכם תרגום לרוסית של מבחן הבגרות מקיץ תשנ"ו899222 'במדעי המחשב א .המבחן תורגם ע"י יבגני קנל מתיכון עירוני א' אשקלון Часть 1 Необходимо ответить на все вопросы 1-5. Каждый вопрос – 10 баллов. 1. Перед Вами часть блок-схемы алгоритма: Ввести А,В Нет A 0 Если А>B и B>=20 Да A (-B) Напечатать А,В Проследите с помощью таблицы трассировки за выполнением алгоритма для каждой из пар вводимых значений и запишите, что будет напечатано в результате его работы: (i) А=25 В=20 (ii) А=15 В=20 (iii) А=30 В=15 2. Переведите на PASCAL или BASIC следующий словесный алгоритм: (1) Записать в переменную MIS случайное целое число от 5 до 10 включительно (2) Выполнить MIS раз : Д-р Евгений Канель 28/1/16 899222 , קיץ תשנ"ו,'מדעי המחשב א 1996 год, базовый уровень (2 первых «учебных единицы» из 5) (2.1) (2.2) (3) напечатать *** напечатать -+- Напечатать свое имя Д-р Евгений Канель 28/1/16 899222 , קיץ תשנ"ו,'מדעי המחשב א 1996 год, базовый уровень (2 первых «учебных единицы» из 5) 3. Значение первого элемента массива А равно 2 , а значение второго элемента этого же массива равно 5. А. Для J=1 Чему будут равны значения первого и второго элементов массива после выполнения команды A(J) A(J+1) ? Б. Для J=2 Чему будут равно значение А(J) после выполнения команды A(J) A(J)+1 ? 4. Следующая программа должна прочитать два целых числа NUM1 и NUM2 и дважды напечатать их произведение и трижды их сумму. В программу вкралась ошибка и поэтому она не выполняет то, что планировалось. Прочитайте в переменную NUM1 число 12 и в переменную NUM2 число 3. Проследите с помощью таблицы трассировки за выполнением программы. Объясните в чем заключается ошибка и исправьте ее. Текст программы на языке PASCAL Текст программы на языке BASIC PROGRAM CALCU (INPUT,OUTPUT); VAR NUM1, NUM2, M:INTEGER; BEGIN WRITELN(‘ВВЕДИТЕ 2 ЧИСЛА’); READLN(NUM1, NUM2); M:=0; WHILE M<2 DO BEGIN WRITELN (NUM1*NUM2); M:= M +1; END; WHILE M<3 DO BEGIN WRITELN (NUM1+NUM2); M:= M +1; END; END. REM PROGRAM CALCU REM NUM1, NUM2, M: INTEGER PRINT ‘ВВЕДИТЕ 2 ЧИСЛА’ INPUT NUM1,NUM2 M=0 WHILE M<2 DO PRINT NUM1*NUM2 M = M +1 WEND WHILE M<3 DO PRINT NUM1+NUM2 M = M +1 WEND END 5. Дан двумерный вектор (матрица) VEC имеющий 4 строки и 3 столбца и содержащий целые числа. Напишите отрывок программы, которая подсчитывает и печатает количество отрицательных элементов в массиве. Д-р Евгений Канель 28/1/16 899222 , קיץ תשנ"ו,'מדעי המחשב א 1996 год, базовый уровень (2 первых «учебных единицы» из 5) Часть 2 Необходимо ответить на 2 вопроса из вопросов 6-8. Каждый вопрос – 15 баллов. 6. А. Напишите программу, которая читает целое число в переменную FIRST и целое число в переменную SECOND. Программа должна подсчитать и напечатать сумму всех целых чисел от FIRST до SECOND включительно. Б. Правильно ли выполняется ли написанная Вами программа, если в переменную FIRST будет прочитано число, большее, чем в переменную SECOND? Если да – укажите, какая часть программы обеспечивает это, если нет – введите необходимые изменения. 7. Администрация школы планирует организовать компьютерную сеть, связывающую вместе домашние компьтеры учащихся. С этой целью проводится анкетирование учеников для выяснения, есть ли в их распоряжении компьютер или модем. Каждый ученик должен отметить в анкете 1, если у него есть соответствующий прибор, или 0 – если такого прибора нет. Вопрос задается отдельно для компьютера и отдельно для модема. А. Напишите программу, которая обработает данные, полученные в результате анкетирования 700 учащихся школы, и подсчитает и напечает число учеников, у которых есть и компьютер и модем. Б. Приведите пример некорректных вводимых данных. Объясните, какие проверки следует включить в программу, чтобы исключить ввод некорректных данных. 8. Требуется написать, которая читает строку символов (длина строки не превышает 75 символов). Программа должна напечать символы строки за исключением символов точки и запятой. Когда программа встречает символы точки или запятой, она преобразует вывод следующим образом: - если встречается символ запятой – вывод продолжается с новой строки; - если встречается символ точки – добавляется пустая строка. Например, если вводимая строка символов была AXCD,B1.CDY,A то будет напечатано AXCD B1 CDY A Д-р Евгений Канель 28/1/16 899222 , קיץ תשנ"ו,'מדעי המחשב א 1996 год, базовый уровень (2 первых «учебных единицы» из 5) Часть 3 (20 баллов) Необходимо ответить на 1 вопрос из вопросов 9-10. 9. В таксопарке работают 20 шоферов, которые каждый день заправляют свои автомобили. С целью контроля и сбора статистики в таксопарке решили на протяжении некоторого периода подсчитывать ежедневный расход бензина. А. Напишите программу, которая читает количество рабочих дней в выбранный для анализа период. Для каждого рабочего дня программа должна прочитать расход бензина каждого из 20 шоферов и напечатать общий расход бензина в этот день. Кроме того, программа подсчитать и рапечатать общий расход бензина за весь период. Б. Объясните, что нужно изменить в написанной Вами программе, если число шоферов, которые работали каждый день, заранее неизвестно. 10. A. Напишите процедуру SPRINT на языке PASCAL или BASIC, которая получает как параметр символьную строку SOD размером в 9 символов и два целых числа N1 и N2, значения которых от 1 до 9 включительно. Подпрограмма должна напечатать два символа, которые находятся в строке SOD на местах N1 и N2. Б. Напишите программу на языке PASCAL или BASIC, которая читает пару целых чисел, значения которых от 1 до 9 включительно, и неизвестное заранее количество симовльных строк размером в 9 символов. Для каждой вводимой строки программа должна вызвать процедуру VVOD для печати символов, получаемых с помощью процедуры. Программа заканчивает работу, когда вводится строка «STOP-STOP». Примечание: нет необходимости проверять правильность вводимых данных. Д-р Евгений Канель 28/1/16