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

лабораторные на Pasca (Кудрявцев)l

.pdf
Скачиваний:
32
Добавлен:
18.03.2015
Размер:
1.63 Mб
Скачать

Операции отношений. Логические операции

 

 

 

53

9)

y

 

 

10)

y

 

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

1

x

1

 

 

1 x

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

11)

y

 

 

12)

y

 

 

y = −x

1

y = x

 

 

1

 

 

1

 

1

x

1

 

1

x

 

1

 

 

 

1

 

 

13)

y

 

 

14)

y

 

 

 

1

 

 

 

1

 

 

1

 

1

x

1

 

1

x

 

1

 

 

 

1

y = −x

 

 

 

 

 

 

15)

y

 

 

16)

y

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

 

1

 

1

x

1

 

1

x

 

1

 

 

 

1

 

 

54

 

 

 

 

 

Лабораторная работа № 4

17)

 

y

 

 

18)

y

 

 

 

 

1

 

 

 

 

 

 

 

1

 

1

x

 

1

2

x

 

 

1

 

 

 

 

 

 

19)

 

y

 

 

20)

y

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

1

y = x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

 

1

x

1

 

1

x

 

 

1

 

 

 

1

 

 

21)

 

y

 

 

22)

y

 

 

 

 

 

 

 

 

 

 

y = −x

1

y = x

 

1

 

 

 

 

 

 

 

 

 

1

 

1

x

1

 

1

x

 

 

1

 

 

 

1

 

 

23)

 

y

 

 

24)

y

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

1

 

1

x

 

1

2

x

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

Операции отношений. Логические операции

 

55

 

 

 

 

25)

y

26)

y

 

 

1

1

 

1

 

1 x

1

1 x

 

 

 

 

 

 

1

 

 

1

 

 

 

 

27)

y

28)

y

 

 

 

2

 

 

1

1

1

x

1

1 x

29)

y

30)

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

1

 

 

2

 

 

 

 

 

 

3

3 x

5 2

2

5 x

 

2

 

 

 

 

31)

 

32)

 

 

 

 

y

y = ex

y

 

y = ex

 

1

 

2

 

 

 

 

1

1 x

1 1 x

1

56

Лабораторная работа № 4

 

 

33)

y

2

1

y = −x2 +1

35)

y

1

1

1

1

37)

y

1

1

1

39)

y

1

1

1

34)

y 2

1

x

1

1

x

36)

y

1

x

1

1

x

 

 

1

38)y

2

1

x

1

1

x

 

1

 

40)

 

 

 

y

 

 

1

x

1

x

1

57

Лабораторная работа № 5

УСЛОВНЫЙ И СОСТАВНОЙОПЕРАТОРЫ

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

1) if B then S1

{если В то S1}

2) if B then S1 else S2

{если В то S1 иначе S2}

где В выражение булевскоготипа; S1 и S2 отдельные операторы или операторы, сгруппированные вместе при помощи операторных скобок begin .. end. Такой оператор называется составным.

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

В качестве выражений булевскоготипа используются отношения. В общем случае отношения это два выражения, разделенные одним из знаков =, <>, >=, <=, <, >.

Для условного оператора первого вида, если выражение В при- нимает значение True, выполняется оператор S1, стоящий после then. Если же выражение B принимает значение False, то этот опе- ратор не выполняется. Например:

if x > у then x := 2.5.

Если значение x > у, то выполнится оператор x := 2.5 и переменная х примет значение 2.5; если же значение х <= у, т.е. выражение х > у ложно, то оператор х := 2.5 не выполнится и значение х не изменит- ся.

Для условного оператора второго вида, если выражение В при- нимает значение True, выполняется оператор S1, стоящий после then, a S2 не выполняется. Если выражение В принимает значение False, то выполняется оператор S2, стоящий после else, a S1 не вы- полняется. Например:

if х > у then х := 2.5 else y := 0.0.

При этом, если х больше у, т.е. выражение х > у истинно, х при- сваивается значение 2.5, а у останется без изменения. Если же зна-

58

Лабораторная работа № 5

 

 

чение х <= у, т.е. выражение х > у ложно, то у присваивается значе- ние 0.0, а значение х не изменится.

Следует помнить, что условный оператор управляет только одним оператором, поэтому, если требуется произвести более одного дей- ствия, необходимо использовать составной оператор. Например, необходимоприсвоить целым переменным значения 1 и 5, если па- раметр а < 0, и нули в противном случае.

Оператор If запишется следующим образом:

if а < 0 then begin х := 1; y := 5 end else begin х := 0; y := 0 end;

На операторы, стоящие после then и else, не наложены огра- ничения. Особый интерес представляет случай, когда эти опера- торы являются условными. Рассмотрим возможные варианты:

1. В условном операторе первого вида if B1 then S1 оператор S1 мо- жет быть условным оператором первого вида, тогда будем иметь следующую конструкцию:

if B1 then if B2 then S1.

Вэтом случае оператор определяется однозначно.

Вусловном операторе первого вида оператор S1 может быть ус- ловным оператором второго вида, тогда будем иметь следующую конструкцию:

if B1 then if B2 then S1 else S2.

B этом случае возникает вопрос: какому then соответствует else? Для обеспечения однозначности в Turbo Pascal принято соглашение о том. что каждому else соответствует предыдущий свободный then.

2. В условном операторе второго вида If B1 then S1 else S2 в качест- ве операторов S1 и S2 также могут использоваться условные опера- торы как первого, так и второго вида. Рассмотрим следующий слу- чай: S1 условный оператор первого вида, S2 не является услов- ным оператором. Будемиметь конструкцию:

if B1 then begin if B2 then S1 end else S2;

Легко видеть, что в этом случае оператор S1 необходимозаключить в операторные скобки. Их отсутствие привело бы к конструкции,

Условный и составной операторы

59

 

 

рассмотренной выше. Рассмотрим примеры использования услов- ного оператора.

Пример 1. Составить проаписать программу вычисления

ì0, если

x 0

.

y = í

 

î x3 , если x > 0

Program Primer; Var

х, у: real; Begin

write('х := '); readln(х); if х <= 0 then y := 0

else y := x x x; writeln(y: 6: 2);

readln;

End.

Пример 2. Даны действительные числа а, b, с (а <> 0). Составить программу, выясняющую, имеет ли уравнение ах2 + bх + с = 0 дей- ствительные корни. Если действительные корни имеются, то найти их. В противном случае ответом должно служить сообщение, что действительных корней нет.

Program Korni;

Var

a,b,c,x1,x2,d: real; Begin

write('a,b,c:= '); readln(a,b,c); d := sqr(b)–4 a c;

if d<0 then writeln('действительных корней нет') else

begin

d:= sqrt(d); a:= 2 a;

x1:= (–b+d)/a; x2:= (–b–d)/a;

writeln('x1 = ',x1: 6: 2,'x2 = ',x2: 6: 2) end

End.

60

Лабораторная работа № 5

 

 

Пример 3. Даны действительные числа х, у, z. Составить про- грамму, вычисляющую max(x, y, z).

Вариант 1.

Program Max; Var

х, у, z, m: real; Begin

readln (x, y, z);

if х > у then if х > z then m := х else m := z else if y > z then m := y else m := z;

writeln ('max = ', m: 6: 3); readln;

End.

Вариант 2.

Program Max; Var

х, y, z, m: real; Begin

readln (x, y, z);

if (х > y) and (х > z) then m := х

else if y > z then m := y else m := z;

writeln ('max = ', m: 6: 3); readln;

End.

Вариант 3.

Program Max; Var

х, y, z. m: real; t: boolean;

Begin

readln (x, y, z);

t := (х > y) and (х > z); if t then m := х

else if y > z then m := y else m := z; writeln ('max = ', m: 6: 3) ;

readln;

End.

Условный и составной операторы

61

 

 

КОНТРОЛЬНЫЕ ЗАДАНИЯ

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

 

ì

 

3x

3

-

 

 

 

1

,

если

x < 0;

1)

ï

 

 

 

 

 

 

 

 

 

x 2

f (x ) = í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x ³ 0.

 

î2sin(cos4x ), если

 

ì

 

 

2

 

+ ln(-px ),

 

если

x < 0;

2)

ïx

 

 

 

 

f (x ) = í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1+ x 3 ,

 

 

если

x ³ 0.

 

ï

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3)

ìln(x + 1),

 

если

 

x ³ 0;

f (x ) = í

 

 

 

 

- x ×e 2x ,

если

 

x < 0.

 

e x

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

 

 

+ e

x

,

 

если

 

x ³ 0;

 

 

 

 

x

 

 

 

4)

ïe

 

 

 

 

 

 

 

 

 

f (x ) = í

 

 

 

 

 

 

 

 

 

 

 

 

 

если

 

x < 0.

 

ïsin2 x ,

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5)

ì1.9x + 3,

 

если

 

x < 0;

f (x ) = í

 

 

 

 

 

 

 

 

 

 

 

 

 

если

 

x ³ 0.

 

î cosx ×etg 2x ,

 

 

ì

 

 

 

p

 

,

 

 

 

 

если

x < -1;

 

ï

 

 

 

 

 

 

 

 

 

 

4x

 

 

 

 

6)

ï

 

 

 

 

 

 

 

 

 

 

 

 

если

-1 £ x £ 1;

f (x ) = íarctgx ,

 

 

 

ï

 

 

 

 

xπ

 

 

 

 

если

 

 

x >1.

 

 

ï

 

 

 

 

 

4

,

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

 

 

 

0,

 

 

 

 

если

 

x < 1;

 

7)

ï

 

 

 

 

 

 

 

 

 

 

 

 

если

1£ x £ 2;

f (x ) = íarcctgx ,

 

ï

25 - x

2

,

если

 

x > 2.

 

 

î

 

 

 

 

ì

 

2

- 3x

+ 2,

ïx

 

ï

 

 

1

 

 

 

3

 

 

 

8) f (x ) = í

 

 

 

- x

 

 

,

 

 

 

x

 

 

ï

 

 

 

 

 

 

 

 

 

 

ï

e

3x

 

+

 

x ,

î

 

 

 

ìln(x + 2),

ï

 

 

 

 

 

 

 

 

 

 

 

 

x 3 - x 2 ,

9) f (x ) = í

 

ï

 

 

x

2

,

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если

-5 < x £ 3;

если

x £ -5;

если

x > 3.

если

0 < x £ 3;

если

x > 3;

если

x > 3.

62

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Лабораторная работа № 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

3

 

+1,

 

 

 

 

 

 

 

 

если

 

x < -2;

 

 

ïx

 

 

 

 

 

 

 

 

 

 

 

10)

f (x ) =

x 2 + 7,

 

 

 

 

 

если -2 £ x <1;

í

 

 

 

 

 

 

 

ï

 

 

lg(x

2

+ 2),

если

 

x ³ 1.

 

 

ï

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì 2x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

+1,

 

 

если

 

x < 0;

11)

f (x ) =

ïe

 

 

 

 

 

 

 

 

í

 

 

 

,

 

 

 

 

 

 

 

 

 

если

 

x ³ 0.

 

 

ï4

x

 

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

 

 

 

x

,

 

 

 

 

 

 

 

если

x < 0;

12)

f (x ) = í x +e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

îx 2 + sin(px ),

если

x ³ 0.

 

 

ì

x

 

+1,

 

 

 

 

 

 

если

x < 0;

13)

f (x ) =

ïe

 

 

 

 

 

 

 

 

í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

x +1,

 

 

 

 

 

если

x ³ 0.

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x +1

,

 

 

 

 

 

 

 

 

если

x > 0;

14)

f (x ) =

ïe

 

 

 

 

 

 

 

 

 

 

 

 

 

í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

если

x £ 0.

 

 

ïcos3x - 7 x 2 ,

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15)

f (x ) =

ìsin x cos2x ,

 

 

если

x < 0;

í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x +e 2x ,

 

 

если

x ³ 0.

 

 

î

 

 

 

 

ì lg(1+ x 2 ),

 

если

0 < x £ 5;

16)

f (x ) =

ï1+ x 3 + x 5 ,

 

если

 

x > 5;

 

 

í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

4,

 

 

 

 

 

 

 

если

 

x £ 0.

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

sin x ,

 

 

если

 

x < -1;

 

 

ï

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17)

f (x ) =

x 3 +e x ,

 

 

если

-1

£ x < 1;

í

 

 

 

 

ïlg(x 3 + 7x ),

 

 

если

 

 

x ³ 1.

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì ln(e x + 1),

 

если

0 < x £ 3;

18)

f (x ) =

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

если

x > 3;

í3x 2 + 2x 3 ,

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e 2x + x 4 ,

 

если

x £ 0.

 

 

î