Конспект урока "Программирование разветвляющихся алгоритмов. Простой и составной условные операторы"

Тема урока : Программирование разветвляющихся алгоритмов. Условный оператор.

Учебник: Босова Л. Л. Информатика: учебник для 8 класса – М. : БИНОМ. Лаборатория знаний, 2014. – 160 с. : ил.

Тип урока: урок изучения нового материала.

Цели урока :

    обучающая : организовать деятельность обучающихся по ознакомлению с синтаксисом условного оператора (оператора if ); создать условия для формирования у обучающихся умения использовать оператор if при написании программ;

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

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

Формируемые универсальные учебные действия (УУД) :

    Личностные УУД :

    1. фантазия и воображение при выполнении учебных действий;

      желание выполнять учебные действия.

    Познавательные УУД :

    1. логические действия и операции;

      создание и преобразование моделей и схем для решения задач.

    Коммуникативные УУД :

    1. формулирование собственного мнения и позиции.

    Регулятивные УУД :

    1. планирование своих действий в соответствии с поставленной задачей и условиями ее реализации.

Оборудование : персональный компьютер (ПК), мультимедийный проектор, экран.

Программные средства : презентация «Программирование разветвляющихся алгоритмов. Условный оператор».

План урока

Ход урока.

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

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

Включаются в деловой ритм урока.

2. Актуализация знаний

Здравствуйте, ребята! Сегодня мы переходим к изучению синтаксиса условного оператора в языке Pascal .

Запишите сегодняшнюю дату и тему сегодняшнего урока: «Программирование разветвляющихся алгоритмов. Условный оператор».

Теперь повторим материал из раздела «Алгоритмизация» и предыдущих занятий:

Какую алгоритмическую конструкцию называют ветвлением;

Какие формы ветвления вы знаете;

Изобразите блок-схемы полной и сокращенной форм ветвления;

Как записываются логические функции И, ИЛИ, НЕ в языке Pascal .

(Отвечают на вопросы)

Ветвление – алгоритмическая конструкция, в которой в зависимости от результата проверки условия («да» или «нет») предусмотрен выбор одной из двух последовательностей действий (ветвей).

Существуют полная и сокращенная формы ветвления.

Блок-схемы:

AND, OR, NOT соответственно.

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

А теперь рассмотрим, какой синтаксис имеют операторы ветвления в языке Pascal . Для начала я предлагаю вам заготовить таблицу из двух колонок. Колонки таблицы назовите «Полная форма условного оператора» и «Сокращенная форма условного оператора». Теперь в соответствующие колонки занесите блок-схемы полной и сокращенной форм ветвления, которые изображены на доске.

Ниже запишем общий вид полной и сокращенной форм условного оператора.

Полная форма имеет следующий синтаксис:

if <условие>

then <оператор 1>

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

if then , после которого записывается оператор, который выполнится в случае истинности условия. Затем записывается служебное слово else , после которого записывается оператор, который выполнится в том случае, если условие окажется ложным.

Отметьте в тетрадях, что перед служебным словом else знак «;» не ставится.

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

if <условие>

then <оператор 1>;

Сначала записывается служебное слово if , затем – условие, от истинности которого зависит выполнение той или иной ветки условного оператора. После условия записывается служебное слово then , после которого записывается оператор, который выполнится в случае истинности условия.

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

Также отметьте, что условие в условном операторе – это простое (записанное с помощью операций отношения) или сложное (записанное с помощью логических операций) логическое выражение.

(Составляют таблицу)

if <условие>

then <оператор 1>

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

if <условие>

then <оператор 1>;

Перед else знак «;» не ставится!

(Записывают в тетрадях)

Условие в условном операторе – это простое (записанное с помощью операций отношения) или сложное (записанное с помощью логических операций) логическое выражение.

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

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

Давайте попробуем изменить прошлый алгоритм для решения этой задачи так, чтобы применить цикл с постусловием. Пока я буду набирать задачу в редакторе, записывайте её решение у себя в тетради. [ Совместно с обучающимися решаю задачу на компьютере в IDE, попутно решение проецируется на экран ].

Список возможных вопросов обсуждения задачи.

1) Сколько переменных нам необходимо описать?

2) Как последовательно найти минимальный элемент среди известных элементов?

Рассмотрим с вами следующий фрагмент кода:

a:=11;

b:=a div 3;

a:=a-b;

if a*b mod 2 = 0

then writeln(a*b)

else writeln(b-a);

Какими будут значения переменных a и b после выполнения этой последовательности операторов? Что будет выведено на экран?

А теперь пересаживайтесь за компьютеры и выполните следующие задания самостоятельно.

1) Найти значение функции y(x) и вывести его на экран с точностью до тысячных: . Значение x вводится с клавиатуры.

2) Написать программу, определяющую, принадлежит ли точка A(x , y ) закрашенной области, в том числе и границе области:

Записывают условие в тетрадях.

Участвуют в обсуждении задачи, записывают решение в своих тетрадях.

program minimum;

var

a, b, c, min: real;

begin

read(a, b, c);

min:=a;

if b < min then min:=b;

if c < min then min:=c;

writeln (" Min -> ", min );

end .

(Отвечают на вопросы)

a = 8, b = 3. На экран будет выведено число 24.

Самостоятельно оформляют решение задач на компьютере.

Код программы к задаче 1:

program func ;

var

x, y: real;

begin

read(x);

if x <= 5 then

y:=x*x*x+2*x*x-sqrt(5-x)

else

y:=sqrt((x+1)/(3*x*x*x-x));

writeln("y(", x, ") = ", y:0:3);

end .

Код программы к задаче 2:

program point;

var

x, y: real;

begin

readln(x, y);

if (x >= -1) and (x <= 3) and (y >= -2) and (y <= 4) then

writeln ("Точка принадлежит области")

else

writeln ("Точка не принадлежит области");

end.

5. Подведение итогов

Итак, чему вы научились в течение сегодняшнего занятия?

Что представляет собой условие в условном операторе?

Мы изучили синтаксис полной и сокращенной формы условного оператора.

Простое или сложное логическое выражение.

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

П. 3.5.

Задачи:

1) Даны три отрезка длиной a, b, c. Проверить, существует ли треугольник с такими сторонами. Если да, то вывести на экран сообщение «Треугольник существует!», найти его площадь и вывести её на следующей строке; если нет, то вывести на экран сообщение «Треугольника не существует».

2) Задача № 14 (учебник 2012 г., стр. 205)

Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введенным координатам полей (k , p ) и ( m , n ) определяет, являются ли эти поля полями одного цвета.

Пример входных данных

Пример выходных данных

2 2

3 3

Поля одного цвета

2 3

3 3

Поля разного цвета

2 7

5 4

Поля одного цвета

Записывают в дневниках д/з.


Общий вид условного оператора else Перед else знак «;» не ставится. Полная форма условного оператора: ifthenelse if then else Сокращённая форма условного оператора: ifthen if then Операции отношений Операции отношений Логические операции Логические операции Простые Сложные Условия - логические выражения!


>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x" title="Условный оператор program n_9; var x, a, b: real; begin writeln ("Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x" class="link_thumb"> 4 Условный оператор program n_9; var x, a, b: real; begin writeln ("Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x >"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x"> >"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x"> >"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x" title="Условный оператор program n_9; var x, a, b: real; begin writeln ("Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x">
>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x" title="Условный оператор program n_9; var x, a, b: real; begin writeln ("Определение принадлежности точки отрезку"); write ("Введите а, b>>"); readln (a, b); write ("Введите x>>"); readln (x); if (x>=a) and (x=a) and (x">


>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. " title="Сокращённая форма условного оператора program n_10; var y, a, b, c: integer; begin writeln ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. " class="link_thumb"> 5 Сокращённая форма условного оператора program n_10; var y, a, b, c: integer; begin writeln ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. Y:=A B>Y Y:=B Y:=C C>Y данет данет >"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. "> >"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. Y:=A B>Y Y:=B Y:=C C>Y данет данет"> >"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. " title="Сокращённая форма условного оператора program n_10; var y, a, b, c: integer; begin writeln ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. ">
>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. " title="Сокращённая форма условного оператора program n_10; var y, a, b, c: integer; begin writeln ("Нахождение наибольшей из трёх величин"); write ("Введите а, b, с>>"); readln (a, b, c); y:=a; if (b>y) then y:=b; if (c>y) then y:=c; writeln ("y=", y) end. ">


Составной оператор thenelse В условном операторе и после then, и после else можно использовать только один оператор. then else Если в условном операторе после then или после else нужно выполнить несколько операторов, то используют составной оператор – конструкцию вида: begin end


0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d 0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d 7 Блок-схема решения КВУР Конец Вывод «Корни уравнения: х1=», х1, «х2=», х2 х1:=(-b+sqrt(d))/2/a d>0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d 0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d 0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d 0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d 0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d title="Блок-схема решения КВУР Конец Вывод «Корни уравнения: х1=», х1, «х2=», х2 х1:=(-b+sqrt(d))/2/a d>0 да Начало Введите коэффициенты a, b, c d:=b*b-4*a*c d


Begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln ("Корни уравнения:"); writeln ("x1=", x1:9:3); writeln ("x2=", x2:9:3) end; begin x1:=(-b+sqrt(d))/2/a; x2:=(-b-sqrt(d))/2/a; writeln ("Корни уравнения:"); writeln ("x1=", x1:9:3); writeln ("x2=", x2:9:3) end; begin x:=-b/2/a; writeln ("Корень уравнения x=", x:9:3) end; begin x:=-b/2/a; writeln ("Корень уравнения x=", x:9:3) end; program n_11; var a, b, c: real; var d: real; var x, x1, x2: real; begin writeln ("Решение квадратного уравнения"); write ("Введите коэффициенты a, b, c >>"); readln (a, b, c); d:=b*b-4*a*c; if d0 then end. >"); readln (a, b, c); d:=b*b-4*a*c; if d0 then end.">




>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri" title="Решение линейного уравнения program n_12; var a, b, x: real; begin writeln ("Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri" class="link_thumb"> 10 Решение линейного уравнения program n_12; var a, b, x: real; begin writeln ("Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then writeln ("Корней нет") else writeln ("x – любое число"); end. Корней нет Список данных a, b, x - вещ a, b a0 x:=-b/a b0 Любое число нет да нет >"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri"> >"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then writeln ("Корней нет") else writeln ("x – любое число"); end. Корней нет Список данных a, b, x - вещ a, b a0 x:=-b/a b0 Любое число нет да нет"> >"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri" title="Решение линейного уравнения program n_12; var a, b, x: real; begin writeln ("Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri">
>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri" title="Решение линейного уравнения program n_12; var a, b, x: real; begin writeln ("Решение линейного уравнения"); write ("Введите коэффициенты a, b>>"); readln (a, b); if a0 then begin x:=-b/a; writeln ("Корень уравнения x=", x:9:3) end else if b0 then wri">


Самое главное При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор: if then else Для записи неполных ветвлений используется сокращённый условный оператор: if then Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид: begin end.


>3, 4 Первая точк" title="Вопросы и задания Как на языке Паскаль записывается полное и неполное ветвление? Является ли условным оператором последовательность символов? а) if x=y then x:=0; y:=0 else write (z) в) if xb then d:=2; if a1, 2 Координаты 2-й точки>>3, 4 Первая точк" class="link_thumb"> 12 Вопросы и задания Как на языке Паскаль записывается полное и неполное ветвление? Является ли условным оператором последовательность символов? а) if x=y then x:=0; y:=0 else write (z) в) if xb then d:=2; if a1, 2 Координаты 2-й точки>>3, 4 Первая точка ближе Пример входных данныхПример выходных данных a b c>> 1 2 1Не существует a b c>> 2 2 2Равносторонний a b c>> Равнобедренный a b c>> 3 4 5Разносторонний Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний). Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра. Пример входных данныхПример выходных данных k, 1>>-1 5 xa, ya >>1 2 Точка лежит под прямой k, 1>>-1 5 xa, ya >>1 10 Точка лежит над прямой k, 1>>-1 5 xa, ya >>1 4 Точка лежит на прямой Напишите программу, определяющую, лежит ли точка А(ха, ya): а) на прямой y = kx + 1, над ней или под ней; б) на окружности x 2 + y 2 = r 2, над ней или под ней. Примеры входных данных и соответствующих им выходных данных разработайте самостоятельно. Пример входных данныхПример выходных данных x >> 5 y >> 6 x = 5 y = 6 x >> 6 y >> 5 x = 5 y = 6 Напишите программу, которая производит обмен значений переменных x и y, если x больше y. Дан условный оператор: If a5 then c:=2 else c:=3 Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3? Пример входных данныхПример выходных данных -5y = - 1 0y = 0 5y = 1 Напишите программу, вычисляющую значение функции: -1 при x 0 y = Составьте программу для решения задачи: Известно, что 31 января 2011 года приходится на понедельник. Какие значения должны быть присвоены литерной переменной y в алгоритме, определяющем день недели для любого числа (chislo) января 2011 года? chislo:= chislo mod 7 если chislo=3 то у:="… если chislo=4 то у:="… если chislo=5 то у:="… если chislo=6 то у:="… если chislo=0 то у:="… если chislo=1 то у:="… если chislo=2 то у:="… Пример входных данныхПример выходных данных Координаты 1 – го поля >> 2 2 Координаты 2 – го поля >> 3 3 Поля одного цвета Координаты 1 – го поля >> 2 3 Координаты 2 – го поля >> 3 3 Поля разного цвета Координаты 1 – го поля >> 2 7 Координаты 2 – го поля >> 5 4 Поля одного цвета Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, являются ли эти поля полями одного цвета. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а - случайное число, меньшее 100). Ответ пользователя проверяется и комментируется. >3, 4 Первая точк"> >3, 4 Первая точка ближе Пример входных данныхПример выходных данных a b c>> 1 2 1Не существует a b c>> 2 2 2Равносторонний a b c>> 20 20 30Равнобедренный a b c>> 3 4 5Разносторонний Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний). Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра. Пример входных данныхПример выходных данных k, 1>>-1 5 xa, ya >>1 2 Точка лежит под прямой k, 1>>-1 5 xa, ya >>1 10 Точка лежит над прямой k, 1>>-1 5 xa, ya >>1 4 Точка лежит на прямой Напишите программу, определяющую, лежит ли точка А(ха, ya): а) на прямой y = kx + 1, над ней или под ней; б) на окружности x 2 + y 2 = r 2, над ней или под ней. Примеры входных данных и соответствующих им выходных данных разработайте самостоятельно. Пример входных данныхПример выходных данных x >> 5 y >> 6 x = 5 y = 6 x >> 6 y >> 5 x = 5 y = 6 Напишите программу, которая производит обмен значений переменных x и y, если x больше y. Дан условный оператор: If a5 then c:=2 else c:=3 Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3? Пример входных данныхПример выходных данных -5y = - 1 0y = 0 5y = 1 Напишите программу, вычисляющую значение функции: -1 при x 0 y = Составьте программу для решения задачи: Известно, что 31 января 2011 года приходится на понедельник. Какие значения должны быть присвоены литерной переменной y в алгоритме, определяющем день недели для любого числа (chislo) января 2011 года? chislo:= chislo mod 7 если chislo=3 то у:="… если chislo=4 то у:="… если chislo=5 то у:="… если chislo=6 то у:="… если chislo=0 то у:="… если chislo=1 то у:="… если chislo=2 то у:="… Пример входных данныхПример выходных данных Координаты 1 – го поля >> 2 2 Координаты 2 – го поля >> 3 3 Поля одного цвета Координаты 1 – го поля >> 2 3 Координаты 2 – го поля >> 3 3 Поля разного цвета Координаты 1 – го поля >> 2 7 Координаты 2 – го поля >> 5 4 Поля одного цвета Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, являются ли эти поля полями одного цвета. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а - случайное число, меньшее 100). Ответ пользователя проверяется и комментируется."> >3, 4 Первая точк" title="Вопросы и задания Как на языке Паскаль записывается полное и неполное ветвление? Является ли условным оператором последовательность символов? а) if x=y then x:=0; y:=0 else write (z) в) if xb then d:=2; if a1, 2 Координаты 2-й точки>>3, 4 Первая точк"> title="Вопросы и задания Как на языке Паскаль записывается полное и неполное ветвление? Является ли условным оператором последовательность символов? а) if x=y then x:=0; y:=0 else write (z) в) if xb then d:=2; if a1, 2 Координаты 2-й точки>>3, 4 Первая точк">



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

Рис. 3.1 Команды ветвления: а) – в полной форме; б) , в) – в сокращенной– форме

Для программирования ветвлений используется оператор if , а для программирования выбора – операторы switch и break .

3.2 Операторы управления разветвляющимся вычислительным процессом

3.2.1 Логические выражения

Логическое выражение (условие) - выражение, которое содержит знаки операций отношения и/или знаки логических операций . Значением логического выражения может быть только 1, если логическое выражение есть ИСТИНА (true), или 0, если логическое выражение ЛОЖЬ (false).

Операции отношения являются бинарными и обозначаются следующим образом (приведены в порядке уменьшения приоритета):

< (меньше);

<= (меньше или равно);

> (больше);

>= (больше или равно);

== (равно);

!= (не равно).

Примеры: a=8.1, d<>(w-c).

Логические операции – это операции:

&& - логическое И (бинарная операция);

|| - логическое ИЛИ (бинарная операция);

! - логическое НЕ (унарная операция).

Логические операции имеют более низкий приоритет, чем операции отношения. Результаты выполнения логических операций приведены в таблицах 3.1-3.3.

Таблица 3.1 Таблица3.2 Таблица 3.3

Например, логическое выражение a>3 && c<7 при a=5, c=6 будет иметь значение ИСТИНА, а при a=3, c=8 – ЛОЖЬ; логическое выражение a>3 || c<7 при a=5, c=6 будет иметь значение ИСТИНА, при a=2, c=6 – ЛОЖЬ; при a=7 логическое выражение!a>2 будет иметь значение ЛОЖЬ.

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

Примеры записи логических выражений приведены в таблице 3.4.

Таблица 3.4

Таблица записи логических выражений

Условие

Логическое выражение

x>=a && x<=b

xb

или

x>=a && x<=b || x>=c && x<=d

Хотя бы одно из чисел x, y положительное

x>0 || y>0

Только одно из чисел x, y положительное

(x>0 && !y>0) || (y>0 && !x>0)

Ни одно из чисел x, y не является четным

x % 2 !=0 && y % 2 !=0

Точка (x,y) принадлежит заштрихованной области

x>=0 && x<=a && y>=0 && y<=b/a*x

Для программирования разветвляющихся алгоритмов используются: условный оператор , оператор выбора иоператор безусловного перехода .

1. Условный оператор имеет полную и сокращенную форму записи. Полная форма условного оператора имеет вид:

if логическое выражение then оператор_1 else оператор_2 ;

Вычисляется значение логического выражения оператор_1 , если же - false - оператор_2.

Сокращенная форма условного оператора имеет вид:

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

Вычисляется значение логического выражения ; если оно равно true, то выполняется оператор , записанный после then, если же - false, то этот оператор не выполняется.

Примеры :

if x>y

then z:=sqr(x)else z:=y;

Здесь в результате выполнения условного оператора переменная z в любом случае получает новое значение.

if (x>=2) and(x<4)then b:=sin(x);

Здесь, например, при x = 5 переменная b сохраняет то значение, которое она имела до выполнения условного оператора.

В условном операторе после служебных слов then или else записывается лишь один оператор; если необходимо выполнить несколько действий, то соответствующие операторы объединяются в составной оператор, который имеет вид: begin оператор_1 ;

оператор_2 ;

оператор_n

Пример : if x>y then begin min:=y; max:=x end

else begin min:=x; max:=y end;

2. С помощью оператора выбора можно выбрать один из любого количества вариантов. Оператор выбора имеет вид:

case < выражение> of

< константа_1 > : < оператор_1 > ;

< константа_2 > : < оператор_2 > ;

< константа_ n> : < оператор_ n> ;

else оператор

end ;

Сначала вычисляется значение выражения (имеющего порядковый тип), затем среди констант отыскивается константа, равная вычисленному значению. Выполняется оператор , записанный после найденной константы, и оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению выражения, то выполняется оператор , стоящий за словом else . Если же часть else оператор отсутствует, и в списке выбора нет нужной константы, то выполнение оператора выбора завершается.

Пример :case mof

12,1,2: writeln(‘зима’);

3,4,5: writeln(‘весна’);

6,7,8: writeln(‘лето‘);

9,10,11: writeln(‘осень’)

else writeln(‘ошибка в данных’)

end ;

3. Оператор безусловного перехода позволяет перейти к нужному оператору, при этом нарушается естественный порядок выполнения операторов. Оператор имеет вид: goto метка ;

В качестве метки используется идентификатор или целое число без знака (0-9999). Метка описывается в разделе label:

label метка _1,метка _2, метка_ n ;

Например: label 1,ab;

Одной меткой можно пометить только один оператор. Метка отделяется от помеченного оператора двоеточием.

метка:оператор ;

Например: ab: writeln(‘переход по метке’);

Пример : label t;

var x,y:real;

begin goto t; …..

t: y: =sqr(x); …..

Программирование циклических алгоритмов

Для программирования циклических алгоритмов используются операторы цикла. В языке Pascal различают три вида операторов цикла: for , while , repeat . Оператор цикла for имеет вид:

for параметр цикла := выражение_1 to выражение_2 do оператор ;

for параметр цикла :=выражение_1 downto выражение_2 do оператор;

параметр цикла - переменная порядкового типа;

выражение_1 - начальное значение параметра цикла;

выражение_2 – конечное значение параметра цикла.

Сначала вычисляются и запоминаются значения выражения_1 и выражения_2 . Далее проверяется: значение выражения_1 меньше или равно (для downto - больше или равно) значению выражения_2 . Если нет, то выполнение оператора цикла завершается, если же - да, то параметр цикла получает значение выражения_1 , выполняется оператор и параметр цикла получает следующее значение (для downto – предыдущее значение). Затем проверяется: параметр цикла меньше или равен (для downto - больше или равен) значению выражения_2 . Если да, то снова выполняется оператор и параметр цикла получает новое значение, если же - нет, то выполнение оператора цикла завершается.

Примеры :

for i:=1to 10do writeln(‘i=’,i);

for i:= 10downto 1do writeln(‘i=’,i);

Оператор цикла while имеет вид:

while логическое выражение do оператор ;

Пока значение логического выражения true, выполняется оператор , записанный после служебного слова do, как только значение станет false, оператор цикла завершит свою работу. Если значение выражения с самого начала false, то указанный в цикле оператор не выполнится ни разу.

Пример : i:=1;

while i<=10 do

begin writeln(‘i=’,i);

е nd;

Оператор цикла repeat имеет вид:

операторы

until логическое выражение ;

Операторы выполняются до тех пор, пока значение логического выражения не станет true. Поэтому, независимо от значения логического выражения , операторы , указанные в цикле repeat, выполнятся, по крайней мере, один раз.

Пример : i:=1;

repeat writeln(‘i=’,i);