Хранимая процедура. Линейное уравнение - MySQL
Формулировка задачи:
Здравствуйте, подскажите, пожалуйста, как правильно написать решение линейного уравнения вида ax=b с помощью хранимой процедуры? Мне не совсем понятно, как задать несколько условий в хранимой процедуре Например при ненулевых значениях a и b решением является x=b/a.
Это как-то так должно выглядеть?
Вот, к примеру, квадратное уравнение, вроде работает, но там нужно было указать условие только для переменной D, а не для нескольких переменных сразу:
IF A!=0 AND B!=0 THEN BEGIN Set X:=B/A; END;
DELIMITER // CREATE PROCEDURE KvUr (A real, B real,C real,Out X1 real, Out X2 real) BEGIN DECLARE D real; Set D:=B*B-4*A*C; IF D>=0 THEN BEGIN Set D:=Sqrt(D); Set X1:=(-B+D)/(2*A); Set X2:=(-B-D)/(2*A); END; ELSE Select 'D<0'; END IF; END //
Решение задачи: «Хранимая процедура. Линейное уравнение»
textual
Листинг программы
delimiter // drop procedure if exists t// create procedure t(in A int,B int, out X int) begin IF A!=0 AND B!=0 THEN set X =B/A; else set X = '12'; end if; end // delimiter ; set @A = 3; set @B = 15; SEt @X = ''; call t(@A,@B,@X); select @X;
Объяснение кода листинга программы
- Устанавливаем делегирутор для оператора
delimiter
-//
- Удаляем процедуру с именем
t
, если она существует - Создаем хранимую процедуру с именем
t
, которая принимает два аргумента типаint
-A
иB
, и возвращает результат в переменнуюX
- Если
A
иB
не равны нулю, то присваиваемX
результат деленияB
наA
- Если
A
илиB
равны нулю, то присваиваемX
строку'12'
- Закрываем блок
IF
- Закрываем блок
BEGIN
- Устанавливаем делегирутор для оператора
delimiter
на значение по умолчанию -;
- Устанавливаем значение переменной
@A
равным3
- Устанавливаем значение переменной
@B
равным15
- Устанавливаем значение переменной
@X
равным пустой строке - Вызываем процедуру
t
с аргументами@A
и@B
, и присваиваем результат в переменную@X
- Выводим значение переменной
@X
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д