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

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

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

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

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

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

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

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

Итоги урока

Использование ветвлений. Сложные условия. Множественный выбор

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

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

Тема урока: «Использование ветвлений. Сложные условия. Множественный выбор»

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

Задачи урока:

Образовательные:

      • способствовать формированию алгоритмических навыков использования структур языка программирования Паскаль, раскрыть их особенности, выяснить основные отличия.

Развивающие:

    • развивать у обучающихся умения сопоставлять, анализировать, выделять главное, существенное, обобщать, формулировать выводы;
    • развивать познавательный интерес и творческие способности.

Воспитательные:

  • формировать коммуникативные компетенции обучающихся через работу в группах, воспитания уважения  друг к другу, умения слушать;
  • воспитание информационной культуры.

Ход урока

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

2. Проверка домашнего задания

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

а

а

б

а

б

в

г

б

в

б

г

а

в

а

б

в

б

а

а=2

3. Изучение нового материала

Один из важнейших операторов Паскаля – условный оператор. Он позволяет изменять порядок выполнения операторов в зависимости от некоторого условия, представляющего собой логическое выражение типа Boolean. Если значение равно True, то выполняется одна группа операторов, если False, то другая группа операторов или не выполняется ничего.

В языке Паскаль имеются два условных оператора: if (оператор ветвления) и case (оператор выбора). Оператор if обеспечивает  выбор из двух альтернатив, оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.

На этом уроке рассмотрим оператор If. (Составление обучающимися краткого конспекта нового материала.)

Условный оператор If (оператор ветвления)

Полная формы условного оператора называется If-then-else, имеет вид:

If условие

Then [оператор1]

Else [оператор2];

Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.

If  then

   Begin

   [операторы1]

   End

Else

   begin

   [операторы2]

   End;

Слова if (если) и Then (то) – зарезервированные.

Замечание. Перед ключевым словом else (иначе) точка с запятой не ставится, она ставиться после всего оператора If.

Условие представляют собой логические выражение. Простые условия  записываются в виде равенств или неравенств. В сложных условиях несколько простых условий объединяются с помощью логических операций or, and. В этом случае простые условия заключаются в круглые скобки.

На рисунке показана блок-схема полной формы оператора.

Алгоритм выполнения полного условного оператора:

  1. Проверяется значение логического выражения, записанного в условии после слова If
  2. Если условие истинно (значение выражения условие равно True), то выполняется оператор 1, указанный после слова Then
  3. Если условие ложно, то выполняется оператор 2, записанный после слова  Else.

Неполная форма условного оператора называется if-then, имеет вид:

If условие

Then [оператор];

Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.

If условие Then

Begin

[операторы]

End;

В неполном ветвлении ветвь Else отсутствует. На рисунке показана блок схема оператора if-then.

Алгоритм выполнения неполного условного оператора

  1. Проверяется значение логического выражения, записанного в условии после слова If
  2. Если условие истинно (значение выражения условие равно True), то выполняется операторы, указанный после слова Then
  3. Если условие ложно, то ничего делать не надо. Происходит переход к следующему оператору.

Операторы ветвления могут быть вложенными, т.е. один оператор if можно расположить внутри другого. В этом случае он позволяет производить выбор более чем из двух вариантов. При написании исходного кода с вложенными операторами для удобочитаемости  кода вложенные операторы выделяются отступами.

Применение условного оператора if рассмотрим на примере.

Пример 1. С клавиатуры ввести два различных числа. Найти большее из них и вывести его на экран.

Решение

В этом примере нужно произвести выбор одного из двух вариантов, для этого используется операторif-then-else.

program primer6_1;

   var a, b, m:integer;

begin

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

   readln(a, b);

   if a>b then m:=a

          else m:=b;

   writeln('Большее из них: ', m);

end.

 Пример 2. Даны три отрезка. Можно ли из них построить треугольник?

Решение. Для любого треугольника сумма его двух сторон  должна быть больше третьей стороны (неравенство треугольника). Если a, b, c – стороны предполагаемого треугольника, то нужно сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольник из таких отрезков не построить.

Для решения этой задачи используется оператор if-then-else со сложным условием.

program primer6_2;

var a, b, c: integer;

begin

    write (' Введите длины отрезков: ');

    readln (a,b,c);

    if (a < b+c) and (b < a+c) and (c < a+b) then

        writeln ('Можно построить треугольник.')

    else

        writeln ('Нельзя построить треугольник.');

end.

Достаточно часто при составлении программ необходимо сделать выбор из достаточно большого количества вариантов. Команду IF в данном случае использовать не рационально. И тут на помощь к программистам приходит команда множественного выбора CASE.

До сих пор, изучая ветвление в алгоритмах, мы в основном рассматривали случаи ветвления на два рукава. Сегодня наша задача – познакомиться со способами организации в программах ветвления на три и более рукавов.

Один из способов реализации ветвления на несколько рукавов – проверка условий до тех пор, пока одно из них не окажется истинным, выполнение предусмотренных этим условием действий и выход из ветвления.

Структура оператора выбора такова:

case <переменная> of      <значение1>:<действия1>;      <значение2>:<действия2>;      <значение3>:<действия3>;      ……………………………………………………………………;      else <действия 4>; end;

Просмотр содержимого документа
«Использование ветвлений. Сложные условия. Множественный выбор»

37-38 урок, 10 класс – практика

Учитель: Брух Т.В.

Дата: _________

Тема урока: «Использование ветвлений. Сложные условия. Множественный выбор»

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

Задачи урока:

Образовательные:

      • способствовать формированию алгоритмических навыков использования структур языка программирования Паскаль, раскрыть их особенности, выяснить основные отличия.

Развивающие:

    • развивать у обучающихся умения сопоставлять, анализировать, выделять главное, существенное, обобщать, формулировать выводы;

    • развивать познавательный интерес и творческие способности.

Воспитательные:

  • формировать коммуникативные компетенции обучающихся через работу в группах, воспитания уважения  друг к другу, умения слушать;

  • воспитание информационной культуры.

Ход урока

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

2. Проверка домашнего задания

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

а

а

б

а

б

в

г

б

в

б

г

а

в

а

б

в

б

а

а=2

3. Изучение нового материала

Один из важнейших операторов Паскаля – условный оператор. Он позволяет изменять порядок выполнения операторов в зависимости от некоторого условия, представляющего собой логическое выражение типа Boolean. Если значение равно True, то выполняется одна группа операторов, если False, то другая группа операторов или не выполняется ничего.

В языке Паскаль имеются два условных оператора: if (оператор ветвления) и case (оператор выбора). Оператор if обеспечивает  выбор из двух альтернатив, оператор выбора case позволяет сделать выбор из произвольного числа имеющихся вариантов.

На этом уроке рассмотрим оператор If. (Составление обучающимися краткого конспекта нового материала.)

Условный оператор If (оператор ветвления)

Полная формы условного оператора называется If-then-else, имеет вид:

If условие

Then [оператор1]

Else [оператор2];

Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.

If then

Begin

[операторы1]

End

Else

begin

[операторы2]

End;

Слова if (если) и Then (то) – зарезервированные.

Замечание. Перед ключевым словом else (иначе) точка с запятой не ставится, она ставиться после всего оператора If.

Условие представляют собой логические выражение. Простые условия  записываются в виде равенств или неравенств. В сложных условиях несколько простых условий объединяются с помощью логических операций or, and. В этом случае простые условия заключаются в круглые скобки.

На рисунке показана блок-схема полной формы оператора.

Алгоритм выполнения полного условного оператора:

  1. Проверяется значение логического выражения, записанного в условии после слова If

  2. Если условие истинно (значение выражения условие равно True), то выполняется оператор 1, указанный после слова Then

  3. Если условие ложно, то выполняется оператор 2, записанный после слова  Else.

Неполная форма условного оператора называется if-then, имеет вид:

If условие

Then [оператор];

Если в качестве оператора должна выполняться серия операторов, то они объединяются в операторные скобки Begin-End.

If условие Then

Begin

[операторы]

End;

В неполном ветвлении ветвь Else отсутствует.
На рисунке показана блок схема оператора if-then.

Алгоритм выполнения неполного условного оператора

  1. Проверяется значение логического выражения, записанного в условии после слова If

  2. Если условие истинно (значение выражения условие равно True), то выполняется операторы, указанный после слова Then

  3. Если условие ложно, то ничего делать не надо. Происходит переход к следующему оператору.

Операторы ветвления могут быть вложенными, т.е. один оператор if можно расположить внутри другого. В этом случае он позволяет производить выбор более чем из двух вариантов. При написании исходного кода с вложенными операторами для удобочитаемости  кода вложенные операторы выделяются отступами.

Применение условного оператора if рассмотрим на примере.

Пример 1. С клавиатуры ввести два различных числа. Найти большее из них и вывести его на экран.

Решение

В этом примере нужно произвести выбор одного из двух вариантов, для этого используется операторif-then-else.

program primer6_1;

var a, b, m:integer;

begin

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

readln(a, b);

if ab then m:=a

else m:=b;

writeln('Большее из них: ', m);

end.

 Пример 2. Даны три отрезка. Можно ли из них построить треугольник?

Решение. Для любого треугольника сумма его двух сторон  должна быть больше третьей стороны (неравенство треугольника). Если a, b, c – стороны предполагаемого треугольника, то нужно сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольник из таких отрезков не построить.

Для решения этой задачи используется оператор if-then-else со сложным условием.

program primer6_2;

var a, b, c: integer;

begin

write (' Введите длины отрезков: ');

readln (a,b,c);

if (a

writeln ('Можно построить треугольник.')

else

writeln ('Нельзя построить треугольник.');

end.

Достаточно часто при составлении программ необходимо сделать выбор из достаточно большого количества вариантов. Команду IF в данном случае использовать не рационально. И тут на помощь к программистам приходит команда множественного выбора CASE.

До сих пор, изучая ветвление в алгоритмах, мы в основном рассматривали случаи ветвления на два рукава. Сегодня наша задача – познакомиться со способами организации в программах ветвления на три и более рукавов.

Один из способов реализации ветвления на несколько рукавов – проверка условий до тех пор, пока одно из них не окажется истинным, выполнение предусмотренных этим условием действий и выход из ветвления.

Структура оператора выбора такова:

case  of
     :;
     :;
     :;
     ……………………………………………………………………;
     else ;
end;

Оператор выбора работает следующим образом. В зависимости от того, какое значение принимает переменная, выполняется тот или иной блок действий. В случае если переменная не принимает ни одно из перечисленных значений, “работает” ветвь “ELSE” Но эта ветвь может и отсутствовать, в этом случае просто ничего не выполняется.

У множественного ветвления есть ограничения; в роли переменной может выступать только переменная порядкового типа. Но есть и положительные стороны — в качестве значений можно указывать целый диапазон.

Давайте рассмотрим на примере преимущества оператора case на примере рассмотренной ранее программы.

Сделаем выводы. (Как видно из приведённых примеров, использование оператора case очень эффективно. Он упрощает решение разветвляющихся задач, сокращает затраты на написание кода, и упрощает понимание его). Давайте разберем еще один пример.

Рассмотрим еще один простой оператор: это оператор безусловного перехода goto. 

Что нужно знать об операторе безусловного перехода goto ?      

Оператор goto - это оператор безусловного перехода. Он применяется в том случае, когда после выполнения некоторого оператора нужно перейти не к следующему за ним оператору, а в какую-то другую часть программы, помеченную специальной меткой. Эта метка обязательно должна быть объявлена в разделе описания меток данной программы. Метка может быть как числовой, например: goto 12, так и содержать буквенные символы, например: goto raschets.

Областью действия оператора goto является только тот блок, куда было передано управление. Передача управления в иной блок невозможна, так как указанная метка остается неизменной в программе. 

Структурное программирование и отношение к команде goto.

Структурное программирование - это методология программирования, основанная на суждении, что логичность и понятность программы является залогом ее надежности, облегчает и ускоряет разработку программы, ее освоение, сопровождение и дальнейшую ее модификацию.  Характерной чертой структурного программирования являет его отказ от использования оператора безусловного перехода goto для передачи управления, ограниченное использование глобальных переменных, модульность программ.  Структурное программирование, зародившееся в 70-х годах XX-ого века, является воплощением принципов системного подхода к созданию и эксплуатации программного обеспечения ЭВМ. Основу структурного программирования составляют следующие достаточно простые положения: 

  1. Алгоритм и программа должны составляться поэтапно (то есть по шагам).

  2. Сложная задача должна разбиваться на достаточно простые, легко воспринимаемые части, каждая из которых имеет только один вход и только один выход.

  3. Логика алгоритма и программы должны опираться на минимальное число достаточно простых базовых управляющих структур.

Необходимо помнить, что в последнее время, особенно в связи с развитием теоретических основ и методологии структурного программирования и использованием его достижений для создания трансляторов, применение команды безусловного перехода в программах считается плохим стилем программирования. Достаточно часто структурное программирование подразумевает использование более трех базисных структур.

Вот что должны знать будущие программисты в связи с изучением оператора goto - оператора безусловного перехода в Паскале. Использование безусловных передач управления в программах считается теоретически избыточным и с связи с этим подвергается серьезной критике. Оператор "goto" способствует появлению малопонятных и трудномодифицируемых программ, которые вызывают значительные сложности при написании, отладке и сопровождении. Особенно, если в программе выполняются переходы не вниз (вперед), а вверх (назад). Поэтому рекомендуется сводить до минимума использование оператора "goto" в программах. 

Оператор вызова процедуры. Оператор вызова процедуры служит для активизации предварительно опеределенной программистом (или стандартной) процедуры. Например, это могут быть обращение к стандартной процедуре очистки экрана (clescr;) или вызов любой написанной программистом процедуры.

Пустой оператор. Пустой оператор не выполняет никаких действий и не содержит никаких символов. Обычно такой оператор используется для организации перехода к концу локального или глобального блока. Особенно в тех случаях, когда необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом "end" ставится метка и за ней обязательно двоеточие.

Например:

    label Metka;
     ... 
    begin
     ... 
    goto Metka;      (Переход в конец блока)
     ... 
    Metka:      (Пустой оператор помечен меткой)
    end. 

4. Закрепление изученного материала. Практическая работа.

Задача 1. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. Предусмотреть ошибку ввода.

program nomermesaca;
var x:byte;
begin
       writeln(‘ введите номер месяца ‘); readln(x); Case x of
           1,2,12:writeln (‘зима’);
           3,4,5:writeln (‘весна’);
           6,7,8:writeln (‘лето’);
           9,10,11:writeln (‘осень’)
       else
             writeln (‘ошибка’);
       end;
end.

Задача 2. Составить программу, имитирующую работу своеобразного калькулятора.

program Calc;
var a, b, c: integer;
       begin
       writeln(‘Введите a’); Read(a);
       writeln(‘Введите b’); Read(b);
       writeln(‘Введите c‘); Read(c);
       case c of
           1: writeln(‘Сумма=‘, a+b);
           2: writeln(‘Разность=‘, a-b);
           3: writeln(‘Произведение=‘, a*b);
           4: writeln(‘Целая часть от деления=‘, a div b);
           5: writeln(‘Остаток от деления=‘, a mod b);
           else writeln(‘Введен неизвестный номер операции’);
       end;
end.

Задача 3. Написать программу, которая в зависимости от введённого числа выводила бы на экран: если 1, 2, 3, 4, 5 то 'один', если 6, 7, 10, 15 то 'два', если 8 то 'три', если 16, 17, 18, 19, 20, 22, 25 то 'четыре'. Иначе вывести на экран 'ошибка'.

program primer;
var n : integer;
begin
       write('Введите число: ');
       readln(n);
       case n of
           1..5: write('один');
           6, 7, 10, 15: write('два');
           8: write('три');
           16..20, 22, 25: write('четыре');
       else write('ошибка');
       end;
end.

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

Составить программу по следующему условию.

В некотором учебном заведении действуют следующие правила приема. Абитуриенты сдают три экзамена. Если они набирают не менее 13 баллов, то это дает право поступить на дневное отделение, от 10 до 12 — вечернее, от 8 до 9 — заочное и ниже 8 баллов — отказ в приеме на учебу. Записать программу, которая в зависимости от суммы набранных баллов сообщает абитуриенту его права на поступление.

6. Итог урока.

Сегодня на уроке мы повторили структуру программы, типы данных, инструкции ввода и вывода, логические выражения, условный оператор, познакомились с организацией многовариантного ветвления.














Практическая работа

1.Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. Предусмотреть ошибку ввода.

2. Составить программу, имитирующую работу своеобразного калькулятора.

3. Написать программу, которая в зависимости от введённого числа выводила бы на экран: если 1, 2, 3, 4, 5 то 'один', если 6, 7, 10, 15 то 'два', если 8 то 'три', если 16, 17, 18, 19, 20, 22, 25 то 'четыре'. Иначе вывести на экран 'ошибка'.

5. Дано целое число. Определить является ли оно четным.

6. Даны два числа. Замените меньшее из двух чисел их суммой, а большее произведением этих чисел.

7. Дано двузначное число. Определите, входит ли в него цифра 6.

8. Дан радиус круга и сторона квадрата. У какой фигуры площадь больше?

9. Даны два числа. Замените большее из двух данных чисел удвоенным произведением, а меньшее полу суммой этих чисел.

10. Дано двузначное число. Определите, входят ли в него цифры 4 или 7.

11. Дано целое число. Определить кратно ли оно 5.

12. Даны два числа. Замените меньшее из них модулем разности этих чисел, а большее модулем суммы.

13. Дано двузначное число. Определите, входят ли в него цифры 3 или 9.



Практическая работа

1.Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. Предусмотреть ошибку ввода.

2. Составить программу, имитирующую работу своеобразного калькулятора.

3. Написать программу, которая в зависимости от введённого числа выводила бы на экран: если 1, 2, 3, 4, 5 то 'один', если 6, 7, 10, 15 то 'два', если 8 то 'три', если 16, 17, 18, 19, 20, 22, 25 то 'четыре'. Иначе вывести на экран 'ошибка'.

5. Дано целое число. Определить является ли оно четным.

6. Даны два числа. Замените меньшее из двух чисел их суммой, а большее произведением этих чисел.

7. Дано двузначное число. Определите, входит ли в него цифра 6.

8. Дан радиус круга и сторона квадрата. У какой фигуры площадь больше?

9. Даны два числа. Замените большее из двух данных чисел удвоенным произведением, а меньшее полу суммой этих чисел.

10. Дано двузначное число. Определите, входят ли в него цифры 4 или 7.

11. Дано целое число. Определить кратно ли оно 5.

12. Даны два числа. Замените меньшее из них модулем разности этих чисел, а большее модулем суммы.

13. Дано двузначное число. Определите, входят ли в него цифры 3 или 9.



Практическая работа

1.Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года. Предусмотреть ошибку ввода.

2. Составить программу, имитирующую работу своеобразного калькулятора.

3. Написать программу, которая в зависимости от введённого числа выводила бы на экран: если 1, 2, 3, 4, 5 то 'один', если 6, 7, 10, 15 то 'два', если 8 то 'три', если 16, 17, 18, 19, 20, 22, 25 то 'четыре'. Иначе вывести на экран 'ошибка'.

5. Дано целое число. Определить является ли оно четным.

6. Даны два числа. Замените меньшее из двух чисел их суммой, а большее произведением этих чисел.

7. Дано двузначное число. Определите, входит ли в него цифра 6.

8. Дан радиус круга и сторона квадрата. У какой фигуры площадь больше?

9. Даны два числа. Замените большее из двух данных чисел удвоенным произведением, а меньшее полу суммой этих чисел.

10. Дано двузначное число. Определите, входят ли в него цифры 4 или 7.

11. Дано целое число. Определить кратно ли оно 5.

12. Даны два числа. Замените меньшее из них модулем разности этих чисел, а большее модулем суммы.

13. Дано двузначное число. Определите, входят ли в него цифры 3 или 9.



Скачать

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

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

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