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

Листинг 1

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

function pushbutton_solve_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton_solve (see GCBO)

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

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

Функция-обработчик любого события в MATLAB имеет имя name_event, где name – имя компонента, event – имя события. Таким образом, чтобы построить обработчик любого события, надо написать подфункцию с именем name_event. При этом, в переменной hObject хранится указатель на объект (кнопка), событие которого обрабатывается в данный момент; переменная handles является структурой с указателями на все объекты приложения (для того, чтобы обратиться к любому компоненту, надо написать handles.name, где name совпадает со значением свойства Tag нужного компонента).

Для доступа ко всем обработчикам кнопки, надо ее выделить, вызвать контекстное меню, выбрать команду View Callback, выбрать нужный обработчик (или Edit Callback из контекстного меню – зависит от версии MATLAB).

9 Написать текст функции pushbutton1_Callback, которая должна выполнять следующие действия:

  • преобразовывать считанные строки из текстовых полей textA, textВ, textС в вещественные переменные a, b и c;

  • решать квадратное уравнение, в результате чего формировать строку с корнями или сообщением, что корней нет;

  • выводить строку в компонент textSolve.

Листинг 2 – Текст функции с комментариями

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

function pushbutton_solve_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton_solve (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'));

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

c=str2double(get(handles.editC,'String'));

% Вычисляем дискриминант квадратного уравнения.

d =b*b-4*a*c;

% Если дискриминант отрицателен,

if d<0

% то формирование строки с аварийным сообщением,

S='Действительных корней нет';

% иначе вычисление x1, x2 и

else

x1=(-b+sqrt(d))/2/a;

x2=(-b-sqrt(d))/2/a;

% формирование строки с результатом.

S=sprintf('X1=%g\t X2=%g',x1,x2);

end

% Свойство компонента handles.textSolve String равно S.

% Что приводит к выводу текста S на метку handles.textSolve.

set(handles.textSolve,'String',S);

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

По аналогии с Заданием 1 написать программу решения кубического уравнения ax3 + bx2 + cх + d= 0.

Часть 2 Задание 1

Создать приложение, которое будет строить график одной из выбранных функций x=sin(t), y=cos(t) в интервале[a,b].

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