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