Ветвление в алгоритмах и программах

advertisement
Ветвление в алгоритмах и
программах
Алгоритм вычисления корней
квадратного уравнения
начало
a,b,c≠0
d:=b*b-4*a*c
нет
нет
d=0
x1:=(-b+sqrt(d))/(2*a)
x2:=(-b-sqrt(d))/(2*a)
d<0
да
да
корней нет
x:=(-b)/(2*a)
x
x1,x2
конец
Программный код в Делфи
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=strtofloat(edit3.text);
d:=sqr(b)-4*a*c;
if d<0 then label1.visible:=true
else if d=0 then
edit4.text:=floattostr((-b)/(2*a))
else
begin
edit5.text:=floattostr((-b+sqrt(d))/(2*a));
edit5.text:=floattostr((-b+sqrt(d))/(2*a));
end;
Полное ветвление
Программный код
Блок-схема
нет
Действие 2
условие
да
Действие 1
If <условие>
then <действие 1>
else <действие 2>;
Полное ветвление
Программный код
Блок-схема
нет
условие
да
Действие 3
Действие 1
Действие 4
Действие 2
If <условие>
then
begin
<действие
<действие
end
else
begin
<действие
<действие
end;
1>;
2>;
3>;
4>;
Неполное ветвление
Программный код
Блок-схема
нет
условие
да
Действие 1
If <условие>
then <действие 1>;
Неполное ветвление
Программный код
Блок-схема
нет
условие
да
Действие 1
Действие 2
If <условие>
then
begin
<действие 1>;
<действие 2>;
end;
ВНИМАНИЕ
 перед ELSE ставить точку с запятой
нельзя;
 Если после ключевых слов THEN и
ELSE по одной команде, то
операторные скобки begin..end
можно не ставить.
Реализация в Делфи
Переключатель
RadioButton1
Флажок
CheckBox1
Реализация в Делфи
Переключатель
If RadioButton1.checked
Then <действие 1>
Else If RadioButton2.checked
Then <действие 2>
Else <действие 3>;
Флажок
If CheckBox1. checked
Then < действие 1>;
If CheckBox1. checked
Then < действие 2>;
If CheckBox1. checked
Then < действие 3>
Else <действие 4>;
ВНИМАНИЕ
 Переключатель используется только тогда,
когда нужно выбрать один и только один
вариант из нескольких возможных
 Для обработки состояния переключателей в
процедуру включать команды ветвления,
вложенные одна в одну
 Флажок используется тогда, когда может быть
выбран один, или несколько, или ни одного из
предложенных вариантов
 Для обработки состояния флажков в процедуру
включать команды ветвления, которые
независимы одна от одной.
ПРИМЕР
















procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked
then form1.Color:=clred
else if RadioButton2.Checked
then form1.Color:=clblue
else if RadioButton3.Checked
then form1.Color:=clwhite
else form1.Color:=clgray;
if CheckBox1.Checked
then form1.Caption:=‘Новое название';
if CheckBox2.Checked
then form1.Height:=350;
if CheckBox3.Checked
then Label1.Visible:=true;
end;
Домашнее задание
§ 2.8, данную презентацию можно
скачать по известному вам адресу
Знать принципы построения команды
ветвления и реализацию в блок-схемах
Выполнить задания
1(блок-схема)
и 6(блок-схема похожего
алгоритма есть в тетрадях)
Download