Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Внутреннее представление чисел с плавающей точкой.



ЧИСЛО С ПЛАВАЮЩЕЙ ТОЧКОЙ [floating-point number]. Рациональное число, представленное в форме, содержащей явно заданный порядок числа, например 0.12345-Ю3. В общем случае Ч. с п. т. имеет вид M-qP, где М -число с фиксированной точкой, называемое мантиссой, q — основание системы счисления, р — число целого типа, называемое порядком. В приведенном примере 0.12345— мантисса, 10— основание десятичной системы счисления, 3 — порядок. Запись числа в форме Ч. с п. т. может быть сделана многими способами. Например, то же число может быть записано как 0.012345-104 и 1.2345-102. Чтобы избежать такой неоднозначности, обычно применяется нормализованная форма 0.12345-103. В языках программирования Паскаль, Фортран и др. вместо основания системы 10 в десятичных Ч. с п. т. пишут букву Е или е, а знак умножения после мантиссы не ставится, например 0.123Е—5 или 0.123е—5 вместо 0.123-10" 5. Арифметические операции над Ч. с п. т. выполняются отдельно над мантиссой и порядком, например, при умножении таких чисел их мантиссы перемножаются, а порядки складываются. Поэтому при размещении Ч. с п. т. в памяти ЭВМ оно разбивается на мантиссу и порядок, которые раздельно помещаются в отведенные для них части ячейки памяти. Этот способ называется полулогарифмическим представлением чисел. Конечно, при размещении чисел в памяти ЭВМ используется двоичное представление мантиссы и порядка.

47. Реализация алгоритма сортировки с применением метода " часового".

Сортировка выбором

И начнём мы с сортировки выбором. Хотя этот алгоритм и не является самым быстрым, но я решил начать с него потому что, на мой взгляд он наиболее прост для понимания. Суть алгоритма состоит в том, что бы в исходном массиве найти наименьший элемент, а затем поменять местами первый элемент в списке с найденным. После того, находиться наименьший их оставшихся и меняется со вторым элементом. И так до тех пор пока весь список не будет отсортирован.
Таким образом понадобиться N+(N-1)+(N-2)+...+1 или N*N проходов чтобы отсортировать список.

procedure SellectionSort( var a: array of integer; min,
max: Integer);
var
i, j, best_value, best_j: longint;
begin
for i: =min to max do begin
best_value: =a[i];
best_j: =i;
for j: =i+1 to max do begin
if a[j]< best_value then begin
best_value: =a[j];
best_j: =j;
end;
end;
a[best_j]: =a[i];
a[i]: =best_value;
end;
end;

 

48. Сортировка методом " пузырька".

for i: =1 to k-1 do
for j: =1 to k-i do
if mas[j]> mas[j+1] then
begin
a: =mas[j];
mas[j]: =mas[j+1];
mas[j+1]: =a;
end;

Алфавит языка, имена, числа, строки.

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

Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты.

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

Числа обычно записываются в десятичной системе счисления. Они могут быть целыми и действительными. Положительный знак числа может быть опущен. Целые числа записываются в форме без десятичной точки, например: 217 -45 8954 +483

Действительные числа записываются в форме с десятичной точкой: 28.6 0.65 -0.018 4.0

Возможна также запись с использованием десятичного порядка, который изображается буквой Е: 5Е12 -1.72Е9 73.1Е-16

В " переводе" такую запись следует понимать соответственно как: 5x1012 -1.72x109 73.1x10-16

Паскаль допускает запись целых чисел и фрагментов действительных чисел в форме с порядком в шестнадцатиричной системе счисления: $7F $40 $ABC0

Строки в языке Паскаль - это последовательность символов, записанная между апострофами. Если в строке в качестве содержательного символа необходимо употребить сам апостроф, то следует записать два апострофа. Примеры строк: 'СТРОКА' 'STRING' 'ПРОГРАММА' 'АД''ЮТАНТ'

 

Структура программы.

I Раздел заголовка ;

1. Заголовок программы имеет вид:

program (имя программы);

Например: program First;

II Раздел описаний ;

2. Список используемых библиотек:

uses (список библиотек);

Например: uses CRT;

3. Раздел описания меток:

label (список меток)

Например: Label Home, 4;

4. Раздел описания констант:

const (имя константы)=(значение константы)

Например: cons n=7;

5. Раздел описания типов:

type (имя типа)=(описание типа);

Например: type mass= array [1..3, 1..5] of real;

6. Раздел описания переменных:

var (имя переменной): (тип переменной)

Например: var х: real ;

7. Раздел описания процедур и функций.

III Раздел исполняемых операторов (тело программы).

8. Тело программы:

begin

(команды программы)

end .

Тип Integer.

Значениями этого типа являются целые числа из некоторого интервала. Каков этот интервал зависит от реализации (компьютера и транслятора), однако тип integer всегда обозначает лишь все такие целые числа n, что min(integer) max(integer).
Для чисел, являющихся константами целого типа, используется обычная десятичная форма записи. Например, 5 изображает число " пять", а 15 изображает число " пятнадцать". Если константа специфицирована с суффиксом H, представление является шестнадцатеричным, например, H13 изображает число " восемьнадцать".Для целых чисел определены и доступны всем известные операции: + (сложение), - (вычитание), * (умножение), / (деление с вещественным результатом).Каждая из бинарных операций отношения: = (равно), # (неравно), < = (меньше или равно), < (строго меньше), > (строго больше), > = (больше или равно) определена для значений целого типа и вырабатывает значение логического типа. Для целочисленных аргументов определены следующие стандартные функции с целочисленными результатами: abs -- абсолютное значение аргумента, pred - предыдущее по величине целое число, succ - следующее по величине целое число (например, abs(-3) = 3, pred(3) = 2, succ(3) = 4). Стандартная функция odd проверяет нечетность заданного целого числа; она выдает значение true, если аргумент нечетен, и значение false, если аргумент четен.

 

Тип Real.

В значения вещественного типа попадает лишь конечное подмножество вещественных (действительных) чисел. При этом если для целых чисел от реализации зависит только диапазон значений, образующих тип integer, то вещественные числа, образующие тип real, имеют два ограничения: на диапазон значений и на точность представления. Поэтому числа типа real часто называют приближенными.

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

Для записи очень больших или, наоборот, очень маленьких чисел удобно использовать форму записи вещественного числа " с плавающей запятой". В этой форме число представляется в виде произведения двух сомножителей: мантиссы (целого или дробного числа) и числа 10, которое возведено в целую степень, называемую порядком изображаемого числа. Так, число 2 500 000 можно записать, например, как произведение 2, 5 и . Изображается вещественное число в форме с плавающей запятой следующим образом: сначала выписывается (по обычным правилам) мантисса, за которой следует буква (читается -- умножить на 10 в степени) и показатель степени. Например, 2.56 изображает число 2 500 000, а 3.2-7 -- изображение числа 0.00000032; каждое из них содержит по две значащих цифры.

Таким образом, каждое значение типа real представляет целый отрезок оси вещественных чисел, причем плотность точек на оси вещественных чисел, являющихся значениями вещественного типа real, экпоненциально уменьшается с увеличением |x|. Например, интервал от 1/2 до 1 содержит столько же элементов из real, что и интервал от до .

Для вещественных значений определены операции: - (обращение знака) и + (тождественная операция), а также бинарные операции: + (сложение), - (вычитание), * (умножение) и / (деление).

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

Тип Boolean

Тип Char

Для обозначения константы литерного типа литеру заключают в апострофы.

Например, 'A', '+', '5', '', '? ', ''''.

Натуральное число, сопоставленное литере, служит кодом для внутреннего представления литеры в ВМ, его возвращает стандартная функция integer. Например, в силу свойств литерного типа имеем integer('Z')=integer('A')+25 и integer('9')=integer('0')+9. Имеется также стандартная функция chr, которая вычисляет литеру по ее коду и является обратной по отношению к функции integer, т.е. chr(integer(X))=X для любого литерного значения X и integer(chr(N))=N для любого целого числа N, для которого chr(N) определено.

Поскольку в типе char литеры упорядочены, для них определены бинарные операции отношения: = (равно), < (предшествует), < = (предшествует или равно), > (следует), > = (следует или равно), < > (неравно), каждая из которых вырабатывает логическое значение.


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 715; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь