Лабораторная работа №2 по паскалю
.doc
Министерство транспорта Российской Федерации
Федеральное агентство железнодорожного транспорта
ФГБОУ ВПО «Дальневосточный государственный
университет путей сообщения»
Кафедра «Информационные технологии и системы»
В.И. Шестухина, Е.С. Ямполь
ЛАБОРАТОРНАЯ РАБОТА
РАЗВЕТВЛЕННЫЕ ПРОГРАММЫ
Хабаровск
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.
	
		 
		

























