Главная / Программирование /
Разработка приложений на языке Visual Prolog / Тест 7
Разработка приложений на языке Visual Prolog - тест 7
Упражнение 1:
Номер 1
Изображение, хранящееся в файле ресурса с идентификатором idb_bmp
, загружает вызов следующей подцели:
Ответ:
 (1) Pict
= vpi::pictLoad(FileName)
 
 (2) Pict
= vpi::pictGetFromRes(idb_bmp)
 
 (3) vpi::pictGetSize(Pict, W, H
, _) 
 (4) Pict
= vpi::pictGetFromWin(Rect)
 
Номер 2
Изображение, хранящееся в bmp-файле, загружает подцель:
Ответ:
 (1) Pict
= vpi::pictLoad(FileName)
 
 (2) Pict
= vpi::pictGetFromRes(idb_bmp)
 
 (3) vpi::pictGetSize(Pict, W, H, _)
 
 (4) Pict
= vpi::pictGetFromWin(Rect)
 
Номер 3
Размеры изображения можно узнать следующим образом:
Ответ:
 (1) Pict
= vpi::pictLoad(FileName)
 
 (2) Pict
= vpi::pictGetFromRes(idb_bmp)
 
 (3) vpi::pictGetSize(Pict, W, H
, _) 
 (4) Pict
= vpi::pictGetFromWin(Rect)
 
Упражнение 2:
Номер 1
Предикат 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 
Номер 2
Предикат 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 
Номер 3
Предикат 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
" 
Упражнение 3:
Номер 1
Определение предиката 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 
Номер 2
Определение предиката 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 
Номер 3
Определение предиката 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
 
Упражнение 4:
Номер 1
Считать текст из поля редактирования (Edit Control)
можно с помощью подцели
Ответ:
 (1) Text
= edit_ctl:getText()
 
 (2) Text
= edit_ctl:text
 
 (3) Text
= edit_ctl:getReadOnly()
 
 (4) Text
= edit_ctl:getTextSelection()
 
Номер 2
Текст 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)
 
Номер 3
Текст 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)
 
Упражнение 5:
Номер 1
Укажите все способы, с помощью которых можно считать текст из текстового редактора (sciLexer)
:
Ответ:
 (1) Text
= sciLexer_ctl:getText()
 
 (2) Text
= sciLexer_ctl:text
 
 (3) Text
= sciLexer_ctl:readOnly
 
 (4) sciLexer_ctl:copyText(Text)
 
Номер 2
Текст 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
 
Номер 3
Текст 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
 
Упражнение 6:
Номер 1
Включен ли переключатель (Radio Button)
, можно определить с помощью подцели:
Ответ:
 (1) State
= radio_ctl:getRadioState()
 
 (2) State
= radio_ctl:getChecked()
 
 (3) State
= radio_ctl:getCheckedState()
 
 (4) State
= radio_ctl:getState()
 
Номер 2
Состояние включенного переключателя (Radio Button)
описывается термом:
Ответ:
 (1) radioButton::checked
 
 (2) radio_ctl:true
 
 (3) 1 
 (4) radioButton::unchecked
 
Номер 3
Состояние выключенного переключателя (Radio Button)
описывается термом:
Ответ:
 (1) radioButton::checked
 
 (2) radio_ctl:false
 
 (3) 0 
 (4) radioButton::unchecked
 
Упражнение 7:
Номер 1
Найти все выделенные элементы списка (List Box)
можно с помощью подцели:
Ответ:
 (1) L
= listBox_ctl:getAll()
 
 (2) L
= listBox_ctl:getAt(Index)
 
 (3) L
= listBox_ctl:getSelectedItems()
 
 (4) L
= listBox_ctl:clearAll()
 
Номер 2
Выделить элемент 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)
 
Номер 3
Найти все элементы списка (List Box)
можно с помощью подцели:
Ответ:
 (1) L
= listBox_ctl:getAll()
 
 (2) L
= listBox_ctl:getAt(Index)
 
 (3) L
= listBox_ctl:getSelectedItems()
 
 (4) L
= listBox_ctl:clearAll()
 
Упражнение 8:
Номер 1
Скопировать текст из одного текстового файла в другой файл можно следующим образом:
Ответ:
 (1)
file::readString(FileName1, FileName2)
 
 (2) file::writeString(FileName1, FileName2)
 
 (3) file::copy(FileName1, FileName2)
 
 (4) file::save(FileName1, FileName2)
 
Номер 2
Считать текст из текстового файла можно следующим образом:
Ответ:
 (1) Text
= file::readString(FileName, _)
 
 (2) file::writeString(FileName1, FileName2)
 
 (3) file::copy(FileName1, FileName2)
 
 (4) file::save(FileName1, FileName2)
 
Номер 3
Записать текст Text
в текстовый файл можно следующим образом:
Ответ:
 (1) Text
= file::readString(FileName, _)
 
 (2) file::writeString(FileName, Text)
 
 (3) file::copy(FileName, Text)
 
 (4) file::save(FileName, Text)