Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PR_5_Vizual_int1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Первый этап

Для создания приложения разместить в окне следующие компоненты:

  1. Метку для вывода текста А =.

  2. Окно редактирования для ввода значения переменной а.

  3. Метку для вывода текста В =.

  4. Окно редактирования для ввода значения переменной b.

  5. Два переключателя для выбора одной из функций x=sin(t), y=cos(t).

  6. Оси, в которых будет изображаться график функций.

  7. Кнопка

Второй этап

Установить основные свойства всех компонентов, расположенных в окне приложения, в соответствии с таблицей.

Таблица 1 – Основные свойства объектов задания 1

Свойство

Первая метка

Вторая метка

Первое текстовое поле

Второе

текстовое поле

Переключатели

Оси

Кнопка

1

2

Tag

textA

textB

editA

editB

rbs

rbc

axes1

pushbutton1

String

A=

B=

0

5

x=sin(t)

y=cos(t)

Graphik

Третий этап

Написать функцию-обработчик CallBack события кнопки Graphik.

Листинг 1

% --------------------------------------------------------------------

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Считать из компонента editA строку, которую преобразовать в вещественное число а, для

% получения строки мы считываем свойство String из компонента с именем editA с помощью функции get,

% обращение к нетекущему компоненту осуществляется с помощью

% конструкции handles.editA.

a=str2double(get(handles.editA,'String'));

% Считать из компонента editВ строку, которую преобразовать в вещественное число b.

b=str2double(get(handles.editB,'String'));

% Вычислить шаг изменения t.

h=(b-a)/100;

% Сформировать массив t.

t=a:h:b;

% Сформировать массив х.

x=sin(t);

% Сформировать массив у.

y=cos(t);

% Если активен первый переключатель (x=sin(t)),

if get(handles.rbs,'Value')==1

% изображаем x(t).

plot(t,x);

% Если активен второй переключатель (у=соs(t)),

elseif get(handles.rbc,'Value')==1

% изображаем у(t).

plot(t,y);

end

% Если нет линий сетки, перпендикулярных оси ОХ,

if get(gca,'XGrid' )=='off'

% то изображаем эти линии сетки.

set(gca,'XGrid','on' );

end

% Если нет линий сетки, перпендикулярных оси ОY,

if get(gca,'YGrid' )=='off'

% то изображаем эти линии сетки.

set(gca,'YGrid','on' )

end

Задание 2 (для самостоятельной работы)

Создать приложение, которое будет строить график одной из 8 выбранных функций в интервале[a,b].

В окне приложения использовать дополнительный компонент – панель для объединения переключателей или флажков, со свойствами: tag – uipanelf, string – , title – функция.

Задание 3 (для самостоятельной работы)

Модифицировать Задание 2, добавив в приложение два флажка: Сетка по оси Х, Сетка по оси Y, которые будут управлять изображением линии сетки, и поместив эти флажки на новую панель для объединения переключателей или флажков. При этом необходимо модифицировать обработчик событий pushbutton1_Callback и написать обработчик событий Callback для компонентов checkbox_x и checkbox_y.

Таблица 2 – Основные свойства панели и флажков для задания 3

Свойство

Панель

Первый флажок

Второй флажок

Tag

uipanel_grid

checkbox_x

checkbox_y

String

Ось Х

Ось Y

Тitle

Сетка

Листинг 2

% --------------------------------------------------------------------

% модифицированный обработчик событий pushbutton1_Callback

function pushbutton1_Callback(hObject, eventdata, handles)

.......

% Если флажок линий сетки, перпендикулярных OY, активен, то

if get(handles.checkbox_?,'Value' )==1

% отобразить линии сетки, перпендикулярные OY,

set(gca,'?Grid','on' );

% иначе не отображать линии сетки, перпендикулярные OY.

else

set(gca,'YGrid','off');

end

% Если флажок линий сетки, перпендикулярных OХ, активен, то

if get(handles.checkbox_?,'Value' )==1

% отобразить линии сетки, перпендикулярные OХ,

set(gca,'?Grid','on' );

% иначе не отображать линии сетки, перпендикулярные OХ.

else

set(gca,'XGrid','off' );

end

% --------------------------------------------------------------------

% обработчик событий checkbox_x_Callback

function checkbox_x_Callback(hObject, eventdata, handles)

% hObject handle to checkbox_x (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkbox_x

% Если флажок линий сетки (текущий объект gca), перпендикулярных OY, активен, то

if get(hObject,'Value' )==1

% отобразить линии сетки, перпендикулярные OY,

set(gca,'?Grid','on' );

% иначе не отображать линии сетки, перпендикулярные OY.

else

set(gca,'?Grid','off');

end

end

% --------------------------------------------------------------------

% обработчик событий checkbox_у_Callback

function checkbox_y_Callback(hObject, eventdata, handles)

% hObject handle to checkbox_y (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkbox_y

% Если флажок линий сетки (текущий объект gca), перпендикулярных OХ, активен, то

if get(hObject,'Value' )==1

% отобразить линии сетки, перпендикулярные OХ,

set(gca,'?Grid','on' );

% иначе не отображать линии сетки, перпендикулярные OХ.

else

set(gca,'?Grid','off');

end

end

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]