Программирование: ветвление

Здравствуйте, уважаемые ученики!

Начнем наш урок!

Если у Вас возникнут вопросы можете написать мне! Я постараюсь ответить на все Ваши вопросы в течении нашего урока. Моя почта: grm310892@gmail.com, WatsApp 89274029754

Задание для тех, кто сдает: https://t.examer.ru/10cff

Задание для остальных!

Объясняю порядок работы на сегодня.

  1. Для Вас прикреплено видео - объяснение темы. Так же, теоретические материалы. Вы читаете тему и просматриваете видео. Выписываете в тетрадь основные моменты.

  2. На следующий урок готовитесь к заданиям!

  3. Сегодня мне ничего присылать не нужно! Только изучаете тему!

Внимательно изучите теорию! Напишите конспект!

Вы уже знакомы с основными числовыми типами данных integer и real. К ним применимы стандартные функции, часть из которых приведена в таблице.

Стандартные функции Паскаля (написать в тетрадь)

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:

Для записи неполных ветвлений используется неполная форма условного оператора:

Слова if — then — else переводятся с английского языка на русский как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.

Обрати внимание!

Перед else знак «;» не ставится.

В качестве условий используются логические выражения:

  • простые — записанные с помощью операций отношения;

  • сложные — записанные с помощью логических операций.

Пример:

Алгоритм определения принадлежности точки x отрезку [a,b]. Если точка x принадлежит данному отрезку, то выводится ответ ДА, в противном случае — НЕТ. Запишем на языке Паскаль алгоритм определения принадлежности точки x отрезку [a,b].

В условном операторе и после then, и после else можно использовать только один оператор. Если при некотором условии требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

Конструкция вида

begin <последовательность операторов> end

называется составным оператором.

Пример:

Алгоритм решения квадратного уравнения тебе хорошо известен. Запишем соответствующую программу на языке Паскаль.

program uravnenie;

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 ('Корней нет');

if d=0 then

begin

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.

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

При использовании таких сложных конструкций (их ещё называют вложенными ветвлениями) следует иметь в виду, что else всегда относится к ближайшему оператору if.

Пример:

Воспользуемся вложенным ветвлением для записи на языке Паскаль алгоритма решения линейного уравнения ax+b=0.

program lin_urav;

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.

Как правило, для решения одной и той же задачи можно предложить несколько алгоритмов. Убедимся в этом, записав программу решения линейного уравнения, не прибегая к вложенным ветвлениям.

program lin_urav_2;

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;

if (a=0) and (b<>0) then writeln('Корней нет');

if (a=0) and (b=0) then writeln('x-любое число')

end.