Частная дидактическая цель
В результате овладения содержанием учебного элемента студенты должны знать:
- определение оператора ветвления;
- структуру программы условного оператора;
- синтаксис краткой и полной форм ветвления;
- графическое представление условного оператора;
- метод пошаговой детализации ветвления.
Уметь:
- составлять программы с использованием оператора ветвления на языке Turbo Pascal;
- составлять “протоколы” выполнения условного оператора.
Учебный элемент с указанием задания | Руководство к обучению | |||||||||
Составьте программу, вычисляющую значение функции на отрезке [-10..10]. | ||||||||||
|
- работа в группе | |||||||||
Для выбора на
исполнение одного из возможных действий
(операторов) в зависимости от некоторого условия
(при этом одно из действий может быть пустым, т. е.
отсутствовать) предназначены условные
операторы. В качестве условного выбора используется значение логического выражения. В Turbo Pascal имеются два условных оператора: if и Case. Оператор условия if является одним из самых популярных средств, изменяющий естественный порядок выполнения операторов программы. |
- прочитайте
- обратите внимание |
|||||||||
Запись условного оператора на
языке программирования Turbo Pascal If <условие> then <оператор 1> else <оператор 2>; Сначала вычисляется выражение, записанное в условии, в результате его вычисления получается значение булевского типа (в качестве выражений булевского типа используют отношения: =, <>, >=, <=, <,>). Если значение выражения равно True (истина), то выполняется <оператор 1>, указанный после слова then (ТО). Если результат вычисления выражения в условии равен False (ложь), то выполняется <оператор 2>, указанный после слова else (ИНАЧЕ). |
- запишите в тетрадь назначение условного оператора |
|||||||||
Составим программу, которая вычисляет значение функции , при определённом значении аргумента х. 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. |
- работа в группе
- запишите в тетрадь фрагмент программы |
|||||||||
Задание 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. |
- работа в группе
- запишите в тетрадь фрагмент программы
- обратите внимание
- запишите в тетрадь |
|||||||||
Введите текст программы. Откомпилируйте её и исполните для разных значений параметров 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). Алгоритм решения:
2. Даны действительные числа х, у, z. Составить программу, вычисляющую min2((x + у + z)/2, xyz) + 1. Алгоритм решения:
3. Даны действительные числа х, у. Составить программу, вычисляющую z = max (х, у) при х ? 0 и z = min (x, у) при х > 0. |
- работа в группе
- запишите в тетрадь |
|||||||||
Таким образом, при составлении
программ с использованием условного оператора
необходимо учитывать следующее: Условный оператор позволяет выбирать … из двух действий, причём выбор делается во время … программы. Оператор … не является обязательным, другими словами, допустимо использовать оператор … в следующем виде: …. В этом случае <оператор 1> выполняется только тогда, когда выражение имеет значение True. В противном случае пропускается <оператор 1> и выполняется следующий оператор. Логические операции – … работают с логическими значениями (True и False) и позволяют комбинировать выражения отношений, булевские переменные и булевские выражения. Например:
Условный оператор управляет только … действием. Поэтому, если необходимо выполнить более … действия (оператора), в случае, когда выражение принимает значение, 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. Укажите порядок организации циклической операции операторами условного и безусловного перехода?
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 правильных ответов. |