Хранимая процедура. Линейное уравнение - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д