Главная страница
Навигация по странице:

  • 2.2 Создание новых окон в проекте с использованием кнопок и полей ввода Поля ввода (Edit Control)

  • Push Button)

  • Задание

  • Factorial

  • Window Attributes ( рис .19)

  • Static Text

  • Static Text б) для компонента Edit Control

  • Edit Control в) для компонента Push Button

  • Push Button г) для компонента Static Text

  • Static Text 5. Сгенерируйте стандартный код Visual Prolog для нового окна. Для этого в окне проекта нажмите кнопку Code Expert

  • Dialog and Window Expert.

  • Dialog and Window Expert

  • EDIT_WIN1=win_GetCtlHandle(_WIN,idc_ввод), Text 1= win _ GetText ( EDIT _ WIN 1)

  • ИИСС. Практикум решения задач по курсу Основы искусственного интеллекта


    Скачать 0.73 Mb.
    НазваниеПрактикум решения задач по курсу Основы искусственного интеллекта
    Дата17.11.2022
    Размер0.73 Mb.
    Формат файлаdoc
    Имя файлаmetod_VP.doc
    ТипПрактикум
    #795277
    страница7 из 8
    1   2   3   4   5   6   7   8

    ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ


    Доработайте проект, создав пункт меню Avtor, при выборе которого появляется диалоговое окно (dlg_Note) со сведениями об авторе проекта (Ф.И.О, группа)

    2.2 Создание новых окон в проекте с использованием кнопок и полей ввода

    Поля ввода (Edit Control) позволяют пользователю вводить данные. Обычно этот элемент представляет собой строку, которая содержит текст или число. Поле ввода может быть многострочным.

    Для установки и получения содержимого поля ввода нужно использовать предикаты: String = win_GetText (Window), win_SetText (Window , string Text)

    где Window – это оконный дескриптор элемента управления, который может быть получен вызовом предиката:

    CtrlHndl=win_GetCtlHandle(Parent Window,CtrlId)

    Командные кнопки (Push Button) позволяют пользователю выполнять различные действия: открывать и закрывать окна, выполнять расчеты и т.д.

    Пример. Проект, позволяющий вычислить факториал введенного числа

    Задание: создать проект, в котором при выборе пункта меню Factorial открывается окно, позволяющее ввести натуральное число и вычислить его факториал.

    Решение

    1. Создайте новый проект(Project | New Project).

    2. Добавьте в главное меню новый пункт Factorial аналогично как в предыдущем примере).

    3. Создайте новое окно. Для этого в окне проекта нажмите кнопку Window на левой панели инструментов, а затем – кнопку New справа (рис.18).



    рис.18. Создание нового окна в проекте
    Откроется окно Window Attributes (рис.19). Введите имя создаваемого окна Factorial и нажмите ОК.



    рис.19. Диалоговое окно для установки атрибутов окна

    4. Разместите на макете появившегося нового окна следующие компоненты (рис.20):

    Static Text для вывода текста

    Edit Control для ввода данных

    Push Button для выполнения расчета


    рис.20. Редактор окон
    После размещения компонентов установите необходимые для каждого из них атрибуты:
    а) для компонента Static Text, служащего для вывода надписи Введите число (имя-константа будет задано автоматически)(рис.21)


    рис.21. Атрибуты компонента Static Text

    б) для компонента Edit Control (поле ввода), который обеспечит ввод числа



    рис.22. Атрибуты компонента Edit Control
    в) для компонента Push Button (кнопка), при нажатии на который будет выполнен расчет и выведен результат (имя-константа будет задано автоматически)(рис.23)



    рис.23. Атрибуты компонента Push Button
    г) для компонента Static Text, необходимого для вывода результата



    рис.24. Атрибуты компонента Static Text
    5. Сгенерируйте стандартный код Visual Prolog для нового окна. Для этого в окне проекта нажмите кнопку Code Expert, когда выбрано окно Factorial. Откроется окно Dialog_and_Window_Expert.'>Dialog and Window Expert. Выберите исходный модуль Factorial.pro и нажмите кнопку Default Code(рис.25).



    рис.25 Добавление кода по умолчанию в эксперте окон
    Когда заданный по умолчанию код будет сгенерирован, станут доступны кнопки Add Clause, Edit Code и некоторые другие.
    6. Запрограммируйте выбор пункта меню Factorial для вызова окна Factorial. Для этого в списке окон выберите Task Window , пункт Menu в списке Event Type и выделите строку id_factorial(имя пункта меню) в списке Event or Item. Нажмите кнопку Add Clause, чтобы сгенерировать Пролог-предложение для события. Название кнопки изменится на Edit Clause, когда код для события будет создан. Нажмите кнопку Edit Clause. Откроется окно редактора для файла Factorial.pro, в который добавлено предложение:

    %BEGIN Task Window, id_factorial

    task_win_eh(_Win,e_Menu(id_factorial,_ShiftCtlAlt),0):-!,

    !.

    %END Task Window, id_factorial

    Допишите команду для открытия окна Factorial: win_factorial_Create(_Win). В результате должно получиться:

    %BEGIN Task Window, id_factorial

    task_win_eh(_Win,e_Menu(id_factorial,_ShiftCtlAlt),0):-!,

    win_factorial_Create(Win),

    !.

    %END Task Window, id_factorial
    7. Запрограммируйте нажатие кнопки Результат в окне Factorial для выполнения расчета и вывода результата. Для этого вызовите окно Dialog and Window Expert и в списке окон выберите Factorial. Выберите пункт Control в списке Event Type и выделите строку pb: idc_результат(имя кнопки). Нажмите кнопку Add Clause, а затем Edit Clause. Откроется окно редактора для файла Factorial.pro, в который добавлено предложение:

    %BEGIN Factorial, idc_результат _CtlInfo

    win_factorial_eh(_Win,e_Control(idc_результат,_CtrlType,_CtrlWin, _CtlInfo),0):-!,

    !.

    %END Factorial, idc_результат _CtlInfo

    Допишите команды, необходимые для вычисления факториала и вывода результата. В результате должно получиться:

    %BEGIN Factorial, idc_результат _CtlInfo

    win_factorial_eh(_Win,e_Control(idc_результат, _CtrlType, _CtrlWin, _CtlInfo), 0):-!,

    EDIT_WIN1=win_GetCtlHandle(_WIN,idc_ввод),

    Text1=win_GetText(EDIT_WIN1), % считываем данные из поля ввода

    str_int(Text1,N), % преобразует в числовое значение

    fact(N,FN), % вычисляем факториал

    str_int(StrFN,FN), % преобразуем в строковое значение

    EDWIN=win_GetCtlHandle(_WIN,idct_вывод),

    win_SetText(EDWIN,StrFN), % выводим результат

    !.

    %END Factorial, idc_результат _CtlInfo
    8. Опишите правило вычисления факториала и предикат fact:

    PREDICATES

    win_factorial_eh : EHANDLER

    fact(integer,integer)

    CLAUSES

    fact(0,1):-!.

    fact(N,F):- N1=N-1,fact(N1,F1), F=N*F1.

    win_factorial_Create(_Parent):-

    win_Create(win_factorial_WinType,win_factorial_RCT,win_factorial_Title,

    win_factorial_Menu,_Parent,win_factorial_Flags,win_factorial_eh,0).
    9. Запустите проект на исполнение и протестируйте его.
    1   2   3   4   5   6   7   8


    написать администратору сайта