shkolageo.ru 1

УРОКИ № 3-4

ТЕМА: " Программирование линейных алгоритмов.

Стандартные математические функции Паскаля. Модуль CRT".


1. Основные операции в Паскале.

В ТП 7.0 все операции делятся на: математические, логические, операции с символами и строкам, операции над множествами, операции отношения, операции получения адреса.

Математические операции (см. Раздатку):
+, - (сложение, вычитание, результат м.б. целым)
*, / (умножение, деление, результат только вещественное число)
DIV - деление нацело (A DIV B, A и B - целые числа, результат - целое число)
MOD - остаток от деления.
Приоритет выполнения математических операций:
1)Функции, операции в скобках.
2) *, /, DIV, MOD
3) +, -
4) >, <, =, <>, >=, <=,=.


Пример 1.


19 div 4=4;

12 div 4=3;

-21 div 4=-5;

-7 div (-4)=1;


19 mod 4=3;

12 mod 4=0;

-21 mod 4=-1;

-7 mod (-4)=-3.



Пример 2. Вычислить значения выражений, если A=2,5; B=7,8; C=-17,3; M=5; X=8,7; E=TRUE.
а). (A+B)/C*M; Ответ: -2.98
б). 2+x*x/(x+(a+b)/5); Ответ: 9.03
в). (a

2. Стандартные математические функции Турбо-Паскаля

Функция

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

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

Тип значения

Ариф. квадрат

SQR(x)

Целый


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


Целый

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

Абсол. величина

ABS(x)

Целый

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

Целый

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

Ариф. корень (x > 0)

SQRT(x)

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

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

Случайное число( 0 <=y< 1 )

Random

-

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

Случайное число( 0 <=y< x )

Random(x)

Word

Word

Число π

Pi

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

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

Экспонента ( ех, где e= 2. 718282. . . )

Exp(x)

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

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

Натуральный логарифм ( х > 0 )

Ln(x)

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

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

Косинус (рад)

COS(x)

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

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

Синус(рад)

SIN(x)


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

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

Арктангенс( -Pi/2

ARCTAN(x)

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

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

Натуральный логарифм

LN(x)

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

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

Frac(x)

дробная часть "х"

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

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

Int(x)

целая часть "х"

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

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

Succ(c)

следующий за "с" символ

Порядковый

Порядковый

Pred(c)

предшествующий "с" символ

Порядковый

Порядковый

Возведение в степень
Y=XN
Y=EN*LN X
Y:=EXP(N*LN(X)) – запись в Паскале.


3. Модуль CRT.

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

Каждый модуль выглядит как отдельная Паскаль программа.

В Турбо Паскале имеется 8 стандартных модулей: SYSTEM, OVERLAY, GRAPH, STRING, DOS, CRT, PRINTER, WinDos - в файле TURBO.TPL.


Модуль CRT - в нем сосредоточены процедуры и функции, обеспечивающие управление текстовым режимом работы экрана.

№№

Процедуры и функции

Назначение

1

CLREOL

Удаляет все символы, начиная от позиции курсора до конца строки, без перемещения курсора

2

CLRSCR

Очищает экран и помещает курсор в верхний левый угол

3

DELAY

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

4

DELLINE

Удаляет строку, в которой находится курсор, и перемещает все расположенные ниже строки на одну строку вверх

5

GOTOXY (a,b)

Устанавливает курсор в позицию экрана с координатами (X,Y)

6

HighVideo

Устанавливает повышенную яркость символов

7

InsLine

Вставляет пустую строку на месте расположения курсора

8

KeyPressed

Возвращает значение TRUE, если клавиша на клавиатуре нажата, и FALSE - в противном случае

9

LowVideo

Выключает повышенную яркость символов


10

NormVideo

Устанавливает стандартную яркость символов

11

NoSound

Выключает внутренний динамик

12

ReadKey

Cчитывает символ с клавиатуры

13

Sound

Включает внутренний динамик

14

TextBackground (N)

Устанавливает цвет фона

15

TextColor (N)

Устанавливает цвет символов

16

TextMode

Устанавливает конкретный текстовый режим

17

Window (a1,b1,a2,b2)

Отображает на экране текстовое окно



Пример 3. (primer1.pas)
PROGRAM A;
USES CRT;
BEGIN
CLRSCR;
GOTOXY (10,10);

TEXTCOLOR(red); {красный цвет текста}
WRITELN('Мы изучает Турбо-Паскаль');
END.


Green –зеленый

Yellow-желтый

White – белый

Red - красный



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


III Закрепление материала

Пример 4. На доске совместно с учащимися разбирается пример программы возведения положительного числа “x” в степень”n”, т. е. y=xn. Расчет производится по формуле: y=en*ln(x).

Program N_2; {возведение положительного числа в степень}

Const S='введите значение';

Var n, x, y: real;

BEGIN

Writeln('Возведение положительного числа x степень n');

Writeln(S, ' аргумента х>0'); Readln(x);

Write(S, ' показателя степени n='); Readln(n);

y:=exp(n*ln(x));

Writeln('результат y=', y:-10:6); writeln('Нажмите Enter');

readln; {задержка экрана до нажатия Enter}


END.


IV. Практическая работа на ЭВМ.

Задача 1. Набрать на компьютере программы к примерам 3, 4. Получить результаты.

Задача 2. Найти значение функции Y(X)= |х+4|-|x2-3x+6|, при заданном X. Затем вычислить:
Y1 - целую часть числа Y путем отбрасывания дробной части;
Y2 – округление числа Y до целого;
Сохраните программу под именем zadacha.pas

V. Самостоятельная работа на компьютере (по вариантам)

I вариант.

1. Рассчитать площадь треугольника по формуле Герона: S = , где p=(a+b+c)/2 – полупериметр, a, b, c - стороны треугольника (исходные данные ).

II вариант

1. Вычислить площадь круга и длину окружности S=p * R2, L=2* p *R , радиус окружности R (исходные данные)

Для разложения целого числа на цифры удобно применять операции: MOD и DIV. Например, если дано трехзначное число "N" ( "N" соответствует "X1X2X3" ), то цифры: X1X2X3, составляющие это число определяются блоком операторов:



X3:= N mod 10;

N:= N div 10; X2:= N mod 10;

N:= N div 10; X1:= N;


Если требуется определить, делится ли вещественное число "A" нацело на число "B", то можно применять функции Frac(x); и Int(x); например:


x:= A/B;

If Frac(x) = 0 then writeln('Число "A" делится нацело на число "B"');

If Int(x) = x then writeln('Число "A" делится нацело на число "B"');


IV. Домашнее задание.


  1. Выучить конспект.

  2. Написать программы на Паскале для решения задач:

  1. Найти целую часть и остаток от деления целого числа а на целое число b.(primer2.pas)

  2. Найти сумму цифр заданного трехзначного числа. (primer3.pas)


Операции в Паскале

В Турбо-Паскале применяются следующие условные знаки и служебные слова для описания различных операций:

Приоритет операции

Условный знак

Выражение

Название операции

Тип переменных в выражении

Тип результата выполнения операции

Логические операции

1

not

not A

логическое"не"

логический целый

логический целый

2

and


A and B

логическое"и"

логический целый

логический целый

3

or

A or B

логическое"или"

логический целый

логический целый

3

хor

A хor B

Логическое исключающее"или"

логический целый

логический целый

Математические операции

2

*

X * Y

умножение

целый

целый при умножении

2

/

X / Y

деление

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

смешанный для целых чисел, иначе вещественный

2

div

N div M

Деление (целая часть при делении)

целый

целый

2

mod

N mod M

остаток от деления


целый

целый

3

+

X + Y

сложение

целый смешанный вещественный

целый при операции с целыми числами, иначе вещественный

3

-

X - Y

вычитание

целый смешанный вещественный

целый при операции с целыми числами, иначе вещественный

Операции сравнения

4

=

X = Y

равно

число = число

строка=символ

строка=строка

( аналогично для всех операций сравнения )

логический


4

<>

X <> Y

не равно

4

>

X > Y

больше

4

<

X < Y

меньше

4

>=

X >= Y


больше или равно




<=

X <= Y

меньше или равно



Отметим, что операции в скобках имеют высший приоритет, т. е. сначала выполняются операции в скобках, в том числе вычисление аргументов и значения функции. Операции одинакового приоритета выполняются слева направо, например a/c*b соответствует (a/c)*b.

Стандартные математические процедуры Турбо-Паскаля

Наименование процедуры

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

Тип значения

Результат вычисления

Математические процедуры

Inc(x)

целый

целый

Увеличивает "х" на 1 ( x:=x+1; )

Dec(x)

целый

целый

Уменьшает "х" на 1 ( x:=x-1; )

Inc(x, n)

целый

целый

Увеличивает "х" на n ( x:=x+1; )

Dec(x, n)

целый

целый

Уменьшает "х" на n ( x:=x-1; )

Процедуры преобразования типов переменных


Str(x, s)

x-целый или вещественный

s-строковый

Последовательность символов "s" из цифр числа "x"

Val(s, v, cod)

s-строковый

v-целый или вещественный

cod- целый

Двоичная форма числа "v" последовательности "s" cod=0 (код ошибки)

Функции преобразования типов переменных

Trunc(x)

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

LongInt

целая часть "х"

Round(x)

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

LongInt

округление "х" до целого

Int (x)

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

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

Целая часть значения «x»

Frac (x)

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

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

Дробная часть «x»

Odd(x)

целый

логический

возвращает True если"х" - нечетное число

Сhr(x)

Byte

Char

Символ ASCII кода "х"


Ord(c)

Char

Порядковый

Byte

LongInt

ASCII код символа "с" Порядковый номер символа "с"

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


При вызове процедура производит определенные действия и может возвращать значения параметров. Процедура может не иметь параметров, например, для инициализации распределения случайных чисел вызывается процедура Randomize;. Процедуры могут включать параметры, которые необходимо задать при вызове процедуры и параметры, которые возвращают значения после выполнения процедуры. Например, при вызове процедуры Str(x, s); параметр "x" должен быть задан, а параметр "S" возвращает строковый вид числа "x". В некоторых процедурах параметры изменяют свое значение, Например, процедура Inc(x); увеличивает значение "x" на единицу, т. е. возвращает новое значение "x", что соответствует оператору x:=x+1; Таким образом, при вызове процедуры необходимо знать назначение и тип задаваемых параметров.