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

Основы программирования на языке Паскаль. Основные понятия алгоритмического языка Паскаль. Учебное пособие для самостоятельной работы по дисциплине «И

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
911 Кб
Скачать

y

1

Искомое логическое выражение имеет вид

(х>=0) AND (у>=0) AND (х*х+у*у<=1)

0

1

x

 

 

 

Рис.

3. Иллюстрация к примеру 6.

 

 

3.4. Операции со строками

Для строк применимы операции конкатенации (+) и сравнения. Операция конкатенации присоединяет одну строку к другой.

Пример: VAR

str,str1,str2:STRING[80]; BEGIN

str1:= ′ Turbo ′; str2:= ′ Pascal ′: str:= str1+str2;

END.

В результате выполнения оператора str := str1+str2 переменная str получит значение ′ Turbo Pascal ′.

Сравнивать можно строки разной длины. Лексикографическое сравнение осуществляется слева направо в строке по ASCII – кодам (приложение 3), соответствующим символам. Считается, что отсутствующие символы в более короткой строке имеют код меньше кода любого присутствующего символа. Например, ′xs′ больше, чем ′x′.

3.5. Выражения

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

Вычисление значений выражений выполняется в определенном порядке. Начинается вычисление с определения переменных и констант, входящих в выражение. Дальнейшие действия выполняются в соответствии с их приоритетами. Так, в первую очередь, вычисляются выражения, заключенные в круглые скобки. Для любых двух вложенных друг в друга пар круглых скобок вычисляется сначала внутреннее выражение, затем внешнее. Далее вычисляются значе-

31

ния входящих в выражение функций и т.д. Приоритеты действий при вычислении выражений приведены в таблице 5.

Таблица 5

Приоритеты действий при вычислении выражений

Группа

Тип действий

 

Операции или элементы

1

Вычисление в круглых скобках

(

)

2

Вычисление значений функций

Функции

3

Унарные операции

NOT, - (одноместный минус)

4

Операции типа умножения

*, /, DIV,MOD,AND

5

Операции типа сложения

+, -, OR, XOR

6

Операции отношения

=,< >, <, <=, >, >=

Унарная (единичная) операция означает взятие противоположного элемента.

Упражнения к разделу

Упражнение 1. Даны три целых положительных числа I, J, K. Составьте логические выражения для определения:

1)является ли I делителем числа J и K одновременно;

2)все ли эти числа четные;

3)I, J, K точно делятся на 2,3 и 5;

4)лежат ли эти числа в диапазоне от 2 до 10;

5)какие символы имеют порядковые номера I, J, K?

Упражнение 2. Составьте программу ввода в машину пяти переменных символьного типа CH1,CH2,CH3,CH4,CH5 и определите, есть ли среди символов:

1)хотя бы один пробел;

2)цифра Ø или буква О;

3)хотя бы одна цифра;

4)буква О или буква W;

5)литеры, отличные от ‘*’.

4. СТАНДАРТНЫЕ ФУНКЦИИ ЯЗЫКА ПАСКАЛЬ

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

32

4.1. Арифметические функции

Арифметические функции можно использовать только с величинами целого и вещественного типа. Ниже приведены примеры записи на Паскале некоторых математических форм с указанием типа получаемого результата (табл. 6)

Например: FRAC(15.64)=0.64 INT(15.64)=15.0

 

 

2sin 4x x

 

 

 

 

 

Пример записи на языке Паскаль выражения e

 

3x

 

 

exp(abs((2*sin(4*x)+x)/(3*x)))

Таблица 6

Примеры записи на Паскале некоторых математических форм и типов получаемых результатов

Математическая форма

Запись на Паскале

Тип результата

׀x׀

ABS(X)

Совпадает с типом х

x2

SQR(X)

Совпадает с типом х

sin x

SIN(X)

Вещественный

cos x

COS(X)

Вещественный

arctg x

ARCTAN(X)

Вещественный

 

 

 

SQRT(X)

Вещественный

ln x

LN(X)

Вещественный

дробная часть числа

FRAC(X)

Вещественный

целая часть числа

INT(X)

Вещественный

Рассмотрим примеры программирования часто встречающихся выражений, не отраженных непосредственно в списке арифметических функций Паскаля:

Пример 1. Для возведения переменной х в некоторую степень a исполь-

зуется равенство

xa=ealnx при условии х>0.

Тогда выражение хa на языке Паскаль должно быть записано как exp(a*ln(x)).

Пример 2. Вычисление тригонометрической функции tg x=

 

запишем

 

как sin(x)/cos(x).

 

 

Аналогично для ctg x будет cos(x)/sin(x).

 

 

33

Пример 3. Для записи обратных тригонометрических функций вспомним

соотношения

 

 

 

arcsin x = arctg

 

 

 

 

 

 

 

 

 

arctan (x/sqrt(1-sqr(x)))

 

 

 

 

 

 

 

 

arccos x = arctg

 

 

arctan (sqrt(1-sqr(x))/x)

 

 

 

 

 

arcctg x = arctg

 

 

 

 

 

arctan (1/x)

 

 

Пример 4. Для вычисления логарифма с произвольным основанием ис-

пользуем формулу logb a =

 

 

 

и запишем такой логарифм как ln(a) / ln(b).

 

 

 

Для десятичного логарифма lgx запись приобретет вид ln(x) / ln(10)

Упражнения к разделу

Упражнение 1. Записать на языке Паскаль следующие выражения (первый уровень сложности)

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

б) | a + bx |

 

в) sin 8

 

 

 

г) cos2 x3

 

 

д) tg x

 

 

 

 

е) log2

 

 

 

 

 

 

 

 

 

 

ж) ch x

 

 

з) arctg 103

 

и) arcsin x

к) x-1

 

 

л) x8

 

 

 

 

м) x-5

н) x100

 

 

о) 21+x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

п)x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

р)

 

 

с) a + bx+

 

т) [( ax – b) x+c] x-d

у)

 

+

 

 

 

 

ф)

 

·

 

 

 

х)104·α - 3·

 

·β

 

 

 

 

 

 

 

 

ц) (1+

 

+

 

)/(1 +

 

)

ч) (x2 -3x-y)

 

 

ш)

 

 

 

 

 

 

| |

 

Упражнение 2. Записать в обычной математической форме следующие

выражения

 

 

 

 

 

 

 

 

а)

(p + q) / (r +s ) – p*q /(r * s)

 

 

 

б) 1Е3 + beta / (x2 – gamma * delta)

 

 

 

в) (-b + sqrt (sqr (b) – 4*a*c) )/ (2*a)

 

 

 

г)

a/b + (c + d) – (a – b)/b/c + 1E -8

 

 

 

д)

x1 = arctan( y2 – alpha )/2 * abs(x4 – ln(5) + y5 )/exp(-1)

 

 

 

34

Упражнение 3. Определить тип результата следующих выражений:

а) I*I + J*J + K*K

б) X<Y

в) SIN(X) + 2*COS(Y) + Z

г) I + SQRT(J),

если известно, что I, J, K : integer;

X,Y,Z : real.

Упражнение 4. Записать на языке Паскаль следующие выражения (второй уровень сложности)

а)

с=3,36 103+2sin(3,14+z)+׀x׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б)

z=

 

׀

 

 

 

 

 

׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

׀

 

 

 

 

 

 

׀

 

 

 

 

в)

w=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

г)

w=(ax+b-abx)e-(a+b)+ln ׀

 

 

 

׀

 

 

 

 

 

 

 

 

 

 

 

д)

b=8,36 10-1+(

 

 

 

 

– 1) arcctg ad +

 

 

 

 

 

- 2,23

 

 

 

 

 

 

 

 

 

е)

z=ln ׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ж)

v=

 

 

 

 

 

 

 

 

 

 

 

׀

 

 

׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

׀

׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

з)

z=

- 0,01

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и)

v=1,736 ׀ln(tg2

 

))׀ -arctg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

к)

v= ׀x׀ +

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

л) f= ׀

 

׀+13

 

+xy+ln ׀tg

 

 

׀

 

 

 

 

35

м) v=(a+b+sin2a)cos b-1 +

н) y=sin

 

1 x

3

2b ln cos d x ctgb

lg x2

о)

z

 

 

 

 

 

5

 

x 1

 

 

 

 

 

 

 

п)

y=3

 

 

 

 

׀

 

׀

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.2. Функции преобразования типа

Эти функции предназначены для преобразования типов величин. Они получают в качестве аргумента значение одного типа, а выдают в качестве результата значение другого типа (табл.7).

 

 

 

 

Таблица 7

 

Функции преобразования типов величин

 

 

 

 

 

 

 

Функция

Назначение

Тип аргумента

Тип результата

 

CHR(X)

преобразование ASCII кода в

целый тип в диапа-

символ,

соответ-

 

 

символ

зоне [0..255]

ствующий

данному

 

 

 

 

коду

 

 

ORD(X)

преобразование любого по-

порядковый

 

 

 

 

рядкового типа в целый тип

 

LONGINT

 

 

ROUND(X)

округление числа до бли-

вещественный

LONGINT

 

 

 

жайшего целого

 

 

 

 

TRUNC(X)

получение целой части числа

вещественный

LONGINT

 

 

Например:

 

CHR (98)=′ b′

ROUND (15.64)=16

ORD (′5′)=53

TRUNC (15.64)=15

4.3. Функции для величин порядкового типа

Эти функции позволяют выполнять действия над величинами порядкового (ординального) типа, к которым относятся целые, логический, символьный, перечисляемый и интервальный типы (табл. 8).

36

Таблица 8

Функции преобразования величин порядкового типа

Функция

Назначение

 

Тип аргумен-

Тип результата

 

 

 

та

 

ODD (X)

проверка величины Х на не-

LONGINT

TRUE (если аргумент не-

 

четность

 

 

четный),

 

 

 

 

FALSE (если аргумент

 

 

 

 

четный)

PRED (X)

определение

предыдущего

порядковый

порядковый того же типа

 

значения величины Х

 

 

 

определение

последующее-

порядковый

порядковый того же типа

SUCC (X)

го значения величины Х

 

 

Например:

ODD(4)=FALSE PRED(5)=4

ODD(5)=TRUE PRED(-2)=-3 PRED(′B′)=′A′

Упражнения к разделу

SUCC(4)=5 SUCC(-3)=-2 SUCC(′A′)=′B′

Упражнение 1 Определить тип и значения следующих выражений

1)(X AND Y OR NOT Z) AND NOT ((X OR Y) OR Y) AND X;

2)2*5+9 DIV 4 *3 + TRUNC (3.67);

3)15/4*2;

4)NOT X AND (X OR NOT Y) AND (XOR Y);

5)(2.5 + 0.68<= 2.8) OR Y AND X OR Z AND NOT X;

6)17/5/2+15 MOD 7;

7)((C-B)/A+B*C<ROUND (A)) OR Z AND NOT X;

8)ODD(C) OR X AND NOT ODD (C+15);

9)(′B′>′D′) OR (′5′< > ′9′) OR (PRED(′S′)<=SUCC(′W′));

10)(ORD(SUN)<ORD (TUE)) AND NOT (SUCC(зеленый)=синий);

где X=FALSE; Y=TRUE; Z=FALSE; A=36.2; B=-5.4; C=2, а определение типов цвет и DAY имеет вид

TYPE

Цвет = (красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый);

DAY = (SAT,SUN,MON,TUE,WED,THU,FRI);

Упражнение 2 Приведенная ниже программа вычисляет Y(x)=3-x+1sin(x) при заданном х, печатает значения Y11 и Y22, соответствующие значениям

37

функций TRUNC(Y) и ROUND(Y), и проверяет принадлежность точки с координатами (x1,y1) заштрихованной области, показанной на рис.3.

PROGRAM UPR;

VAR X,X1,Y1,Y:REAL; BEGIN

WRITELN(′ВВЕДИТЕ Х:′); READLN(X); Y:=EXP((-X+1)*LN(3))*SIN(X);

WRITELN (`ПРИ Х=′,Х:8:3, ′_ _Y=′, Y:8:4);

WRITELN (′Y11=′,TRUNC(Y):4, ′_ _Y22=′, ROUND(Y):4); WRITELN (′ВВЕДИТЕ КООРДИНАТЫ: X1,Y1′); READLN (X1,Y1);

WRITELN ((X1>=0) AND (Y1>=0) AND (SQR(X)+SQR(Y)<=1)); WRITELN (′ ′:10, ′ПРОГРАММУ СОСТАВИЛ ИВАНОВ′)

END.

Задания к упражнению 2. Вычислить значение Y11 и Y22 для функций, предложенных в следующих заданиях (а) и проверить принадлежность исследуемых точек (б) заштрихованной области, показанной на рис.3.

1.

а) Y=2-xcos(x)+׀ ׀ при х=4.741;

 

б) координаты исследуемой точки (0.5;0.5);

 

 

 

 

 

 

 

 

 

 

2.

а) Y= -

при х=2.312;

 

б) координаты исследуемой точки (1,5;0,5);

 

 

 

 

 

 

 

3. а) Y=׀

׀ + sin x при х=12,7409;

 

б) координаты исследуемой точки (0,2;0,9);

4.

а) Y=x

при х=32.872

б) координаты исследуемой точки (0,75; -0,3)

5.

а) y= tg x +׀x׀

при х= - 2.6312

б) координаты исследуемой точки (0.2;0.45);

6.

а) y=1 -

 

 

 

при х= - 0.387

 

 

б) координаты исследуемой точки (0.5;- 0,25);

7.

а) y=ch ׀ x+1׀

при х=4.352

б) координаты исследуемой точки (0.0;0.0);

8.

а) y=arcsin x+

при x=0.112;

б) координаты исследуемой точки: (1.0,1.5);

38

9.а) y=sin arctg x при x=-0.7129;

б) координаты исследуемой точки: (-0.5;0.9);

10.

а) y=5 arctg x

 

при х=-4.4172;

 

б) координаты исследуемой точки: (1.5;0.0);

11.

а) y=cos (arcctg x - 1)

при х= - 2.2117;

 

б) координаты исследуемой точки: (0.9;0.1)

12.

а) y= arcctg (

 

 

 

 

 

)

 

 

при х=2.081;

 

 

 

 

 

 

 

 

 

б) координаты исследуемой точки : (0.95;0.4);

13.

а) y=

+ sin2(

 

 

) при x= -0.91;

 

 

б) координаты исследуемой точки: (0.8;0.65);

14.

а) y=arcos ( sin

 

 

)

 

при х= - 0.485;

 

 

 

 

б) координаты исследуемой точки : (0.45;0.55);

15.

а) y= ln (arcos

 

 

) при х=1.791;

 

 

б) координаты исследуемой точки: (0.58;0.92).

5. СТРУКТУРА ПРОГРАММЫ

Программа, написанная на языке Паскаль, состоит из следующих разде-

лов:

-заголовок программы;

-раздел объявления модулей;

-раздел объявления меток;

-раздел объявления констант;

-раздел объявления типов;

-раздел объявления переменных;

-раздел объявления процедур и функций;

-радел операторов (обязательная часть).

Формат программы на языке Паскаль:

PROGRAM имя программы;

USES

модули; LABEL

метки; CONST

объявление констант;

TYPE

определение типов данных;

39

VAR

объявление переменных:

PROCEDURE имя процедуры (параметры);

USES

модули;

LABEL

метки; CONST

объявление констант; ТУРЕ

определение типов данных;

VAR

объявление переменных; PROCEDURE и FUNCTION; BEGIN

операторы; END;

FUNCTION имя функции (параметры): тип данных; USES

модули; LABEL

метки; CONST

объявление констант;

TYPE

определение типов данных; VAR

объявление переменных;

PROCEDURE и FUNCTION; BEGIN

операторы; END;

BEGIN

операторы; END.

5.1.Заголовок программы

Любая программа на языке Паскаль состоит из заголовка и тела (блока) программы. Заголовок программы включает ключевое слово PROGRAM и имя программы (по усмотрению программиста). Например,

PROGRAM IT_IS_MY_FIRST_PROGRAM;

Тело программы может включать разделы (см. выше): описание меток,

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]