СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Презентация "Операторы ветвления в языке Pascal"

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация по теме "Операторы ветвления в языке Pascal" может быть использована при изучении программирования на уроках информатики в 10-11 классах. Используется система программирования PascalABC.NET. Разбираются типовые задачи по разработке разветвляющихся программ, при решении большинства задач используются блок-схемы, ко всем программам прилагаются скриншоты окна вывода при тестовом запуске программы.

Просмотр содержимого документа
«Презентация "Операторы ветвления в языке Pascal"»

Язык программирования Паскаль  (версия PascalABC.NET) Операторы ветвления в языке Pascal

Язык программирования Паскаль (версия PascalABC.NET)

Операторы ветвления в языке Pascal

Операторы ветвления    Полное ветвление условие да нет действия_1 действия_2 Полная форма ветвления (условного оператора): If  Then  Else  ; Если  условие – истина, то выполняется оператор_1 ,  иначе – выполняется оператор_2 . Перед Else знак « ; » НЕ ставится!

Операторы ветвления Полное ветвление

условие

да

нет

действия_1

действия_2

Полная форма ветвления (условного оператора):

If Then Else ;

Если условие – истина, то выполняется оператор_1 , иначе – выполняется оператор_2 .

Перед Else знак « ; » НЕ ставится!

Операторы ветвления    Неполное ветвление условие да нет действия Неполная форма ветвления (условного оператора):  If  Then  ; Если  условие – истина, то выполняется оператор .  В противном случае – переход к следующему оператору программы.

Операторы ветвления Неполное ветвление

условие

да

нет

действия

Неполная форма ветвления (условного оператора):

If Then ;

Если условие – истина, то выполняется оператор . В противном случае – переход к следующему оператору программы.

x- 1 then begin if yx- 1 then begin y:=y-x; x:=x-y end y:=y-x; else begin x:=x-y x:=x-y; y:=y-x end ; end else begin x:=x-y; y:=y-x end ; " width="640"

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

В условном операторе после Then и после Else можно использовать только один оператор .

Если нужно выполнить несколько операторов, то используют составной оператор , где слова Begin и End – операторные скобки:

begin end ;

Разделение на строки может быть произвольным. Например:

или

if yx- 1 then begin

if yx- 1 then

begin

y:=y-x; x:=x-y end

y:=y-x;

else begin

x:=x-y

x:=x-y; y:=y-x end ;

end

else

begin

x:=x-y;

y:=y-x

end ;

y*y then y:=x+y; if yx- 1 then begin y:=y-x; x:=x-y end else begin x:=x-y; y:=y-x end ; writeln ( 'x=' , x, ' y=' , y) End . ввод x, y x := x ∙ y x y 2 да нет y := x + y y x - 1 да нет x := x - y y := y - x y := y - x x := x - y вывод x, y конец " width="640"

Трассировка программы с ветвлениями

Для данного алгоритма составьте таблицу значений переменных при указанных значениях x и y . Что появится на экране?

начало

Program Vetvlenie;

Var x, y: integer ;

Begin

write ( 'Введите x, y: ' );

readln (x, y);

x:=x*y;

if xy*y then y:=x+y;

if yx- 1 then

begin y:=y-x; x:=x-y end

else

begin x:=x-y; y:=y-x end ;

writeln ( 'x=' , x, ' y=' , y)

End .

ввод x, y

x := x ∙ y

x y 2

да

нет

y := x + y

y x - 1

да

нет

x := x - y

y := y - x

y := y - x

x := x - y

вывод x, y

конец

y*y then y:=x+y; if yx- 1 then begin y:=y-x; x:=x-y end else begin x:=x-y; y:=y-x end ; writeln ( 'x=' , x, ' y=' , y) End . Переменные x y Проверка условий xy 2 yx-1 2 3 - - 6 69 (нет) 35 (нет) 3 0 Щелчок – шаг программы " width="640"

Трассировка программы с ветвлениями

Для данного алгоритма составьте таблицу значений переменных при указанных значениях x и y . Что появится на экране?

1) При x=2, y=3

Program vetvlenie;

Var x, y: integer ;

Begin

write ( 'Введите x, y: ' );

readln (x, y);

x:=x*y;

if xy*y then

y:=x+y;

if yx- 1 then

begin y:=y-x; x:=x-y end

else

begin x:=x-y; y:=y-x end ;

writeln ( 'x=' , x, ' y=' , y)

End .

Переменные

x

y

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

xy 2

yx-1

2

3

-

-

6

69 (нет)

35 (нет)

3

0

Щелчок – шаг программы

y*y then y:=x+y; if yx- 1 then begin y:=y-x; x:=x-y end else begin x:=x-y; y:=y-x end ; writeln ( 'x=' , x, ' y=' , y) End . Переменные x y Проверка условий xy 2 yx-1 3 2 - - 6 64 (да) 8 85 (да) 2 4 Щелчок – шаг программы " width="640"

Трассировка программы с ветвлениями

Для данного алгоритма составьте таблицу значений переменных при указанных значениях x и y . Что появится на экране?

2) При x=3, y=2

Program vetvlenie;

Var x, y: integer ;

Begin

write ( 'Введите x, y: ' );

readln (x, y);

x:=x*y;

if xy*y then

y:=x+y;

if yx- 1 then

begin y:=y-x; x:=x-y end

else

begin x:=x-y; y:=y-x end ;

writeln ( 'x=' , x, ' y=' , y)

End .

Переменные

x

y

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

xy 2

yx-1

3

2

-

-

6

64 (да)

8

85 (да)

2

4

Щелчок – шаг программы

Задача 1 Найти корни данного квадратного уравнения ax 2 +bx+c=0 . начало ввод  a, b, c (d (d≥0) нет да d «Корней нет» вывод  x1, x2 конец

Задача 1

Найти корни данного квадратного уравнения ax 2 +bx+c=0 .

начало

ввод a, b, c

(d

(d≥0)

нет

да

d

«Корней нет»

вывод x1, x2

конец

=0 begin x1:=(-b+sqrt(d))/( 2 *a); x2:=(-b-sqrt(d))/( 2 *a); writeln ( 'x1=' , x1: 5 : 1 , ' x2=' , x2: 5 : 1 ) end ; End . " width="640"

Задача 1

Найти корни данного квадратного уравнения ax 2 +bx+c=0 .

Program KVUR;

Var a, b, c, d, x1, x2: real ;

Begin

writeln ( 'Решение квадратного уравнения' );

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

readln (a, b, c);

d := b*b- 4 *a*c; //дискриминант

if dthen //если d

writeln ( 'Корней нет!' )

else //иначе d=0

begin

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

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

writeln ( 'x1=' , x1: 5 : 1 , ' x2=' , x2: 5 : 1 )

end ;

End .

b max := a да нет a max := a max := b max := b вывод max вывод max конец конец " width="640"

Задача 2

Определить большее из двух значений переменных.

1 способ

2 способ

начало

начало

ввод a, b

ввод a, b

нет

да

ab

max := a

да

нет

a

max := a

max := b

max := b

вывод max

вывод max

конец

конец

b then max:=a else max:=b; writeln ( 'Большее число: ' , max); End . 2 способ Program BID2; Var a, b, max: integer ; Begin writeln ( 'Введите два числа: ' ); read (a, b); max:=a; if athen max:=b; writeln ( 'Большее число: ' , max); End . " width="640"

Задача 2

Определить большее из двух значений переменных.

1 способ

Program BID1;

Var a, b, max: integer ;

Begin

writeln ( 'Введите два числа: ' );

read (a, b);

if ab then max:=a else max:=b;

writeln ( 'Большее число: ' , max);

End .

2 способ

Program BID2;

Var a, b, max: integer ;

Begin

writeln ( 'Введите два числа: ' );

read (a, b);

max:=a;

if athen max:=b;

writeln ( 'Большее число: ' , max);

End .

0) (d=0) да нет d=0 «Корней нет» вывод x вывод x1, x2 конец " width="640"

Задача 3

Найти корни данного квадратного уравнения ax 2 +bx+c=0, учитывая случай, когда уравнение имеет один корень.

начало

ввод a, b, c

вложенное ветвление

(d≥0)

(d

нет

да

d

(d0)

(d=0)

да

нет

d=0

«Корней нет»

вывод x

вывод x1, x2

конец

Задача 3 Найти корни данного квадратного уравнения ax 2 +bx+c=0,  учитывая случай, когда уравнение имеет один корень. Program KVUR2; Var a, b, c, d, x, x1, x2: real ; Begin writeln ( 'Решение квадратного уравнения' ); write ( 'Введите коэффициенты a, b, c: ' ); readln (a, b, c); d := b*b- 4 *a*c; if dthen  writeln ( 'Корней нет!' ) else  if d= 0 then  begin  writeln ( 'Один корень:' );  x:=-b/( 2 *a); writeln ( 'x=' , x: 5 : 1 );  end  else  begin  writeln ( 'Два корня:' );  x1:=(-b+sqrt(d))/( 2 *a); x2:=(-b-sqrt(d))/( 2 *a);  writeln ( 'x1=' , x1: 5 : 1 , ' x2=' , x2: 5 : 1 )  end ; End .

Задача 3

Найти корни данного квадратного уравнения ax 2 +bx+c=0, учитывая случай, когда уравнение имеет один корень.

Program KVUR2;

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

Begin

writeln ( 'Решение квадратного уравнения' );

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

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

if dthen

writeln ( 'Корней нет!' )

else

if d= 0 then

begin

writeln ( 'Один корень:' );

x:=-b/( 2 *a); writeln ( 'x=' , x: 5 : 1 );

end

else

begin

writeln ( 'Два корня:' );

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

writeln ( 'x1=' , x1: 5 : 1 , ' x2=' , x2: 5 : 1 )

end ;

End .

1) (-1≤x≤1) нет да y := x+2 x ≤ 1 y := 2-x y := 1 вывод x конец " width="640"

Задача 4

Найти значение функции для любого значения аргумента.

y

2

1

x

начало

0

2

-2

1

-1

-1

ввод x

(x≥-1)

(x

да

нет

x

(x1)

(-1≤x≤1)

нет

да

y := x+2

x ≤ 1

y := 2-x

y := 1

вывод x

конец

Задача 4 Найти значение функции для любого значения аргумента. Program funk1; Var x, y: real ; Begin write ( 'Введите x: ' ); readln (x); if xthen  y:=x+ 2 else    if xthen  y:= 1  else  y:= 2 -x; writeln ( 'y=' , y); End .

Задача 4

Найти значение функции для любого значения аргумента.

Program funk1;

Var x, y: real ;

Begin

write ( 'Введите x: ' );

readln (x);

if xthen

y:=x+ 2

else

if xthen

y:= 1

else

y:= 2 -x;

writeln ( 'y=' , y);

End .

3) and (2*2=4) {истинно} (53) and (2*2=5) {ложно} Логическое сложение Or («ИЛИ») . Составное условие истинно, если истинно хотя бы одно простое условие, входящее в него. (5 or (2*2=4) {истинно} (5 or (2*2=5) {ложно} Логическое отрицание Not («НЕ») . Если условие истинно, то его отрицание ложно, и наоборот. (2*2=4) {истинно} not (2*2=4) {ложно} Приоритет операций: Операции в скобках not and or , =, =, " width="640"

Составные условия

  • Логическое умножение And («И») . Составное условие истинно, если истинны все простые условия, входящие в него.

(53) and (2*2=4) {истинно}

(53) and (2*2=5) {ложно}

  • Логическое сложение Or («ИЛИ») . Составное условие истинно, если истинно хотя бы одно простое условие, входящее в него.

(5 or (2*2=4) {истинно}

(5 or (2*2=5) {ложно}

  • Логическое отрицание Not («НЕ») . Если условие истинно, то его отрицание ложно, и наоборот.

(2*2=4) {истинно}

not (2*2=4) {ложно}

Приоритет операций:

  • Операции в скобках
  • not
  • and
  • or
  • , =, =,
=- 1 ) and (xthen y:= 1 ; if x 1 then y:= 2 -x; writeln ( 'y=' , y); End . да нет -1 ≤x≤1 y := 1 нет да x1 y := 2-x вывод x,y конец " width="640"

Задача 4 (2 способ)

Найти значение функции для любого значения аргумента.

начало

ввод x

да

нет

2 способ (с использованием составного условия)

x

y := x+2

Program funk2;

Var x, y: real ;

Begin

write ( 'Введите x: ' );

readln (x);

if xthen y:=x+ 2 ;

if (x=- 1 ) and (xthen y:= 1 ;

if x 1 then y:= 2 -x;

writeln ( 'y=' , y);

End .

да

нет

-1 ≤x≤1

y := 1

нет

да

x1

y := 2-x

вывод x,y

конец

Оператор выбора Для выбора одного из нескольких вариантов используется оператор: Case  Of  : ;  ...  : ;  Else  end ; Переключатель – выражение целого или символьного типа. Список выбора – одна константа, диапазон значений вида a..b либо несколько констант или диапазонов через запятую. Если найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если значение переключателя не найдено ни в одном списке, то выполняется оператор после Else (может отсутствовать).

Оператор выбора

Для выбора одного из нескольких вариантов используется оператор:

Case Of

: ;

...

: ;

Else

end ;

Переключатель – выражение целого или символьного типа.

Список выбора – одна константа, диапазон значений вида a..b либо несколько констант или диапазонов через запятую.

Если найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку.

Если значение переключателя не найдено ни в одном списке, то выполняется оператор после Else (может отсутствовать).

Задача 5 Вывести на экран название времени года по номеру месяца. Program Vremena_goda; Var m: integer ; Begin write ( 'Введите номер месяца: ' ); readln (m); case m of  1 , 2 , 12 : writeln ( 'Это зима' );  3..5 : writeln ( 'Это весна' );  6..8 : writeln ( 'Это лето' );  9..11 : writeln ( 'Это осень' );  else writeln ( 'Неверный номер месяца!' ) end ; End .

Задача 5

Вывести на экран название времени года по номеру месяца.

Program Vremena_goda;

Var m: integer ;

Begin

write ( 'Введите номер месяца: ' ); readln (m);

case m of

1 , 2 , 12 : writeln ( 'Это зима' );

3..5 : writeln ( 'Это весна' );

6..8 : writeln ( 'Это лето' );

9..11 : writeln ( 'Это осень' );

else writeln ( 'Неверный номер месяца!' )

end ;

End .


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!