Главная /
Программирование /
Разработка приложений на языке Visual Prolog
Разработка приложений на языке 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(_Source, rct(0, 0, 10, 10), GDI):- !,
GDI:clear(color_Red).
onPaint(_Source, _Rectangle, GDI):-
GDI:clear(color_Blue).
onSize(_Source):-
invalidate().
Что произойдет при небольшом изменении размеров окна стандартного размера?
onPaint и onSize имеет вид:
(1) Клиентская область окна будет закрашена синим цветом
(2) На синем фоне в левом верхнем углу будет изображен красный квадрат
(3) На красном фоне появится маленький синий квадрат
(4) Клиентская область окна будет закрашена красным цветом
Определение обработчика событий выбора пункта меню
onFileNew(_Source, _MenuTag):-
vpiCommonDialogs::note("Hello, World!"),
setText("Hello!").
Что произойдет после выбора команды меню
File -> New главного окна приложения имеет вид:
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():-
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).
В третьей строке и в третьем столбце таблицы находится элемент
create создает таблицу, содержащую 5 строк и 10 столбцов:
(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() = 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}).
Сколько решений имеет цель
move имеет вид:
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():-
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 имеет вид:
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() = tuple(I, J):-
I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) < 2.
Сколько решений имеет цель
move имеет вид:
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() Определение факта-переменной
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X mod 2, X).
Сколько вершин будет содержать дерево
rbtree и предиката create имеют вид:
rbtree в результате вызова create()?
(1) 2
(2) 5
(3) 6
(4) 10
Определение предиката
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)).
Определите цвета отрезков:
onPaint имеет вид:
(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) Определение факта-переменной
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X mod 3, X).
Укажите значение, которое примет переменная
rbtree и предиката create имеют вид:
X после вызова цели create(), X = tryLookUp(rbtree, 2):
(1) 9
(2) 8
(3) 2
(4) 10
Ширина прямоугольника – это
(1) длина большей стороны
(2) длина меньшей стороны
(3) длина вертикальной стороны
(4) длина горизонтальной стороны
Определение предиката
neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)).
Укажите решение для цели
neighbor2 имеет вид:
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(_Source, _Rectangle, GDI):-
GDI:pictDraw(bgpict, pnt(0, 0), rop_SrcCopy).
Как отобразится изображение
onPaint имеет вид:
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(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 и f имеет вид:
neighbor(0, 1, I, J)?
(1) 3
(2) 4
(3) 5
(4) 8
Определение предиката
onPaint(_, _, GDI):-
getClientSize(W, H),
GDI:drawArc(rct(0, 0, W, H), pnt(W div 2, 0), pnt(W div 2, H)).
Дуга отображается
onPaint имеет вид:
(1) в верхней половине клиентской области окна
(2) в нижней половине клиентской области окна
(3) в левой половине клиентской области окна
(4) в правой половине клиентской области окна
Укажите значение переменной
L = [tuple(2, 3, 10), tuple(3, 2, 1), tuple(1, 4, 6), tuple(2, 3, 5)],
tuple(_, _, X) = list::maximum(L).
X, которое она примет после вызова подцели
(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() = tuple(I, J):-
I = std::fromTo(-1, 1), J = std::between(I, -2*I).
Сколько решений имеет цель
coord имеет вид:
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(_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)).
Что произойдет после щелчка мыши?
onPaint и onMouseDown имеет вид:
(1) Клиентская область окна будет закрашена красным цветом
(2) На зеленом фоне появится маленький красный квадрат
(3) На красном фоне появится маленький зеленый квадрат
(4) Клиентская область окна будет закрашена зеленым цветом
Определение обработчика событий выбора пункта меню
onFileNew(_Source, _MenuTag):-
vpiCommonDialogs::note("Hello!"),
_ = drawForm::display(This),
setText("Hello, World!").
Пользователь выбрал команду меню
File -> New главного окна приложения имеет вид:
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
Укажите все значения переменной
vpi::rectPntInside(rct(10, 20, 200, 100), Point) завершится успехом:
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():-
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).
Во второй строке и во втором столбце таблицы находится элемент
create создает таблицу, содержащую 3 строки и 3 столбца:
(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(_, _, GDI):-
GDI:clear(color_Green).
В результате вызова подцели invalidate()
onPaint имеет вид:
(1) будет удалено изображение из клиентской области окна
(2) клиентская область окна будет закрашена зеленым цветом
(3) фон изображения станет зеленого цвета
(4) изображение потеряет зеленый цвет
Определение предиката
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}).
Сколько решений имеет цель
move имеет вид:
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():-
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 имеет вид:
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() = tuple(I, J):-
I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) = 2.
Сколько решений имеет цель
move имеет вид:
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) Определение факта-переменной
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 5),
rbtree := insert(rbtree, X mod 2, X).
Какие пары "ключ – значение" будут содержаться в вершинах дерева
rbtree и предиката create имеют вид:
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(_, _, 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)).
Определите цвета отрезков:
onPaint имеет вид:
(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 Определение факта-переменной
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X, X mod 3).
Укажите значение, которое примет переменная
rbtree и предиката create имеют вид:
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(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J).
neighbor2(tuple(I, J)) = tuple(I, J + std::fromToInStep(-2, 2, 4)).
Сколько решений имеет цель
neighbor2 имеет вид:
X = neighbor2(tuple(4, 4))?
(1) 16
(2) 6
(3) 4
(4) 8
Определение предиката
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).
Как отобразится изображение
onPaint имеет вид:
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(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 и f имеет вид:
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(_, _, GDI):-
getClientSize(W, H),
GDI:drawArc(rct(0, 0, W, H), pnt(W, H div 2), pnt(0, H div 2)).
Дуга отображается
onPaint имеет вид:
(1) в верхней половине клиентской области окна
(2) в нижней половине клиентской области окна
(3) в левой половине клиентской области окна
(4) в правой половине клиентской области окна
Укажите значение переменной
L = [tuple(5, 2, 1), tuple(4, 5, 10), tuple(2, 6, 9), tuple(3, 8, 5)],
X = list::maximum(L).
X, которое она примет после вызова подцели:
(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() = tuple(I, J):-
I = std::fromToInStep(-1, 1, 2), J = std::betweenInStep(I, -I, 2).
Сколько решений имеет цель
coord имеет вид:
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(_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)).
Что произойдет после двойного щелчка мыши?
onPaint и onMouseDbl имеет вид:
(1) Клиентская область окна будет закрашена желтым цветом
(2) На сером фоне появится желтый квадрат
(3) На желтом фоне появится серый квадрат
(4) Клиентская область окна будет закрашена серым цветом
Определение обработчика событий выбора пункта меню
onFileNew(_Source, _MenuTag):-
vpiCommonDialogs::note("Hello, World!"),
Form = drawForm::display(This),
Form:setText("Hello!").
Пользователь выбрал команду меню
File -> New главного окна приложения имеет вид:
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
Укажите все значения переменной
vpi::rectPntInside(Rect, pnt(50, 100)) завершится успехом:
Rect, при которых вызов подцели
(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():-
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).
Во второй строке и в третьем столбце таблицы находится элемент
create создает таблицу, содержащую 4 строки и 4 столбца:
(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(_, _, GDI):-
GDI:clear(color_Green),
GDI:clear(color_Red) .
В результате вызова подцели invalidate() клиентская область окна будет закрашена
onPaint имеет вид:
(1) серым цветом
(2) зеленым цветом
(3) красным цветом
(4) цветом, полученным в результате смешивания зеленого и красного цветов
Определение предиката
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}).
Укажите все решения, которые имеет цель
move имеет вид:
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():-
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 имеет вид:
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() = tuple(I, J):-
I = std::fromTo(0, 2), J = std::fromTo(0, 2), math::abs(I - J) >= 1.
Сколько решений имеет цель
move имеет вид:
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) Определение факта-переменной
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X, X mod 2).
Сколько вершин будет содержать дерево
rbtree и предиката create имеют вид:
rbtree в результате вызова create()?
(1) 2
(2) 4
(3) 5
(4) 10
Определение предиката
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)}).
Сколько отрезков будет содержать изображение?
onPaint имеет вид:
(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 Определение факта-переменной
facts
rbtree : tree{integer, integer} := emptyUnique().
clauses
create():-
X = std::fromTo(1, 10),
rbtree := insert(rbtree, X mod 3, X div 3).
Укажите значение, которое примет переменная
rbtree и предиката create имеют вид:
X после вызова цели create(), X = tryLookUp(rbtree, 0):
(1) 3
(2) 1
(3) 2
(4) 4
Определение предиката
outerRectangle(rct(X1, Y1, X2, Y2)) = rct(X1 - 10, Y1 - 10, X2 + 10, Y2 + 10).
Пусть
outerRectangle имеет вид:
Rect1 = rct(10, 10, 90, 90), Rect2 = outerRectangle(Rect1). Площадь квадрата Rect1 составляет от площади квадрата Rect2
(1) 64%
(2) 90%
(3) 100%
(4) 81%
Определение предиката
neighbor2(tuple(I, J)) = tuple(I + std::fromToInStep(-2, 2, 4), J).
Сколько решений имеет цель
neighbor2 имеет вид:
X = neighbor2(tuple(3, 3))?
(1) 2
(2) 3
(3) 4
(4) 5
Определение предиката
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).
Как отобразится изображение
onPaint имеет вид:
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(I, J, f(I, 3), f(J, 3)).
f(X, _) = X - 1:- X > 0.
f(X, N) = X + 1:- X < N - 1.
Сколько решений имеет цель
neighbor и f имеет вид:
neighbor(1, 0, I, J)?
(1) 3
(2) 2
(3) 5
(4) 4
Определение предиката
onPaint(_, _, GDI):-
getClientSize(W, H),
GDI:drawArc(rct(0, 0, W, H), pnt(0, H div 2), pnt(W div 2, H)).
Дуга отображается
onPaint имеет вид:
(1) в левой верхней четверти клиентской области окна
(2) в правой верхней четверти клиентской области окна
(3) в правой нижней четверти клиентской области окна
(4) в левой нижней четверти клиентской области окна
Укажите значение переменной
L = [tuple(2, 3, 8), tuple(3, 2, 1), tuple(1, 4, 9), tuple(4, 5, 5)],
tuple(_, X, _) = list::minimum(L).
X, которое она примет после вызова подцели:
(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() = tuple(I, J):-
I = std::fromToInStep(-1, 1, 2), J = std::between(2*I, -I).
Сколько решений имеет цель
coord имеет вид:
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_ctl:text := "Hello, World!"?
sciLexer) в результате вызова подцели:
(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)