Вещественные типы данных в языке Си




 

Вещественные типы всегда имеют знак.

Определение 3. Нормализованной формой ненулевого числа x называется запись x = M×10p, где M – мантисса, 0,1 £ ½ M ½ < 1, p – порядок числа х.

Нормализованная форма числа единственна.

 


Таблица 4. Вещественные типы данных

Название типа Размер в байтах Размер мантиссы в десятичных знаках Размер порядка в битах Диапазон
float   7–8   3,4×10-38 … 3,4×1038
double   15–16   1,7×10-308… 1,7×10308
long double   19–20   3,4×10-4932… 1,1×104932

Определение 4. Машинным нулем для данного вещественного типа называется минимальное положительное число того же типа

m0 = min {x: x > 0}.

Определение 5. Машинным эпсилон для данного вещественного типа называется минимальное число того же типа, для которого 1 + x > 1

me = min {x: 1 + x > 1}.

Определение 6. Машинной бесконечностью для данного вещественного типа называется максимальное число того же типа

m¥ = max{x}.

По диапазону типа можно определить m0, m¥. Машинный эпсилон определяется размером мантиссы. Так, например, для типа float имеем

m0 = 3,4×10-38, m¥ = 3,4×1038, me » 10-8.

Определение 7. «Правым соседом» числа x данного вещественного типа назовем минимальное число y того же типа, для которого x < y

«Правый сосед» х = min {y: x < y}.

«Правый сосед» числа х больше самого х на величину равную

me × 10порядок числа х.

Приближенно можно считать, что «правый сосед» числа х » х + me × x.

Например, для типа float «правый сосед» числа 1010 » 1010 + 10-8 × 1010 = 1010 + 100.

Таким образом, вещественные числа данного типа расположены на числовой прямой неравномерно, чем больше числа, тем больше расстояние между соседними числами. Этот факт следует учитывать при организации циклов: шаг цикла должен быть больше, чем расстояние между соседними числами.

Параметры типа в таблице 4 связаны между собой.

Задача. Вещественный тип doom занимает 15 байт, под порядок отведено 30 бит. Определить остальные параметры этого типа.

Решение. Порядок занимает 30 бит, поэтому минимальное двоичное значение порядка равно -229. Для перевода этого числа к десятичному основанию решим показательное уравнение -229 = -10х. Логарифмируя по основанию 10, получаем х = 29 × lg2 » 29 × 0,3010 = 8,729. Таким образом, m0 равен » 0,5 × 10-161290865,49 » 1,54 × 10-161290865.

Мантисса в двоичной системе счисления занимает 90 бит, из которых один бит определяет знак мантиссы. Так как первые знаки двоичной мантиссы равны 0,1 и всегда одинаковы, то под них память не отводится. Поэтому остальные 89 бит мантиссы занимают разряды с номерами от -2 до -90. «Правый сосед» единицы равен 0,100…0012 × 21, где последняя единица стоит в -90‑ом разряде. Тогда

me = 2-89 = 10-89 × lg(2) = 10-26,79 = 6,17 × 10-26

 

Кодирование символов

 

Для кодирования символов с помощью одного байта используется ASCII‑таблица (American Standard Code for Information Interchage)

В ASCII‑таблице содержатся различные символы и соответствующие им коды. Например, символу ‘0’ соответствует код 0x30 = 48. Символы и строки хранятся в памяти в виде соответствующих кодов из ASCII‑таблицы. Например, строка «123» в памяти будет храниться в виде последовательности байт 0х31 0х32 0х33 0х00. Иногда строки, у которых 0 является признаком конца, называют asciiz‑строками.

 


Таблица 5. ASCII – таблица символов

Основная таблица ASCII Расширенная таблица ASCII

 

Символу ‘b’ соответствует «ASCII‑код» 0x62. В десятичной системе это будет 98, а в двоичной – 01100010. Код символа ‘b’ вы можете посмотреть из ASCII‑таблицы. Таблицы символов для разных шрифтов можно найти с помощью программы Таблица Символов: Пуск – Стандартные – Системные утилиты – Таблица Символов).

В русской кодировочной странице 866 буква Ё имеет код 0xF0, а буква ё – код 0хF1.

В языке Си символьные константы обозначаются ‘\xxx’, где ххх – код этого символа, записанный в восьмеричной СС. Иначе говоря,
‘\xxx’ – это код символа, у которого код равен ххх.

Примеры. 1. Количество букв в английском алфавите равно
‘Z’ – ‘A’ + 1.

2. Количество букв в русском алфавите равно ‘Я’ – ‘А’ + 2.

 


Схемы алгоритмов

 

Для облегчения вычерчивания и нахождения на схеме символов рекомендуется поле листа разбивать на зоны. Размеры зон устанавливают с учетом минимальных размеров символов, изображенных на данном листе. Допускается один символ размещать в двух и более зонах, если размер символа превышает размер зоны. Координаты зоны проставляют: по горизонтали – арабскими цифрами слева направо в верхней части листа; по вертикали – прописными буквами латинского алфавита сверху вниз в левой части листа. Координаты зон в виде сочетания букв и цифр присваивают символам, вписанным в поля этих зон, например: A1, A2, A3, B1, B2, B3 и т.д. Если поле листа не разбито на зоны, символам присваивают порядковые номера.

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

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

 

Рис. 2. Эквивалентные фрагменты схемы алгоритма


Таблица 6. Соединитель

Обозначение Комментарии Использование
E5, B1, A, 5 – идентификаторы соединителей в виде: буквы и цифры (координаты зоны листа) При большой насыщенности схемы символами отдельные линии потока между удаленными друг от друга символами допускается обрывать. При этом в конце (начале) обрыва должен быть помещен символ «Соединитель»
буквы
цифры

 

Таблица 7. Межстраничный соединитель

Обозначение Комментарии Использование
Первая строка внутри межстраничного соединителя определяет номер листа схемы, вторая – координату символа а) связываемые линией потока символы находятся на разных листах
A3 – определяет зону на данном листе, где расположен символ «Комментарий» 010E3 – определяет номер листа и зону расположения, связываемую с символом E3 б) в случае связи некоторого символа со многими другими символами, расположенными на разных листах, на входе этого символа помещают один символ «Межстраничный соединитель», внутри которого на первой строке помещают знак #, а на второй строке – координаты символа «Комментарий». Внутри символа «Комментарий» указывают номера страниц и координаты символов, связанных с поясняемым символом

 

Таблица 8. Линии потока

Обозначение Комментарии Использование
  Применяют для указания направления линии потока: можно без стрелки, если линия направлена слева направо и сверху вниз; со стрелкой – в остальных случаях
Излом линии потока под углом 90о Обозначает изменение направлений линии потока
Пересечение линий потока Применяется в случае пересечения двух несвязанных линий потока
Слияние линий потока. Место слияний линий потока обозначено точкой Применяется в случае слияния линий потока, каждая из которых направлена к одному и тому же символу на схеме. Место слияния линий потока допускается обозначать точкой или цифрой 0.
Место слияний линий потока обозначено цифрой 0

 


Таблица 9. Возможные варианты отображения решения

Обозначение Комментарии Использование
A = B, P ≥ 0 – условия решений; A, B, P – параметры При числе исходов не более трех признак условия решения (Да, Нет, =, >, <) проставляют над каждой линией потока или справа от линии потока
yi – условие i ‑го исхода, 011T1, 016A3, 005B5, 015T4 – адреса исходов. Структура адреса имеет вид: При числе исходов более трех условие исхода проставляется в разрыве линии потока. Адрес исхода проставляется в продолжении условия исхода и отделяется от него пробелом
B5 – знак, указывающий, что условия решения даются в виде таблицы или символа «Комментарий», расположенных на данном листе в зоне B5 в символе «Соединитель» указывают координату зоны, куда должна помещаться таблица или символ «Комментарий»

 

Таблица 10

Символы в схемах алгоритмов

Название символа Обозначение Использование
1. Процесс Выполнение операции или группы операций, в результате которых изменяется значение, форма представления или расположение данных
2. Решение Выбор направления выполнения алгоритма или программы в зависимости от некоторых переменных условий
3. Модификация Выполнение операций, меняющих команды, или группы команд, изменяющих программу
4. Предопреде ленный процесс Использование ранее созданных и отдельно описанных алгоритмов или программ
5. Ручной ввод Ввод данных вручную при помощи неавтономных устройства с клавиатурой, переключателей, кнопок
6. Ввод-вывод Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод)
7. Документ Ввод-вывод данных, носителем которых служит бумага
8. Файл Представление организованных на основе общих признаков данных, характеризующих в совокупности некоторый объект обработки данных. Символ используется в сочетании с символами конкретных носителей данных, выполняющих функции ввода-вывода.
9. Линия потока Указание последовательности связей между символами
10. Соединитель Указание связи между прерванными линиями потока, соединяющими символы
11. Пуск-останов Начало, конец, прерывание процесса обработки данных или выполнения программы
12. Комментарий Связь между элементом схемы и пояснением
13. Межстраничный соединитель Указание связи между разъединенными частями схем алгоритмов и программ, расположенных на разных листах

 

Размер a должен выбираться из ряда 10, 15, 20 мм. Допускается увеличивать размер a на число, кратное 5. Размер b равен 1,5 × a. При ручном выполнении схем алгоритмов и программ допускается устанавливать b равным 2 × a.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: