21.10.2006

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

Развиваем навыки творческого подхода к решению задач, умение выделять главное, анализировать.

Цели:

  1. Образовательные:
    1. обеспечение усвоения учащимися особенностей конструирования разветвляющихся алгоритмов на языке Паскаль
    2. развитие навыков творческого подхода к решению задач, умения выделять главное, анализировать.
  2. Развивающие:
    1. развитие логического мышления;
    2. формирование умения анализировать, обобщать, сравнивать.
  3. Воспитательные:
    1. воспитание умения анализировать, обобщать, сравнивать, формализовывать задачи;
    2. воспитание умения слушать учителя и товарищей.

План:

  1. Организационный момент.
  2. Подготовка к изучению нового материала.
  3. Изучение нового материала.
  4. Решение задач.
  5. Домашнее задание, итог урока.

Ход урока:

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

На доске и в тетради тема урока.

  1. Подготовка к изучению нового материала

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

Блок-схема:

Если <условие>
      то <оператор 1>
      иначе <оператор 2>
все 

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

В Турбо Паскале также имеются специальные конструкции, кото­рые позволяют реализовать команды ветвления и выбора. Эти конст­рукции называются операторами: условного перехода (условный оператор), выбора.

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

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

Полная форма оператора условного перехода

If <логическое выражение> then <оператор1> else <оператор2>.

Например: if a>0 then s:=s+d else s:=s-b;

Проводим аналогию с конструкцией если, то, иначе, все.
Отмечаем, что работает оператор так же, как и команда ветвления.
Необходимо указать учащимся, что после then и else можно записать только один оператор.

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

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

begin
операторы
end;

Например:

If a<c then begin
                    a:=c-a; k:= k+1;
                     end
           else begin
                       c:=a-c;
                        l:=l+1
                   end;

Неполная форма оператора.

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

Например:

If a<> b then а:»а-b;
If (х<=10) and (x>=0) then y:=sqr(x);

Рассмотрим пример использования при решении задач.

Найти наибольшее из трех введенных с клавиатуры чисел.

Program MAKS;
Uses crt;
Var a,b,c,max: real;
Begin
{Ввод данных}
write(‘Введите значения чисел a,b,c’);
readln(a,b,c);
{Поиск максимального числа};
if a>b then max:=a else max:=b;
if max<c then max:=c;
{Печать результатов}
Writeln ('наибольшее из введенных чисел =', max);
{задержка вывода на экран}
repeat until keypressed;
end.

Поясняем алгоритм решения задачи: сравниваются два первых числа, после определения максимального из них сравнивается макси­мальное и третье число и определяется максимальное значение. Значе­ние максимального числа и есть искомый максимум. Затем это значе­ние выводится на экран.

  1. Решение задач

1. Пусть для двух целых чисел надо определить являются ли они четными или нет.

Для проверки четности используем условие: остаток от деления на 2 четного числа = 0.

Program chet;
Uses crt;
Var a,b: integer;
Begin
Writeln (‘введите 2 целых числа’);
Readln (a,b);
If a mod 2=0 then
                     Writeln (‘а - четное’)
                    Else writeln (‘а – нечетное’);
If b mod 2=0 then
                     Writeln (‘b - четное’)
                    Else writeln (‘b – нечетное’);
Repeat until keypressed;
End.

2. определить является ли введенный с клавиатуры год високосным.

Program god;
Uses crt;
Var a: integer;
Begin
Writeln (‘введите год);
Readln (a);
If a mod 4=0 then
Writeln (‘год - високосный)
Else writeln (‘год не високосный);
Repeat until keypressed;
End.

  1. Домашнее задание
  1. Даны числа X и Y. Вычислите число z=x+y, если x<=y и 1-x+y в противном случае.
  2. Даны два числа. Выведите первое из них, если оно больше второго и оба числа, если это не так.
  3. Даны два действительных числа. Меньшее из них замените полусуммой этих чисел, а большее произведением.
  4. Найдите наименьшее из трех заданных чисел.
  5. даны три действительных числа. Найдите наибольшее значение из их суммы и произведения.
  6. Написать алгоритм решения следующей задачи:
    ЭВМ спрашивает: «Сколько вам лет?». Если ответ больше 100, то отвечает: «Вы хорошо сохранились!». В противном случае желает: «Лет до 100 расти вам без старости!».
  7. Даны два действительных числа. Возвести сумму этих чисел в квадрат, если первое число больше второго и возвести разность этих чисел в квадрат в противном случае.
  8. Дано действительное число. Возвести его в квадрат, если оно неотрицательно и в четвертую степень, если отрицательно.
  9. Дано действительное число x вычислить y, если:
                  X2-X,  при x<=0
    Y=       
               X2-sinX, при других x