Тема 3 Паскаль: Указания разветвления, Составной оператор и оператор перехода


Лекция Р_3

Тема: Указания разветвления

Цель: Познакомить учащихся с операторами, дать понятие разветвлений

План

1.  Составной оператор и оператор перехода

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

3.  указание варианта

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

1.Составной оператор и оператор перехода. Составной оператор — это несколько операторов, объединенных в одну группу (блок) с помощью служебных слов BEGIN и END. Эти слова называют операторными скобками. Составной оператор имеет следующую структуру:

BEGIN

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

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

<Оператор n>;

END;

Составной оператор может быть в любом месте программы, где допускается один оператор. Запись BEGIN END или ;; называется пустым оператором.

Пример 1. Рассмотрим составной оператор

BEGIN

Suma = Suma + Cina;

N = N + 1;

END;

Так можно вычислить, например, сумму выручки и количество проданного товара.

Оператор перехода. Чтобы реализовать разветвления и передать управление в нужное место, используют оператор перехода.

GOTO <отметка>

Отметку заранее объявляют в разделе объявления меток:

LABEL <список отметок>.

Если отметка (целое число) объявлена, то в программе должен быть такой фрагмент:

<Отметка> <оператор>.

Оператор GOTO используют редко.

2. Условный оператор. Полная форма условного оператора такова:

IF <условие> THEN <оператор 1> ELSE <оператор 2>

Действие оператора. Если условие подтверждается, то выполняется оператор 1, если нет — то оператор 2.

Пример 2. Если цена товара меньше 1000, то определим объем реализации М (количество проданного товара), иначе определить сумму выручки и количество проданного товара N. Условный оператор в соответствующей программе будет выглядеть

IF Cina <1000 THEN M = M + 1 ELSE

BEGIN

Suma = Suma + Cina;

N = N + 1

END;

Здесь оператор 1 — это оператор присваивания М = М + 1, а оператор 2 — составной оператор.

Рассмотрим Короткий условный оператор

IF <условие> THEN <оператор 1>

Действие оператора. Если условие истинно. То выполняется оператор 1, если нет, то оператор 1 не выполняется.

Пример 3:

IF Cina> = 1000 THEN

BEGIN

Suma = Suma + Cina;

N = N + 1

END;

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

Результатом выполнения логического выражения является логическое значение True или False. Операндами данные только булевого типа.

Логические выражения образуются за счет логических операций и круглых скобок.

Логические операции над данными типа BOOLEAN

Операнд 1 Операнд 2 Not And Or Xor
False True
True False
False False False False False
False True False True True
True False False True True
True True True True False

Полная форма указания разветвления выполняется следующим образом:

если условие истинно, то выполняется вказивка1, а затем указание, которая находится в программе после всей указания разветвления;

если условие ошибочное, то выполняется вказивка2, а затем указание, которая находится после указания разветвления.

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

если условие истинно, то выполняется вказивка1, а затем указание, которая находится в программе после всей указания разветвления;

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

Примечание: Если после служебного слова Then используется составлена указание, то в ней после каждой указания относится «,», а после служебного слова End «,» не ставится.

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

Указание варианта записывается в виде:

Case <селектор> of

Метка 1 <указание 1>;

Метка 2 <указание 2>;

……… ….

Метка N <указание N>

End;

Выражение, который записывается между служебным словом Case и Of, называется селектором. Селектор должен принадлежать к одному из целого, булевого, символьного типов или типа пользователя. Действительные и строчные типы в селекторах использовать нельзя.

Метки вариантов — константы, типы которых должны совпадать с типом селектора. Все метки вариантов должны быть разными.

Если одной указанию в указании варианта соответствует несколько меток, то они перечисляются через запятую.

Выполняется указание варианта следующим образом.

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

Метки варианта не нужно описывать в разделе меток Label и их нельзя использовать в указании безусловного перехода Goto.

Задача 1. Вычислить площадь треугольника по трем известным сторонам. Программа должна проверять корректность входных данных.

Рассмотрим программу Trykutnyk2.

PROGRAM Trykutnyk2 (input, output)

LABEL 222;

VAR a, b, c, Perym, piv, Ploshcha, Nova: real;

BEGIN

222: Write ( ‘Введите значение сторон:’); Read (a, b, c)

Perym = a + b + c;

Piv = Perym / 2;

Nova = (piv * (piv-a) * (piv-b) * (piv-c));

IF Nova> 0 THEN

BEGIN

Ploshcha = sqrt (Nova)

Writeln ( ‘Периметр =’, Perym: 8: 2, «Площадь = ‘, Ploshcha: 8: 2)

END

ELSE

BEGIN

Writeln ( ‘Данные некорректны. Введите другие ‘);

GOTO 222

END

END.

Выполним программу. На запрос компьютера введем следующие данные: 18, 25, 6. получим:

Данные некорректны. введите другие

Введите значение сторон 18 25 октября

Периметр = 53.00 Площадь = 74.67

Составить программу, которая определяет время года по порядковому номеру месяца.

Program PORA;

Var MONTH: integer;

Begin

Write ( ‘Введите номер месяца:’);

readln (MONTH)

if (MONTH <l) or (month> 12)

then writeln ( ‘Такого месяца нет «)

Else

Case MONTH of

3,4,5: writeln ( ‘Becнa’);

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

9,10,11: writeln ( ‘Ociнь’);

12 l, 2: writeln ( ‘3има’)

End;

End.

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

1.  Составить программу вычисления значения функции:

Х, если х <0;

В = 5, если 0 <= x <5;

5х, если х> = 5.

Решение.

Program PFUNCTION;

VarX, Y: real;

Begin

Write ( ‘X =’);

readln (X);

if X <0 then Y = X

Else if (0 <= X) and (X <5)

then Y = 5

else Y = 5 * X;

writeln ( ‘X =’, X, ‘Y =’, Y)

End.

2. Составить программу решения квадратного уравнения. Ах 2 + bх + с = 0

Решение.

Program KVADRAT;

VarA, B, C, D, Xl, X2: real;

Begin

writeln ( ‘Введите коэффициенты a, b, с:’);

Write ( ‘a =’);

Readln (A);

Write ( ‘b =’);

Readln (B)

Write ( ‘c =’);

Readln (C)

D = sqr (B) -4 * A * C;

If D <0 then writeln ( ‘Уравнение имеет комплексные корни «)

else

begin

Xl = (- B-sqrt (D)) / (2 * A)

X2 = (- B + sqrt (D)) / (2 * A)

writeln ( ‘Корни уравнения:’);

Writeln ( ‘Xl =’, Xl)

Writeln ( ‘X2 =’, X2)

End;

End.

[Всего голосов: 3    Средний: 5/5]

Читать  Лекция Паскаль 10 – Массивы, Объявления одномерного массива, Индексация элементов