Презентация "Программирование разветвляющихся алгоритмов" 8 класс

Подписи к слайдам:
Программирование разветвляющихся алгоритмов

Повторим пройденный материал

1. Вещественный тип данных в Паскаль

Real

2. Какие значения примут a и b в результате выполнения программы: a:=3; b:=a+1; a:= b/2

b=4; a=2

3. Как называется функция модуля в Паскаль

abs(x)

4. Назовите оператор вывода в Паскаль.

write

5. Какое значение примет переменная Х после выполнения оператора Х:=16 mod 5?

1

Ключевые слова
  • условный оператор
  • неполный условный оператор
  • составной оператор
  • вложенные ветвления

Условный оператор

Этот оператор используется для выполнения одного из двух возможных вариантов программы.

if логическое_условие

then оператор_1

else оператор_2;

если логическое_условие верно,

то выполняется оператор_1 ,

иначе оператор_2;

Перед else точка с запятой не ставится!

Формат неполного оператора ветвления:

if <логическое выражение> then <оператор>

Логическое выражение

  • Простой формой логического выражения является операция отношения:
    • < меньше,
    • > больше,
    • <= меньше или равно,
    • >= больше или равно,
    • = равно,
    • <> не равно.
Логическое выражение

Сложные формы логических выражений составляются с использованием логических операций:

    • not логическое отрицание (НЕ),
    • and логическое умножение (И),
    • or логическое сложение (ИЛИ),
    • xor исключающее ИЛИ
  • Порядок действий:
  • отрицание, умножение, сложение, операции отношений.

Пример 1.

Запишем на языке Паскаль алгоритм определения принадлежности точки х отрезку [a,b].

var x,a,b:real;

begin

write (‘ введите a,b’);

readln(a,b);

write (‘ введите x’);

readln(x);

if (x>=a) and (x<=b) then

writeln (‘Точка принадлежит отрезку’)

else writeln (‘Точка не принадлежит отрезку’) ;

end.

Задача:

Дано целое число. Если оно является положительным то прибавить к нему 1, в противном случае вычесть из него два. Вывести полученное число.

var a:integer;

begin

readln(a);

if a>0 then a:=a+1 else

a:=a-2;

writeln(a)

end.

Задание для самостоятельного решения:

Допишите программу нахождения наибольшего их двух чисел.

Var a, ;

Begin

Writeln(‘ введите числа а и b’);

Readln( );

If a>b then else

Writeln(‘ );

End.

b,max:integer

max:= a

max:= b;

a, b

max=‘, max

Составной оператор

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

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

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

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

Пример: написать программу решения уравнения ax2+bx+c=0, a=0

var a, b, c, x, x1, x2, d : real;

Begin

writeln(' Введите коэффициенты a , b, c ');

readln(a, b, c);

d := sqr(b) - 4 * a * c;

if d < 0 then writeln('Квадратное уравнение не имеет корней’);

if d = 0 then

begin x := -b / (2 * a);

writeln(' Корень уравнения x= ‘, x)

end;

If d>0 then

begin x1 := (-b + sqrt(d)) / (2 * a);

x2 := (-b - sqrt(d)) / (2 * a);

writeln(‘Корни уравнения x1=‘, x1, ‘ ‘ ,’x2=‘, x2)

end;

end.

1

2

3

4

5

Описание переменных

Ввод переменных

Проверка условия

Составной оператор

6

7

8

9

10

11

12

13

14

15

16

Вложенные ветвления

If <условие> then

if <условие> then <оператор1>

else <оператор2>

Пример: Решение линейного уравнения: ax+b=0

var a,b,x:real;

begin

write (‘введите коэффициенты а, b’);

readln (a,b);

if a<>0 then

begin

x:=-b/a;

writeln(‘Корень уравнения х=‘, x)

end

else if b<>0 then writeln (‘Корней нет’)

else writeln (‘x-любое число’);

end.

Задача: Составить программу, которая по трем введенным вами числами определит, могут ли эти числа быть длинами сторон треугольника.

Var a,b,c:integer;

begin

readln (a,b,c);

if a>=b+c then writeln ('Нет’);

else if b>=a+c then writeln ('Нет’)

else if c<=a+b then writeln ('Нет’);

else writeln ('Да’);

end.

Не правильно

>

Задачи для самостоятельного решения:

1. Ввести число. Если оно неотрицательно, вычесть из него 10, в противном случае прибавить к нему 10.

2. Ввести два числа. Если их произведение отрицательно, умножить его на -2 и вывести на экран, в противном случае увеличить его в 3 раза и вывести на экран.

3. Ввести два числа. Если сумма этих чисел четная, найти произведение, в противном случае, найти частное этих чисел.

4. Ввести два числа. Вычесть из большего меньшее.

Program 1;

Var a:integer;

Begin

Readln (a);

If a>0 then a:=a-10 else a:=a+10;

Writeln (a);

End.

var a,b,d:integer;

begin

readln (a,b);

d:=a*b;

If d<0 then d:=d*(-2) else d:=d*3;

writeln (d);

end.

Program 3;

Var a,b:integer; d:real;

Begin

Readln (a,b);

d:=a+b;

If d mod 2=0 then d:=a*b else d:=a/b;

Writeln (d);

End.

Program 4;

var a,b,d:integer;

begin

readln (a,b);

If a>b then d:=a-b else d:=b-a;

writeln (d);

end.

Самое главное

  • При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:
  • if <условие> then <оператор_1> else <оператор_2>

  • Для записи неполных ветвлений используется неполный условный оператор:
  • if <условие> then <оператор>

  • Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:
  • begin <последовательность операторов> end

Домашнее задание

  • Параграф 3.4, выучить конспект
  • 2. Написать программу для следующей задачи:

    Являются ли треугольники равновеликими?

Спасибо за урок!