Оператор присваивания. Оператор присваивания имеет следующую структуру
Оператор присваивания имеет следующую структуру
a=b
здесь a – имя переменной или элемента массива, b - значение или выражение. В результате выполнения оператора присваивания переменной a присваивается значение выражения b.
x=5;y=sin(x);
Условный оператор
Одним из основных операторов, реализующим ветвление в большинстве языков программирования, является условный оператор if. Существует обычная и расширенная формы оператора if в Scilab. Обычный if имеет вид
IfЛогическое_выражение then
Инструкции_1
Else
Инструкции_2
End
Инструкции в списке разделяют оператором,(запятая)или ;(точка с запятой).
Логические выражения
Логические выражения состоят из констант, переменных и функций, соединенных операциями отношения: больше (>), больше или равно (>=), равно (==), не равно (~=) , меньше (<), меньше или равно (<=). Например: x2>y. Логические выражения принимают значения «истина» или «ложь». Например, при x=2 и y=8 значение выражения x2>y является ложью. Несколько логических выражений могут быть объединены в одно операторами & и |. Например: x.^2>y | y>7. Если несколько логических выражений соединены оператором &, то значение такого выражения является истиной, если каждое логическое выражение, входящее в него, является истиной. Если несколько логических выражений соединены оператором |, то значение такого выражения является истиной, если хотя бы одно логическое выражение, входящее в него, является истиной.
Зачастую при решении практических задач недостаточно выбора выполнения или невыполнения одного условия. В этом случае можно, конечно, по ветке else написать новый оператор if, но лучше воспользоваться расширенной формой оператора if.
IfЛогическое_выражение_1 then
Инструкции_1
ElseifЛогическое_выражение_2 then
Инструкции_2
Else
Инструкции_3
End
В этом случае оператор if работает так: если логическое выражение_1истинно, то выполняются инструкции_1, а затем инструкции, стоящие после оператора end. Если логическое выражение_2 является истиной, то выполняются инструкции 2, а затем инструкции, стоящие после оператора end. Если ни одно из логических выражений не является истиной, то выполняются инструкции, стоящие после слова else.
Частные случаи:
If Логическое_выражение then Инструкции , end
Примеры:
-->if x>5 then y=8, end
-->if x>5 then y=8;t=6; end
If Логическое_выражение then Инструкции_1, else Инструкции_2, end
Пример:
-->if x>5 then y=8,t=6; else y=x^2 ,end
If Логическое_выражение then
Инструкции
End
Замечание: слово thenв составе условного оператора ifне является обязательным.
Пример. Вычислить функцию y при x=0.397, если
Решение:
x=0.397;
if x.^2<=25*cos(x.^3) then
y=sin(3*x)
else
y=(2*x – tan(x))./sqrt(x.^2+2)
end
Набрав этот файл в редакторе Scipad и запустив его на выполнение командой Execute/Load into Scilab, получим:
y =
0.9287402
В качестве примера программирования разветвляющегося процесса рассмотрим решение квадратного уравнения .
Входными данными этой задачи являются коэффициенты квадратного уравнения a, b, c. Выходными данными являются корни уравнения x1 , x2или сообщение о том, что действительных корней нет.
Алгоритм состоит из следующих этапов:
1. Ввод коэффициентов уравнения a, b и с.
2. Проверка, является ли уравнение квадратным (а≠0).
3. Вычисление дискриминанта уравнения d.
4. Если d=0, то выводится сообщение: уравнение имеет два равных корня и печатается значение корня.
5. Если d>0, определяются x1 и x2
6. Если d<0, то выводится сообщение «Корней нет».
Программа решения квадратного уравнения
clc
a=input('a=');
b=input('b=');
c=input('c=');
if a==0 then
disp("Уравнение не является квадратным")
else
// Вычисляем дискриминант.
d=b*b-4*a*c;
// Если дискриминант отрицателен,
if d<0
// то вывод сообщения,
disp(' Действительных корней нет');
elseif d==0
//иначе-вычисление корней соответствующего
// квадратного уравнения.
disp("уравнение имеет два равных корня") ;x=-b/(2*a)
else
x1=(-b+sqrt(d))/2/a
x2=(-b-sqrt(d))/2/a
end
end
a=-->1
b=-->2
c=-->-5
x1 =
1.4494897
x2 =
- 3.4494897
Найти все корни квадратного уравнения можно и без оператора if, воспользовавшись тем, что в Scilab определены операции над комплексными числами.
clc
a=input('a=');
b=input('b=');
c=input('c=');
d=b*b-4*a*c;
x1=(-b+sqrt(d))/2/a;
x2=(-b-sqrt(d))/2/a;
disp(x1,x2);
a=-->1
b=-->2
c=-->3
- 1. - 1.4142136i
- 1. + 1.4142136i
Комплексные корни квадратного уравнения
Дата добавления: 2016-01-20; просмотров: 997;