Урок "Условный оператор" использования модульной технологии на уроках информатики

Разделы: Информатика


Частная дидактическая цель

В результате овладения содержанием учебного элемента студенты должны знать:

  • определение оператора ветвления;
  • структуру программы условного оператора;
  • синтаксис краткой и полной форм ветвления;
  • графическое представление условного оператора;
  • метод пошаговой детализации ветвления.

Уметь:

  • составлять программы с использованием оператора ветвления на языке Turbo Pascal;
  • составлять “протоколы” выполнения условного оператора.
Учебный элемент с указанием задания Руководство к обучению
Составьте программу, вычисляющую значение функции на отрезке [-10..10].  
  • Какие значения параметра необходимо исключить и почему?
  • Как Вы думаете, с помощью, каких операторов можно отразить исключение того или иного значения параметра?
- работа в группе
Для выбора на исполнение одного из возможных действий (операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, т. е. отсутствовать) предназначены условные операторы.

В качестве условного выбора используется значение логического выражения. В Turbo Pascal имеются два условных оператора: if и Case.

Оператор условия if является одним из самых популярных средств, изменяющий естественный порядок выполнения операторов программы.

- прочитайте

 

- обратите внимание

Запись условного оператора на языке программирования Turbo Pascal

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

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

Сначала вычисляется выражение, записанное в условии, в результате его вычисления получается значение булевского типа (в качестве выражений булевского типа используют отношения: =, <>, >=, <=, <,>). Если значение выражения равно True (истина), то выполняется <оператор 1>, указанный после слова then (ТО). Если результат вычисления выражения в условии равен False (ложь), то выполняется <оператор 2>, указанный после слова else (ИНАЧЕ).

 

- запишите в тетрадь назначение условного оператора

  • Запишите сокращённую форму условного оператора на языке Turbo Pascal и в виде блок – схемы.
  • Опишите принцип работы оператора.

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

program primer_1;

var x:integer; y: real;

begin

writeln('введите х');

readln(x);

if x=0 then writeln('на ноль делить нельзя!')

else у:=1/х;

writeln('у=',у:3:2);

readln;

end.

- работа в группе
  • Объясните принцип действия условного оператора.
  • Почему параметр у вещественного типа?

Введите текст программы. Откомпилируйте её и исполните для разных значений параметра х. Попробуйте задать х=0 и убедитесь, что контроль ввода работает.

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

program primer_2;

var x:integer; y:real;

begin

write('x=');

readln(x);

if x>=0 then y:= …

else y:= …;

writeln('y=',y:3:2);

readln;

end.

- работа в группе

 

 

 

 

- запишите в тетрадь фрагмент программы

  • Какие операторы будут выполняться после служебных слов then и else.
  • Как Вы думаете, какие типичные ошибки можно допустить в программе и почему?
  • Заполните таблицу для х = 0, 1, -2.
Аргумент, х Проверка условий Результат
0    
   

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

а) б)

Запишите значения функции при х = 2, 0, -1.

Условный оператор управляет только одним действием. Поэтому, если необходимо выполнить более одного действия (оператора), в случае, когда выражение принимает значение, True или False, то следует использовать составной оператор

Составной оператор – это последовательность произвольных операторов программы, заключённая в операторные скобки – зарезервированные слова begin ... end.

Задание 2. Даны целые числа a, b, c. Составим программу, удваивающую эти числа, если хотя бы одно из этих чисел чётное, и заменяющую их нулями, если это не так.

program primer_3;

var a,b,c:integer;

begin

writeln('введите числа a, b, c');

readln(a, b, c);

if (a mod 2=0) … (b mod 2=0) … (c mod 2=0) then

begin

a:=2*a; b:=2*b; c:=2*c;

end

else

begin

a:=0; b:=0; c:=0;

end;

writeln('a=',a, ' ','b=',b,' ','c=',c);

readln;

end.

- работа в группе

 

 

 

 

 

 

- запишите в тетрадь фрагмент программы

 

 

 

 

- обратите внимание

 

 

 

- запишите в тетрадь

  • Какую логическую операцию необходимо записать в условии?
  • Как Вы считаете, обязательно ли использовать составной оператор после операторов then и else и почему?

Введите текст программы. Откомпилируйте её и исполните для разных значений параметров a, b и c.

Задание 3. Составьте программу, нахождения значения функции, где:

1. 2.

Задание 4. Составьте программы с использованием составного оператора и вложенного условного оператора.

1. Даны три действительных числа. Составить программу, выбирающую из них те, которые принадлежат интервалу [1, 3] или [5, 7].

2. Даны три числа а, b и с. Найдите среднее арифметическое этих чисел, если хотя бы одно из них нечётно, если все эти числа кратны 3, то возводите их в квадрат. Проверку чисел на нечётность осуществите с помощью соответствующей функции.

 

- работа в группе

 

 

- запишите в тетрадь

 

 

 

 

- запишите в тетрадь фрагмент программы

  • Какие логические операции можно использовать для записи двойного неравенства? Приведите примеры.
  • Как Вы думаете, сколько раз в программе необходимо использовать условный оператор и почему?

Рассмотрим действие условного оператора при нахождении наибольшего или наименьшего элемента.

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

Способ 1

max:=a;

if b>max then max:=b;

if c>max then max:=c;

Способ 2

if (a>b) and (a>c) then max:=a else

if b>c then max:=b else max:=c;

- работа в группе

 

 

 

- обратите внимание

  • Дайте сравнительный анализ способов нахождения максимального элемента.
  • Предложите свой вариант решения задачи.
  • Составьте программу для нахождения наименьшего элемента.

Задание 4. Составьте программы по нахождению наибольшего и наименьшего элементов.

1. Даны действительные числа х, у, z. Составить программу, вычисляющую min (5x, 2y, 3z).

Алгоритм решения:

  1. Введите числа х, у, z.
  2. Используя оператор присваивания, запишите: x:=5*x; y:=2*y; z:=3*z.
  3. Найдите наименьший элемент из чисел х, у, z.

2. Даны действительные числа х, у, z. Составить программу, вычисляющую min2((x + у + z)/2, xyz) + 1.

Алгоритм решения:

  1. Введите числа х, у, z.
  2. Используя оператор присваивания, запишите на языке программирования: и .
  3. Найдите наименьший элемент, сравнивая числа a и b.

3. Даны действительные числа х, у. Составить программу, вычисляющую z = max (х, у) при х ? 0 и z = min (x, у) при х > 0.

 

- работа в группе

 

 

- запишите в тетрадь

Таким образом, при составлении программ с использованием условного оператора необходимо учитывать следующее:

Условный оператор позволяет выбирать … из двух действий, причём выбор делается во время … программы.

Оператор … не является обязательным, другими словами, допустимо использовать оператор … в следующем виде: …. В этом случае <оператор 1> выполняется только тогда, когда выражение имеет значение True. В противном случае пропускается <оператор 1> и выполняется следующий оператор.

Логические операции – … работают с логическими значениями (True и False) и позволяют комбинировать выражения отношений, булевские переменные и булевские выражения.

Например:

если то у = х2

Условный оператор управляет только … действием. Поэтому, если необходимо выполнить более … действия (оператора), в случае, когда выражение принимает значение, True или False, то следует использовать … оператор. 

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

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

Оператор условного перехода имеет следующий формат:

If <логическое выражение> then Go to <metka 1> [else Go to <metka 2>];

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

Возможные результаты работы программы:

a = 4; b = 5

4 * 1 = 4

4 * 2 = 8

4 * 3 = 12

4 * 4 = 16

4 * 5 = 20

program primer_4;

uses crt;

label metka, 100;

var a, b, c, i: integer;

begin

write('a=');

readln(a);

write('b=');

readln(b);

i:=1;

metka:

c:=a*i;

if i>b then go to 100;

writeln(a:3,' * ', i:3, '= ' ,c:5);

i:=i+1;

go to metka;

100: readkey;

end.

 

- запишите в тетрадь

 

 

- запишите в тетрадь

 

 

 

- обратите внимание

 

 

 

 

 

 

 

 

 

 

 

 

- запишите в тетрадь фрагмент программы

  • Объясните работу выделенного курсивом фрагмента программы.
  • Составьте программу вычисления таблицы умножения двух чисел с использованием только одного оператора безусловного перехода.

Вопросы для самоконтроля

1. Для чего необходим условный оператор?

  • позволяет выполнять операторы программы;
  • изменяет естественный порядок выполнения операторов программы;
  • для сравнения выражений.

2. Укажите синтаксис условного оператора.

a) if a>0 then с:=sqrt(a); else c:=sqr(a) + 2;

b) if a>0 then с:=sqrt(a) else c:=sqr(a) + 2;

c) if a+b then с:=sqrt(a+b) else c:=sqr(a) + 2;

d) if a=0 else с:=sqrt(a) then c:=sqr(a) + 2.

3. Укажите порядок организации циклической операции операторами условного и безусловного перехода?

  1. Использование оператора условного перехода.
  2. Счётчик итераций.
  3. Присвоить параметру начальное значение.
  4. Выполнение операторов, стоящих за меткой.
  5. Использование оператора безусловного перехода

4. Как на языке программирования можно записать выражение: число с – нечётное.

Odd(c); b) abs(c); c) c mod 2 <> 0; d) c mod 2 = 0; d) ord(x).

5. Укажите операторные скобки, используемые в языке программирования Turbo Pascal?

(); b) {}; c) begin...end; d) [].

6. Переведите на язык программирования выражение: число а делится на 9 без остатка.

a) a mod 9;

b) a div 9 = 0;

c) a mod 9 = 0;

d) a div 9.

7. Какую логическую операцию необходимо использовать для записи двойного неравенства?

a) and;

b) xor;

c) or;

d) not.

8. Найдите значение функции y при х = 9, при условии: if x>0 then y:=sqrt(x) else if x=0 then y:=sqr(x)*x+5 else y:=sqr(x)+1.

9. Найдите значение функции y при х = -4, при условии: if x>0 then y:=sqrt(x) else if x=0 then y:=sqr(x)*x+5 else y:=sqr(x)+1.

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

Вариант 1.

1. Найдите значение функции

2. Найдите значение функции

3. Создайте программу, определяющую, пройдёт ли график функции у=5х2 – 7х + 2 через заданную точку с координатами (a, b).

4. Даны действительные числа х, у, z. Составить программу, вычисляющую u = max (x, z)/min (y, z).

5. Даны целые числа а, b, с и d. Составить программу, печатающую те из них, которые делятся на 5.

- работа в группе

 

 

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

Оцените свою работу по следующим критериям:

“5” - 8 – 9 правильных ответов;

“4” - 7 правильных ответов;

“3” - 5 – 6 правильных ответов.

Приложение