Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №2 по паскалю

.doc
Скачиваний:
27
Добавлен:
16.03.2016
Размер:
1.03 Mб
Скачать

Министерство транспорта Российской Федерации

Федеральное агентство железнодорожного транспорта

ФГБОУ ВПО «Дальневосточный государственный

университет путей сообщения»

Кафедра «Информационные технологии и системы»

В.И. Шестухина, Е.С. Ямполь

ЛАБОРАТОРНАЯ РАБОТА

РАЗВЕТВЛЕННЫЕ ПРОГРАММЫ

Хабаровск

2013

РАЗВЕТВЛЕННЫЕ ПРОГРАММЫ

Цель работы: создание алгоритмов и программ с разветвлением.

ЗАДАНИЕ

ПОПАДАНИЕ ТОЧКИ В ОБЛАСТЬ

Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости (с контролем ввода по переменной b).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

ОПЕРАТОРЫ ПЕРЕХОДА

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

1). Безусловный оператор перехода

GOTO метка

Например: goto 20.

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

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

А). Полная форма условного оператора

Блок-схема полного условного оператора представлена на рисунке.

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

IF Логическое THEN Оператор 1 ELSE Оператор 2;

(если) выражение (тогда) (иначе)

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

Примечание: Точка с запятой перед словом ELSE не ставится.

Операторы 1 и 2 могут быть простыми или составными.

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

Begin …End;

Например:

А) Простой оператор

IF x<=0 THEN к:=к+1 ELSE l:=l+5;

Б) Составной оператор

IF (x<y) THEN begin x:=y*x; y:=y/k end ELSE begin x:=x+h; y:=y-h end;

2) Сокращенная форма условного оператора

Блок-схема сокращенного условного оператора представлена на рисунке

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

IF Логическое THEN Оператор;

выражение

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

Например:

IF x>0 THEN Z:=x;

IF x<>Y THEN begin c:=y*x; Writeln('C= ', c:8:2) end;

Условный оператор может иметь вложенную конструкцию (после слов THEN или ELSE опять может использоваться условный оператор). ELSE всегда относится к ближайшему слева THEN.

В тех случаях, когда требуется проверить несколько условий, применяется сложный условный оператор. При этом используются логические операции and, or, not. В этом случаи логические выражения, соединенные этими операциями, заключаются в круглые скобки.

3).ОПЕРАТОР ВАРИАНТА (выбора) CASE.

Характерной чертой некоторых алгоритмов является широкая разветвленность задаваемого ими вычислительного процесса. В этом случае лучше применить оператор выбора.

Общий формат оператора таков:

CASE селектор OF

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

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

................

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

[ELSE альтернативный оператор]

END;

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

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

Турбо-Паскаль допускает использование в операторе CASE ключевого слова ELSE.

ПРИМЕРЫ

А) Числовые метки

...........

Var i,m:integer

Begin

...............

CASE i OF

0: m:= 0;

1: m:= -1;

2: m:= 1

End;

...............

End.

Б) Символьные метки

.......... Var Symbol:Char;

Begin

...............

CASE Symbol OF

'=': k:=1;

'!': k:=2;

'.': k:=3;

End;

................

End.

В) Альтернативный оператор

Label Final;

Var

Operator:Char; Rez:integer;

k:integer;

Begin

...............

CASE Operator OF

'+': Rez:=Rez+1;

'-': Rez:=Rez-1

ELSE GOTO Final End;

Final:..............

End.

Оператору может предшествовать не одна метка, а список меток этого варианта:

Var i,m:integer;

Begin

...................

CASE i OF

0: m:=0;

1,2,3: m:=4;

4: m:=-1

End;

...................

End.

ПРИМЕР

Определить, принадлежит ли точка с координатами (x,y) заштрихованной части плоскости (с контролем ввода по переменной b).

Блок-схема

Текст программы

Program primer;

Label 10;

Var b, x, y: real;

Begin

{Ввод переменной b с контролем}

10: Writeln(‘Введите b’);

Readln(b);

If b<=0 then begin writeln(‘Некорректное значение b, повторите ввод b’); goto 10; end;

{Ввод переменных x и y – координаты точки }

Writeln(‘Введите x, y’);

Readln(x,y);

{Проверка на принадлежность точки заштрихованной области }

If (sqr(x)+sqr(y)<=sqr(b)) and (y<=b/2) then writeln(‘Точка принадлежит области’) else writeln(‘Точка не принадлежит области’);

Readln;

End.

2