Материал для рассылки 8 класс гимназия 1576 Тема «Оператроры условного и безусловного перехода» Учителя информатики Левина Н.С., Третьяк Т.М. Операторы условного и безусловного переходаВетвление в алгоритмах и программах.Разветвляющий алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий. Во многих случаях требуется, чтобы при одних условиях выполнялась одна последовательность действий, а при других - другая. ![]() ![]() Вся программа состоит из команд (операторов). Команды бывают простые и составные (команды, внутри которых встречаются другие команды). Составные команды часто называют управляющими конструкциями. Этим подчеркивается то, что эти операторы управляют дальнейшим ходом программы. ![]() Рассмотрим запись условного оператора на языке Basic. Простая форма оператора выглядит следующим образом: Вариант 1. n IF <условие> THEN P1 ELSE P2 n Если <условие> тогда P1 иначе P2 IF <УСЛОВИЕ> THEN <ОПЕРАТОР> или IF <УСЛОВИЕ> <ОПЕРАТОР 1> <ОПЕРАТОР 2> … <ОПЕРАТОР N> END IF Вариант 2. n IF <условие> THEN P1 : GOTO m Р1–действие, которое должно выполнится если соблюдается условие записанное после оператора IF. Р2- действие, которое выполняется если условие записанное после оператора IF не соблюдается. Если условие справедливо, то программа выполняет тот оператор, который стоит после ключевого слова ^ (или серию операторов от ключевого слова THEN до END IF), и дальше руководствуется обычным порядком действий. Если уловие не справедливо, то оператор, стоящий после THEN (или серия операторов от THEN до END IF) не выполняется, и программа сразу переходит к обычному порядку действий. Конструкция IF...THEN позволяет в зависимости от справедливости условия либо выполнить оператор, либо пропустить этот оператор. Конструкция IF...THEN...END IF позволяет в зависимости от справедливости условия либо выполнить группу операторов, либо пропустить эту группу операторов. Условия - еще один тип логических выражений. В них используются следующие операторы сравнения:
Справа и слева от знака сравнения должны стоять величины, относящиеся к одному типу. В результате сравнения получается логическая величина, имеющее значение ИСТИНА (TRUE) или ЛОЖЬ (FALSE). Пример: 5<7 - ИСТИНА; 8=12 - ЛОЖЬ (проверяем: равно ли 8 12? Именно проверяем, а не утверждаем, что 8=12); Предыдущие конструкции позволяли обойти или выполнить серию оператор в зависимости от справедливости условия. Это еще не было ветвлением. Чтобы вычисления могли разветвляться по нескольким направлениям, служит конструкция IF...THEN...ELSE...END IF. IF <УСЛОВИЕ> <ОПЕРАТОРЫ 1> ELSE <ОПЕРАТОРЫ 2> END IF Если условие справедливо (ИСТИНА), то выполняются <операторы 1> (стоящие между THEN и ELSE), а <операторы 2> (стоящие между ELSE и END IF) будут пропущены. Если условие не справедливо (ЛОЖЬ), то <операторы 1> игнорируются и выполняются <операторы 2>. IF - если, THEN - тогда, ELSE - иначе. ^ в комнате темно, тогда надо включить свет. Если пойдет дождь, тогда надо взять зонтик, иначе, зонтик не брать. Пример: Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать на экран сообщение о равенстве чисел. REM сравнить число с каким-то значением INPUT "Введите а", а IF a=7 THEN PRINT "Числа равны" END ^ Пример: Определить большее из двух чисел, вывести его на экран, затем - увеличить его в двое и вывести результат на экран. REM определить большее из двух чисел... INPUT "Введите а", а INPUT "Введите b", b IF a>b THEN PRINT "Большее число: ", a с=2*a ELSE PRINT "Большее число: ", b с=2*b END IF PRINT "результат: ", c END Сначала программа запрашивает оба числа, затем проверяет условие a>b. Если условие верно, то на экран выводится число a, затем это число удваивается. Иначе на на экран выводится число b, затем число b удваивается. В завершении на экран выводится удвоенное значение большего числа. Обратите внимание: программа имеет один недостаток - не учитывается тот случай, когда введенные числа равны. Исправим это, использовав вложение одного условия в другое. REM определить большее из двух чисел... INPUT "Введите а", а INPUT "Введите b", b IF a=b TNEN PRINT "Числа равны" с=2*a ELSE IF a>b THEN PRINT "Большее число: ", a с=2*a ELSE PRINT "Большее число: ", b с=2*b END IF END IF PRINT "результат: ", c END В этой программе два условных оператора, первым проверяется условие равенства чисел и, в случае его выполнения, будет выдано сообщение о равенстве чисел, если числа не равны, то проверяется второе условие... Пример: Решение квадратного уравнения. Решение квадратного уравнения зависит от значения дискриминанта. REM Решение квадратного уравнения INPUT "Введите коэффициент a: ", а INPUT "Введите коэффициент b: ", b INPUT "Введите коэффициент c: ", c d=b*b-4*a*c IF d=0 THEN PRINT "Корней нет" ELSE IF d=0 THEN x=-b/(2*a) PRINT "корень уравнения: ", x ELSE x1=(-b-SQR(d))/(2*a) x2=(-b+SQR(d))/(2*a) PRINT "корни уравнения: ", x1, x2 END IF END IF END Задание на зачет. Выполнить 12 задач в тетради, к каждой задачи начертить блок схему. Оператор условного перехода 1. Вычислить ![]() 2. Даны два числа. Выдать на печать наибольшее из них. 3. Составить алгоритм выбора наименьшего из трех различных чисел. 4. Составить алгоритм, который для заданного числа X определяет, принадлежит ли X отрезку [А,В]. 5. Вычислим корень квадратный из X. 6. Cоставьте программу, удваивающую значение переменной n, если n>10. 7. Составить алгоритм, вычисляющий значение Y, если ![]() 8. Переменной К присвоить номер четверти плоскости, в которой находится точка с координатами х,у (ху ![]() 9. Даны действительные числа х, у. Вычислите z х ![]() у+х+1, в противном случае. 10.Составить программу нахождения наибольшей из двух площадей: квадрата со стороной а или круга с радиусом г. 11.Даны три числа. Написать программу, в результате выполнения которой числа удвоятся, если X<Y<Z, и будут заменены на их абсолютные величины в прочих условиях. 12. Решить квадратное уравнение АХ2+ВХ+С =0.
|