ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ Ключевые слова • • • • условный оператор неполный условный оператор составной оператор вложенные ветвления Общий вид условного оператора Полная форма условного оператора: if <условие> then <оператор_1> else <оператор_2> Неполная форма условного оператора: if <условие> then <оператор> ! Перед else знак «;» не ставится. Условия - логические выражения Простые Сложные Операции отношений Логические операции Условный оператор program n_9; var x, a, b: real; begin writeln ('Определение принадлежности точки отрезку'); write ('Введите а, b>>'); да readln (a, b); write ('Введите x>>'); ДА readln (x); if (x>=a) and (x<=b) then writeln ('Точка принадлежит отрезку') else writeln ('Точка не принадлежит отрезку') end. a, b, x (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 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 thenbegin writeln ('Корней нет'); if d=0 then x:=-b/2/a; writeln ('Корень уравнения x=', x:9:3) end; if d>0 then 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. Блок-схема решения КВУР Начало Введите коэффициенты 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 Вложенные ветвления Возможна следующая конструкция: if <условие1> then if <условие2> then <оператор1> else <оператор2> else <оператор3> ! else всегда относится к ближайшему оператору if Решение линейного уравнения Список данных a, b, x - вещ a, b да x:=-b/a a<>0 да нет нет b<>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 – любое число'); Самое главное При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор: 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; ветвление? которая точек находится ближе к началу координат. elseиз c:=3 k, l>>-1 5 Точка лежит под chislo:= chislo mod 7 а) число, ifмладшего x<y thenпризёра. x:=0 5 самого x100). =else 5 read (y) прямой направо и справа налево. возраст (аx ->> случайное меньшее Какое значение имеет а, выходных если в результате Пример входных данных данных если chislo=3 то xa, 2 1переменная при >0 if a>b thenyxПример d:=2; пользователя проверяется и комментируется. yОтвет >>ya6 >>1 = 6у:='…‘ б)входных ifвходных x>=y then x:=0; y:=0 else write (z) Пример данных Пример выходных данных выполнения условного оператора переменной с если chislo=4 то у:='…‘ Пример Пример Пример входных входных данных данных данных Пример Пример Пример выходных выходных выходных данных данных данных k, l>>-1 5 Точка лежит над прямой Координаты 1 – го поля >> 2 2 Поля одного цвета x >> 6 x =c:=3; 5 if a<=b then если chislo=5 то у:='…‘ присваивается значение 3? Пример Пример входных данных выходных данных a b c>> 1 2 1 Не существует Координаты 2 – го поля >> 3 3 xa, ya >>1 10 в) if x<y <z then a:=a+1 y123 >> 5 y = 6 Координаты 1-й точки>>1, 2 Нет Первая точка ближе 123 Нет если chislo=6 то у:='…‘ Координаты го поля >>chislo=0 2 3then разного if a<=b l>>-1 5 21 2–2-й Точка лежит цвета на прямой -5k, yПоля =то -d:=4 1у:='…‘ если a b c>> 2 Равносторонний Координаты точки>>3, 4 121 121 Перевёртыш Да Координаты 2 – го поля >> 3 3 если chislo=1 то у:='…‘ ya >>1 4 0xa, y Равнобедренный =0 a b c>> 20 20 30 2 2 2 Координаты 1 – го поля 2= 7r Перевёртыш Поля одного если то у:='…‘ б) на окружности x +>>ychislo=2 ,Да над ней илицвета под ней. 222 222 им 5 aПримеры =1 Координаты 2входных – го поляданных >> 5 4иyсоответствующих b c>> 3 4 5 Разносторонний выходных данных разработайте самостоятельно. Опорный конспект Условный оператор Полная форма if <условие> then <оператор_1> else <оператор_2> Неполная форма if <условие> then <оператор> Составной оператор begin <последовательность операторов> end