Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор альтернативного выбора




End

If Логическое_выражение then

If Логическое_выражение then Инструкции_1, else Инструкции_2, end

If Логическое_выражение then Инструкции, end

End

Else

ElseifЛогическое_выражение_2 then

IfЛогическое_выражение_1 then

End

Else

IfЛогическое_выражение then

Условный оператор

Оператор присваивания

Оператор присваивания имеет следующую структуру

a=b

здесь a – имя переменной или элемента массива, b - значение или выражение. В результате выполнения оператора присваивания переменной a присваивается значение выражения b.

x=5;y=sin(x);

Одним из основных операторов, реализующим ветвление в большинстве языков программирования, является условный оператор if. Существует обычная и расширенная формы оператора if в Scilab. Обычный if имеет вид

Инструкции_1

Инструкции_2

Инструкции в списке разделяют оператором, (запятая)или; (точка с запятой).

Логические выражения

Логические выражения состоят из констант, переменных и функций, соединенных операциями отношения: больше (>), больше или равно (>=), равно (==), не равно (~=), меньше (<), меньше или равно (<=). Например: x2>y. Логические выражения принимают значения «истина» или «ложь». Например, при x=2 и y=8 значение выражения x2>y является ложью. Несколько логических выражений могут быть объединены в одно операторами & и |. Например: x.^2>y | y>7. Если несколько логических выражений соединены оператором &, то значение такого выражения является истиной, если каждое логическое выражение, входящее в него, является истиной. Если несколько логических выражений соединены оператором |, то значение такого выражения является истиной, если хотя бы одно логическое выражение, входящее в него, является истиной.

Зачастую при решении практических задач недостаточно выбора выполнения или невыполнения одного условия. В этом случае можно, конечно, по ветке else написать новый оператор if, но лучше воспользоваться расширенной формой оператора if.

Инструкции_1

Инструкции_2

Инструкции_3

В этом случае оператор if работает так: если логическое выражение_1 истинно, то выполняются инструкции_1, а затем инструкции, стоящие после оператора end. Если логическое выражение_2 является истиной, то выполняются инструкции 2, а затем инструкции, стоящие после оператора end. Если ни одно из логических выражений не является истиной, то выполняются инструкции, стоящие после слова else.

Частные случаи:

Примеры:

-->if x>5 then y=8, end

-->if x>5 then y=8;t=6; end

Пример:

-->if x>5 then y=8,t=6; else y=x^2,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. Выходными данными являются корни уравнения x 1, x 2 или сообщение о том, что действительных корней нет.

Алгоритм состоит из следующих этапов:

1. Ввод коэффициентов уравнения a, b и с.

2. Проверка, является ли уравнение квадратным (а ≠0).

3. Вычисление дискриминанта уравнения d.

4. Если d=0, то выводится сообщение: уравнение имеет два равных корня и печатается значение корня.

5. Если d>0, определяются x 1 и x 2

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

Комплексные корни квадратного уравнения

 

Еще одним способом организации разветвлений является оператор select альтернативного выбора следующей структуры:

select параметр

case значение1 then операторы1

case значение2 then операторы2

else операторы

end

Оператор select работает следующим образом: если значение параметра равно значению1, то выполняются операторы1, иначе если параметр равен значению2, то выполняются операторы2; в противном случае, если значение параметра совпадает со значением3, то выполняются операторы3 и т.д. Если значение параметра не совпадает ни с одним из значений в группах case, то выполняются операторы, которые идут после служебного слова else.

Конечно, любой алгоритм можно запрограммировать без использования select, используя только if, но использование оператора альтернативного выбора select делает программу более компактной.

 

 

Рассмотрим использование оператора select на примере решения следующей задачи.

 

ЗАДАЧА.

Вывести на печать название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и 1-е число - понедельник.

Для решения задачи воспользуемся условием, что 1-е число - понедельник. Если в результате остаток от деления заданного числа D на семь будет равен единице, то это понедельник (первое, восьмое, пятнадцатое, двадцать второе и двадцать девятое числа), двойке - вторник, тройке - среда и так далее. Вычислить остаток от деления числа х на k можно по формуле modulo(x,k). Следовательно, при построении алгоритма необходимо использовать шесть условных операторов.

Решение задачи станет значительно проще, если при написании программы воспользоваться оператором select.

D=input('D=');

//Вычисление остатка отделения D на 7, сравнение его с числами

// от 0 до 6.

select modulo(D,7)

case 1 then disp('Monday');

case 2 then disp('Tuesday');

case 3 then disp('Wednesday');

case 4 then disp('Thursday');

case 5 then disp('Friday');

case 6 then disp('Saturday');

else

disp('Sunday');

end

Рассмотрим операторы цикла в Scilab. В sci-языке есть два вида цикла - оператор цикла с предусловием while и оператор for.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 1823; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.