Разветвляющийся алгоритм Безусловный и условный переход
До этого момента мы создавали линейные алгоритмы, т.е. команды алгоритма выполняется по порядку, друг за другом. CLS DATA 2,4,6 READ A,B,C INPUT "Чему равно значение Х"; Х Y=(A*Х*Х+B)/(4-3*С) PRINT "Значение Y при Х="Х" равно" Y END
Безусловный переход GOTO Безусловный переход оператором GOTO предписывает программе свернуть с линейного пути и, беспрекословно повинуясь, перейти к метке, расположенной и в любом месте программы.
Безусловный переход CLS A: PRINT ”*” PRINT “ *” PRINT “ *” GOTO A
Условный переход В QBASIC можно использовать два вида оператора ветвления: однострочный и блочный. Однострочный: Оператор 1 Оператор 2 IF THEN или ELSE или GOTO метка GOTO метка IF THEN ELSE ЕСЛИ ТОГДА ИНАЧЕ
Ветвление Условие В условии сравниваются (то есть применяются знаки = ; ; ; < ; >) две величины, причём эти величины могут быть подсчитаны до оператора IF или непосредственно в условии. Нельзя в условии записывать двойное неравенство. В условии допускается сравнение нескольких величин, но при использовании знаков логики OR, AND.
Ветвление Задание написать программу для вычисления значения квадратного корня . CLS 1: INPUT ”Введите любое число”; X IF X>=0 THEN ? ”Корень квадратный из Х=“ ; SQR(X) ELSE ?”Корень квадратный из отрицательного числа вычислить невозможно” END ДА НЕТ
После THEN и ELSE могут быть использованы любые операторы, даже включая IF. IF THEN IF THEN … Часто используется УКОРОЧЕННОЕ ВЕТВЛЕНИЕ, то есть отсутствует ELSE. IF THEN … Для такого использования надо помнить: если условие не выполняется, то машина переходит к выполнению следующей строки, стоящей после оператора IF. Ветвление
Задание. Дано целое число. Сообщить: оно чётное или нет. CLS INPUT "Какое число проверяем ";B IF B/2 = INT(B/2) THEN PRINT “Число чётное” ELSE PRINT “Число нечётное” END Ветвление
Блочный: IF THEN операторы 1 ELSE операторы 2 END IF Ветвление ДА НЕТ
Задание. Дано целое число. Сообщить: оно чётное или нет. CLS INPUT "Какое число проверяем ";B IF B/2 = INT(B/2) THEN PRINT "Число чётное" ELSE PRINT "Число нечётное" END IF Ветвление
Задание. С клавиатуры вводится два любых числа X,Y. X - Y, если X > Y; Вычислить Z = Y - X + 1, в остальных случаях. CLS INPUT "Введите X,Y";X,Y IF X > Y THEN Z = X – Y ELSE Z = Y - X + 1 END IF PRINT “Значение выражения равно”Z END Ветвление