Вещественные десятичные числа с плавающей точкой записываются в экспоненциальном виде: mE±p, где m – мантисса (целое или дробное число с десятичной точкой), Е означает десять в степени, р – порядок (целое число), ± знак порядка.
Например, рассмотрим число -123.4567 Оно представлено в виде с фиксированной точкой. Его можно записать в виде с плавающей точкой следующим образом
-123.4567Е00 или –12345.67Е-02 или -1.234567Е02
В Паскале, кроме типа REAL, существуют и другие вещественные типы (табл. 1).
Таблица 1
Тип | Диапазон | Мантисса | Требуемая память (байт) |
REAL | 2.9*10-39...1.7*1038 | 11-12 | 6 |
SINGLE | 1.5*10-45...3.4*1038 | 7-8 | 4 |
DOUBLE | 5.0*10-324...1.7*10308 | 15-16 | 8 |
EXTENDED | 1.9*10-4951...1.1*104932 | 19-20 | 1 |
Возможно, на первых занятиях из таблицы 1 целесообразно привести лишь данные по типу REAL, пока не будет задач, требующих большей точности представления вещественных чисел, чем 6 байт.
Над данными вещественного типа определены следующие операции:
+ сложение
- вычитание
* умножение
/ деление
Над данными вещественного типа определены следующие стандартные функции:
abs (x) – абсолютное значение числа. Abs (- 6.7) = 6.7
sqr (x) – квадрат числа. sqr (- 3.2) = 10.24
sqrt (x) – корень квадратный из числа. sqrt (10.24) = 3.2
exp (х), sin(x) , cos (x), ln(x), arctan (Х)
Впервые вводится оператор присваивания :=
w := 6.5 / a;
w := w +1.5;
Алгоритм работы оператора присваивания:
1. Вычисляется значение правой части оператора присваивания,
2. Результат пересылается в переменную (присваивается переменной), которая стоит в левой части оператора присваивания.
При изучении данной темы необходимо подчеркнуть, что приоритет выполнения операций на Паскале такой же, как в математике. Однако сложные арифметические выражения должны иметь на Паскале линейный вид. Для этого используются круглые скобки. Например, арифметическое выражение
будет записано на Паскале оператором присваивания Z := (3+X) / (SIN(X) - 0.4);
Кроме оператора присваивания, в данной теме рассматриваются операторы ввода/вывода READ и WRITE.
«Хорошей манерой» написания программ считается, когда первым оператором в теле программы будет оператор вывода сообщения. Например,
WRITE ( 'Начинаем работу' ) ;
WRITE ( 'Ведите радиус окружности' ) ;
Здесь в апострофах записываются текстовые сообщения, которые выводятся на экран.
Вывод вычисленных значений переменных производится указанием в списке вывода имен переменных, разделенных запятыми.
WRITE ('Площадь круга радиуса ', R, '=' , S );
Для организации ввода значений переменных используется оператор READ. В скобках указывается список ввода, т. е. имена переменных через запятую. Например, READ (А, В, С);
Если использовать вместо WRITE оператор WRITELN, то после вывода сообщения будет переход на новую строку. Аналогично работает оператор READLN.
Для закрепления решаются задачи.
Тема 3. Переменные типа INTEGER
Целочисленные типы данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать память от 1 до 4 байт (табл.2).
Таблица 2
Тип | Диапазон | Требуемая память (байт) |
byte | 0 ... 255 | 1 |
shorint | -128 ... 127 | 1 |
integer | - 32768 ... 32767 | 2 |
word | 0 ...65535 | 2 |
longint | -2147483648 .. 2147483647 | 4 |
Пример описания переменных целого типа:
VAR A, NUM, J : INTEGER;
K, S : WORD;
X1, X2 : BYTE;
Над целыми данными определены следующие операции:
+ | сложение |
- | вычитание |
* | умножение |
DIV | целочисленное деление, вычисляется целая часть частного, дробная часть отбрасывается. Например, результатом выполнения операции 11 DIV 2 будет 5 |
MOD | деление по модулю, вычисляется остаток, полученный при целочисленном делении. Например, результатом выполнения операции 11 MOD 5 будет 1 |
Если переменные x, y описаны как целые переменные (например, x=17, y=4), то возможны следующие варианты выполнения деления:
z := x DIV y; | Переменная z должна быть описана как целая переменная. В результате вычисления z станет равной 4. |
z := x MOD y; | Переменная z должна быть описана как целая переменная. В результате вычисления z станет равной 1. |
z := x / y; | Переменная z должна быть описана как вещественная переменная. В результате вычисления z станет равной 4.25. |
В данной теме рекомендуется дать следующие стандартные функции:
trunc (x) – преобразует вещественный аргумент х в целое число путем отбрасывания дробной части; Например, trunc (2.8) даст результат 2
round (x) - преобразует вещественный аргумент х в целое число путем округления до ближайшего целого; Например, round (2.8) даст результат 3
Для закрепления решаются задачи.
Тема 4. Условный оператор IF
Оператор условия IF изменяет естественный порядок выполнения операторов программы. Он имеет одну из следующих форм:
Полный оператор
if < условие > then < оператор1 > else < оператор2 > ;
Алгоритм работы следующий:
· Вычисляется выражение, записанное в условии. Оно принимает значение либо "Истина", либо "Ложь".
· Если значение выражения = "Истина", то выполняется оператор1. Если значение выражения = "Ложь", то выполняется оператор2.
· Затем выполняется оператор, следующий за оператором if.
Сокращенный оператор
if < условие > then < оператор1 > ;
Алгоритм работы следующий:
· Вычисляется выражение, записанное в условии. Оно принимает значение либо "Истина", либо "Ложь".
· Если значение выражения = "Истина", то выполняется оператор1. В противном случае выполняется оператор, следующий за оператором if.
Пример: Пусть переменная а имеет вещественный тип и равна 3.2
if a<6 then a : = a * 2 else a : = a / 2; WRITE(a);
Выражение a<6 истинно, поэтому вычисляется a : = a * 2 и печатается значение переменной а, т. е. 6.4
Пример: Пусть переменная а имеет вещественный тип и равна 8.2
if a<6 then a : = a * 2; WRITE(a);
Выражение a<6 ложно, поэтому печатается значение переменной а, т. е. 8.2
Выражение, записанное в условии – это выражение, устанавливающее отношение (сравнение) между несколькими переменными. Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно.
В Паскале определены следующие операции отношения:
= равно
< > не равно
> больше
< меньше
< = меньше или равно
> = больше или равно
Пример,
if (a >c ) then b := a - c else b := c - a;
Выражение, записанное в условии, может быть сложным. Для этого используются операции-связки:
and | логическое умножение |
or | логическое сложение |
not | логическое отрицание |
Например,
if ((sum >8) and (inf = 5)) then write ( ' Вы приняты ');
Таблица истинности для данных операций следующая:
a | b | not a | a and b | a or b |
истина | истина | ложь | истина | истина |
истина | ложь | ложь | ложь | истина |
ложь | истина | истина | ложь | истина |
ложь | ложь | истина | ложь | ложь |
Следует заметить, что привычная запись арифметических неравенств типа 5 £ a £ 10 на Паскале записывается следующим выражением ( 5< = a) and ( a < = 10).
Можно не вводить в рассмотрение школьного курса переменную логического типа. Логическая переменная, как правило, в задачах выполняет функцию "флага", принимающего значение "истина" или "ложь", но в школьном курсе из-за малого количества учебных часов можно эту функцию переложить, например, на переменную типа integer, которая будет принимать значение 1 или 0.
При изложении данной темы необходимо ввести понятие составного оператора. Составной оператор – это группа из произвольного числа операторов, отделенных друг от друга точкой с запятой, и заключенная в операторные скобки begin и end. Составной оператор воспринимается как единое целое, т. е. может находиться в любом месте программы, где допускается наличие оператора.
Пример.
if (a < > 0) then begin c := b div a; writeln ( ' с = ', c); end
else writeln (' деление на 0! '); В := B+2;
1. Если А неравно 0, то в переменную С заносится результат выполнения b div a и выводится значение переменной с.
2. Если А равно 0, то печатается деление на 0!
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


