Главная / Программирование / Разработка приложений на языке Visual Prolog

Разработка приложений на языке Visual Prolog - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: Курс посвящен практическому использованию логического программирования. Рассматриваются примеры разработки приложений на современной версии языка Visual Prolog.
В редактор окна drawFrom можно войти с помощью элемента дерева проекта
(1) drawForm.cl
(2) drawForm.frm
(3) drawForm.pro
(4) drawForm.i
Значение из поля целых чисел (Integer Control) можно найти с помощью подцели:
(1) X = integerControl_ctl:getText()
(2) X = integerControl_ctl:getInteger()
(3) integerControl_ctl:setInteger(X)
(4) X = integerControl_ctl:getValue()
Определение предикатов обработки событий onPaint и onSize имеет вид: onPaint(_Source, rct(0, 0, 10, 10), GDI):- !, GDI:clear(color_Red). onPaint(_Source, _Rectangle, GDI):- GDI:clear(color_Blue). onSize(_Source):- invalidate(). Что произойдет при небольшом изменении размеров окна стандартного размера?
(1) Клиентская область окна будет закрашена синим цветом
(2) На синем фоне в левом верхнем углу будет изображен красный квадрат
(3) На красном фоне появится маленький синий квадрат
(4) Клиентская область окна будет закрашена красным цветом
Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид: onFileNew(_Source, _MenuTag):- vpiCommonDialogs::note("Hello, World!"), setText("Hello!"). Что произойдет после выбора команды меню File -> New?
(1) Откроется окно Note, в строке заголовка которого будет выведен текст "Hello, World!", а в строке заголовка главного окна приложения будет выведен текст "Hello!"
(2) Откроется окно Note, в поле сообщений которого будет выведен текст "Hello, World!", при этом в строке заголовка главного окна приложения будет выведен текст "Hello!"
(3) Откроется окно Note, в поле сообщений которого будет выведен текст "Hello, World!", а после закрытия окна Note в строке заголовка главного окна приложения появится текст "Hello!"
(4) Откроется окно Note, в строке заголовка которого будет выведен текст "Hello!", а в поле сообщений — текст "Hello, World!".
Изображение, хранящееся в файле ресурса с идентификатором idb_bmp, загружает вызов следующей подцели:
(1) Pict = vpi::pictLoad(FileName)
(2) Pict = vpi::pictGetFromRes(idb_bmp)
(3) vpi::pictGetSize(Pict, W, H, _)
(4) Pict = vpi::pictGetFromWin(Rect)
Поместить надпись на кнопку (Push Button) можно с помощью подцели:
(1) button_ctl:setLabel(Text)
(2) button_ctl:setText(Text)
(3) button_ctl:setState(Text)
(4) Text = button_ctl:getText()
Предикат обработки события выбора команды меню принадлежит предикатному домену
(1) window::showListener
(2) window::menuItemListener
(3) window::moveListener
(4) window::contextMenuResponder
Укажите решение для цели B = toBoolean(1 = 2)
(1) B = 0
(2) B = 1
(3) B = true
(4) B = false
Укажите все значения переменных Rect и Point, при которых вызов подцели vpi::rectPntInside(Rect, Point) завершится успехом:
(1) Rect = rct(0, 0, 200, 200), Point = pnt(100, 100)
(2) Rect = rct(0, 0, 100, 100), Point = pnt(200, 200)
(3) Rect = rct(0, 100, 200, 200), Point = pnt(50, 50)
(4) Rect = rct(100, 0, 200, 200), Point = pnt(150, 100)
Какой элемент будет выделен в списке в результате вызова последовательности подцелей listbox_ctl:addList(["Anna", "Bob", "Chris", "David"]), listbox_ctl:selectAt(3, true)?
(1) Anna
(2) Bob
(3) Chris
(4) David
Предикат create создает таблицу, содержащую 5 строк и 10 столбцов: create():- L1 = [column(toString(J), 30, alignLeft) || J = std::fromTo(1, 10)], L2 = [item(uncheckedConvert(itemId, I), toString(I), -1, [], IL) || I = std::fromTo(1, 5), IL = [toString(K) || K = std::fromTo(2 + I, 10 + I)]], listViewControl_ctl:insertColumnList(1, L1), listViewControl_ctl:insertItemList(L2), listViewControl_ctl:setLVType(lvs_report). В третьей строке и в третьем столбце таблицы находится элемент
(1) 3
(2) 4
(3) 6
(4) 10
Узнать, стоит ли флажок (Check Box), можно с помощью подцели:
(1) Boolean = checkButton_ctl:getChecked()
(2) State = checkButton_ctl:getState()
(3) State = checkButton_ctl:getRadioState()
(4) Boolean = checkButton_ctl:getCheckedState()
Предикат invalidate/0:
(1) помечает клиентскую область окна как недействительную
(2) вызывает предикат onPaint
(3) добавляет событие Paint в очередь событий
(4) стирает изображение в окне
Определение предиката move имеет вид: move() = tuple(I, J):- L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1)], tuple(I, J) in L, list::all(L, {(tuple(I1, J1)):- math::abs(I - I1) + math::abs(J - J1) <= 2}). Сколько решений имеет цель X = move()?
(1) 0
(2) 1
(3) 3
(4) 5
Цель L = list::removeConsecutiveDuplicates([3, 3, 3, 2, 1, 1, 2, 2, 3]) имеет решение
(1) L = [3, 2, 1]
(2) L = [3, 2, 1, 2, 3]
(3) L = [1, 2, 3]
(4) L = [1, 1, 2, 2, 2, 3, 3, 3, 3]
Текст Str появится в окне сообщений Messages в результате вызова подцели
(1) edit_ctl:setText(Str)
(2) setText(Str)
(3) stdio::write(Str)
(4) setString(Str)
Определение предиката do имеет вид: do():- listBox_ctl:setMultiSelect(), listBox_ctl:addList([toString(I) || I = std::fromTo(11, 15)]), foreach X = std::fromTo(0, 3) do listBox_ctl:selectAt(X, true) end foreach, listBox_ctl:selectAt(0, false). В результате вызова подцели do() не будут выделены элементы списка:
(1) 12, 13, 14
(2) 11, 14, 15
(3) 14, 15
(4) 11, 15
Найдите решение для цели L = [X || X = std::cIterate(5)]:
(1) L = [0, 1, 2, 3, 4, 5]
(2) L = [1, 2, 3, 4, 5]
(3) L = [0, 1, 2, 3, 4]
(4) L = [2, 3, 4, 5, 6]
Точка pnt(100, 200) в клиентской области окна находится
(1) ближе к левой границе окна, чем к его верхней границе
(2) ближе к верхней границе окна, чем к его левой границе
(3) в точности в центре окна
(4) на одинаковом расстоянии от левой границы и от верхней границы
Определение предиката move имеет вид: move() = tuple(I, J):- I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) < 2. Сколько решений имеет цель X = move()?
(1) 4
(2) 9
(3) 7
(4) 5
Манхэттенское расстояние между точками pnt(10, 60) и pnt(40, 20) равно
(1) 10
(2) 40
(3) 50
(4) 70
Какой элемент будет виден изначально в выпадающем списке после вызова подцели listButton_ctl:addList(["Ann", "Bob", "Tom"])?
(1) Ann
(2) Никакой, поле изначально будет выглядеть пустым.
(3) Bob
(4) Tom
Считать текст из поля редактирования (Edit Control) можно с помощью подцели
(1) Text = edit_ctl:getText()
(2) Text = edit_ctl:text
(3) Text = edit_ctl:getReadOnly()
(4) Text = edit_ctl:getTextSelection()
Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X mod 2, X). Сколько вершин будет содержать дерево rbtree в результате вызова create()?
(1) 2
(2) 5
(3) 6
(4) 10
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:setPen(pen(1, ps_Solid, color_Red)), GDI:drawLine(pnt(0, 100), pnt(200, 100)), GDI:setPen(pen(1, ps_Solid, color_Blue)), GDI:drawLine(pnt(100, 0), pnt(100, 200)). Определите цвета отрезков:
(1) Горизонтальный отрезок будет синего цвета, а вертикальный красного
(2) Вертикальный отрезок будет синего цвета, а горизонтальный красного
(3) Оба отрезка будут синего цвета
(4) Оба отрезка будут красного цвета
Укажите все точки, которые принадлежат правильному шестиугольнику с центром в точке (30, 30) и стороной 20:
(1) (40; 40)
(2) (50; 20)
(3) (20; 30)
(4) (10; 0)
Редактор меню окна paintMenu открывается с помощью элемента дерева проекта:
(1) paintMenu.mnu
(2) paintToolbar.tb
(3) taskMenu.mnu
(4) projectToolbar.tb
Окно drawForm должно открываться по нажатию кнопки Ok окна familyForm. В определении предиката onOkClick достаточно подставить подцель:
(1) _ = drawFrom::new(getParent())
(2) drawFrom::show()
(3) _ = drawFrom::display(getParent())
(4) _ = drawFrom::display(This)
Укажите все способы, с помощью которых можно считать текст из текстового редактора (sciLexer):
(1) Text = sciLexer_ctl:getText()
(2) Text = sciLexer_ctl:text
(3) Text = sciLexer_ctl:readOnly
(4) sciLexer_ctl:copyText(Text)
Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X mod 3, X). Укажите значение, которое примет переменная X после вызова цели create(), X = tryLookUp(rbtree, 2):
(1) 9
(2) 8
(3) 2
(4) 10
Ширина прямоугольника – это
(1) длина большей стороны
(2) длина меньшей стороны
(3) длина вертикальной стороны
(4) длина горизонтальной стороны
Определение предиката neighbor2 имеет вид: neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)). Укажите решение для цели L = [X || X = neighbor2(tuple(2, 2))]:
(1) L = [tuple(-2, 2), tuple(-2, 4), tuple(2, 2), tuple(2, 4)]
(2) L = [tuple(2, -2), tuple(2, -1), tuple(2, 0), tuple(2, 1), tuple(2, 2)]
(3) L = [tuple(2, -2), tuple(2, 0), tuple(2, 2)]
(4) L = [tuple(2, 0), tuple(2, 4)]
Определение предиката onPaint имеет вид: onPaint(_Source, _Rectangle, GDI):- GDI:pictDraw(bgpict, pnt(0, 0), rop_SrcCopy). Как отобразится изображение bgpict?
(1) Изображение будет уменьшено до точки размером в пиксель и помещено в левый верхний угол, его не будет видно
(2) Будет видна часть изображения, которая попадет в клиентскую область, без изменения размеров изображения
(3) Изображение будет натянуто на клиентскую область окна, при этом оно может исказиться
(4) Изображение появится, только если оно поместится в окне целиком
Делает включенным переключатель radio_ctl вызов подцели:
(1) radio_ctl:setRadioState(true)
(2) radio_ctl:setVisible(true)
(3) radio_ctl:setEnabled(true)
(4) radio_ctl:setRadioState(radioButton::checked)
Включен ли переключатель (Radio Button), можно определить с помощью подцели:
(1) State = radio_ctl:getRadioState()
(2) State = radio_ctl:getChecked()
(3) State = radio_ctl:getCheckedState()
(4) State = radio_ctl:getState()
Определение предикатов neighbor и f имеет вид: neighbor(I, J, I, f(J, 3)). neighbor(I, J, f(I, 3), J). neighbor(I, J, f(I, 3), f(J, 3)). f(X, _) = X - 1:- X > 0. f(X, N) = X + 1:- X < N - 1. Сколько решений имеет цель neighbor(0, 1, I, J)?
(1) 3
(2) 4
(3) 5
(4) 8
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- getClientSize(W, H), GDI:drawArc(rct(0, 0, W, H), pnt(W div 2, 0), pnt(W div 2, H)). Дуга отображается
(1) в верхней половине клиентской области окна
(2) в нижней половине клиентской области окна
(3) в левой половине клиентской области окна
(4) в правой половине клиентской области окна
Укажите значение переменной X, которое она примет после вызова подцели L = [tuple(2, 3, 10), tuple(3, 2, 1), tuple(1, 4, 6), tuple(2, 3, 5)], tuple(_, _, X) = list::maximum(L).
(1) 10
(2) 1
(3) 6
(4) 5
В результате вызова _ = timerSet(500) таймер будет тикать:
(1) раз в секунду
(2) раз в полсекунды
(3) раз в пять секунд
(4) пять раз в секунду
Кнопку del_ctl делает невидимой вызов подцели:
(1) del_ctl:setVisible(false)
(2) del_ctl:setEnabled(true)
(3) del_ctl:setEnabled(false)
(4) del_ctl:setVisible(true)
Найти все выделенные элементы списка (List Box) можно с помощью подцели:
(1) L = listBox_ctl:getAll()
(2) L = listBox_ctl:getAt(Index)
(3) L = listBox_ctl:getSelectedItems()
(4) L = listBox_ctl:clearAll()
Пусть L = list::decompose([0, 1, 1, 2, -2], {(X) = X}). Сколько элементов содержит список L?
(1) 2
(2) 3
(3) 4
(4) 5
Верхняя половина дуги эллипса, вписанного в клиентскую область окна со сторонами W и H, отобразится в результате вызова подцели
(1) Graphics:drawArcI(Pen, 0, 0, W, H, 0, 180)
(2) Graphics:drawArcI(Pen, 0, 0, W, H, 180, 90)
(3) Graphics:drawArcI(Pen, 0, 0, W, H, 180, 180)
(4) Graphics:drawArcI(Pen, 0, 0, W, H, 90, 180)
Определение предиката coord имеет вид: coord() = tuple(I, J):- I = std::fromTo(-1, 1), J = std::between(I, -2*I). Сколько решений имеет цель X = coord()?
(1) 4
(2) 5
(3) 8
(4) 9
В результате вызова Graphics:translateTransform(10, 10)
(1) будет выполнено преобразование параллельного переноса на вектор (10; 10)
(2) выполнится преобразование растяжения в 10 раз вдоль обеих осей координат
(3) изображение сожмется в 10 раз вдоль обеих осей координат
(4) изображение будет повернуто на 10 градусов и сдвинуто на 10 пикселей вправо
Текст Str помещает в текстовый редактор (sciLexer) вызов подцели:
(1) sciLexer_ctl:concat(Str)
(2) sciLexer_ctl:text := Str
(3) sciLexer_ctl:append(Str)
(4) sciLexer_ctl:readOnly := Str
Скопировать текст из одного текстового файла в другой файл можно следующим образом:
(1) file::readString(FileName1, FileName2)
(2) file::writeString(FileName1, FileName2)
(3) file::copy(FileName1, FileName2)
(4) file::save(FileName1, FileName2)
Пусть L = list::decompose([-2, -1, 0, 1, 2], {(X) = X^2}). Сколько элементов содержит список L?
(1) 1
(2) 2
(3) 3
(4) 5
Окно атрибутов главного окна приложения открывается с помощью элемента дерева проекта
(1) taskWindow.pro
(2) taskMenu.mnu
(3) taskWindow.win
(4) taskWindow.pack
Поместить значение 10 в поле целых чисел (Integer Control) можно с помощью подцели:
(1) integerControl_ctl:setText(10)
(2) integerControl_ctl:getInteger(10)
(3) integerControl_ctl:setInteger(10)
(4) integerControl_ctl:setText(toString(10))
Определение предикатов обработки событий onPaint и onMouseDown имеет вид: onPaint(_Source, rct(10, 10, 20, 20), GDI):- !, GDI:clear(color_Red). onPaint(_Source, _Rectangle, GDI):- GDI:clear(color_Green). onMouseDown(_Source, _Point, _ShiftControlAlt, _Button):- invalidate(rct(10, 10, 20, 20)). Что произойдет после щелчка мыши?
(1) Клиентская область окна будет закрашена красным цветом
(2) На зеленом фоне появится маленький красный квадрат
(3) На красном фоне появится маленький зеленый квадрат
(4) Клиентская область окна будет закрашена зеленым цветом
Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид: onFileNew(_Source, _MenuTag):- vpiCommonDialogs::note("Hello!"), _ = drawForm::display(This), setText("Hello, World!"). Пользователь выбрал команду меню File -> New. Где и когда появится текст "Hello, World!")?
(1) Сразу в поле сообщений окна Note
(2) В строке заголовка главного окна приложения после закрытия окна Note
(3) В строке заголовка формы drawForm после закрытия окна Note
(4) Сразу в строке заголовка главного окна приложения
Изображение, хранящееся в bmp-файле, загружает подцель:
(1) Pict = vpi::pictLoad(FileName)
(2) Pict = vpi::pictGetFromRes(idb_bmp)
(3) vpi::pictGetSize(Pict, W, H, _)
(4) Pict = vpi::pictGetFromWin(Rect)
Найти надпись на кнопке (Push Button) можно с помощью подцели:
(1) Text = button_ctl:getString()
(2) button_ctl:setText(Text)
(3) Text = button_ctl:getState()
(4) Text = button_ctl:getText()
Предикат обработки события изменения размеров окна принадлежит предикатному домену
(1) window::sizeListener
(2) window::stateListener
(3) window::moveListener
(4) window::userListener
Укажите решение для цели B = toBoolean(1 + 1 = 2)
(1) B = 0
(2) B = 1
(3) B = true
(4) B = false
Укажите все значения переменной Point, при которых вызов подцели vpi::rectPntInside(rct(10, 20, 200, 100), Point) завершится успехом:
(1) Point = pnt(100, 50)
(2) Point = pnt(100, 200)
(3) Point = pnt(50, 50)
(4) Point = pnt(150, 150)
Какой элемент будет выделен в списке в результате вызова последовательности подцелей listbox_ctl:addList([toString(I) || I = std::fromTo(1, 5)]), listbox_ctl:selectAt(1, true)?
(1) 2
(2) 5
(3) 3
(4) 1
Предикат create создает таблицу, содержащую 3 строки и 3 столбца: create():- L1 = [column("1", 30, alignLeft), column("2", 30, alignLeft), column("3", 30, alignLeft)], L2 = [item(uncheckedConvert(itemId, I), toString(I), -1, [], IL) || I = std::fromTo(1, 3), IL = [toString(K) || K = std::fromTo(I + 1, I + 2)]], listViewControl_ctl:insertColumnList(1, L1), listViewControl_ctl:insertItemList(L2), listViewControl_ctl:setLVType(lvs_report). Во второй строке и во втором столбце таблицы находится элемент
(1) 1
(2) 3
(3) 4
(4) 2
Поставить флажок (Check Box) можно с помощью подцели:
(1) Boolean = checkButton_ctl:getChecked()
(2) checkButton_ctl:setChecked(true)
(3) checkButton_ctl:setRadioState(radioButton::checked)
(4) checkButton_ctl:setCheckedState()
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:clear(color_Green). В результате вызова подцели invalidate()
(1) будет удалено изображение из клиентской области окна
(2) клиентская область окна будет закрашена зеленым цветом
(3) фон изображения станет зеленого цвета
(4) изображение потеряет зеленый цвет
Определение предиката move имеет вид: move() = tuple(I, J):- L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1), tuple(1, 2)], tuple(I, J) in L, list::all(L, {(tuple(I1, J1)):- math::max(math::abs(I - I1), math::abs(J - J1)) <= 1}). Сколько решений имеет цель X = move()?
(1) 0
(2) 2
(3) 4
(4) 6
Цель L = list::removeConsecutiveDuplicates([2, 1, 1, 2, 2]) имеет решение
(1) L = [2, 1]
(2) L = [1, 2]
(3) L = [2, 1, 2]
(4) L = [2]
Текст Str заменит текст, содержащийся в поле редактирования (Edit Control), в результате вызова подцели
(1) edit_ctl:setText(Str)
(2) edit_ctl:text := Str
(3) stdio::write(Str)
(4) edit_ctl:write(Str)
Определение предиката do имеет вид: do():- listBox_ctl:setMultiSelect(), listBox_ctl:addList([toString(I) || I = std::fromToInStep(100, 400, 100)]), foreach X = std::fromTo(0, 2) do listBox_ctl:selectAt(X, true) end foreach, listBox_ctl:selectAt(1, false). В результате вызова подцели do() в списке будут выделены элементы:
(1) 100, 200
(2) 100, 300
(3) 200, 300
(4) 100
Найдите решение для цели L = [X+1 || X = std::cIterate(3)]:
(1) L = [1, 2, 3]
(2) L = [2, 3, 4]
(3) L = [0, 1, 2]
(4) L = [0, 1, 2, 3]
Сколько элементов содержит список L = [X-1 || X = std::cIterate(10)]?
(1) 9
(2) 10
(3) 11
(4) 8
Укажите точку, которая находится ближе всего к верхней границе клиентской области окна:
(1) pnt(20, 30)
(2) pnt(10, 20)
(3) pnt(40, 10)
(4) pnt(30, 40)
Определение предиката move имеет вид: move() = tuple(I, J):- I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) = 2. Сколько решений имеет цель X = move()?
(1) 2
(2) 4
(3) 5
(4) 9
Манхэттенское расстояние между точками pnt(45, 50) и pnt(40, 62) равно
(1) 13
(2) 17
(3) 7
(4) 12
Какой элемент будет виден изначально в выпадающем списке после вызова подцели listButton_ctl:addList(["Alpha", "Beta", "Gamma"]), listButton_ctl:selectAt(0, true)?
(1) Alpha
(2) Никакой, поле изначально будет выглядеть пустым.
(3) Beta
(4) Gamma
Какой элемент будет виден изначально в выпадающем списке после вызова подцели listButton_ctl:addList(["1", "3", "5"]), listButton_ctl:selectAt(1, true)?
(1) 1
(2) Никакой, поле изначально будет выглядеть пустым.
(3) 3
(4) 5
Текст Str добавится в начало текста, содержащегося в поле редактирования (Edit Control), в результате вызова подцели
(1) edit_ctl:setText(Str)
(2) edit_ctl:setText(string::concat(Str, edit_ctl:getText()))
(3) edit_ctl:setReadOnly(Str)
(4) edit_ctl:write(Str)
Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 5), rbtree := insert(rbtree, X mod 2, X). Какие пары "ключ – значение" будут содержаться в вершинах дерева rbtree в результате вызова create()?
(1) "1 – 1", "2 – 0", "3 – 1", "4 – 0", "5 – 1"
(2) "0 – 2", "1 – 1"
(3) "1 – 1", "2 – 0"
(4) "0 – 4", "1 – 5"
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:setPen(pen(1, ps_Solid, color_Yellow)), GDI:drawLine(pnt(100, 100), pnt(200, 200)), GDI:setPen(pen(5, ps_Solid, color_Green)), GDI:drawLine(pnt(100, 200), pnt(200, 100)). Определите цвета отрезков:
(1) Более тонкий отрезок будет желтого цвета, другой отрезок – зеленого
(2) Более тонкий отрезок будет зеленого цвета, другой отрезок – желтого
(3) Оба отрезка будут зеленого цвета
(4) Оба отрезка будут желтого цвета
Укажите набор точек, которые могут являться вершинами правильного шестиугольника с центром в точке (20, 20) и стороной 20:
(1) (40; 20), (0; 20)
(2) (0; 0), (40; 40)
(3) (10; 20), (20; 10)
(4) (0; 40), (40; 0)
Редактор панели инструментов окна paintMenu открывается с помощью элемента дерева проекта:
(1) paintMenu.mnu
(2) paintToolbar.tb
(3) taskMenu.mnu
(4) projectToolbar.tb
Окно drawForm должно открываться при выборе команды главного меню File -> New. В определении предиката обработки события вызова этой команды меню достаточно поставить подцель:
(1) _ = drawFrom::new(getParent())
(2) drawFrom::show()
(3) _ = drawFrom::display(getParent())
(4) _ = drawFrom::display(This)
Текст Str добавится в качестве первого абзаца к тексту, содержащемуся в текстовом редакторе (sciLexer), в результате вызова подцели
(1) edit_ctl:setText(Str)
(2) sciLexer_ctl:text := Str
(3) sciLexer_ctl:text := string::format("%\n%", Str, sciLexer_ctl:text) 4. sciLexer_ctl:readOnly := Str
Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X, X mod 3). Укажите значение, которое примет переменная X после вызова цели create(), X = tryLookUp(rbtree, 2):
(1) 0
(2) 1
(3) 2
(4) 8
Пусть Rect = rct(10, 20, 40, 80). Высота прямоугольника Rect равна
(1) 60
(2) 40
(3) 30
(4) 80
Определение предиката neighbor2 имеет вид: neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J). neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)). Сколько решений имеет цель X = neighbor2(tuple(4, 4))?
(1) 16
(2) 6
(3) 4
(4) 8
Определение предиката onPaint имеет вид: onPaint(_Source, _Rectangle, GDI):- getClientSize(W, H), vpi::pictGetSize(bgpict, PW, PH, _), GDI:pictDraw(bgpict, rct(0, 0, W, H), rct(0, 0, PW div 2, PH), rop_SrcCopy). Как отобразится изображение bgpict?
(1) Произойдет ошибка
(2) Все изображение будет натянуто на клиентскую область окна
(3) Левая половина изображения будет натянута на всю клиентскую область окна
(4) Левая половина изображения будет натянута на левую половину клиентской области окна
Переключатель radio_ctl делает выключенным вызов подцели:
(1) radio_ctl:setRadioState(false)
(2) radio_ctl:setRadioState(radioButton::unchecked)
(3) radio_ctl:setEnabled(false)
(4) radio_ctl: setVisible(false)
Состояние включенного переключателя (Radio Button) описывается термом:
(1) radioButton::checked
(2) radio_ctl:true
(3) 1
(4) radioButton::unchecked
Определение предикатов neighbor и f имеет вид: neighbor(I, J, I, f(J, 3)). neighbor(I, J, f(I, 3), J). f(X, _) = X - 1:- X > 0. f(X, N) = X + 1:- X < N - 1. Укажите все решения для цели neighbor(0, 2, I, J):
(1) I = 0, J = 1; I = 1, J = 2
(2) I = 0, J = 1; I = 1, J = 2; I = 1, J = 1
(3) I = 0, J = 1; I = 1, J = 2; I = 0, J = 3
(4) I = 0, J = 1; I = 0, J = 2; I = 1, J = 2
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- getClientSize(W, H), GDI:drawArc(rct(0, 0, W, H), pnt(W, H div 2), pnt(0, H div 2)). Дуга отображается
(1) в верхней половине клиентской области окна
(2) в нижней половине клиентской области окна
(3) в левой половине клиентской области окна
(4) в правой половине клиентской области окна
Укажите значение переменной X, которое она примет после вызова подцели: L = [tuple(5, 2, 1), tuple(4, 5, 10), tuple(2, 6, 9), tuple(3, 8, 5)], X = list::maximum(L).
(1) tuple(5, 2, 1)
(2) tuple(4, 5, 10)
(3) tuple(2, 6, 9)
(4) tuple(3, 8, 5)
Сколько тиков в секунду будет делать таймер после вызова _ = timerSet(200)?
(1) 2
(2) 200
(3) 5
(4) 3
Кнопку del_ctl делает видимой вызов подцели:
(1) del_ctl:setVisible(false)
(2) del_ctl:setEnabled(true)
(3) del_ctl:setEnabled(false)
(4) del_ctl:setVisible(true)
Выделить элемент Item в выпадающем списке (List Button) можно следующим образом:
(1) L = listButton_ctl:getAll(), Index = list::tryGetIndex(L, Item), listButton_ctl:selectAt(Index, true)
(2) L = listButton_ctl:getAt(Index)
(3) Index = listButton_ctl:tryGetSelectedIndex(), Item = listButton_ctl:getAt(Index)
(4) L = listButton_ctl:selectAt(Item, true)
Пусть L = list::decompose([0, 0, 0, 1, 1, 2, 2, 3], {(X) = X}). Укажите элемент, принадлежащий списку L:
(1) tuple(2, 2)
(2) tuple(0, [0, 0, 0])
(3) tuple(3, [0, 0, 0])
(4) tuple(1, [1])
Правая верхняя четверть дуги эллипса, вписанного в клиентскую область окна со сторонами W и H, отобразится в результате вызова подцели
(1) Graphics:drawArcI(Pen, 0, 0, W, H, 180, 90)
(2) Graphics:drawArcI(Pen, 0, 0, W, H, 270, 90)
(3) Graphics:drawArcI(Pen, 0, 0, W, H, 0, 90)
(4) Graphics:drawArcI(Pen, 0, 0, W, H, 90, 180)
Определение предиката coord имеет вид: coord() = tuple(I, J):- I = std::fromToInStep(-1, 1, 2), J = std::betweenInStep(I, -I, 2). Сколько решений имеет цель X = coord()?
(1) 2
(2) 4
(3) 3
(4) 9
В результате вызова последовательности подцелей Graphics:translateTransform(200, 200), Graphics:rotateTransform(90), Graphics:drawRectangleI(Pen, 0, 0, 40, 20) отобразится прямоугольник, левый верхний угол которого будет находиться в точке с координатами
(1) (200; 200)
(2) (180; 200)
(3) (200; 160)
(4) (180; 180)
Свойство "Только для чтения" устанавливает для текстового редактора (sciLexer) вызов подцели:
(1) sciLexer_ctl:setText("true")
(2) sciLexer_ctl:text := true
(3) sciLexer_ctl:readOnly := false
(4) sciLexer_ctl:readOnly := true
Считать текст из текстового файла можно следующим образом:
(1) Text = file::readString(FileName, _)
(2) file::writeString(FileName1, FileName2)
(3) file::copy(FileName1, FileName2)
(4) file::save(FileName1, FileName2)
Пусть L = list::decompose([-2, -2, -1, -1, 0, 1, 2, 3, 3], {(X) = math::abs(X)}). Сколько элементов содержит список L?
(1) 5
(2) 2
(3) 6
(4) 4
Эксперт окон (Dialog and Window Expert) открывается с помощью элемента дерева проекта
(1) taskWindow.win
(2) taskMenu.mnu
(3) taskWindow.pro
(4) taskWindow.pack
Увеличить на 10 значение, которое записано в поле целых чисел (Integer Control), можно с помощью подцели:
(1) integerControl_ctl:setText(getText() + 10)
(2) integerControl_ctl:setInteger(10)
(3) integerControl_ctl:setInteger(+10)
(4) integerControl_ctl:setInteger(integerControl_ctl:getInteger() + 10)
Определение предикатов обработки событий onPaint и onMouseDbl имеет вид: onPaint(_Source, rct(10, 10, 20, 20), GDI):- !, GDI:clear(color_Yellow). onPaint(_Source, _Rectangle, GDI):- GDI:clear(color_Gray). onMouseDbl(_Source, _Point, _ShiftControlAlt, _Button):- invalidate(rct(0, 0, 20, 20)). Что произойдет после двойного щелчка мыши?
(1) Клиентская область окна будет закрашена желтым цветом
(2) На сером фоне появится желтый квадрат
(3) На желтом фоне появится серый квадрат
(4) Клиентская область окна будет закрашена серым цветом
Определение обработчика событий выбора пункта меню File -> New главного окна приложения имеет вид: onFileNew(_Source, _MenuTag):- vpiCommonDialogs::note("Hello, World!"), Form = drawForm::display(This), Form:setText("Hello!"). Пользователь выбрал команду меню File -> New, а потом закрыл окно Note. Где будет выведен текст "Hello!")?
(1) Нигде, так как он был выведен в поле сообщений окна Note, которое уже закрыто
(2) В строке заголовка главного окна приложения
(3) В строке заголовка формы drawForm
(4) В текстовом поле формы drawForm, если оно там было создано.
Размеры изображения можно узнать следующим образом:
(1) Pict = vpi::pictLoad(FileName)
(2) Pict = vpi::pictGetFromRes(idb_bmp)
(3) vpi::pictGetSize(Pict, W, H, _)
(4) Pict = vpi::pictGetFromWin(Rect)
Добавить восклицательный знак к надписи на кнопке (Push Button) можно с помощью подцели:
(1) button_ctl:setLabel("!")
(2) button_ctl:setText("!")
(3) button_ctl:setText(string::concat(button_ctl:getText(),"!"))
(4) button_ctl:setText(Text, "!")
Предикат обработки события, объявляющего клиентскую область окна недействительной и требующей перерисовки, принадлежит предикатному домену
(1) window::stateListener
(2) window::validateResponder
(3) window::eraseBackgroundResponder
(4) window::paintResponder
Укажите решение для цели B = toBoolean(1 = 1)
(1) B = 0
(2) B = 1
(3) B = true
(4) B = false
Укажите все значения переменной Rect, при которых вызов подцели vpi::rectPntInside(Rect, pnt(50, 100)) завершится успехом:
(1) Rect = rct(100, 0, 200, 150)
(2) Rect = rct(0, 0, 150, 150)
(3) Rect = rct(0, 50, 150, 200)
(4) Rect = rct(20, 0, 200, 50)
Какой элемент будет выделен в списке в результате вызова последовательности подцелей listbox_ctl:addList(["2", "4", "6", "8"]), listbox_ctl:selectAt(2, true)?
(1) 2
(2) 4
(3) 6
(4) 8
Предикат create создает таблицу, содержащую 4 строки и 4 столбца: create():- L1 = [column(toString(J), 30, alignLeft) || J = std::fromTo(1, 4)], L2 = [item(uncheckedConvert(itemId, 1), "a", -1, [], ["b", "c", "d"]), item(uncheckedConvert(itemId, 2), "e", -1, [], ["f", "g", "h"]), item(uncheckedConvert(itemId, 3), "i", -1, [], ["j", "k", "l"]), item(uncheckedConvert(itemId, 4), "m", -1, [], ["n", "o", "p"]), ], listViewControl_ctl:insertColumnList(1, L1), listViewControl_ctl:insertItemList(L2), listViewControl_ctl:setLVType(lvs_report). Во второй строке и в третьем столбце таблицы находится элемент
(1) "g"
(2) "c"
(3) "k"
(4) "f"
Убрать флажок (Check Box) можно с помощью подцели:
(1) Boolean = checkButton_ctl:getChecked()
(2) checkButton_ctl:setRadioState(radioButton::unchecked)
(3) checkButton_ctl:setChecked(false)
(4) checkButton_ctl:setUncheckedState()
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- GDI:clear(color_Green), GDI:clear(color_Red) . В результате вызова подцели invalidate() клиентская область окна будет закрашена
(1) серым цветом
(2) зеленым цветом
(3) красным цветом
(4) цветом, полученным в результате смешивания зеленого и красного цветов
Определение предиката move имеет вид: move() = tuple(I, J):- L = [tuple(0, 0), tuple(0, 1), tuple(0, 2), tuple(1, 0), tuple(1, 1), tuple(1, 2)], tuple(I, J) in L, list::all(L, {(tuple(_, J1)):- math::abs(J - J1)) <= 1}). Укажите все решения, которые имеет цель X = move()?
(1) X = tuple(0, 1); X = tuple(1, 1)
(2) X = tuple(0, 0); X = tuple(0, 1); X = tuple(1, 0); X = tuple(1, 1)
(3) X = tuple(0, 1); X = tuple(1, 0)
(4) X = tuple(0, 1); X = tuple(1, 0); X = tuple(1, 2)
Цель L = list::removeConsecutiveDuplicates([1, 0, 1, 1, 0, 0, 1, 0]) имеет решение
(1) L = [1, 0]
(2) L = [1, 0, 1, 0]
(3) L = [0, 1]
(4) L = [1, 0, 1, 0, 1, 0]
Текст Str будет удален из поля редактирования (Edit Control) в результате вызова подцели
(1) edit_ctl:setText(Str)
(2) stdio::write("")
(3) edit_ctl:delete(Str)
(4) edit_ctl:setText("")
Определение предиката do имеет вид: do():- listBox_ctl:setMultiSelect(), listBox_ctl:addList(["Ann", "Chris", "Evan", " Grace", "Rita"]), foreach X = std::fromToInStep(0, 4, 2) do listBox_ctl:selectAt(X, true) end foreach, listBox_ctl:selectAt(4, false). В результате вызова подцели do() будут выделены элементы списка:
(1) Ann, Evan, Rita
(2) Chris, Grace
(3) Ann, Evan
(4) Ann, Chris, Evan
Укажите точку, которая отстоит дальше всего от левой границы клиентской области окна:
(1) pnt(200, 300)
(2) pnt(400, 100)
(3) pnt(100, 200)
(4) pnt(300, 400)
Определение предиката move имеет вид: move() = tuple(I, J):- I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) >= 1. Сколько решений имеет цель X = move()?
(1) 2
(2) 6
(3) 4
(4) 9
Укажите точку, которая находится ближе всего относительно манхэттенского расстояния к точке pnt(20, 30):
(1) pnt(10, 10)
(2) pnt(20, 50)
(3) pnt(15, 35)
(4) pnt(25, 20)
Текст Str добавится в конец текста, содержащегося в поле редактирования (Edit Control), в результате вызова подцели
(1) edit_ctl:setText(Str)
(2) edit_ctl:text := Str
(3) edit_ctl:setText(string::concat(edit_ctl:getText()), Str)
(4) edit_ctl:write(Str)
Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X, X mod 2). Сколько вершин будет содержать дерево rbtree в результате вызова create()?
(1) 2
(2) 4
(3) 5
(4) 10
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- Pnt = pnt(100, 100), L = [pnt(0, 0), pnt(100, 100), pnt(100, 200), pnt(200, 100)], list::forAll(L, {(Pnt1):- GDI:drawLine(Pnt, Pnt1)}). Сколько отрезков будет содержать изображение?
(1) 1
(2) 2
(3) 3
(4) 4
Укажите точку, которая принадлежат правильному шестиугольнику с центром в точке (40, 40) и стороной 20:
(1) (20; 15)
(2) (30; 50)
(3) (35; 65)
(4) (15; 60)
Редактор строки состояния окна paintMenu открывается с помощью элемента дерева проекта:
(1) paintMenu.mnu
(2) paintToolbar.tb
(3) paintStatusLine.mnu
(4) paintStatusLine.tb
Окно drawForm должно открываться по нажатию кнопки Ok окна Note, которое открывается при выборе пункта главного меню File -> New. В определении предиката обработки события вызова этой команды меню достаточно поставить подцели:
(1) vpiCommonDialogs::note("Open"), _ = drawFrom::new(getParent())
(2) vpiCommonDialogs::note("Open"), drawFrom::show()
(3) vpiCommonDialogs::note("Open"), _ = drawFrom::display(getParent())
(4) vpiCommonDialogs::note("Open"), _ = drawFrom::display(This)
Текст Str добавится в качестве последнего абзаца к тексту, содержащемуся в текстовом редакторе (sciLexer), в результате вызова подцели
(1) sciLexer_ctl:readOnly := Str
(2) edit_ctl:setText(Str)
(3) sciLexer_ctl:text := string::format("%\n%", sciLexer_ctl:getText(), Str) 4. sciLexer_ctl:text := Str
Определение факта-переменной rbtree и предиката create имеют вид: facts rbtree : tree{integer, integer} := emptyUnique(). clauses create():- X = std::fromTo(1, 10), rbtree := insert(rbtree, X mod 3, X div 3). Укажите значение, которое примет переменная X после вызова цели create(), X = tryLookUp(rbtree, 0):
(1) 3
(2) 1
(3) 2
(4) 4
Определение предиката outerRectangle имеет вид: outerRectangle(rct(X1, Y1, X2, Y2)) = rct(X1 - 10, Y1 - 10, X2 + 10, Y2 + 10). Пусть Rect1 = rct(10, 10, 90, 90), Rect2 = outerRectangle(Rect1). Площадь квадрата Rect1 составляет от площади квадрата Rect2
(1) 64%
(2) 90%
(3) 100%
(4) 81%
Определение предиката neighbor2 имеет вид: neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J). Сколько решений имеет цель X = neighbor2(tuple(3, 3))?
(1) 2
(2) 3
(3) 4
(4) 5
Определение предиката onPaint имеет вид: onPaint(_Source, _Rectangle, GDI):- getClientSize(W, H), vpi::pictGetSize(bgpict, PW, PH, _), GDI:pictDraw(bgpict, rct(0, 0, W div 2, H), rct(PW div 2, 0, PW, PH), rop_SrcCopy). Как отобразится изображение bgpict?
(1) Левая половина изображения будет натянута на правую половину клиентской области окна
(2) Все изображение будет натянуто на клиентскую область окна
(3) Левая половина изображения будет натянута на всю клиентскую область окна
(4) Правая половина изображения будет натянута на левую половину клиентской области окна
Переключатель radio_ctl делает неактивным вызов подцели:
(1) radio_ctl:setRadioState(false)
(2) radio_ctl:setRadioState(radioButton::unchecked)
(3) radio_ctl:setEnabled(false)
(4) radio_ctl: setVisible(false)
Состояние выключенного переключателя (Radio Button) описывается термом:
(1) radioButton::checked
(2) radio_ctl:false
(3) 0
(4) radioButton::unchecked
Определение предикатов neighbor и f имеет вид: neighbor(I, J, f(I, 3), f(J, 3)). f(X, _) = X - 1:- X > 0. f(X, N) = X + 1:- X < N - 1. Сколько решений имеет цель neighbor(1, 0, I, J)?
(1) 3
(2) 2
(3) 5
(4) 4
Определение предиката onPaint имеет вид: onPaint(_, _, GDI):- getClientSize(W, H), GDI:drawArc(rct(0, 0, W, H), pnt(0, H div 2), pnt(W div 2, H)). Дуга отображается
(1) в левой верхней четверти клиентской области окна
(2) в правой верхней четверти клиентской области окна
(3) в правой нижней четверти клиентской области окна
(4) в левой нижней четверти клиентской области окна
Укажите значение переменной X, которое она примет после вызова подцели: L = [tuple(2, 3, 8), tuple(3, 2, 1), tuple(1, 4, 9), tuple(4, 5, 5)], tuple(_, X, _) = list::minimum(L).
(1) 2
(2) 3
(3) 4
(4) 5
Как часто будет тикать таймер после вызова _ = timerSet(600)?
(1) Раз в шесть секунд
(2) Шесть раз в секунду
(3) Шесть раз в течение каждых десяти секунд
(4) Пять раз в течение каждых трех секунд
Кнопку del_ctl делает включенной вызов подцели:
(1) del_ctl:setVisible(false)
(2) del_ctl:setEnabled(true)
(3) del_ctl:setEnabled(false)
(4) del_ctl:setVisible(true)
Найти все элементы списка (List Box) можно с помощью подцели:
(1) L = listBox_ctl:getAll()
(2) L = listBox_ctl:getAt(Index)
(3) L = listBox_ctl:getSelectedItems()
(4) L = listBox_ctl:clearAll()
Пусть L = list::decompose([1, 0, 1, 0, 1, 0, 1], {(X) = X}). Укажите элементы, составляющие список L:
(1) tuple(4, 1), tuple(3, 0)
(2) tuple(4, [1]), tuple(3, [0])
(3) tuple(4, [1, 1, 1, 1]), tuple(3, [0, 0, 0])
(4) tuple(1, [1, 1, 1, 1]), tuple(0, [0, 0, 0])
Левая половина дуги эллипса, вписанного в клиентскую область окна со сторонами W и H, отобразится в результате вызова подцели
(1) Graphics:drawArcI(Pen, 0, 0, W, H, 0, 180)
(2) Graphics:drawArcI(Pen, 0, 0, W, H, 180, 180)
(3) Graphics:drawArcI(Pen, 0, 0, W, H, 270, 180)
(4) Graphics:drawArcI(Pen, 0, 0, W, H, 90, 180)
Определение предиката coord имеет вид: coord() = tuple(I, J):- I = std::fromToInStep(-1, 1, 2), J = std::between(2*I, -I). Сколько решений имеет цель X = coord()?
(1) 4
(2) 5
(3) 8
(4) 9
В результате вызова последовательности подцелей Graphics:translateTransform (20, 10), Graphics:drawRectangleI(Pen, 100, 100, 20, 40) отобразится прямоугольник, левый верхний угол которого будет находиться в точке с координатами
(1) (40; 50)
(2) (100; 110)
(3) (120; 110)
(4) (20; 10)
Что произойдет в текстовом редакторе (sciLexer) в результате вызова подцели: sciLexer_ctl:text := "Hello, World!"?
(1) В заголовке окна, в котором размещен текстовый редактор, появится строка "Hello, World!".
(2) Вместо старого текста, который был в текстовом редакторе, появится текст "Hello, World!".
(3) Текст "Hello, World!" будет добавлен в конец текста, который находился в текстовом редакторе.
(4) Текст "Hello, World!" будет добавлен в начало текста, который находился в текстовом редакторе.
Записать текст Text в текстовый файл можно следующим образом:
(1) Text = file::readString(FileName, _)
(2) file::writeString(FileName, Text)
(3) file::copy(FileName, Text)
(4) file::save(FileName, Text)
Пусть L1 = list::decompose([0, 1, -1, 0, 1, -1, 0], {(X) = math::abs(X)}), L2 = list::map(L1, {(tuple(I, L)) = tuple(I, list::length(L))}). Укажите элементы, которые составляют список L2
(1) tuple(0, 3), tuple(1, 2) , tuple(-1, 2)
(2) tuple(0, 3), tuple(1, 4)
(3) tuple(0, 3), tuple(1, 2)
(4) tuple(1, 2) , tuple(-1, 2)