Главная / Программирование / Основы программирования

Основы программирования - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: Курс представляет первую часть фундаментального учебника "Почувствуй класс. Учимся программировать хорошо с объектами и контрактами". В отличие от традиционного подхода введение в основы программирования начинается с рассмотрения объектов, классов, интерфейсов и контрактов. В этой части курса рассматриваются также основы логики и внутреннее устройство компьютера. В курсе излагаются основы объектно-ориентированного программирования (ООП). В этой вводной части мы начнем наше путешествие в мир программирования с самых его основ: объектов, классов, интерфейсов и контрактов. Будут рассмотрены поддерживающие концепции, включающие логику и внутреннее устройство компьютера, которые каждый программист должен знать.
Какое устройство компьютера не является устройством коммуникации?
(1) клавиатура
(2) мышь
(3) процессор
(4) дисплей
(5) устройство сетевого соединения
Какие утверждения о программной системе являются корректными?
(1) программная система строится из классов
(2) программная система строится из объектов
(3) программная система строится из операций
(4) программная система в процессе работы создает объекты
(5) программная система в процессе работы позволяет получать доступ к свойствам объекта и изменять данные объекта
(6) программная система строится из данных
Какие утверждения об абстрактном синтаксическом дереве (АСД) являются корректными?
(1) АСД отражает синтаксическую структуру программы
(2) внутренние узлы дерева задают категории языка программирования – синтаксические понятия грамматики языка, называемые нетерминалами
(3) лист АСД – это нетерминал
(4) категории могут быть как терминальными, так и нетерминальными
(5) имя является нетерминальной категорией
Какие утверждения о классе являются корректными?
(1) в грамматике Eiffel есть категория Class и текст каждого класса программной системы является образцом этой категории
(2) экземпляры класса, создаваемые во время выполнения системы, называются объектами
(3) классы создаются при выполнении программы
(4) класс определяет операции (методы), применимые к объектам класса
(5) у каждого объекта класса свой набор методов
Пусть е – булевское выражение. Какая из формул выражает закон "исключающего третьего"?
(1) e = e
(2) not e /= e
(3) not (not e) = e
(4) e or not e = True
(5) e and not e = False
Какие выражения являются корректными по отношению к понятию "псевдокод"?
(1) псевдокод – это код, появляющийся в программе в результате работы хакеров
(2) синтаксически псевдокод – это специальный вид комментария
(3) псевдокод – это исполняемый фрагмент программного кода, дающий результаты, похожие на настоящие, но таковыми не являющимися
(4) псевдокод – это комментарий, описывающий намерения разработчика программы, выраженные на естественном языке, описывающие, что должен делать соответствующий фрагмент будущего программного кода
При решении сложных задач эффективным приемом является сведение сложной задачи к нескольким более простым задачам. Пусть из состояния K требуется перейти в состояние, где выполняется цель G. Управляющая структура – это некоторая стратегия, сводящая решение задачи к решению более простых задач. Укажите, какие из стратегий относятся к классическим стратегиям, применяемым в программировании?
(1) последовательность – последовательное выполнение ряда задач, дающее решение исходной задачи. Из K достичь H, из H достичь G
(2) выбор – разбиение K на два или более непересекающихся множества K1, K2, …KN. Найти решение каждой более простой задачи – из KJ достичь G
(3) гадание – стратегия, позволяющая угадать решение, дающее G
(4) цикл – повторяющееся решение задачи на расширяющихся множествах, пока не будет покрыта вся область, характеризуемая K
(5) подпрограмма (процедура, функция) – сведение задачи к другой задаче, решение которой уже известно
Помимо трех управляющих структур – последовательности, выбора и цикла к базисным структурам, необходимым для практического программирования, относится структура, называемая подпрограммой или функциональной абстракцией и реализуемая введением процедур и функций. Укажите наиболее важное достоинство этой стратегии. Процедуры и функции помогают:
(1) сократить длину программы
(2) сократить время разработки
(3) справиться со сложностью большой задачи, выделяя подзадачи, которые реализуются в форме процедуры или функции
(4) сократить стоимость разработки
Напомним, что под сущностью в языке Eiffel понимается имя с указанием типа, появляющееся в тексте программы и обозначающее значения периода выполнения программы. Какое утверждение некорректно по отношению к понятию "переменная" в программировании?
(1) переменная – это сущность, значения которой могут изменяться во время выполнения
(2) каждая переменная должна быть объявлена в программе и должна быть видима в том контексте, где выполняются операции над этой переменной
(3) значения переменной хранятся в оперативной памяти компьютера во время выполнения
(4) все значения, которые получала переменная во время вычислений, сохраняются в памяти компьютера
(5) присваивание позволяет изменить значение переменной
Какое утверждение о данных является некорректным?
(1) данные хранятся в памяти компьютера
(2) данные представляют последовательность символов
(3) информация – это данные с заданной интерпретацией
(4) информация и данные – это синонимичные понятия
(5) программу можно рассматривать как выполняемые данные
Какое высказывание является определением аргумента?
(1) аргумент – это коллекция данных, над которыми определены операции
(2) аргумент – это метод, который может изменить объект
(3) аргумент – это метод, получающий доступ к объекту
(4) аргумент – это значение, передаваемое методу, необходимое для его работы
(5) аргумент – это операция, которую программа может применять к объекту
Какое высказывание является определением грамматики языка программирования?
(1) грамматика – это описание языка программирования
(2) грамматика – это лексические, синтаксические и семантические правила
(3) грамматика – это описание синтаксиса языка, заданное множеством категорий и описанием их структуры
(4) у языков программирования нет грамматики
Какое высказывание является определением программного интерфейса программы или ее части – класса, метода?
(1) программный интерфейс задает внешний вид программы
(2) программный интерфейс – это система правил, задающих стиль написания программы
(3) программный интерфейс – это описание, позволяющее клиентам, использовать эту программу (часть программы)
(4) программный интерфейс – это графика, сопровождающая программу
Дано истинностное присваивание p = True; q = False; r = True. Какая из формул принимает значение True для этого присваивания?
(1) (p and q) or (not r and p)
(2) (p or q) and (not r and p)
(3) (not p or not q) and(not r or not p)
(4) p and q and r
(5) p or q or r
Какие утверждения справедливы для понятия "сущность"?
(1) сущность – это типизированное имя в тексте программы, обозначающее объект указанного типа, появляющийся во время выполнения программы
(2) сущность всегда связана с некоторым объектом
(3) сущность в момент ее объявления с объектом еще не связана. Сущность представляет объект только после ее присоединения к объекту
(4) если сущность связывается с объектом, то эта связь нерасторжима
Алгоритмы и программы – тесно связанные понятия. Какие утверждения корректны для этих понятий и связи между ними?
(1) алгоритм описывает единственный процесс
(2) программная система описывает множество процессов
(3) алгоритм описывает множество процессов
(4) при публикации алгоритма можно опускать детали структуры данных, полагая, что читатель восстановит требуемую структуру
(5) при написании программы можно опускать детали структуры данных, полагая, что компилятор восстановит требуемую структуру
(6) алгоритм+Структуры данных = Программа
Какие утверждения справедливы для компонентов класса в языке Eiffel?
(1) для всех компонентов используется единый термин - feature
(2) компонент может представлять команду или запрос
(3) команда всегда реализуется в форме процедуры
(4) запрос всегда реализуется как атрибут – объект некоторого класса
(5) запрос может быть функцией
(6) запрос может быть атрибутом – объектом некоторого класса
Какие утверждения справедливы для синтаксиса присваивания target := source в языке Eiffel?
(1) присваивание – это оператор
(2) левую и правую части присваивания можно разделять как знаком равенства, так и специально введённым знаком присваивания :=, состоящим из двух символов
(3) левая часть присваивания target называется целью и должна быть переменной
(4) левая часть присваивания target называется целью и может быть выражением
(5) правая часть присваивания source называется источником и может быть переменной
(6) правая часть присваивания source называется источником и может быть выражением
Какое устройство нельзя использовать для ввода данных?
(1) клавиатуру
(2) сенсорный дисплей
(3) жесткий диск
(4) принтер
(5) мышь
Определим отношение "имеет". А имеет В означает, что В некоторая возможная составляющая часть А (А содержит или знает о В). Укажите высказывания, справедливые для отношения "имеет".
(1) аргумент имеет запрос
(2) программная система имеет класс
(3) вызов метода имеет цель вызова
(4) класс имеет вызов метода
Какие выражения не являются лексемами?
(1) Paris
(2) 2+3
(3) 23
(4) Paris.display
(5) class
(6) do
Клиент программной системы (части программы – класса, метода) это:
(1) доверчивый человек, верящий рекламе, сопровождающей программу
(2) человек, купивший программу
(3) человек, использующий программу, называемый пользователем
(4) другая часть той же программной системы, использующая предлагаемый класс, метод
(5) другая программная система, использующая предлагаемую программу или отдельные ее части
Пусть e(p, q, r) – булевское выражение, зависящее от трех булевских переменных. Сколько строк содержит таблица истинности для этого выражения?
(1) 1
(2) 2
(3) 4
(4) 8
(5) 16
Рассмотрим вызов компонента x.f. Какие утверждения справедливы для этого вызова?
(1) сущность x, являющаяся целью вызова, всегда присоединена к некоторому объекту
(2) возможен Void-вызов, когда сущность x не присоединена к объекту
(3) при вызове x.f вызывается компонент f, принадлежащий классу, определяемому объектом, присоединенным к цели вызова x. Компонент f применяется к данным этого объекта
(4) при Void-вызове будет вызываться компонент f класса Void
(5) при Void-вызове возникнет ошибка
Какие составляющие у оператора цикла в языке Eiffel?
(1) from – инициализация цикла
(2) comment – комментарий
(3) loop – тело цикла – повторяющиеся действия
(4) until - условие выхода из цикла
(5) require – предусловие цикла
Какие части объявления метода задают контракт метода?
(1) заголовок метода
(2) заголовочный комментарий
(3) предложение require, задающее предусловие
(4) предложение ensure, задающее постусловие
(5) тело метода
Result – это?
(1) атрибут
(2) функция
(3) сущность
(4) переменная
Компилятор – это:
(1) часть аппаратуры, входящая в состав любого компьютера
(2) программа, входящая в программное обеспечение каждого компьютера
(3) универсальная программа, выполняющая любые преобразования
(4) программа, преобразующая текст, записанный на одном из языков программирования, в текст на другом языке, например, в машинный код, доступный для выполнения процессором компьютера
Представьте, что вы создаете ПО для работы с документами – создания, модифицирования и доступа к ним. Предположите, что вы проектируете класс WORD (Слово), который описывает понятие "слово" и класс PARAGRAPH (Абзац), описывающий понятие абзаца. Для каждого из следующих возможных методов класса PARAGRAPH, установите, какой из них должен быть командой.
(1) метод word_count, используемый в вызовах my_paragraph.word_count, возвращающий число слов абзаца
(2) метод remove_last_word, используемый как my_paragraph.remove_last_word, удаляющий последнее слово абзаца
(3) метод justify, используемый как my_paragraph.justify, выравнивающий абзац в соответствии с установленными границами для левого и правого поля
(4) метод extend, используемый как my_paragraph.extend (my_word), имеющий слово в качестве аргумента и добавляющий его в конец абзаца
(5) метод word_length, используемый как my_paragraph.word_length (i), у которого целочисленный аргумент задает индекс (порядковый номер) слова в абзаце, а в качестве результата возвращается число символов этого слова
Какие утверждения о понятии "оператор" являются корректными?
(1) оператор носит описательный дескриптивный характер
(2) оператор императивен
(3) оператор является командой
(4) вызов компонента – это оператор
(5) запрос – это оператор
Какое определение предусловия метода является корректным?
(1) предусловие – это предварительное соглашение, которое заключает пользователь, желающий использовать программную систему
(2) предусловие – это условие, которое должно выполняться при работе программной системы
(3) предусловие – это условие, выполнения которого метод требует от всех своих клиентов, желающих вызвать метод
(4) предусловие – это условие, которое первым делом проверяет метод при его вызове
Какие булевские выражения являются тавтологиями:
(1) not(not e) = e
(2) not(p and q) = (not p) and (not q)
(3) not(p and q) = (not p) or (not q)
(4) (p or q) and (p or r) = p or (q and r)
В мире людей у каждого человека существует множество связей с другими людьми. У каждого человека есть отец и мать. У многих есть супруг и дети, есть друзья, коллеги, просто знакомые. Благодаря ссылкам можно аналогичным образом создавать различные связанные структуры объектов. Укажите корректные высказывания, характеризующие связанные структуры:
(1) если в некотором классе есть атрибут того же класса, назовем его Next, то можно организовать список объектов этого класса, где Next будет ссылаться на следующий в списке объект. Примером является класс Stop, задающий остановки на линии метро
(2) если у элемента списка атрибут Next получает значение void, то это приводит к ошибке, аналогично тому, как это происходит при Void-вызовах
(3) в связанных структурах необходимо, чтобы некоторый элемент списка (последний в списке) получал значение void, что позволяет закончить список
(4) если у некоторого элемента списка атрибут Next задает ссылку на элемент, уже включенный в список, то создается кольцевой список. Примером может служить кольцевая линия метро
(5) минимальное число элементов в кольцевом списке равно 3
(6) при моделировании моногамной семьи в классе Person может существовать атрибут Spouse (супруг). Это позволяет для пары людей, состоящих в браке, создать кольцевой список
Какими свойствами должен обладать инвариант цикла?
(1) быть достаточно слабым, чтобы его можно было применить к некоторому начальному подмножеству данных, возможно пустому (эту роль выполняет инициализация цикла)
(2) быть достаточно гибким, чтобы можно было расширять множество, сохраняя истинность инварианта (эту роль выполняет тело цикла)
(3) быть достаточно мощным, чтобы его можно было использовать во всех циклах (эту роль выполняет сам инвариант)
(4) быть достаточно сильным, чтобы из него в конъюнкции с условием выхода следовала цель цикла, когда подмножество данных расширено до всего множества
Какие утверждения справедливы для понятия "сигнатура метода"?
(1) сигнатура метода однозначно определяется заголовком метода
(2) сигнатуру метода составляет список формальных аргументов с указанием их типов
(3) изменение имен формальных аргументов изменяет сигнатуру метода
(4) частью сигнатуры метода является подпись программиста, разработавшего метод
(5) у всех методов, не имеющих аргументов, одна и та же сигнатура
Сущность – это типизированное имя в тексте программы, обозначающее значения в период выполнения. Укажите, что не может быть сущностью:
(1) атрибут
(2) метод
(3) локальная переменная
(4) предопределенное имя Result
(5) предопределенное имя Current
(6) формальный аргумент
Какие утверждения о компьютерной программе являются корректными?
(1) имеет ту же степень формализации, что и программы, принимаемые на партийных съездах
(2) должна быть записана на языке, понятном человеку
(3) должна быть записана на языке, понятном компьютеру
(4) может быть записана на разных языках программирования
(5) может быть записана только на языке, понятном процессору компьютера – машинном коде
Какое утверждение о запросе является некорректным?
(1) вызывается, когда программной системе требуются ресурсы компьютера
(2) может быть методом
(3) является компонентом класса
(4) возвращает значение, характеризующее состояние объекта
(5) не изменяет состояние объекта
Предложение: "При вызове метода целевой объект должен отделяться точкой от имени метода" характеризует:
(1) синтаксис
(2) семантику
(3) и синтаксис и семантику
(4) ни синтаксис, ни семантику
Какое высказывание является некорректным по отношению к понятию "инвариант класса":
(1) инвариант класса должен быть истинным перед вызовом любого метода класса
(2) инвариант класса должен быть истинным по завершении вызова любого метода класса
(3) инвариант класса должен быть истинным в процессе работы любого метода класса
(4) инвариант класса является предусловием и постусловием любого метода класса
Какие утверждения об импликации p implies q являются корректными?
(1) импликация ложна тогда и только тогда, когда посылка p истинна, а заключение q ложно
(2) импликация истинна тогда и только тогда, когда посылка p истинна и заключение q истинно
(3) импликация ложна тогда и только тогда, когда заключение q ложно
(4) если посылка p ложна, то импликация истинна независимо от значения заключения q
Какие утверждения о создании объектов являются корректными?
(1) для создания объекта некоторого класса С единственной возможностью является вызов процедуры создания, принадлежащей классу С
(2) у каждого класса существует по крайней мере одна процедура создания
(3) У каждого класса существует только одна процедура создания
(4) у каждого класса может существовать несколько процедур создания
(5) если процедура создания явно не объявлена, то используется процедура создания по умолчанию, наследуемая от общего предка класса
(6) если в классе С объявлена одна процедура создания, например с именем my_make_create, то создавать объекты можно, вызывая как процедуру my_make_create, так и процедуру создания по умолчанию, у которой есть имя default_create
Одним из широко используемых типов данных (классов) в программировании и в этом курсе является список с курсором. Какие команды и запросы не используются при работе с таким списком в предлагаемой реализации?
(1) команда start – устанавливает курсор в позицию первого элемента списка
(2) команда any – устанавливает курсор в позицию некоторого произвольного элемента списка
(3) запрос between – возвращает значение True, если курсор указывает на некоторый элемент списка
(4) запрос is_after – возвращает значение True, если курсор находится в позиции справа от последнего элемента списка
(5) команда forth – передвигает курсор в следующую справа позицию
(6) запрос item – возвращает элемент списка, если он существует в позиции курсора
Что означает и в каких целях выполняется "скрытие информации", применяемое при разработке программной системы?
(1) скрытие информации – это вредное явление, когда программисты скрывают друг от друга информацию о программном коде созданных ими методов
(2) скрытие информации означает, что программисты скрывают друг от друга реализацию методов, но открывают интерфейс методов
(3) для клиентов класса доступен контрактный облик класса, в котором отображается интерфейс методов, предоставляемых классом своим клиентам. Скрытие реализации методов избавляет клиентов от изучения деталей, не требующихся для корректного вызова методов класса
(4) клиенты класса при желании могут познакомиться с полным текстом класса в облике по умолчанию, называемом текстовым обликом класса
Какое утверждение несправедливо для констант в языке Eiffel?
(1) манифестная константа – это константа без имени
(2) именованная константа задается константным атрибутом
(3) правило стиля программирования требует, чтобы в операторах языка появлялись только манифестные константы
(4) атрибут становится константным, если при его объявлении задается значение атрибута
Какие из следующих предложений характеризуют данные, а не информацию?
(1) вы можете найти детали рейса на сайте
(2) ваш пароль должен содержать не менее 6 символов
(3) у нас нет данных о вашей оплате
(4) нам известны данные Вашего паспорта
(5) почтовый индекс должен содержать 6 цифр
Какое из определений семантики вызова x.f является корректным?
(1) компонент f всегда изменяет объект x
(2) компонент f вызывает объект x
(3) эффект времени выполнения вызова x.f состоит в том, что к объекту, который обозначает x в момент выполнения, применяется компонент с именем f, принадлежащий классу объекта
(4) эффект времени компиляции вызова x.f состоит в применении компонента с именем f, принадлежащего соответствующему классу, к объекту, который обозначает x в момент компиляции
Предложение: "Если у метода есть аргументы, то они должны заключаться в круглые скобки" характеризует:
(1) синтаксис
(2) семантику
(3) и синтаксис и семантику
(4) ни синтаксис, ни семантику
Что не входит в понятие контракта метода:
(1) постусловие
(2) комментарии
(3) предусловие
(4) инвариант класса
В программировании булевские переменные и выражения могут принимать три значения – True, False, Undefined (неопределено). Пусть переменная p имеет значение True, а qUndefined. Какие из выражений будут иметь значение Undefined?
(1) p or q
(2) q or p
(3) p or else q
(4) q or else p
Укажите корректные высказывания?
(1) при всех запусках программной системы на выполнение только один и тот же класс может играть роль корневого класса
(2) в программной системе разные классы могут играть роль корневого класса при разных запусках системы на выполнение
(3) некоторый метод корневого класса должен быть отмечен как корневой метод (корневая процедура)
(4) выполнение системы начинается с создания корневого объекта и вызова корневого метода
(5) при всех запусках системы используется один и тот же корневой объект и корневой метод
Какое высказывание не имеет место для программ с goto?
(1) оператор goto синтаксически очень прост – goto метка
(2) оператор goto семантически очень прост – перейти к выполнению помеченного оператора с предусловием, что такой оператор существует в программе
(3) оператор goto позволяет превратить программу в "блюдо спагетти"
(4) программа с операторами goto имеет простую и ясную структуру выполнения, понятную из текста программы
(5) "Э. Дейкстра показал, что оператор goto вреден, применять его не следует
Какое высказывание является некорректным для процедур?
(1) процедура – это частный случай метода класса
(2) процедура – это метод, реализующий команду и, следовательно, изменяющий состояние
(3) вызов процедуры – это оператор
(4) вызов процедуры возможен в выражениях
(5) процедура может иметь аргументы
(6) процедура может не иметь аргументов
Какой набор свойств характеризует процедуру?
(1) компонент класса, вычисляется, является командой
(2) компонент класса, вычисляется, является запросом
(3) компонент класса, использует память, является запросом
(4) компонент класса, использует память, является командой
(Упражнение 3) Введем следующие определения:
  • Алфавитом S назовем упорядоченное конечное множество символов { s1, s2, …sN}, на котором задана операция < - предшествования, так что для любой пары символов si и sj либо si < sj, либо sj < si
  • Словом u в алфавите S назовем последовательность символов из алфавита – sk1sk2…skr. Число символов в слове r – назовем длиной слова
  • Слово длины 0, не содержащее символов, будем называть пустым словом, и обозначать его буквой e
  • Конкатенацией слова u длины r и слова v длины p назовем слово w длины r+p, полученное приписыванием слова v в конец слова u. Операцию конкатенации будем обозначать знаком +. (Пример: алфавит S = { к, о, р } u = рок; v = око ; w = u+v = рококо.) Конкатенация слова u с пустым словом не изменяет u (u+e = e+u = u)
  • Каждое слово u можно рассматривать как конкатенацию двух его частей: префикса p(u), задающего начальную часть слова, и хвоста t(u), задающего оставшуюся конечную часть слова (u = p(u)+t(u)). Разбиение слова на префикс и хвост произвольно, так что при некотором разбиении префикс или хвост может быть пустым словом
  • Общим префиксом двух слов u и v назовем слово p такое, что p = p(u) = p(v). (Пример: u = рок; v = рококо; Общий префикс p = ро; t(u) = к; t(v) = коко).
  • Общим максимальным префиксом двух слов u и v назовем их общий префикс максимальной длины. (Пример: u = рок; v = рококо; Общий максимальный префикс p = рок; t(u) = е; t(v) = око).
  • Определим теперь лексикографический порядок на словах алфавита S. Пусть p общий максимальный префикс слов u и v, t(u), t(v) – хвосты слов u и v. Слово u лексикографически предшествует слову v тогда и только тогда, когда либо t(u) пустое слово, либо первый символ слова t(u) предшествует в алфавите S первому символу слова t(v)
  • Дан текст на русском языке (Кожа да кости. Коса у косаря). Расставьте слова текста в лексикографическом порядке (Большие и малые буквы считать одним символом):
    (1) {у, да, коса, кожа, кости, косаря}
    (2) {кожа, да, кости, коса, у, косаря}
    (3) {у, косаря, кости, коса, да, кожа}
    (4) {да, кожа, коса, косаря, кости, у}
    (5) {кожа, да, кости, коса, у, косаря}
    Предположим, что определены классы Car и Owner_of_car, моделирующие понятия "машина" и "владелец машины". У класса Car определены методы set_owner, mark, color, owner (Команда, позволяющая задать владельца, и три запроса, определяющие марку, цвет и владельца машины). У класса Owner_of_car определен запрос name, возвращающий имя владельца машины. Будем полагать, что определены объекты этих классов – my_car и my_person. Какая программа в соответствии с уже заданными правилами позволяет задать для объекта my_car владельца машины и вывести на консоль свойства, характеризующие марку, цвет машины и имя владельца:
    (1) my_car(set_owner(my_person)) Console.show(my_car.mark) Console.show(my_car.color) Console.show(name)
    (2) my_car.set_owner(my_person) Console.show(my_car.mark) Console.show(my_car.color) Console.show(my_сar.owner.name)
    (3) my_car.set_owner(my_person) Console(my_car.mark) Console(my_car.color) Console(my_сar.owner.name)
    (4) my_car = my_person Console.show(my_car.mark) Console.show(my_car.color) Console.show(my_сar.owner.name)
    Рассмотрим отношения между понятиями, используемыми в программировании. Какое отношение задано некорректно?
    (1) класс имеет синтаксическую структуру
    (2) АСТ отображает синтаксическую структуру
    (3) КСТ отображает синтаксическую структуру
    (4) АСТ является подвидом дерева
    (5) дерево является подвидом корня
    (6) корень является подвидом вершины дерева
    Рассмотрим фрагмент карты концепций. Какое отношение в этом фрагменте задано некорректно?
    (1) метод имеет контракт
    (2) контрактный облик отображает интерфейс класса
    (3) предусловие является подвидом контракта
    (4) понятия "экземпляр класса" и "объект класса" эквивалентны
    (5) клиент ПО является подвидом поставщика ПО
    (6) инвариант класса является булевским условием
    Пусть задано множества букв S1 = { а, о, к, м, п} и множество слов: S2 = {имя, мама, мак, потоп, папа, компас}. Укажите формулы теории предикатов, принимающих истинные значения. Здесь Forall обозначает квантор всеобщности, а Exist – квантор существования
    (1) Forall s1: S1| s1 – гласная
    (2) Exist s2: S2 |длина (s2) – простое число
    (3) Forall s1: S1 | Exist s2: S2|s2 содержит s1
    (4) Exist s1: S1 | Forall s2: S2| s2 содержит s1
    (5) Exist s1: S1| s1 – гласная
    Укажите корректное определение квалифицированного вызова:
    (1) вызов называется квалифицированным, если его создал квалифицированный программист
    (2) вызов x.f называется квалифицированным, если цель вызова x является квалифицированным объектом
    (3) вызов называется квалифицированным, если он имеет форму x.f с явным указанием целевого объекта x
    (4) вызов называется квалифицированным, если цель вызова явно не указана и ею является текущий объект
    Оператор множественного выбора в языке Eiffel синтаксически имеет следующий вид: inspect choice-выражение when val_1 then составной оператор_1 when val_2 then составной оператор_2 … else составной оператор end Какие условия выполняются для choice-выражения и when-значений?
    (1) выражение choice может быть целочисленным
    (2) выражение choice может быть любого арифметического типа
    (3) выражение choice может быть строкового типа
    (4) выражение choice может быть символьного типа
    (5) выражение when может быть значением, тип которого совпадает с типом выражения choice
    (6) выражение when может задавать интервал значений, тип которых совпадает с типом выражения choice
    (7) множества значений, задаваемые в различных when ветвях, могут пересекаться
    Какие утверждения корректны о завершении программ?
    (1) теорема о неразрешимости проблемы остановки утверждает, что невозможно доказать, что некоторая программа Р будет останавливаться на любом входе
    (2) теорема о неразрешимости проблемы остановки утверждает, что не существует алгоритма, на вход которого подавалась бы любая программа Р и ее входные данные, а он бы определял, остановится ли Р на этих данных
    (3) вариант цикла – это механизм, позволяющий доказывать завершаемость
    (4) существуют завершающиеся программы, для которых формально не удается построить вариант и доказать завершаемость
    Отношение "имеет" имеет две различные интерпретации: "содержит" и "знает". Для каких высказываний лучше подходит интерпретация "знает", чем "содержит"?
    (1) компьютер имеет процессор
    (2) компьютер имеет принтер
    (3) каждый студент в группе имеет зачетку
    (4) каждый домашний пес имеет хозяина
    (Антропоморфизм) Какое устройство компьютера является аналогом зрения человека?
    (1) монитор
    (2) клавиатура
    (3) микрофон
    (4) видеокамера
    (5) джойстик
    Укажите корректные высказывания?
    (1) программный объект – это коллекция данных, хранящихся в памяти компьютера
    (2) программный объект можно рассматривать как машину, обеспечивающую выполнение команд и запросов
    (3) каждый запрос является командой
    (4) каждая команда является запросом
    (5) метод может иметь аргументы
    Укажите корректные высказывания?
    (1) лексемы разделяются белыми пробелами
    (2) белый пробел – это пробел белого цвета
    (3) символ табуляции является подвидом белого пробела
    (4) аргументы метода заключаются в круглые скобки
    (5) синтаксические правила определяют, как создаются образцы из лексем, удовлетворяющих лексическим правилам
    Укажите корректные высказывания?
    (1) метод может иметь постусловия, которые задают финальные свойства, гарантируемые при завершении метода
    (2) контракты используются для документирования, но не влияют на выполнение системы
    (3) комментарии используются для документирования, но не влияют на выполнение системы
    (4) предусловия, постусловия, инварианты являются примерами контрактов
    (5) инварианты специфицируют согласованные условия, связывающие значения различных запросов класса
    Какие утверждения являются корректными?
    (1) если в булевском выражении e некоторое подвыражение u заменить на тавтологичное подвыражение v, то полученное после замены выражение e1 эквивалентно e
    (2) таблица истинности для введенных полустрогих операций содержит 9 строк
    (3) формула с квантором всеобщности Forall s: S | P(s) по определению имеет значение True, если S – пустое множество
    (4) формула с квантором существования Exist s: S | P(s) по определению имеет значение True, если S – пустое множество
    (5) False сильнее True
    Какие утверждения являются корректными?
    (1) ссылка либо присоединена к объекту, либо имеет значение void
    (2) синтаксически оператор создания имеет вид create x, или, используя процедуру создания Q, специфицированную в классе, - create x.Q(arguments)
    (3) в некоторые моменты выполнения системы возникает необходимость в явном создании текущего объекта
    (4) Void ссылки всегда играют отрицательную роль и приводят к ошибкам выполнения
    (5) вызов может быть квалифицированным, примененный к явно указанной цели, или неквалифицированный, примененный к текущему объекту
    Какие утверждения являются корректными?
    (1) управляющие структуры могут рассматриваться как приемы решения задач, сводя исходную, возможно сложную задачу, к совокупности более простых задач
    (2) структурное программирование ввело принципы построения управляющих структур, основным из которых является принцип "одного входа и одного выхода"
    (3) для доказательства корректности работы цикла используется инвариант цикла
    (4) любой инвариант цикла годится для доказательства корректности цикла
    Какие утверждения являются корректными?
    (1) методы разделяются на две категории: функции, возвращающие результат, и процедуры, которые этого не делают
    (2) скрытие информации облегчает разработку больших систем, повторное использование и гладкую эволюцию системы
    (3) предусловие и постусловие не входят в интерфейс метода
    (4) в подходе "снизу – вверх" уже созданный метод может повторно использоваться в разных программных системах
    Какие утверждения являются корректными?
    (1) присваивание является основным способом изменения значений переменных программы
    (2) каждая функция является сущностью
    (3) при ссылочном присваивании создается копия ссылки, но не копия связанного с ней объекта
    (4) единственным способом, которым клиент устанавливает значения полей объекта, должен быть вызов (в любой синтаксической форме) экспортируемых сеттер-процедур
    Какие команды способен выполнять процессор настольного компьютера?
    (1) арифметические
    (2) логические
    (3) поиска данных в интернете
    (4) сравнения
    (5) чтения из оперативной памяти
    (6) записи в оперативную память
    Какие утверждения об объектах являются корректными?
    (1) объекты появляются в процессе работы программной системы
    (2) объекты представляют коллекцию данных
    (3) запрос позволяет выяснить свойства объекта – получить значение его данных
    (4) запрос позволяет изменить свойства объекта – изменить значение его данных
    (5) программный объект может иметь аналог в физическом мире
    (6) программный объект всегда имеет аналог в физическом мире
    Какие утверждения о конкретном синтаксическом дереве (КСД) являются корректными?
    (1) КСД отражает синтаксическую структуру программы
    (2) КСД – это АСД с дополнительными узлами
    (3) АСД – это КСД с дополнительными узлами
    (4) узлами КСД могут быть ключевые слова языка программирования и другие ограничители, не влияющие на синтаксическую и семантическую структуру программы
    (5) ограничители языка не могут быть терминальными вершинами – листьями КСД
    Какие утверждения об объекте являются корректными?
    (1) имена объектов создаются динамически в ходе выполнения программы
    (2) объект класса, будучи коллекцией данных, задает свойства конкретного экземпляра класса
    (3) объекты создаются динамически в ходе выполнения программы
    (4) число объектов в каждом классе фиксировано
    (5) если определен класс "ГОРОД", то объектами этого класса могут быть разные города – Москва, Рязань, Тверь
    Пусть (e) or (v) = False, где e и v – два булевских выражения. Согласно принципу дизъюнкции это означает, что:
    (1) e = False; v = True
    (2) e = False; v = False
    (3) e = True; v = True
    (4) e = True; v = False
    Пусть в процессе разработки программы в ней появился псевдокод. Укажите корректные утверждения, связанные с такой программой:
    (1) программа не может быть скомпилирована
    (2) программа может быть скомпилирована, но не может быть выполнена
    (3) программа может быть скомпилирована и выполнена, но скорее всего при ее выполнении произойдет ошибка или ее результаты будут некорректными
    (4) разработчик программы в результате процесса, называемого "уточнением" постепенно заменит псевдокод реальным кодом, так что в окончательном варианте псевдокод исчезнет
    (5) псевдокод может оставаться в реально работающей программе, как подсказка разработчику будущей версии программы
    Алгоритм является спецификацией процесса, действующей на множестве данных и удовлетворяющей ряду правил. Укажите, какое из приведенных правил не является правилом, справедливым для алгоритма:
    (1) спецификация определяет применимое множество данных
    (2) спецификация определяет множество элементарных действий, из которых строятся все шаги процесса
    (3) выбор очередного элементарного действия при выполнении процесса определяется искусством исполнителя алгоритма
    (4) для любого множества данных, для которых процесс применим, гарантируется завершение процесса после выполнения конечного числа шагов алгоритма
    Какая из базисных управляющих структур является главным средством в борьбе со сложностью большой задачи:
    (1) последовательность
    (2) выбор
    (3) цикл
    (4) подпрограмма (процедура или функция)
    Программирование и математика близки. Но мир математики – это бесконечный, непрерывный мир. Мир программирования конечен и дискретен. Математика статична, программирование – динамично. Ощутите разницу на следующем примере. Рассмотрим переменную вещественного типа x: REAL. Укажите, какие утверждения относительно этой переменной справедливы для программирования, но не справедливы для математики?
    (1) переменная x непрерывна. Это означает, что не существует такого числа d, сколь угодно малого, чтобы значения x не могли отличаться на величину, меньшую d
    (2) переменная x дискретна. Это означает, что существует такое число d (достаточно малое на практике), что любые два значения x отличаются более чем на d
    (3) существует максимальное и минимальное значение x, - множество REAL представляет конечный интервал с дискретными точками
    (4) не существует максимального и минимального значения x, - множество REAL бесконечное неограниченное множество
    (5) переменной x отводится память конечного размера для хранения ее значения
    (6) понятия памяти для хранения значений не существует
    Какое утверждение об информации является корректным?
    (1) в памяти компьютера информация хранится в закодированной форме
    (2) информация – это данные с заданной интерпретацией
    (3) информация и данные – это синонимичные понятия
    (4) одна и та же последовательность символов задает одну и ту же информацию независимо от интерпретации
    (5) одну и ту же последовательность символов можно интерпретировать по-разному
    Какое высказывание справедливо для понятия "запрос"?
    (1) запрос – это коллекция данных, над которыми определены операции
    (2) запрос – это метод, который может изменить объект
    (3) запрос – это метод, позволяющий получить доступ к объекту, не изменяя самого объекта
    (4) запрос – это значение, передаваемое методу, необходимое для его работы
    (5) запрос – это операция, которую программа может применять к объекту
    Какое высказывание является определением грамматической категории языка программирования?
    (1) категория – это рейтинг, присваиваемый различным элементам языка программирования, показывающий значимость этих элементов
    (2) категория – это компонент грамматики, - понятие, характеризующее некоторое множество синтаксических элементов языка программирования
    (3) категория задает семантику объектов
    (4) категория – это характеристика класса в языке программирования
    Какие утверждения справедливы для интерфейса пользователя?
    (1) интерфейс пользователя – это интерфейс программы, ориентированный на людей – клиентов этой программы
    (2) интерфейс пользователя должен быть сложным и включать элементы, запрещенные для пользователя (интерфейс "синей бороды")
    (3) важное свойство интерфейса пользователя – его дружелюбность
    (4) важное свойство интерфейса пользователя – интуитивная понятность
    (5) важное свойство интерфейса пользователя – визуальность, наличие графических элементов
    Дано истинностное присваивание p = True; q = False; r = False. Какая из формул принимает значение True для этого присваивания?
    (1) (p and q) or (not r and p)
    (2) (p or q) and (not r and p)
    (3) (not p or q) and(not r or not p)
    (4) p and q and r
    (5) p or q or r
    В тексте класса LINE_BUILDING объявлен атрибут fancy_line класса LINE. Какие утверждения справедливы для fancy_line?
    (1) это сущность
    (2) в момент объявления сущности fancy_line создается объект, задающий линию метро (объект класса LINE), и сущность связывается с этим объектом
    (3) значением сущности fancy_line является ссылка
    (4) в момент объявления fancy_line ее ссылка получает значение void, - это означает, что сущность не присоединена к объекту
    (5) в процессе выполнения fancy_line может быть присоединена к объекту класса LINE и ее ссылка будет указывать на этот объект
    Какие утверждения справедливы для синтаксиса и семантики последовательности – составного оператора в языке Eiffel?
    (1) составной оператор – это последовательность подряд записанных операторов, возможно отделяемых символом точка с запятой
    (2) составной оператор – это последовательность подряд записанных операторов, возможно отделяемых символом точка с запятой и заключенная в фигурные скобки
    (3) составной оператор – это последовательность подряд записанных операторов, начинающаяся ключевым термином begin и заканчивающаяся термином end
    (4) каждый оператор последовательности должен заканчиваться точкой с запятой
    (5) если на одной строке текста программы записаны два или несколько операторов, то они должны разделяться символом точка с запятой
    (6) семантика составного оператора состоит в последовательном выполнении операторов последовательности в порядке их записи
    Какое утверждение не является справедливым для метода класса?
    (1) метод класса может быть реализован в форме процедуры
    (2) метод класса может быть реализован в форме функции
    (3) метод имеет объявление, задаваемое в тексте класса в разделе feature
    (4) метод имеет интерфейс, задающий ту часть описания метода, которая необходима клиентам для работы с методом
    (5) если задан интерфейс метода, то объявление метода можно не задавать
    (6) интерфейс метода задается в контрактном облике класса
    Какие утверждения справедливы для семантики присваивания target := source в языке Eiffel?
    (1) присваивание – это оператор, разрешающий изменять значение переменной
    (2) вычисляется значение выражения source, и это значение становится значением цели target
    (3) в результате присваивания target получает значение source, а source его теряет
    (4) цель target не может входить в выражение source
    (5) после присваивания цель target сохраняет свое значение до очередного присваивания
    Какое устройство можно использовать для вывода данных?
    (1) клавиатуру
    (2) сенсорный дисплей
    (3) жесткий диск
    (4) принтер
    (5) мышь
    Определим отношение "возможно является частью". А возможно является частью В означает, что А может быть, но не обязательно, составляющей частью B. Укажите высказывания, справедливые для отношения "возможно является частью".
    (1) ОО программная система возможно является частью класса
    (2) аргумент возможно является частью команды
    (3) аргумент возможно является частью запроса
    (4) вызов возможно является частью цели вызова
    (5) метод возможно является частью класса
    Какие категории задают лексемы?
    (1) идентификатор
    (2) целое число
    (3) ограничитель
    (4) метод
    (5) вызов компонента
    Кто или что в контексте данного курса может быть поставщиком для класса программной системы?
    (1) другой класс этой же программной системы
    (2) дилер, продающий программную систему
    (3) этот же класс этой же программной системы
    (4) другой класс другой программной системы
    Пусть e(p, q, r) – булевское выражение, зависящее от трех булевских переменных. Сколько различных истинностных присваиваний можно построить в этом случае?
    (1) 1
    (2) 2
    (3) 4
    (4) 8
    (5) 16
    Какие утверждения являются корректными для связанных понятий – вызова, сущности, объекта, ссылки, void?
    (1) при объявлении сущности всегда указывается ее тип
    (2) при объявлении сущности всегда указывается ее значение
    (3) при объявлении сущности, значением которой есть ссылка, эта ссылка получает значение void
    (4) void-вызовом называется вызов x.f, когда сущность x не присоединена ни к какому объекту и ее ссылка имеет значение void
    Какие утверждения являются корректными для понятия "инвариант цикла"?
    (1) инвариантом цикла называется условие, которое, будучи истинным перед началом итерации - выполнения тела цикла - сохраняет истинность после завершения итерации
    (2) у цикла может быть только один инвариант
    (3) у цикла может быть бесконечно много инвариантов
    (4) среди всех инвариантов цикла есть подходящие инварианты, позволяющие доказать корректность работы цикла
    (5) нахождение подходящего инварианта – это творческая задача
    Какая не влияющая на выполнение часть объявления метода является обязательной согласно правилам стиля программирования?
    (1) заголовок метода
    (2) заголовочный комментарий
    (3) предложение require, задающее предусловие
    (4) предложение ensure, задающее постусловие
    (5) тело метода
    Какие утверждения являются корректными по отношению к понятию "атрибут класса"?
    (1) атрибут – это компонент класса, являющийся запросом, объявляемый в разделе feature как переменная
    (2) при создании объекта класса каждому атрибуту соответствует поле объекта
    (3) атрибут является запросом и, следовательно, всегда доступен для чтения клиентам класса
    (4) компоненты класса – методы и атрибуты – можно сделать закрытыми, недоступными для клиентов, если в раздел feature, где описывается компонент, добавить ключевое слово feature {NONE}
    (5) если атрибут не закрыт, то он доступен как для чтения, так и для записи, так что клиент класса может присвоить новое значение атрибуту
    Что не может компьютер?
    (1) хранить данные в своей памяти
    (2) осуществлять поиск данных в памяти
    (3) выполнять операции над данными
    (4) выполнять программу, хранимую в памяти
    (5) создавать собственную программу по своей инициативе
    Представьте, что вы создаете ПО для работы с документами – создания, модифицирования и доступа к ним. Предположите, что вы проектируете класс WORD (Слово), который описывает понятие "слово" и класс PARAGRAPH (Абзац), описывающий понятие абзаца. Для каждого из следующих возможных методов класса PARAGRAPH, установите, какой из них должен быть командой.
    (1) метод word_count, используемый в вызовах my_paragraph.word_count, возвращающий число слов абзаца
    (2) метод remove_last_word, используемый как my_paragraph.remove_last_word, удаляющий последнее слово абзаца
    (3) метод justify, используемый как my_paragraph.justify, выравнивающий абзац в соответствии с установленными границами для левого и правого поля
    (4) метод extend, используемый как my_paragraph.extend (my_word), имеющий слово в качестве аргумента и добавляющий его в конец абзаца
    (5) метод word_length, используемый как my_paragraph.word_length (i), у которого целочисленный аргумент задает индекс (порядковый номер) слова в абзаце, а в качестве результата возвращается число символов этого слова
    Что определяет синтаксис программы?
    (1) корректность программы
    (2) легкость понимания текста программы
    (3) структуру и форму записи ее текста
    (4) свойства потенциально возможных выполнений программы
    Какое определение постусловия метода является корректным?
    (1) постусловие – это соглашение, которое заключают клиент и поставщик, если результаты работы программной системы не получены или получены с ошибками
    (2) постусловие – это условие, которое должен проверять клиент, вызвавший метод, по завершении работы метода
    (3) постусловие – это условие, которое должно выполняться по завершении корректно вызванного метода (при вызове которого было выполнено предусловие)
    (4) постусловие – это условие, являющееся отрицанием предусловия
    В какой из последовательностей булевские операции расставлены в соответствии со своими приоритетами?
    (1) not; and; or; implies; =
    (2) =; not; and; or; implies
    (3) not; =; or; and; implies
    (4) not; =; and; or; implies
    (5) not; implies; =; and; or
    Укажите высказывания корректные по отношению к понятию "процедура создания"?
    (1) процедура создания, которую называют еще конструктором, – это метод (команда), позволяющий создать объект того класса, которому принадлежит процедура создания
    (2) класс наследует от общего предка всех классов процедуру создания с именем default_create, играющую роль процедуры создания по умолчанию
    (3) процедура создания позволяет создать программную систему, состоящую из классов
    (4) если при выполнении программы процедура создания явно не вызывается, то объекты начинают создаваться спонтанно
    Укажите корректные высказывания о завершении цикла?
    (1) любой цикл всегда завершается после выполнения конечного числа шагов
    (2) в любом цикле тело цикла выполняется по крайней мере один раз
    (3) нетрудно написать бесконечный цикл, который никогда не завершается
    (4) нетрудно написать цикл, тело которого ни разу не выполняется
    Чтобы некоторый метод M, объявленный в классе C, начал работать, он должен быть вызван. Укажите некорректное высказывание, связанное с вызовом метода:
    (1) вызов может иметь форму квалифицированного вызова x.M(...) или неквалифицированного вызова M(…)
    (2) если объект, задающий цель (x или Current), принадлежит классу С, то будет вызываться метод M из класса C
    (3) метод, в котором содержится вызов, называется вызывающим методом – вызывателем M
    (4) если в классе A есть метод, являющийся вызывателем метода M из класса C, то класс A является клиентом класса C
    (5) класс не может быть своим собственным клиентом
    Укажите корректные высказывания:
    (1) каждая функция является сущностью
    (2) каждая сущность является функцией
    (3) каждый атрибут является сущностью
    (4) каждый запрос является сущностью
    (5) каждая сущность является переменной
    Какие утверждения о памяти компьютера являются корректными?
    (1) память – устройство для хранения и доступа к данным и программам
    (2) программа, выполняемая компьютером, хранится в его памяти
    (3) память – устройство для выполнения операций над данными
    (4) для хранения данных и для хранения программ используются разные виды памяти компьютера
    Какие утверждения о вызове метода являются корректными?
    (1) у вызова всегда есть цель вызова и вызываемый компонент
    (2) целью вызова может быть некоторый метод
    (3) вызываемым компонентом может быть запрос
    (4) метод может вызывать объект
    Предложение: "При вызове метода x.f нет необходимости помещать пробелы перед или после точки, хотя они являются допустимыми" характеризует:
    (1) синтаксис
    (2) семантику
    (3) и синтаксис и семантику
    (4) ни синтаксис, ни семантику
    Какое высказывание является некорректным по отношению к понятию "предусловие"?:
    (1) если у метода есть аргументы, то предусловие задает требования к аргументам, которые должны выполняться, чтобы метод мог корректно работать
    (2) если у метода нет аргументов, то нет необходимости в задании предусловия
    (3) выполнение предусловия обязан гарантировать клиент, что облегчает работу метода
    (4) если при вызове метода предусловие не было выполнено, то работа метода считается корректной, даже если он выдает ошибочные результаты. Ответственность за ошибку лежит на клиенте
    Известно, что в огороде нет бузины, Вы – программист, а Петр программистом не является, а про дядьку в Киеве ничего не известно. Какое высказывание в соответствии с законами импликации является ложным?
    (1) если в огороде бузина, то в Киеве - дядька
    (2) если в огороде бузина, то Петр – великий программист
    (3) если Петр – великий программист, то и я великий программист
    (4) если я программист, то Петр – великий программист
    В классе POINT в предложении create заданы имена двух процедур создания – make_cartesian и make_polar, каждая из которых имеет два аргумента, позволяющие создать точку, задав декартовы или полярные ее координаты. Пусть объявлены три точки – point_A, point_B, point_C: POINT. Какие операторы, создающие точки, являются синтаксически корректными?
    (1) create point_A. make_cartesian(5, 10)
    (2) create point_C. make_cartesian
    (3) create point_B. make_polar(5, 10)
    (4) create point_A(5, 10)
    (5) create point_B.default_create(5, 10)
    (6) create point_A
    Какие допустимые по синтаксису в языке Eiffel части условного оператора могут отсутствовать в конкретном условном операторе?
    (1) if-часть в форме if условие
    (2) then-часть в форме then составной оператор
    (3) else – if часть в форме elseif условие then составной оператор
    (4) else – часть в форме else составной оператор
    (5) ключевое слово end
    Укажите, что из метода отображается в контрактном облике?
    (1) сигнатура метода
    (2) тело метода
    (3) заголовочный комментарий
    (4) контракт метода
    Переменная называется ссылочной, если ее значением является ссылка. Укажите высказывания, корректные для ссылочных переменных?
    (1) присваивание ссылочной переменной называется ссылочным присваиванием
    (2) при ссылочном присваивании значение источника присваивания это либо ссылка, либо Void
    (3) при ссылочном присваивании связь со старым объектом, на который указывала ссылка, сохраняется
    (4) при ссылочном присваивании цель ссылка присоединяется к новому объекту, либо получает значение Void
    (5) ссылка может быть присоединена к нескольким объектам
    (6) разные ссылки могут быть присоединены к одному объекту
    Какие из следующих предложений характеризуют информацию, а не данные?
    (1) вы можете найти детали рейса на сайте
    (2) ваш пароль должен содержать не менее 6 символов
    (3) у нас нет данных о вашей оплате
    (4) нам известны данные Вашего паспорта
    (5) почтовый индекс должен содержать 6 цифр
    Какие правила относятся к стилю программирования?
    (1) имена определяемых объектов должны начинаться с буквы в нижнем регистре
    (2) в вызове компонента x.f цель вызова должна отделяться от компонента символом "точка"
    (3) в объявление компонента класса следует сразу же после первой строчки включать комментарий
    (4) текст каждой строчки начинается на некотором расстоянии от левой границы. Отступы служат для отображения структуры текста
    Предложение: "Операторы, разделенные символом ‘точка с запятой’, будут выполняться друг после друга" характеризует:
    (1) синтаксис
    (2) семантику
    (3) и синтаксис и семантику
    (4) ни синтаксис, ни семантику
    Пусть для некоторой проблемной области создается программная система. Какие условия должны выполняться при проектировании классов программной системы:
    (1) класс может моделировать некоторую концепцию (понятие) проблемной области
    (2) для каждого понятия проблемной области должен создаваться класс
    (3) моделируемое понятие и соответствующий класс должны задавать некоторое множество, как например, "Линия метро" или "Станция"
    (4) над элементами множества должны быть определены операции – запросы и команды
    (5) число возможных объектов класса должно быть известно в момент проектирования
    В программировании булевские переменные и выражения могут принимать три значения – True, False, Undefined (неопределено). Пусть переменная p имеет значение False, а qUndefined. Какие из выражений будут иметь значение Undefined?
    (1) p and q
    (2) q and p
    (3) p and then q
    (4) q and then p
    Какие правила корректности создания объектов должны иметь место?
    (1) непосредственно перед созданием объекта должно выполняться предусловие процедуры создания
    (2) непосредственно перед созданием объекта должны выполняться инварианты класса
    (3) непосредственно после выполнения процедуры создания, вызванной целью x, имеет место x /= Void
    (4) непосредственно после выполнения процедуры создания выполняется постусловие процедуры создания, если оно задано
    (5) непосредственно после выполнения процедуры создания, вызванной целью x типа С, выполняются все инварианты класса С, примененные к объекту, на который указывает x
    Какой из принципов не справедлив для структурного программирования?
    (1) каждая управляющая структура, рассматриваемая как целое, должна иметь один вход и один выход
    (2) вложенность одних управляющих структур в другие не допускается
    (3) допускается вложенность одних управляющих структур в другие
    (4) сложную управляющую структуру с вложенными элементами следует преобразовать в подпрограмму (процедуру, функцию), также имеющую один вход и один выход
    (5) практически допустимый уровень сложности должен быть не более чем 4
    Какое высказывание является некорректным для функций?
    (1) функция – это частный случай метода класса
    (2) функция – это метод, реализующий запрос и, следовательно, возвращает результат, не изменяя состояние
    (3) вызов функции – это оператор
    (4) функция вызывается в выражениях
    (5) функция может иметь аргументы
    (6) функция может не иметь аргументов
    Какой набор свойств характеризует функцию?
    (1) компонент класса, вычисляется, является командой
    (2) компонент класса, вычисляется, является запросом
    (3) компонент класса, использует память, является запросом
    (4) компонент класса, использует память, является командой
    (Упражнение 3) Введем следующие определения:
  • Алфавитом S назовем упорядоченное конечное множество символов { s1, s2, …sN}, на котором задана операция < - предшествования, так что для любой пары символов si и sj либо si < sj, либо sj < si
  • Словом u в алфавите S назовем последовательность символов из алфавита – sk1sk2…skr. Число символов в слове r – назовем длиной слова
  • Слово длины 0, не содержащее символов, будем называть пустым словом, и обозначать его буквой e
  • Конкатенацией слова u длины r и слова v длины p назовем слово w длины r+p, полученное приписыванием слова v в конец слова u. Операцию конкатенации будем обозначать знаком +. (Пример: алфавит S = { к, о, р } u = рок; v = око ; w = u+v = рококо.) Конкатенация слова u с пустым словом не изменяет u (u+e = e+u = u)
  • Каждое слово u можно рассматривать как конкатенацию двух его частей: префикса p(u), задающего начальную часть слова, и хвоста t(u), задающего оставшуюся конечную часть слова (u = p(u)+t(u)). Разбиение слова на префикс и хвост произвольно, так что при некотором разбиении префикс или хвост может быть пустым словом
  • Общим префиксом двух слов u и v назовем слово p такое, что p = p(u) = p(v). (Пример: u = рок; v = рококо; Общий префикс p = ро; t(u) = к; t(v) = коко).
  • Общим максимальным префиксом двух слов u и v назовем их общий префикс максимальной длины. (Пример: u = рок; v = рококо; Общий максимальный префикс p = рок; t(u) = е; t(v) = око).
  • Определим теперь лексикографический порядок на словах алфавита S. Пусть p общий максимальный префикс слов u и v, t(u), t(v) – хвосты слов u и v. Слово u лексикографически предшествует слову v тогда и только тогда, когда либо t(u) пустое слово, либо первый символ слова t(u) предшествует в алфавите S первому символу слова t(v)
  • Дан текст на русском языке (Девица краса. Красна коса до пояса). Расставьте слова текста в лексикографическом порядке (Большие и малые буквы считать одним символом):
    (1) {до, коса, краса, красна, пояса, девица}
    (2) {коса, до, красна, пояса, краса, девица}
    (3) {до, девица, краса, коса, красна, пояса}
    (4) {до, девица, краса, красна, коса, пояса}
    (5) { девица, до, коса, краса, красна, пояса }
    Пусть определены классы Book, Page, Paragraph, моделирующие понятия "книга", "страница книги", "абзац". Пусть определен объект my_book, задающий некоторую книгу. Рассмотрим фрагмент кода на языке Eiffel: Console.show(my_book.pages(j).paragraphs(i).text) Является ли этот фрагмент синтаксически корректным, если да, то какова его возможная семантика?
    (1) этот фрагмент синтаксически некорректен, поэтому ошибка возникнет еще на этапе компиляции
    (2) этот фрагмент синтаксически корректен, но ошибка возникнет на этапе выполнения, поскольку запросы не могут иметь аргументов
    (3) этот фрагмент синтаксически корректен, и будет выполняться. В результате на консоль будет выведен текст двух страниц книги с номерами I и j
    (4) этот фрагмент синтаксически корректен. Метод show, вызываемый предопределенным объектом Console, выводит на консоль значение, переданное методу в качестве аргумента. Аргументом является некоторый текст, формируемый цепочкой запросов. Началом цепочки является заданный объект my_book – объект класса Book. У этого класса есть запрос pages с целочисленным аргументом, задающим номер страницы. Запрос возвращает объект класса Page – страницу книги с указанным номером. У класса Page есть запрос paragraphs с целочисленным аргументом, задающим номер абзаца. Запрос возвращает объект класса Paragraph – i-й абзац страницы. Запрос text в классе Paragraph возвращает текст абзаца. Таким образом на консоль будет выведен текст i-го абзаца j-й страницы книги, которую в момент выполнения обозначает объект my_book
    Рассмотрим отношения между понятиями, используемыми в программировании. Какое отношение задано некорректно?
    (1) ограничитель является подвидом лексемы
    (2) лексический анализ является подвидом анализа программы
    (3) лексический анализ предшествует семантическому анализу
    (4) семантический анализ предшествует синтаксическому анализу
    (5) терминальная категория является подвидом категории
    Рассмотрим фрагмент карты концепций. Какое отношение в этом фрагменте задано некорректно?
    (1) предусловие является подвидом постусловия
    (2) контракт является частью программного кода
    (3) заголовочный комментарий предшествует описанию компонента
    (4) графический интерфейс является подвидом интерфейса
    Пусть заданы множества целых чисел: S1 = { 3, 5, 7, 11}, S2 = {2, 4, 8, 10}, S3 = { 3, 11, 5, 10}. Укажите формулы теории предикатов, принимающих истинные значения. Здесь Forall обозначает квантор всеобщности, а Exist – квантор существования
    (1) Forall s: S1| s – простое число
    (2) Exist s: S2 | s – простое число
    (3) Forall s: S1 | Exist s1: S2|s < s1
    (4) Exist s: S1 | Forall s1: S2| s < s1
    (5) Forall s2: S3 | (Exist s: S1| s = s2 or else Exist s1: S2| s1 = s2)
    Укажите корректное определение неквалифицированного вызова:
    (1) вызов называется неквалифицированным, если его создал неквалифицированный программист
    (2) вызов x.f называется неквалифицированным, если цель вызова x является неквалифицированным объектом
    (3) вызов называется неквалифицированным, если он имеет форму x.f с явным указанием целевого объекта x
    (4) вызов называется неквалифицированным, если цель вызова явно не указана и ею является текущий объект
    Какое утверждение не является справедливым по отношению к понятию "исключительная ситуация":
    (1) исключительной ситуацией, возникшей в процессе выполнения некоторого метода, называется ситуация, когда процесс вычислений не может быть продолжен нормальным способом и, следовательно, метод не может выполнить свой контракт
    (2) причины возникновения исключительной ситуации могут быть разными – это может быть сбои в работе аппаратуры, сети передачи данных, отсутствие требуемого файла данных
    (3) причины возникновения исключительной ситуации могут быть разными – это может быть невозможность выполнить операцию над пришедшими данными (попытка деления на ноль, извлечение квадратного корня из отрицательного числа и так далее)
    (4) причины возникновения исключительной ситуации могут быть разными – это может быть исключение, определенное программистом, когда программа явно вызывает исключение
    (5) исключительная ситуация широко используется программистами как еще одна управляющая структура, - некоторый вариант условного оператора
    Какие утверждения являются корректными по отношению к понятию "абстракция":
    (1) абстракция означает выделение сущности явления, понятия, алгоритма, игнорируя его детали
    (2) абстракция означает выделение свойств предмета, не имеющих практического применения
    (3) под алгоритмической или функциональной абстракцией алгоритма понимают выделение его сущности, обычно оформляемое в виде интерфейса метода, - реализация метода в этот момент еще не ясна
    (4) абстракция обычно предполагает именование выделенной сущности
    (5) абстрактный класс – это класс, не являющийся моделью понятия физического мира
    Какие правила стиля рекомендуются для ссылочного программирования?
    (1) используйте void ссылки только для завершения связанных структур
    (2) используйте void ссылки только для представления специальных значений типов, не задающих связанные структуры
    (3) для фундаментальных структур данных используйте компоненты базисных библиотек, если они применимы
    (4) нетривиальные действия со ссылками, такие как операции вставки, удаления элементов связанных структур, не должны появляться в проблемно-ориентированных частях программы. Для них должны проектироваться специальные библиотечные классы. Если по каким-либо причинам библиотечные классы недоступны, то из классов следует создавать специальные кластеры
    (Антропоморфизм) Какое устройство компьютера является аналогом слуха человека?
    (1) монитор
    (2) клавиатура
    (3) микрофон
    (4) видеокамера
    (5) джойстик
    Укажите корректные высказывания?
    (1) метод может иметь только один аргумент
    (2) метод всегда имеет аргументы
    (3) запрос не может иметь аргументы
    (4) чтобы выполнить метод, некоторый объект должен вызвать этот метод
    (5) некоторые объекты являются программными моделями объектов физического мира
    Укажите корректные высказывания?
    (1) лексические правила определяют, как создаются лексемы из символов
    (2) определение идентификатора – это лексическое правило
    (3) семантика определена только для синтаксически корректных программ
    (4) верблюжьим стилем в именовании называется стиль, использующий имена животных в качестве имен
    (5) программы имеют семантику, определяющую эффект времени выполнения каждого образца и всей программы в целом
    Укажите корректные высказывания?
    (1) текст программной системы задает описание классов, составляющих эту систему
    (2) каждая команда возвращает результат, тип которого описан в объявлении команды
    (3) контрактный облик позволяет характеризовать интерфейс класса
    (4) метод может иметь предусловия, задающие свойства, позволяющие "законно" вызывать метод
    В упражнении 5 приводится текст объявления: "Вход запрещен всем, кто не авторизован или не имеет сопровождающего". Этот текст содержит запрет, которого не добивался видимо автор объявления. В упражнении предлагается переписать объявления. Выполнив это упражнение, укажите, тексты каких объявлений являются корректными?
    (1) вход разрешен только тем, кто авторизован или имеет сопровождающего
    (2) вход разрешен только тем, кто авторизован и имеет сопровождающего
    (3) вход запрещен тем, кто не авторизован или не имеет сопровождающего
    (4) вход запрещен тем, кто не авторизован и не имеет сопровождающего
    Какие утверждения являются некорректными?
    (1) вызов x.f(…) будет выполняться должным образом, только если x присоединен к объекту
    (2) если ссылка получила значение void, то изменить это значение уже невозможно
    (3) Void ссылки могут быть полезными и служат для указания опущенной информации и для завершения связанных структур
    (4) процедура создания должна обеспечивать выполнение инварианта класса. Если инициализация по умолчанию не удовлетворяет этому требованию, то необходимо использовать процедуру создания, решающую проблему
    (5) каждый неквалифицированный вызов метода применяется к текущему объекту
    Какое утверждение является некорректным?
    (1) управляющие структуры определяют порядок действий при выполнении программы
    (2) программу с goto невозможно записать, используя только управляющие структуры структурного программирования
    (3) теорема Бёма- Джакопини определяет минимальный набор управляющих структур, достаточный для записи любого алгоритма
    (4) вариант цикла позволяет доказать завершаемость цикла
    Какое утверждение является некорректным?
    (1) в подходе "сверху – вниз" метод может выступать в роли "заглушки" - держателя места, для алгоритма, который будет детализирован позже в процессе проектирования
    (2) методы могут иметь аргументы, которые позволяют вызывающему методу передать информацию, специфическую для каждого вызова
    (3) скрытие информации является механизмом, позволяющим отделить интерфейс от реализации, что позволяет клиентам применять методы, основываясь только на информации, заключенной в интерфейсе
    (4) методы не поддерживают функциональную абстракцию
    Какие утверждения является некорректными?
    (1) на имена локальных переменных никакие ограничения не накладываются
    (2) для базисных переменных эффект присваивания target := source состоит в том, что вычисляется значение выражения source, и это значение получает целевая переменная target
    (3) для ссылочных переменных эффект присваивания target := source состоит в создании динамического псевдонима, - целевая переменная target получает значение ссылки source и обе ссылки становятся присоединёнными к одному и тому же объекту
    (4) атрибут сущностью не является
    Какие утверждения являются некорректными?
    (1) динамические свойства программы – это те свойства исходного текста, которые могут быть проанализированы компилятором
    (2) программа является корректной, если компьютер может ее выполнить
    (3) программа, написанная программистом, выполняется на компьютере без всяких преобразований
    (4) память – устройство для хранения и доступа к данным и программам
    (5) встроенный компьютер – это компьютер, являющийся частью некоторого устройства
    Какие утверждения, связанные с вызовом компонента – x. f, являются корректными?
    (1) вызов компонента происходит только в чрезвычайных исключительных ситуациях
    (2) вызов компонента является базисной операцией ОО программирования
    (3) вызываемый компонент f принадлежит некоторому классу
    (4) вызываемый компонент f принадлежит некоторому объекту
    (5) цель вызова x является компонентом класса
    (6) цель вызова x является объектом класса
    Какие утверждения о понятии "дерево" являются корректными?
    (1) дерево является частным случаем математической структуры, называемой графом
    (2) дерево позволяет отобразить иерархическую организацию структуры
    (3) дерево позволяет отобразить структуру, в которой одни объекты могут быть встроены (вложены) в другие объекты
    (4) у дерева может быть много корней
    (5) непустое дерево имеет корень
    (6) вершина (узел) дерева может быть одного из трех типов: корень, лист, внутренняя вершина
    Какие утверждения, связывающие класс и объект, являются корректными?
    (1) класс задает множество, объект – элемент этого множества
    (2) объект статичен, класс динамичен
    (3) класс создается при написании программной системы и является некоторым текстом
    (4) объект – это коллекция данных, создаваемая в процессе выполнения программной системы
    (5) для создания объекта не требуется существование класса
    (6) для создания класса не требуется существование объектов
    Пусть (e) and (v) = True, где e и v – два булевских выражения. Согласно принципу конъюнкции это означает, что:
    (1) e = False; v = True
    (2) e = False; v = False
    (3) e = True; v = True
    (4) e = True; v = False
    Базисное правило разработчика программы говорит:
    (1) программа должна корректно работать сразу после написания ее кода
    (2) программа должна компилироваться на всех этапах ее разработки
    (3) программа должна компилироваться и выполняться без появления сообщений об ошибках, хотя ее результаты могут быть некорректными
    (4) на начальных этапах программа может не компилироваться. Важно лишь, чтобы она компилировалась на заключительном этапе разработки
    Какой из возможных видов алгоритмов рассматривается в этом курсе?
    (1) последовательный детерминированный
    (2) недетерминированный
    (3) вероятностный
    (4) параллельный
    Укажите подходы, применяемые при выделении подзадач в большой задаче:
    (1) когда программист приступает к решению большой проблемы, в его распоряжении имеются библиотеки процедур и функций, дающие решение ряда задач. Эти библиотеки могли быть созданы ранее или непосредственно для решения данной проблемы.Если программисту удается использовать эти решения в своей проблеме, то проблема упрощается. Такой подход называется проектированием "снизу – вверх" и характерен для любой инженерной деятельности, где различные конструкции собираются из готовых элементов
    (2) когда программист приступает к решению большой проблемы, то представить ее решение во всех деталях может быть невозможно по причине сложности проблемы. Выход состоит в том, чтобы выделить более простые подзадачи. Процесс разбиения может продолжаться пока подзадачи не станут достаточно простыми. Такой подход называется проектированием "сверху – вниз"
    (3) когда программист приступает к решению большой проблемы, то он может составить список подзадач, которые требуется решить, и приступить к решению задач из списка, начиная с начала списка. Такой подход называется проектированием "слева – направо"
    (4) когда программист приступает к решению большой проблемы, то он может составить список подзадач, которые требуется решить, и приступить к решению задач из списка, начиная с конца списка. Такой подход называется проектированием "справа – налево"
    Программирование и математика близки. Но мир математики – это бесконечный, непрерывный мир. Мир программирования конечен и дискретен. Математика статична, программирование – динамично. Ощутите разницу на следующем примере. Рассмотрим определение чисел Фибоначчи: math. Укажите утверждения, из которых будет исходить программист при написании программы вычисления чисел Фибоначчи:
    (1) определение задает правило вычисления n-го числа Фибоначчи, где n может быть достаточно большим числом, но не сколь угодно большим
    (2) для вычисления достаточно иметь две переменные, хранящие некоторое число Фибоначчи и его предшественника. Этих переменных достаточно, чтобы, следуя правилу, вычислить следующее число Фибоначчи
    (3) организовав цикл, можно вычислить требуемое число Фибоначчи с номером n
    (4) определение задает бесконечную последовательность чисел Фибоначчи
    (5) определение определяет некоторое свойство, которым обладают числа Фибоначчи. (Сам Фибоначчи рассматривал это определение, как некоторую модель процесса размножения кроликов.)
    Какими желательными свойствами должна обладать программа для компьютера?
    (1) не должна допускать изменений
    (2) должна быть написана в машинном коде
    (3) должна допускать повторное использование
    (4) должна быть корректной
    (5) должна быть устойчивой
    Какое высказывание является определением команды?
    (1) команда – это коллекция данных, над которыми определены операции
    (2) команда – это метод, который может изменить объект
    (3) команда – это метод, получающий доступ к объекту
    (4) команда – это значение, передаваемое методу, необходимое для его работы
    (5) команда – это приказ, отдаваемый программистом, которому должны подчиняться все объекты
    Что из приведенных примеров задает грамматические категории языка Eiffel?
    (1) Paris
    (2) Class
    (3) Identificator
    (4) Preview
    (5) Feature
    Какое утверждение не является справедливым для программного интерфейса?
    (1) программный интерфейс – это интерфейс программы, ориентированный на тех ее клиентов, которые сами являются программами
    (2) программный интерфейс – это интерфейс программы, ориентированный на людей – тех разработчиков, которым предстоит создавать программу, выступающую в роли клиента программы, предлагающей свой интерфейс
    (3) важное свойство программного интерфейса – понятность программы, обеспечиваемая специальными средствами – комментариями, содержательными именами, контрактами
    (4) программный интерфейс является частью интерфейса пользователя
    Дано истинностное присваивание p = False; q = False; r = True. Какая из формул принимает значение True для этого присваивания?
    (1) (p and q) or (not r and p)
    (2) (p or q) and (not r and p)
    (3) (not p or not q) and (not r or not p)
    (4) p and q and r
    (5) p or q or r
    В тексте класса LINE_BUILDING дано объявление fancy_line: LINE, задающее воображаемую линию метро. Предположим, что задано еще одно объявление - real_line: LINE. Какие утверждения справедливы для этих двух сущностей?
    (1) нельзя объявлять две сущности одного и того же типа (класса)
    (2) в момент объявления эти сущности связываются с одним и тем же объектом
    (3) в момент объявления эти сущности не связаны ни с каким объектом
    (4) в момент выполнения эти сущности могут быть связаны с одним и тем же объектом
    (5) в момент выполнения эти сущности должны быть связаны с разными объектами
    (6) в момент выполнения эти сущности могут быть связаны с разными объектами
    Какие утверждения справедливы для обеспечения корректности составного оператора?
    (1) перед началом выполнения составного оператора должны выполняться предусловия всех операторов последовательности
    (2) по завершении выполнения составного оператора должны выполняться постусловия всех операторов последовательности
    (3) перед началом выполнения составного оператора должно выполняться предусловие первого оператора последовательности
    (4) из истинности выполнения постусловия i-го оператора последовательности должно следовать предусловие i+1-го оператора последовательности, если таковой существует
    (5) из истинности выполнения постусловия последнего оператора последовательности должно следовать постусловие составного оператора
    Какие утверждения справедливы относительно понятий "объявление метода" и "интерфейс метода"?
    (1) объявление метода задает реализацию
    (2) интерфейс метода задает реализацию
    (3) объявление метода однозначно определяет интерфейс
    (4) интерфейс метода однозначно определяет объявление метода
    (5) чтобы клиенты могли использовать метод, им необходимо как знание интерфейса, так и знание объявления класса
    Какие утверждения не справедливы относительно понятия "локальная переменная"?
    (1) локальные переменные объявляются в предложении local в объявлении метода
    (2) локальные переменные – это временные переменные. Их область видимости – метод, в котором они объявлены. Время жизни также определяется методом, - когда метод завершает работу, перестают существовать его локальные переменные
    (3) атрибуты класса являются локальными переменными
    (4) в разных методах одного класса нельзя иметь локальные переменные с одним и тем же именем
    (5) имя локальной переменной должно отличаться от имен аргументов метода, в которых объявлена локальная переменная, и от имен атрибутов и методов класса, в котором находится эта переменная
    Каково назначение центрального процессора?
    (1) преобразует исходный код программы в машинный код
    (2) хранит данные и программы
    (3) выполняет операции над данными
    (4) выполняет все приказы программиста
    (5) управляет работой мыши и джойстика
    Определим отношение "является подвидом". Вид А является подвидом вида В если экземпляры вида А являются частным случаем экземпляров вида В. Киты являются подвидом млекопитающих. Укажите высказывания, справедливые для отношения "является подвидом".
    (1) команда является подвидом метода
    (2) запрос является подвидом метода
    (3) объект является подвидом класса
    (4) аргумент является подвидом метода
    (5) метод является подвидом класса
    Какие утверждения о понятии "выражение" являются корректными?
    (1) выражение носит описательный дескриптивный характер
    (2) выражение императивно
    (3) запрос является выражением
    (4) вычисление выражения дает значение
    (5) команда является выражением
    Какие утверждения в контексте данного курса об отношениях "клиент", "поставщик" являются корректными?
    (1) отношения "быть клиентом" и "быть поставщиком" взаимно дополняют друг друга. Если А клиент В, то В поставщик А
    (2) клиент может быть человеком, а поставщиком - программная система
    (3) клиентом может быть программная система, а поставщиком - человек
    (4) клиентом может быть одна часть программной системы, а поставщиком другая ее часть
    (5) клиентом может быть одна программная система, а поставщиком другая система
    (6) клиентом может быть человек, а поставщиком другой человек
    Пусть e – булевское выражение, зависящее от n булевских переменных. Какие утверждения справедливы для истинностных присваиваний и таблицы истинности этого выражения?
    (1) число строк в таблице истинности совпадает с числом различных истинностных присваиваний
    (2) число столбцов в таблице истинности совпадает с числом различных истинностных присваиваний
    (3) число столбцов в таблице истинности на 1 больше числа ее строк
    (4) число различных истинностных присваиваний равно math
    Какие утверждения являются корректными для связанных понятий – вызова, сущности, объекта, ссылки, void ?
    (1) Void-вызовом называется вызов x.f, вызывающий объект Void
    (2) Void-вызовом называется вызов x.f, в котором цель вызова x имеет значение void и не присоединена ни к какому объекту
    (3) если сущность присоединена к некоторому объекту, то ее ссылка не может быть значением void
    (4) сущность может быть присоединена или не присоединена к объекту
    (5) тип объекта, к которому может быть присоединена сущность, определяется типом сущности, заданным при ее объявлении
    Когда каменщику нужно выложить стенку из кирпичей, то он, начиная с первого ряда, кладет ряд за рядом, пока стена не достигнет заданной высоты. Многие циклы, хотя и не все, следует этой стратегии, задавая аппроксимацию – последовательное приближение к достижению цели цикла. Построим цикл, моделирующий работу каменщика. Предположим, что высота одного ряда равна h, и каменщику нужно возвести стену высотой H = n * h. В качестве подходящего инварианта цикла выберем условие H = i * h (содержательно это означает, что выложена стена из i рядов кирпичей). Отметьте корректные составляющие цикла, позволяющие решить эту задачу и доказать ее корректность. Доказательство корректности предполагает доказательство трех утверждений: после инициализации инвариант цикла становится истинным, тело цикла сохраняет истинность инварианта, из истинности условия выхода и инварианта следует выполнение цели цикла
    (1) from i = 0
    (2) from i = 1
    (3) until i = n
    (4) loop – "положить ряд кирпичей" i = i+1
    (5) loop – "положить ряд кирпичей" i = i+2
    Какие части объявления метода являются синтаксически обязательными?
    (1) заголовок метода
    (2) заголовочный комментарий
    (3) предложение require, задающее предусловие
    (4) предложение ensure, задающее постусловие
    (5) тело метода
    Какое утверждение несправедливо относительно доступа клиентов к атрибуту класса?
    (1) если атрибут закрыт (feature {NONE}), то он недоступен ни для чтения, ни для записи
    (2) если атрибут открыт, то он доступен для чтения и для записи
    (3) значение атрибута изменяют методы класса
    (4) клиент может изменить значение атрибута, если вызовет соответствующий метод
    (5) клиент может присвоить атрибуту заданное значение, только при вызове сеттер-процедуры, если таковая определена в классе
    Какие утверждения о компьютере являются корректными:
    (1) компьютер является универсальным, поскольку способен выполнять любую введенную в него программу, допускающую преобразование в систему команд данного компьютера
    (2) компьютер с загруженной в него программой становится специализированным
    (3) встроенные компьютеры универсальными не являются, поскольку выполняют "зашитые" в них программы
    (4) компьютер является универсальным, поскольку способен решить любую задачу
    Представьте, что вы создаете ПО для работы с документами – создания, модифицирования и доступа к ним. Предположите, что вы проектируете класс WORD (Слово), который описывает понятие "слово" и класс PARAGRAPH (Абзац), описывающий понятие абзаца. Для каждого из следующих возможных методов класса PARAGRAPH, установите, какой из них должен быть командой с аргументом.
    (1) метод word_count, используемый в вызовах my_paragraph.word_count, возвращающий число слов абзаца
    (2) метод remove_last_word, используемый как my_paragraph.remove_last_word, удаляющий последнее слово абзаца
    (3) метод justify, используемый как my_paragraph.justify, выравнивающий абзац в соответствии с установленными границами для левого и правого поля
    (4) метод extend, используемый как my_paragraph.extend (my_word), имеющий слово в качестве аргумента и добавляющий его в конец абзаца
    (5) метод word_length, используемый как my_paragraph.word_length (i), у которого целочисленный аргумент задает индекс (порядковый номер) слова в абзаце, а в качестве результата возвращается число символов этого слова
    Что определяет семантика программы?
    (1) корректность программы
    (2) легкость понимания текста программы
    (3) структуру и форму записи ее текста
    (4) свойства потенциально возможных выполнений программы
    Какое определение инварианта класса является корректным?
    (1) инвариант класса – это условие, которое всегда является истинным
    (2) инвариант класса – это условие, которое должно выполняться перед вызовом любого метода класса и должно оставаться истинным по завершении работы метода
    (3) инвариант класса – это условие, которое должно выполняться перед вызовом любого метода класса, оставаться истинным в процессе работы метода, и должно оставаться истинным по завершении работы метода
    (4) инвариант класса – это конъюнкция предусловий и постусловий всех методов класса
    Пусть e – булевское выражение. Для операции эквивалентности справедливо e = e. Это означает, что эквивалентность обладает свойством:
    (1) симметричности
    (2) антисимметричности
    (3) рефлексивности
    (4) транзитивности
    Какие утверждения корректно определяют задание процедур создания:
    (1) в объявлении класса в предложении create можно указать имена методов класса, являющихся процедурами создания
    (2) если предложение create в объявлении класса отсутствует, или в предложении create не задано имя ни одного метода класса, то для создания объектов используется процедура создания с именем default_create, существующая по умолчанию, наследуемая от общего предка классов
    (3) если в предложении create указаны имена процедур создания без упоминания имени default_create, то для создания объектов можно использовать как указанные процедуры, так и процедуру создания по умолчанию
    (4) процедура создания может иметь аргументы, используемые для инициализации полей объекта
    Какие утверждения корректны относительно варианта цикла?
    (1) вариантом цикла является целочисленное выражение, которое уменьшается по крайней мере на 1 после выполнения очередной итерации цикла
    (2) после инициализации вариант цикла получает неотрицательное значение
    (3) если для цикла удается построить вариант, то это позволяет доказать завершаемость цикла
    (4) у каждого цикла есть вариант
    (5) выполнение итерации цикла уменьшает значение варианта, оставляя его неотрицательным
    Метод класса может иметь аргументы. Аргументы, указанные при объявлении метода называются формальными. При вызове метода задаются фактические аргументы. Какие утверждения корректны относительно формальных и фактических аргументов и их соответствия?
    (1) формальный аргумент это имя с указанием типа
    (2) фактический аргумент это выражение, тип которого должен быть согласован с типом соответствующего формального аргумента
    (3) при вызове метода операции выполняются над значениями, заданными фактическими аргументами
    (4) число формальных аргументов может не совпадать с числом фактических аргументов
    Какой набор свойств характеризует атрибут?
    (1) компонент класса, вычисляется, является командой
    (2) компонент класса, вычисляется, является запросом
    (3) компонент класса, использует память, является запросом
    (4) компонент класса, использует память, является командой
    (5) число формальных аргументов может быть больше числа фактических аргументов
    Какие компоненты необходимы для работы любого компьютера?
    (1) клавиатура
    (2) память
    (3) процессор
    (4) дисплей
    (5) ПО - программное обеспечение
    Какие утверждения о семантике вызова x.f являются корректными?
    (1) определяет эффект времени компиляции программы
    (2) определяет эффект времени выполнения программы
    (3) состоит в том, что к объекту, который обозначает x в момент выполнения, применяется компонент с именем f, принадлежащий классу объекта
    (4) компонент f применяется к объекту, который обозначает x во время компиляции
    Предложение: "Каждый вызов метода применяет метод к определенному объекту – цели вызова" характеризует:
    (1) синтаксис
    (2) семантику
    (3) и синтаксис и семантику
    (4) ни синтаксис, ни семантику
    Какое высказывание является некорректным по отношению к понятию "постусловие"?
    (1) постусловие задает важные свойства, которым должны удовлетворять результаты работы метода
    (2) постусловие должно выполняться и в том случае, когда метод был вызван некорректно, с нарушением истинности предусловия
    (3) не все свойства, которым должны удовлетворять результаты работы метода, могут отражаться в постусловии
    (4) вся ответственность за выполнение постусловия лежит на методе. Если метод был корректно вызван, то он обязан гарантировать выполнение постусловия при завершении его работы
    Рассмотрим импликацию p implies q, где булевское выражение p является посылкой, а q – заключением. Какое из утверждений является некорректным?
    (1) если импликация истинна и p – истинно, то и заключение q истинно
    (2) если импликация истинна, а p – ложно, то об истинности заключения q ничего сказать нельзя
    (3) если импликация истинна и q – истинно, то и посылка p истинна
    (4) если импликация истинна и q – истинно, то о посылке p ничего сказать нельзя
    Если у класса есть хотя бы один нетривиальный инвариант, то класс обязан задать нетривиальную процедуру создания класса и не может использовать процедуру создания по умолчанию. Нетривиальность в данном контексте означает, что поля создаваемого объекта должны быть инициализированы значениями, отличными от значений, задаваемых по умолчанию. Укажите корректное объяснение этого требования?
    (1) если инвариант нетривиален, то и все в классе должно быть нетривиально
    (2) это чисто синтаксическое ограничение языка Eiffel, содержательного смысла в нем нет
    (3) по определению инварианта класса, он должен быть истинен перед вызовом любого метода класса (за исключением процедур создания). Поэтому процедура создания, создающая объект должна гарантировать, что для рожденного ею объекта все инварианты класса выполняются. Процедура создания по умолчанию не может этого гарантировать для нетривиальных инвариантов класса
    (4) процедура создания по умолчанию запрещает использование инвариантов класса
    Каковы условия корректности условного оператора if c then a else b?
    (1) непосредственно перед началом выполнения условного оператора должны выполняться предусловия операторов a и b
    (2) непосредственно перед началом выполнения условного оператора, если истинно условие c, то должно выполняться предусловие оператора a
    (3) непосредственно перед началом выполнения условного оператора, если ложно условие c, то должно выполняться предусловие оператора b
    (4) непосредственно после завершения выполнения условного оператора, если выполнялось условие c, то из постусловия оператора a должно следовать постусловие составного оператора
    (5) непосредственно после завершения выполнения условного оператора, если не выполнялось условие c, то из постусловия оператора b должно следовать постусловие составного оператора
    (6) непосредственно после завершения выполнения условного оператора из конъюнкции постусловий операторов a и b должно следовать постусловие составного оператора
    Укажите корректные утверждения, связывающие клиента класса и его поставщика?
    (1) для того чтобы клиент класса мог корректно работать с методом класса поставщика, ему необходимо знание интерфейса метода и его реализации
    (2) поставщик класса может изменить реализацию метода, сохранив его интерфейс. Это никак не отразится на работе клиентов класса
    (3) изменение интерфейса метода класса сказывается на клиентах, использующих метод, - им придется изменять и методы вызыватели, что может породить волну изменений
    (4) изменение реализации метода класса всегда приводит к изменению интерфейса метода
    Укажите корректные утверждения по отношению к ссылочным переменным?
    (1) в результате ссылочного присваивания b = d создаются динамические псевдонимы – два имени (b и d) у объекта, к которому присоединены ссылки
    (2) если объект имеет несколько имен (динамических псевдонимов), то изменение свойств объекта, каким бы путем оно не происходило, скажется на всех ссылках, присоединенных к объекту
    (3) если объект имеет несколько имен (динамических псевдонимов), то изменение свойств объекта скажется только на той ссылке, которая инициализировала изменение объекта
    (4) динамические псевдонимы – это мощный, полезный, но и опасный механизм объектного программирования
    Какое из следующих предложений характеризует и данные и информацию?
    (1) вы можете найти детали рейса на сайте
    (2) ваш пароль должен содержать не менее 6 символов
    (3) у нас нет данных о вашей оплате
    (4) нам известны данные Вашего паспорта
    Какие из утверждений о правилах стиля программирования являются корректными?
    (1) выполнение правил стиля необходимо для корректной работы компилятора
    (2) нарушение правил стиля приводит к ошибке в выполнении программы
    (3) выполнение правил стиля облегчает понимание программы человеком
    (4) выполнение правил стиля облегчает модификацию и повторное использование программ
    (5) выполнение правил стиля обязательно для профессионального программирования
    Предложение: "Eiffel и Smalltalk являются объектно-ориентированными языками" характеризует:
    (1) синтаксис
    (2) семантику
    (3) и синтаксис и семантику
    (4) ни синтаксис, ни семантику
    При моделировании линии метро за начальную станцию принимается станция на южном конце линии, за конечную – станция на северном конце. Некоторая линия метро идет с запада на восток, так что начальная и конечная станция расположены на одной широте. Что следует сделать в этом случае, чтобы наша модель соответствовала реальному миру?
    (1) изменить географические координаты начальной или конечной станции
    (2) признать, что наше решение неудачно и перепроектировать систему
    (3) полагать, что в этом случае западный конец является одновременно и южным концом, а восточный - северным
    (4) полагать, что в этом случае восточный конец является одновременно и южным концом, а западный - северным
    Импликация p implies q в языке Eiffel по определению является полустрогой операцией. Какие утверждения являются справедливыми?
    (1) p implies q = (not p) or q
    (2) p implies q = (not p) or else q
    (3) если посылка p ложна, то импликация истинна и тогда, когда заключение q неопределенно
    (4) результат импликации всегда определен
    Какое определение сборщика мусора является корректным?
    (1) сборщик мусора это человек, который каждое утро убирает мусор, остающийся после ночной работы программиста
    (2) сборщик мусора – это специальный метод, создаваемый программистом, позволяющий обнаружить и удалить все ошибочные фрагменты кода
    (3) сборщик мусора это специальный инструментарий, являющийся частью среды разработки, работающий параллельно с вашей программой и освобождающий память от объектов, ставших недостижимыми в программе (мусором, занимающим память)
    (4) сборщик мусора – это метод компилятора, который программист может вызывать для освобождения памяти от недостижимых объектов
    Какие утверждения об управляющих структурах являются корректными?
    (1) согласно теореме Бёма –Джакопини для любого алгоритма можно написать программу, использующую только две управляющие структуры – последовательность и цикл
    (2) можно доказать, что для любого алгоритма можно написать программу, использующую только две управляющие структуры – последовательность и составной оператор
    (3) практика профессионального ОО программирования использует только две управляющие структуры в соответствии с теоремой Бёма – Джакопини
    (4) практика профессионального ОО программирования использует расширенный набор управляющих структур – основными являются 4 – последовательность, выбор, цикл и подпрограмма
    Метод клиента, вызывающий метод М, возможно должен быть перекомпилирован, если в методе М изменения внесены только в:
    (1) сигнатуру
    (2) предусловие
    (3) постусловие
    (4) реализацию – тело метода
    (Упражнение 5) Пусть v1 и v2 переменные типа INTEGER. Какая из приведенных программ не выполняет обмен значениями?
    (1) v1 = v1+v2; v2 = v1 – v2; v1 = v1 – v2
    (2) v1 = v1 * v2; v2 = v1 /v2; v1 = v1 / v2
    (3) v1 = v1 - v2; v2 = v1+v2; v1 = v1+v2
    (4) v1 = v1 - v2; v2 = v1+v2; v1 = v2 – v1
    Введем следующие определения:
  • Алфавитом S назовем упорядоченное конечное множество символов { s1, s2, …sN}, на котором задана операция < - предшествования, так что для любой пары символов si и sj либо si < sj, либо sj < si
  • Словом u в алфавите S назовем последовательность символов из алфавита – sk1sk2…skr. Число символов в слове r – назовем длиной слова
  • Слово длины 0, не содержащее символов, будем называть пустым словом, и обозначать его буквой e
  • Конкатенацией слова u длины r и слова v длины p назовем слово w длины r+p, полученное приписыванием слова v в конец слова u. Операцию конкатенации будем обозначать знаком +. (Пример: алфавит S = { к, о, р } u = рок; v = око ; w = u+v = рококо.) Конкатенация слова u с пустым словом не изменяет u (u+e = e+u = u)
  • Каждое слово u можно рассматривать как конкатенацию двух его частей: префикса p(u), задающего начальную часть слова, и хвоста t(u), задающего оставшуюся конечную часть слова (u = p(u)+t(u)). Разбиение слова на префикс и хвост произвольно, так что при некотором разбиении префикс или хвост может быть пустым словом
  • Общим префиксом двух слов u и v назовем слово p такое, что p = p(u) = p(v). (Пример: u = рок; v = рококо; Общий префикс p = ро; t(u) = к; t(v) = коко).
  • Общим максимальным префиксом двух слов u и v назовем их общий префикс максимальной длины. (Пример: u = рок; v = рококо; Общий максимальный префикс p = рок; t(u) = е; t(v) = око).
  • Определим теперь лексикографический порядок на словах алфавита S. Пусть p общий максимальный префикс слов u и v, t(u), t(v) – хвосты слов u и v. Слово u лексикографически предшествует слову v тогда и только тогда, когда либо t(u) пустое слово, либо первый символ слова t(u) предшествует в алфавите S первому символу слова t(v)
  • Дан текст на русском языке (Карл у Клары украл кораллы. Клара у Карла украла кларнет). Какое максимальное количество слов этого текста имеют общий префикс (Большие и малые буквы считать одним символом):
    (1) 1
    (2) 3
    (3) 4
    (4) 6
    (5) 8
    (6) 10
    Пусть определены классы Student и Tutor, моделирующие понятия "студент" и его "руководитель". У класса Student есть запрос без аргументов tutor, возвращающий объект класса Tutor. У класса Tutor есть запрос с целочисленным аргументом students(j), возвращающий объект класса Student – студента с номером j в группе, руководимой данным преподавателем. Пусть определены по два объекта каждого из этих классов: student_one, student_two, tutor_one, tutor_two. Какие вызовы синтаксически корректны и в качестве результата дают объект класса Student?
    (1) student_one.student_two
    (2) tutor_one.student_one
    (3) tutor_one.students(1)
    (4) tutor_one.students(2)
    (5) student_two.tutor
    (6) student_two.tutor.student(1)
    Рассмотрим отношения между понятиями, используемыми в программировании. Какое отношение задано некорректно?
    (1) метод является частью класса
    (2) метод имеет тело метода
    (3) оператор является частью тела метода
    (4) оператор является подвидом вызова компонента
    (5) вызов компонента имеет цель вызова
    Рассмотрим фрагмент карты концепций. Какое отношение в этом фрагменте задано некорректно?
    (1) предусловие является частью контракта
    (2) контракт имеет инвариант класса
    (3) программный интерфейс является подвидом интерфейса
    (4) контрактный облик содержит описание класса
    Пусть заданы множества слов: S1 = { племя, око, кот, питон}, S2 = { мама, мак, мел, потоп, папа, компас}. Укажите формулы теории предикатов, принимающих истинные значения. Здесь Forall обозначает квантор всеобщности, Exist – квантор существования, s[i] это i-й символ слова s
    (1) Forall s1: S1| Exist s2: S2 |длина (s1) < длина (s2)
    (2) Forall s1: S1| Forall s2: S2 |длина (s1) < длина (s2)
    (3) Exist s2: S2 |длина (s2) – простое число
    (4) Forall s1: S1 |длина (s1) – простое число
    (5) Exist s1: S1 | Exist s2: S2|Exist i : Integer | Exist j: Integer | s1[i] = s2[j]
    Пусть определен метод Plus, задающий сложение целых. Пусть также определен знак операции +, как псевдоним (alias) метода Plus. Какая форма записи сложения целых является синтаксически некорректной:
    (1) a.Plus(b)
    (2) a+b+c
    (3) b+a
    (4) b.Plus(a)
    (5) a.Plus(b)Plus(c)
    (6) (a.Plus(b)).Plus(c)
    Какое утверждение является неверным по отношению к механизму обработки исключительных ситуаций Retry - resque в языке Eiffel:
    (1) предложение Resque, принадлежащее методу, выполняется, когда в методе возникла исключительная ситуация
    (2) если при выполнении предложения resque предопределенная булевская переменная Retry принимает значение True, то управление передается на повторное выполнение метода, который при повторном выполнении возможно удачно завершит свою работу, выполнив контракт
    (3) если при выполнении предложения resque предопределенная булевская переменная Retry принимает значение False, то программа прекращает свою работу
    (4) если при выполнении предложения resque предопределенная булевская переменная Retry принимает значение False, то вызывается исключение, но уже для метода, вызвавшего метод, приведший к возникновению исключительной ситуации. Подъем по цепочке вызовов методов может происходить вплоть до корневого метода. Если и корневой метод не может исправить ситуацию, то программа прерывает свою работу
    (5) прежде чем стать причиной исключительной ситуации у вызывающего метода, в задачу Resque у метода, приведшего к отказу, входит восстановление инварианта класса
    Какое утверждение является некорректным по отношению к проектированию программы?
    (1) когда в клиентском классе появляется вызов метода, а сам метод еще не реализован, то это соответствует разработке "сверху – вниз"
    (2) когда создана реализация метода, но еще не появились клиенты, использующие этот метод, то это соответствует разработке "снизу - вверх"
    (3) при разработке программных систем применяются оба подхода - "сверху – вниз" и "снизу - вверх"
    (4) при разработке программных систем если применятся подход - "сверху – вниз", то поход "снизу - вверх" неприменим. Справедливо и обратное
    Сколько присваиваний нужно выполнить для удаления элемента из связанного списка?
    (1) 1
    (2) 2
    (3) 3
    (4) 4
    (5) n - 1, если в списке n элементов
    (Антропоморфизм) Какое устройство компьютера является аналогом мозга человека?
    (1) монитор
    (2) память
    (3) микрофон
    (4) процессор
    (5) клавиатура
    Укажите корректные высказывания?
    (1) программную систему можно рассматривать как множество классов, позволяющих создавать, получать доступ и изменять коллекции данных, называемых объектами
    (2) две точки зрения на объект – коллекция данных и машина, выполняющая запросы и команды, – противоречат друг другу и несовместимы
    (3) вызов объектом компонента – основная базисная операция ОО программирования
    (4) результатом выполнения запроса всегда является некоторый объект
    (5) все объекты программы являются программными моделями объектов физического мира
    Укажите корректные высказывания?
    (1) правило стиля требует, чтобы имя класса имело содержательный смысл
    (2) любой текст класса является образцом категории "класс"
    (3) образец не может быть вложен в другой образец
    (4) листья АСТ задают терминалы
    (5) идентификатор содержит буквы, цифры и знак подчеркивания, идущие в произвольном порядке
    Укажите корректные высказывания?
    (1) правило стиля требует, чтобы имя класса состояло из заглавных букв
    (2) текст класса описывает свойства объектов – экземпляров класса
    (3) класс не может быть многолик, - у него может быть только один облик
    (4) контракты являются частью программного кода
    Рассмотрим обобщение задачи о шляпах (упражнение 13). Пусть N – число людей в ряду, M – число цветов шляп ( в упражнении N = 100, M = 2). Какая формула, задающая число правильных ответов, верна для наилучшей стратегии в этой задаче (надеемся, что Вы нашли эту стратегию):
    (1) N / 2
    (2) N / M
    (3) (N+M) / 2
    (4) N – M+1
    (5) N - M
    Какие утверждения являются корректными?
    (1) текущий объект Current может иметь значение Void
    (2) оператор создания, для которого указана цель x, создает новый объект и присоединяет x к этому объекту
    (3) перед выполнением тела процедуры создания, если она задана, выполняется инициализация по умолчанию – поля вновь созданного объекта инициализируются стандартными значениями по умолчанию – ноль для чисел, void – для ссылок
    (4) в любой момент выполнения существует текущий объект: объект, запустивший последний выполняемый метод
    Какие утверждения являются корректными?
    (1) базисными структурами управления являются: составной оператор, задающий последовательное выполнение списка действий; условный оператор, задающий выполнение одного действия из списка действий в зависимости от выполнения некоторых условий; оператор цикла, задающий повторное выполнение действий
    (2) согласно теореме о неразрешимости проблемы остановки ни для какой программы нельзя доказать ее завершаемость
    (3) всякую программу с goto можно записать, используя базисные структуры управления
    (4) на уровне машинных команд goto является полезной командой, входящей в состав команд любого компьютера
    (5) исключительные ситуации могут возникать в корректно написанной программе по причинам, не зависящим от программиста
    Какие утверждения являются корректными?
    (1) в Eiffel метод является компонентом класса (feature)
    (2) в Eiffel методы не могут иметь аргументов
    (3) скрытие информации затрудняет разработку больших систем, повторное использование и сопровождение программных систем
    (4) имя метода, его сигнатура и контракт определяют интерфейс метода, доступный авторам клиентских модулей
    Какие утверждения являются корректными?
    (1) переменные включают атрибуты, представляющие поля объекта, и локальные переменные, используемые только внутри отдельных методов
    (2) присваивание применяется как к базисным значениям, которые копируются, так и к ссылкам, для которых копируется только ссылка, но не связанный с ней объект
    (3) атрибуты не могут быть константами
    (4) изменение атрибута может быть недоступно клиентам, но атрибут всегда открыт для чтения