Программирование разветвляющихся алгоритмов начала программирования
Скачать 0.51 Mb.
|
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ Ключевые слова условный оператор неполный условный оператор составной оператор каскадное ветвление Общий вид условного оператора Полная форма условного оператора: if <условие>: <оператор_1> else: <оператор_2> Неполная форма условного оператора: if <условие> : <оператор> Операции отношений >=, <=, !=, == Логические операции and, or, not Простые Сложные Условия - логические выражения Условный оператор a, b, x (x>=a) and (x<=b) ДА НЕТ да нет print ('Определение принадлежности точки отрезку') a = int (input ('Введите а: ')) b = int (input ('Введите b: ')) x = int (input ('Введите x: ')) if х >= а and x <= b: print ('Точка принадлежит отрезку') else: print ('Точка не принадлежит отрезку') Неполный условный оператор Y=A B>Y Y=B Y=C C>Y да нет да нет print ('Нахождение наибольшей из трёх величин') a = int (input ('Введите а: ')) b = int (input ('Введите b: ')) c = int (input ('Введите c: ')) y = a if b > y: y = b if c > y: y = c print ('y=', y) Вложенные ветвления if <условие1> : if <условие2> : <оператор1> else: <оператор2> else: <оператор3> Каскадное ветвление if <условие1>: <оператор 1> elif <условие2>: <оператор 2> … elif <условие n>: <оператор n> else : <оператор m> Если после else сразу следует еще один оператор if, можно использовать каскадное ветвление со служебным словом elif (сокращение от else-if): если очередное условие ложно, выполняется проверка следующего условия и т. д. Каскадное ветвление позволяет выбрать один из нескольких (а не только из двух) вариантов. Решение линейного уравнения Любое число Корней нет a, b - вещ a!=0 x=-b/a b!=0 нет да да нет # Решение линейного уравнения a = float( input ('Введите коэффициент а>>')) b = float( input ('Введите коэффициент b>>')) if a != 0: x = -b/ a print ('Корень уравнения x=', x) elif b != 0: print ('Корней нет') else: print(' x–любое число') Блок-схема решения КВУР Конец Вывод «Корни уравнения: х1=», х1, «х2=», х2 х1=(-b+sqrt(d))/2/a Начало Введите коэффициенты a, b, c d=b*b-4*a*c d < 0 да Вывод «Корней нет» нет d == 0 да x=-b/2/a Вывод «Корень уравнения х=», х нет х2=(-b-sqrt(d))/2/a from math import * # подключение модуля для вычисления квадратного корня # Решение квадратного уравнения print ('Введите коэффициенты а, b, с>>') a = float (input ('a=')) b = float (input ('b=')) c = float (input ('c=')) d = b * b – 4 * a * c if d<0: print ('Корней нет') elif d == 0: x = – b/2/ a print ('Корень уравнения x=', "{:6.4f}". format(x)) else: x1 = (-b+sqrt(d))/2/ a x2 = (-b – sqrt(d))/2/ a print ('Корни уравнения:') print ('x1=', "{:6.4f}". format(x1)) print ('x2=', "{:6.4f}". format(x2)) Самое главное При записи на языке Python разветвляющихся алгоритмов используют условный оператор: if <условие>: <оператор_1> else: <оператор_2> Для записи неполных ветвлений используется неполный условный оператор: if <условие>:<оператор> Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор – они все должны иметь одинаковый отступ: if <условие>: <оператор 1> <оператор n> else: <оператор x1> <оператор xm> Опорный конспект Условный оператор if <условие>: <оператор_1> else : <оператор_2> if <условие>: <оператор> if <условие1>: <оператор 1> elif <условие2>: <оператор 2> … elif <условие n>: <оператор n> else : <оператор m> Полная форма Неполная форма Каскадное ветвление Является ли условным оператором последовательность символов? а) if х < у: х = 0 else: input (у) б) if х >= у: х = 0; у := 0 else: print (z) в) if x < y < z: a = a + 1 Вопросы и задания Дан условный оператор: if a < 5: c = 1 else: if a > 5: c = 2 else: c = 3 Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3? Вопросы и задания Используя полное ветвление, упростите следующий фрагмент программы: if a > b: c = 1 if a > b: d = 2 if a <= b: c = 3 if a <= b: d = 4 Вопросы и задания Напишите программу, которая производит обмен значений переменных x и y, если x больше y.
Вопросы и задания есть ли среди цифр заданного целого трёхзначного числа одинаковые;
Дано трёхзначное число. Напишите программу, которая определяет: Вопросы и задания является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.
Дано трёхзначное число. Напишите программу, которая определяет: Вопросы и задания Даны две точки в плоской прямоугольной системе координат. Напишите программу, определяющую, которая из точек находится ближе к началу координат.
Вопросы и задания Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).
Вопросы и задания Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра. Вопросы и задания Напишите программу, вычисляющую значение функции: -1 при x<0 0 при x=0 1 при x>0 y =
Вопросы и задания Напишите программу, определяющую, лежит ли точка А(ха, ya): на прямой y = kx + l, над ней или под ней
Вопросы и задания Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, являются ли эти поля полями одного цвета.
Вопросы и задания Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а - случайное число, меньшее 100). Ответ пользователя проверяется и комментируется. Вопросы и задания |