ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ Ключевые слова • условный оператор • неполный условный оператор • составной оператор • вложенные ветвления Общий вид условного оператора Полная форма условного оператора: if <условие> then <оператор_1> else <оператор_2> Неполная форма условного оператора: if <условие> then <оператор> ! Перед else знак «;» не ставится. Условия - логические выражения Простые Сложные Операции отношений Логические операции Условный оператор program n_9; var x, a, b: real; begin writeln ('Определение принадлежности точки отрезку'); write ('Введите а, b>>'); a, b, x да readln (a, b); write ('Введите x>>'); ДА readln (x); if (x>=a) and (x<=b) then writeln ('Точка принадлежит отрезку') else writeln ('Точка не принадлежит отрезку') еnd. (x>=a) and (x<=b) нет НЕТ Неполный условный оператор program n_10; var y, a, b, c: integer; begin writeln ('Нахождение наибольшей из трёх величин'); да write ('Введите а, b, с>>'); readln (a, b, c); Y:=B y:=a; if (b>y) then y:=b; да if (c>y) then y:=c; writeln ('y=', y) Y:=C end. Y:=A B>Y C>Y нет нет Составной оператор В условном операторе и после then, и после else можно использовать только один оператор. Если в условном операторе после then или после else нужно выполнить несколько операторов, то используют составной оператор – конструкцию вида: begin <последовательность операторов> end Блок-схема решения КВУР Начало Введите коэффициенты a, b, c d:=b*b-4*a*c да нет d<0 да Вывод «Корней нет» d:= 0 нет x:=-b/2/a Вывод «Корень уравнения х=», х х1:=(-b+sqrt(d))/2/a х2:=(-b-sqrt(d))/2/a Конец Вывод «Корни уравнения: х1=», х1, «х2=», х2 program n_11; var a, b, c: real; var d: real; var x, x1, x2: real; begin writeln ('Решение квадратного уравнения'); write ('Введите коэффициенты a, b, c >>'); readln (a, b, c); d:=b*b-4*a*c; if d<0 then writeln ('Корней нет') else if d=0 then begin x:=-b/2/a; writeln ('Корень уравнения x=', x:9:3) end else begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln ('Корни уравнения:'); writeln ('x1=', x1:9:3); writeln ('x2=', x2:9:3) end end. Вложенные ветвления if <условие1> then if <условие2> then <оператор1> else <оператор2> else <оператор3> ! else всегда относится к ближайшему оператору if Решение линейного уравнения Список данных a, b, x - вещ a, b да x:=-b/a a<>0 да program n_12; Корней нет var a, b, x: real; begin writeln ('Решение линейного уравнения'); write ('Введите коэффициенты a , b>>'); readln (a, b); if a<>0 then begin x:=-b/a; writeln ('Корень уравнения x=', x:9:3) end else if b<>0 then writeln ('Корней нет') else writeln ('x – любое число'); end. нет нет b<>0 Любое число Самое главное При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор: if <условие> then <оператор_1> else <оператор_2> Для записи неполных ветвлений используется неполный условный оператор: if <условие> then <оператор> Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид: begin <последовательность операторов> end Вопросы и задания Поле шахматной доски определяется парой Напишите программу, определяющую, лежитпрограмму, ли точка Напишите программу, Дано трёхзначное вычисляющую число. значение Составьте Даны три программу натуральных для числа. решения Напишите задачи: Дан условный оператор: Напишите программу, которая производит обмен натуральных А(ха, ya ): чисел, каждое из которых не превосходит 8. функции: Напишите программу, которая определяет: определяющую, Известно, что существует 31 января ли 2011 треугольник года приходится с такими на значений переменных x и y , если x больше y . а) y = kxзначения + оператор, l, надкоторая ней или под ней;введённым Напишите программу, по If на a<5прямой then c:=1 Используя составной упростите следующий длинами понедельник. сторон. Какие должны быть присвоены Имеются данные о количестве полных лет трёх Является Что ли такое составной условным оператор? оператором есть Даны ли две среди точки цифр в плоской заданного прямоугольной целого трёхзначного системе -1 при x <0 координатам двух полей (вk,валгоритме, l) которой и (m,то nопределите )пользователю определяет, фрагмент программы: Напишите программу, литерной Если такой переменной треугольник y существует, определяющем его является ли число «перевёртышем», т. е. числом, призёров спартакиады. else if a>5 then c:=2 Пример входных данных Пример выходных данных последовательность Для чего он используется символов? в условном операторе? Как Пример наодинаковые языке входных Паскаль записывается Пример полное выходных и неполное данных числа координат. Напишите ; данных программу, определяющую, являются ли эти поля полями одного цвета. тип день (равносторонний, недели для любого равнобедренный, числа (chislo) января разносторонний). 2011 года? предлагается дополнить до 100 некоторое целое число а десятичная запись которого читается одинаково слева Напишите программу, выбирающую и выводящую y = 0 при x =0 if a>b then c:=1; ветвление? которая из5точек находится ближе к началу координат. else c:=3 K, L>>-1 Точка лежит под прямой chislo:= chislo mod 7 if x<y then x:=0 else 5 самого x100). = 5 read (y) направо иа) справа налево. возраст младшего призёра. (аx ->> случайное число, меньшее Пример входных данных Пример выходных данных Какое значение имеет переменная а , если в результате если chislo=3 то у:='…‘ xa, ya >>1 2 1 при if a>b thenyx>0 d:=2; проверяется yОтвет >> 6 пользователя = 6и комментируется. б) if–x>=y then x:=0; y:=0 else write данных (z) Пример входных данных Пример выходных данных выполнения условного оператора переменной с если chislo=4 то у:='…‘ Координаты 1 го поля >> 2 2 Поля одного цвета Пример Пример Пример входных входных входных данных данных данных Пример Пример Пример выходных выходных выходных данных данных K, L>>-1 5 Точка лежит над прямой x >> 6 x =c:=3; 5 if a<=b then если chislo=5 то у:='…‘ присваивается значение 3? Пример входных данных Пример выходных данных Координаты 2 – го поля >> 3 3 a b c>> 1 2 1 Не существует xa, ya >>1 10 в) if x<y <z then a:=a+1 y123 >> 5 y = 6 Координаты 1-й точки>>1, 2 Нет Первая точка ближе 123 Нет если chislo=6 то у:='…‘ Координаты 1 – го поля >> 2 then 3 y Поля разного цвета if a<=b d:=4 K, L>>-1 5 Точка лежит на прямой -5 = -1 если chislo=0 то у:='…‘ a b c>> 2 2 2 Равносторонний Координаты 2-й точки>>3, 4 121 121 Да Координаты 2 – го поля >> 3 3 Перевёртыш если chislo=1 то у:='…‘ xa, ya >>1 4 0 yРавнобедренный = 0 одного цвета a b c>> 20 20 30 Координаты 1 – го поля >> 2 7 Поля если chislo=2 222 222 Перевёртыш Дато у:='…‘ Координаты 5a b c>> 3 4 25– го поля >> 5 4 yРазносторонний =1 Опорный конспект Условный оператор Полная форма if <условие> then <оператор_1> else <оператор_2> Неполная форма if <условие> then <оператор> Составной оператор begin <последовательность операторов> end