Финансовые
В категории Финансовые множество специальных функций, вычисляющих проценты по вкладу или кредиту, амортизационные отчисления, норму прибыли и самые разнообразные обратные и родственные величины.
Например, функция ПЗ (в XP переименована в ПЛТ "плата") позволит рассчитать сумму, которую придется выплатить, взяв (или, наоборот, получить, предоставив кому-то) кредит. Причем в качестве аргументов используются Норма (норма прибыли или годовая процентная ставка), Кпер (количество периодов погашения), Выплата (фиксированные ежемесячные или ежегодные платежи - в счет погашения кредита плюс проценты (в XP это называется Пс "приведенная стоимость")) и Бс (будущая стоимость; равна нулю, если вы рассчитываете за этот период полностью отдать (получить) долг), Тип - равен 1, если выплаты происходят в начале периода, и 0, если в конце.
Обратными и родственными к ПЗ являются: функции КПЕР, позволяющая рассчитать время (количество периодов) погашения; функция БЗ (БС) - будущее значение (будущая стоимость) вклада или кредита; функция ПЛПРОЦ (ПРОЦПЛАТ) - платежи по процентам и т.д. и т.п.
Вводя процентную ставку по вкладу или кредиту, необходимо записать ее либо со знаком процента (25%), либо в виде сотых долей (0,25). Если же написать просто 25, то это будет понято как 2500%. Причем Excel, в отличие от нас, совершенно не волнует тот факт, что в условиях крепкого рубля и низкой инфляции таких ставок уже не бывает…
Дата и время
Большинство функций этой категории ведает преобразованиями даты и времени в различные форматы. Две специальные функции СЕГОДНЯ и ТДАТА вставляют в ячейку текущую дату (первая) и дату и время (вторая), обновляя их при каждом вызове файла или при внесении любых изменений в таблицу. Такую ячейку стоило бы иметь в бланках счетов, самых свежих прайс-листах, каких-нибудь типовых договорах: вы просто распечатываете файл, а текущая дата ставится сама.
Логические
В этой категории всего шесть команд, но о четырех из них стоит поговорить подробнее, поскольку они значительно расширяют наши возможности в применении всех остальных команд. Команда ЕСЛИ позволяет организовать разного рода разветвления. Формат ее:
=ЕСЛИ (логическое_условие; когда_неверно)
В качестве логического условия выступают равенства и неравенства с использованием знаков > (больше), < (меньше), = (равно), >=(больше или равно), <=(меньше или равно), <> (не равно). Пример: =ЕСЛИ (С1>D1*B5; ”УРА! ”; ”УВЫ…”) - если число в ячейке С1 больше, чем произведение D1 и В1, то в нашей ячейке будет радость, а если меньше - разочарование. В функцию ЕСЛИ может быть вложена другая функция ЕСЛИ, а в нее еще одна - "и так семь раз". Пример: =ЕСЛИ (С1>100; ”УРА! ”; ЕСЛИ(Е1=1; G1; G2)) - если ячейка С1 больше ста, то в нашей ячейке будет написано "Ура! ", а если меньше либо равна - то в нее скопируется содержимое ячеек G1(при Е1, равном 1) или G2 (при Е1, не равном 1)
Команда И позволяет создать несколько условий, которые можно использовать в команде ЕСЛИ. Все условия в команде И должны быть выполнены, только тогда функция принимает значение истина. Если хоть одно условие не выполнено, то значение ее ложь. Формат:
=И(логическое_условие_1; логическое_условие_2)
Всего логических условий может быть до 30 штук. Пример совместного использования функций ЕСЛИ и И:
ЕСЛИ(И(Е1>1; G2=”Ура! ”); ”Угадал”; ”Не угадал”) - если ячейка Е1 больше единицы, а в G2 находится слово "Ура! ", то в нашей ячейке окажется слово "Угадал" (истина), если же какое-то из логических условий не выполнено (ложь), получим "Не угадал".
Команда ИЛИ тоже позволяет задать несколько условий, но иным образом. Если хоть одно из них выполнено, то функция принимает значение истина. И только когда все заданные условия неверны, подучим ложь. Формат такой же, как у функции И, использовать ее совместно с ЕСЛИ можно точно так же.
Команда НЕ инвертирует, переворачивает полученное значение: была истина, станет ложь, и наоборот.
Пример: =ЕСЛИ(НЕ(С1>D1*B5); ”УРА! ”; ”УВЫ…”) - "УРА!" появляется, когда С1 не больше D1*B5.
Математические
Категория Математические (Мат. И тригонометрия) - одна из самых густонаселенных в Excel (60 команд в 5.0 и 50 в более поздних). Никаких особых хитростей в ней нет. Если SIN, значит, синус, если ASIN, значит, арксинус. Если LN - то натуральный логарифм, если LOG10 - то десятичный, а если LOG - то по произвольному основанию.
Функция ГРАДУСЫ преобразует радианную меру угла в градусную, функция РАДИАНЫ делает обратную операцию. Есть функция ПИ, которая позволит использовать в вычислениях эту математическую константу, а также СЛЧИС - генератор случайных чисел. Желающие могут поупражняться в переводе арабских цифр в римские (РИМСКОЕ). Функция ОСТАТ вычисляет остаток от деления, ЧАСТНОЕ - делит нацело. Excel также умеет выполнять некоторые операции с матрицами (МУМНОЖ - умножение матриц, МОБР - взятие обратной матрицы, МОПРЕД - вычисление определителя и т.д.). Что же касается суммирования, то кроме СУММ есть также СУММПРОИЗВ (сумма произведений), а также ряд "квакающих" сумм: СУММКВ (сумма квадратов), СУММРАЗНКВ (сумма разностей квадратов), СУМКВРАЗН (сумма квадратов разностей) и даже СУММСУММКВ (сумма сумм квадратов).
Ссылки и массивы
Эта категория в Excel 5 называется Просмотр и ссылки, в следующих версиях - Ссылки и массивы. В ней находятся функции, позволяющие обратиться к массиву данных (по колонке, строке, прямоугольному интервалу) и получить из него самую разнообразную информацию: номера столбцов и строк, в него входящих, их количество, содержимое нужного вам элемента массива; можно найти, в какой ячейке этого массива находится нужное число или текст и т.д.
Текстовые
В этой группе десятка два команд! С их помощью мы сможем посчитать количество символов в ячейке, включая пробелы (ДЛСТР), узнать код символа (КОД-СИМВ), узнать, какой символ стоит первым (ЛЕВСИМВ) и последним (ПРАВСИМВ) в строке текста, поместить в активную ячейку некоторое количество символов из другой ячейке (ПСТР), поместить в активную ячейку весь текст из другой ячейки заглавными (ПРОПИСН) или сточными буквами (СТРОЧН), проверить, совпадают ли две текстовые ячейки (СОВПАД), найти некоторый текст (ПОИСК, НАЙТИ) и заменить его другим (ЗАМЕНИТЬ).
Проверка свойств и значений
Эта категория в 5.0 называется Информационные, а в более поздних - Проверка свойств и значений. Здесь находятся команды, с помощью которых можно получить информацию о типе данных в ячейке (число там находится, текст или какая-то иная информация), о формате, о текущей операционной среде, о типе ошибки, возникшей в формуле, и проч.
Работа с базой данных
Функция для обсчета данных в базе были впервые выделены в отдельную категорию в Excel 2007. Здесь можно найти команды статистического обсчета (БДДИСП - дисперсия по выборке из базы, БДДИСПП - дисперсия по генеральной совокупности, ДСТАНДОТКЛ - стандартное отклонение по выборке), операции со столбцами и строками базы, количество непустых (БСЧЕТА) или (БСЧЕТ) ячеек и т.д.
Электронные таблицы.
Строки каждой таблицы пронумерованы цифрами, а столбцы - буквами. Таким образом, у каждой ячейки на листе есть свой уникальный адрес (имя). Например, выделенная рамочкой ячейка в левом верхнем углу имеет адрес А1. если же мы хотим обратиться к этой ячейке из другого листа книги, то в адрес добавится название данного листа: Лист 1! А 1 (восклицательный знак служит разделителем). Более того, если мы захотим обратиться к ячейке из другого файла, в адрес добавится еще и его имя и путь к нему.
То, что ячейка А1 выделена рамочкой, означает, что она активна и можно немедленно что-нибудь в нее ввести с клавиатуры. В каждой ячейке таблицы может находиться число, текст либо формула. Это не все, что может находиться в ячейке, но самое существенное.
Простейшая формула - это, например, сумма. Объяснив программе, что именно надо суммировать, мы в заданной ячейке получаем результат. Конечно увидим мы в ней число, но в отличие от "просто числа" это будет вычисленным. И если измениться значение каких-либо ячеек, входящих в область суммирования, то автоматически поменяется и результат.
Поставим курсор на ячейку А1 и введем число, какое нам вздумается. Закончив, нажмем Enter (или стрелку вниз) и окажемся в ячейке А2. введя таким образом пяток чисел, в ячейке А6 напишем формулу для их суммирования: =А1+А2+А3+А4+А5 и нажмем на Enter (букву А надо вводить в английской раскладке клавиатуры). Excel посчитает сумму и запишет ее в ячейку А6. Суммирование, впрочем, лучше выполнять по-другому, с привлечением к общественно полезному труду стандартных функций Excel. Для этого выделим мышкой ячейки с А1 по А5 (это и будет область суммирования), а потом нажмем кнопку суммирования (сигму) на панели инструментов. В ячейке А6 тут же появится вычисленная сумма.
Стоит теперь перейти на любую из ячеек с А1 по А5 и ввести другое число, как сумма тут же изменится. Конечно, изменится она после того, как вы закончите набор и нажмете Enter, Tab, любую стрелку или ткнем мышкой в другую ячейку.
Точно так же формула отследит изменения, если мы решим очистить ячейку (клавиша Del), удалить ячейку иди группу ячеек (Правка > Удалить) или, наоборот, добавим новые строки (Вставка > Строки) и заполним пустые ячейки в них. Причем Excel не станет пугаться, если в какой-то ячейке вместо числа стоит текст - просто не обратит на это внимание. Такой подход можно только приветствовать, потому что он позволит нам в дальнейшем вставлять в таблицы любые текстовые комментарии и заголовки, не заботясь о том, чтобы исключить их из области действия формул.
Чтобы увидеть, как выглядит формула, созданная с помощью кнопки-сигмы, перейдем стрелками или встанем мышью на эту ячейку и поглядим на строку формул. Слева в отдельном окошечке (оно называется полем имени) написано: А6. Этот адрес (имя) ячейки, где мы находимся. А рядом стоит и сама формула: =СУММА(А1: А5). СУММ (в англоязычной версии SUM) - это операция суммирования, а в скобках написано, что суммируются ячейки в интервале от А1 до А5.
В Excel формулой считается только такое выражение, которое начинается со знака равенства.
Если поставить мышкой курсор в строку формул, можно будет что-то поправить в ней вручную. А если дважды щелкнуть по ячейке А6 или нажать F2, то править можно будет прямо в самой ячейке, а в строке формул наши действия будут продублированы. Excel XP, особенно услужливый, тут же покажет желтенькую справку-подсказку с описанием синтаксиса команды. Если я захочу, чтобы в область суммирования входили также данные из столбцов В и С. Тогда я могу написать в ячейке А6 =СУММА(А1: С5), задавая суммирование по прямоугольнику, верхняя левая вершина которого - в ячейке А1, а нижняя правая - в С5.
Если нужно считать сумму по всему столбцу (вы собираетесь впоследствии добавлять новые данные в таблицу, но не желаете каждый раз переписывать формулу), то в качестве аргумента можно задать, скажем, А: А. При этом произойдет сложение всех ячеек столбца и результат будет помещен в ячейку… В какую? Ведь если сумму записать в этот же столбец (например, в ячейку А6, как мы делали до сих пор), то она тоже попадает в область суммирования. Excel должен записать в А6 вычисленную сумму, но ему тут же придется добавить и это число к сумме, записав новый результат туда же, в А6. Вместо этого Excel сообщит, что не правы, скорее всего, вы. Невозможно, напишет, допустить циклические ссылки. Так что сумму по всему столбцу или по строке (в этом случае пишем так: = СУММ(1:1)) надо помещать в другом столбце или в другой строке.
При выполнении итерационных вычислений, начиная с Excel 2007, циклические ссылки допустимы. Но это достаточно сложные материи.
Если нам нужно просуммировать только столбцы А и С, а В пропустить. Тогда мы пишем = СУММ(А1: А5; С1: С5). Двоеточие задает интервал, точка с запятой - перечисление.
На самом деле все описанные выше операции можно проделать и мышкой. Например, встать в ячейку D6, где будет находиться сумма, нажать на сигму - в ячейке сразу возникнет незаполненная формула = СУММ(), а потом мышкой выделить либо прямоугольный блок А1: А5 (сумма по трем столбцам), либо сперва ячейки с А1 по А5, а затем, держа нажатой клавишу Ctrl, - с С1 по С5 (сумма по двум столбцам вразбивку). Можно даже разом выделить весь столбец - щелкнув мышкой по его имени, например по букве А вверху столбца. Строка выделяется аналогично - щелчком по ее номеру слева.
По мере выделения в скобках будут появляться имена ячеек. Чтобы подтвердить окончание ввода, жмем Enter.
Иногда возникает необходимость в формуле использовать данные из другой таблицы. Так, для того чтобы прибавить к нашей сумме ячейку А1, находящуюся на четвертом листе, пишем: = СУММ(А1: А5) +Лист4! А1.
Как только мы стали редактировать формулу, в строке формул появились новые кнопки. Смысл их таков. Щелчок мышью по галочке подтверждает внесенные нами изменения, по крестику - отменяет.
При редактировании формул у нас появляется новое окно-список Функции. Одним щелчком мыши можно взять оттуда любую из десяти функций, которыми пользовались в последнее время.
Когда мы выделяем мышкой ячейки, расположенные не в столбик, а в строку, сумма появится не внизу, а справа от выделенной группы ячеек. Формула будет выглядеть примерно так: =СУММ(А1: D1). Если мы выделим мышкой прямоугольную область, например первые пять ячеек столбцов А, В и С, и нажмем на сигму. Это позволит вычислить сумму по каждому из столбцов и напишет в свободные ячейки внизу.
Если же нам хочется подобным образом посчитать сумму по каждой строке этого прямоугольника, то, выделяя блок А1: С5, надо захватить и пустой столбик D(А1: D5). Тогда при нажатии кнопки суммирования в столбце D окажутся суммы, вычисленные по строкам. Если выделить, кроме блока с данными, также пустой столбец справа и пустую строку снизу и нажать на сигму, то Excel напишет нам суммы и по строкам, и по столбцам.
В XP кнопка сигма превратилась в меню, в котором имеется список нескольких самых часто используемых команд. Кроме обычного суммирования тут есть вычисление среднего арифметического по строке или столбцу (Среднее), подсчет количества чисел - пустые ячейки, тест и формулы команда не учитывает (Число), а также вычисление максимума и минимума.
Мастер диаграмм
Проще всего диаграмма строится, если заранее выделить необходимый фрагмент таблицы, причем хорошо бы, чтобы левый столбец содержал названия строк, а первая строка - названия столбцов. Тогда мастер сразу включит их в диаграмму, расположив по осям или вставив в легенду. Нажав кнопку мастер диаграмм, мы вызываем мастера создания диаграмм. Мастер делает четыре шага. Сначала нам предлагается выбрать тип диаграммы. Тут и круговая, и кольцевая, и гистограмма, и линейчатая и т.д. и т.п. А на странице Нестандартные есть еще "деревянная", "парящие бруски"…
На втором шаге надо выбрать диапазон данных. Для удобства проведения этой операции можно нажать на кнопку справа от строки Диапазон, и окно свернется в строчку. Необходимо выделить мышью нужные строки и столбцы своей таблицы, а потом нажать ту же кнопку еще раз. Но если все было выделено заранее, второй шаг нам не нужен: сразу жмем кнопку Далее >. На этом шаге можно еще задать, какие данные будут отложены по оси Х, а какие по оси Y (переключатель Ряды в: сроках или столбцах). Третий шаг. Водим заголовок диаграммы, название осей, ставим или убираем осевые линии, легенду и прочие детали оформления.
И наконец, задаем, куда диаграмму следует поместить - на отдельный лист или на один из имеющихся. Жмем кнопку Готово и получаем то, что заказали.
Готовую диаграмму, если она таки совсем оправдала наши ожидания, можно еще подредактировать. Щелкаем по любому элементу диаграммы, и он выделяется (отмечается черными квадратиками), щелкаем по пустому месту внутри диаграммы, и она выделится вся. Теперь можно выделенный элемент или всю диаграмму скопировать или удалить (Del), передвинуть мышью в нужное место, уменьшить или растянуть (за черные квадратики).
Однократный щелчок по уже выделенным заголовкам (шапке, подписям) позволит поменять в них текст.
Двойной щелчок на выделенном фрагменте позволит его переоформить (в Excel 5.0 надо вначале выделить всю диаграмму, а потом дважды щелкать). Если щелкаем по шапке, попадаем в диалоговое окно Форматирование названия диаграммы, если по оси - в Форматирование оси. Можно дважды щелкнуть по любой из линий (столбиков, кривых, секторов или что мы там выбрали) и поменять какие-то параметры отдельно по каждой группе (например, поменять цвет). Если щелкать в стороне от кривых или столбиков, то попадем в Форматирование области диаграммы или Форматирование области построения. Даже параметры линий сетки можно отредактировать, если дважды щелкнуть по одной из них. Щелкая по этим же элементам правой кнопкой мыши, мы будем получать контекстное меню - для каждого элемента свое.
Диаграмма динамически связана с исходными данными. Если мы что-то в таблице поменяли, то изменится и диаграмма. А если что-то испортили (возникла ошибка), то и диаграмма испортится, и в ней появятся сообщения об ошибках.
Билет №18
1. Зачем введено понятие типы данных и почему так важно различать информацию по типам данных как человеку, так и компьютеру. Как представляется информация в памяти ЭВМ в зависимости от типа данных.
Целый (integer). Представляет множество целых чисел. В системе программирования должны быть определены следующие операторы:
+ сложение,
- вычитание,
* умножение,
/ деление,
% остаток от целочисленного деления.
В каждой ВМ определено некоторое подмножество целых чисел, лежащих в некоторых пределах. С этим подмножеством компьютер может оперировать прямо и эффективно.
Следует отметить, что, несмотря на внешнюю простоту целого типа, обычные аксиомы арифметики, вообще говоря, нельзя применять к арифметике вычислительной машины. Они не верны в тех случаях, когда истинный результат операции лежит вне заданного конечного диапазона значений.
Например, если для некоторой вычислительной системы тип int определен как множество целых чисел, по абсолютной величине не превосходящих max (|x| <= max), и если сложение, выполняемое машиной, обозначить как add, то
x add y = x + y
только тогда, когда |x + y| <= max. Следовательно, обычный ассоциативный закон, вообще говоря, для машины не выполняется.
Соотношение
(x add y) add z = x add (y add z)
верно тогда, когда |x add y| <= max и |y add z| <= max.
Например, положим max = 100 и подставим значения x = 60, y = 50 и z = -40. Тогда
60 add (50 add (-40)) = 70
а результат (60 add 50) add (-40) не определен.
Количество элементов памяти, необходимое для хранения значений переменной в машине, зависит от диапазона значений, которые эта переменная может принимать. Например, если переменная должна принимать n различных значений, то для ее хранения потребуется log2(n) битов. Я напоминаю Вам этот, конечно же, известный факт по той только причине, что мы привыкли исходить из обратного - то есть, от машинного представления данного типа. Чаще мы рассуждаем так: для хранения переменной целого типа отводится 16 бит. Следовательно, самое большое целое число (то есть граница интервала) есть 65535 (216 - 1). Хотя надо оценивать интервал значений, необходимый нам для моделирования, и под него выбирать тип переменной.
Литерный (char). Этот тип обозначает конечное упорядоченное множество литер. Помимо диапазонов чисел, следует определять набор литер, с помощью которых компьютер общается с внешним миром. Литерами из этого набора снабжаются все периферийные устройства (читающие и печатающие). Существует несколько общепринятых стандартов наборов литер:
- Международной организации стандартов ISO - International Standards Organisation;
- Американский стандартный код для обмена информацией ASCII - American Standard Code for Information Interchange
- 8-ми и 7-ми битовые коды обмена информацией КОИ-8 и КОИ-7
Наиболее популярный ASCII код поддерживает 26 букв латинского алфавита, 10 десятичных арабских цифр, некоторое количество специальных литер, таких, как знаки пунктуации. Стандарт определяет 128 литер, подразделяющихся на печатаемые и управляющие. Управляющие литеры играют большую роль при передаче данных. Например, литеры Carriage Return и Line Feed обрабатываются всеми построчно печатающими устройствами. Оставшиеся 128 кодов от 128 до 255 могут определять коды национального языка. Существуют четыре варианта кодировки символов кириллицы. Стандартом de facto стал так называемый альтернативный вариант кодировки. Сейчас, когда отечественная промышленность перестала производить ЭВМ, проблемы нескольких стандартов стали не такими острыми. Хотя еще попадаются файлы с документацией, набранные в основном варианте кодировки. Тогда мы видим по преимуществу, не буквы, а символы псевдографики. А всего лишь несколько лет назад выпускаемые различными министерствами ПЭВМ (скопированные с одного и того же образца IBM PC XT) имели различные кодировки.
Отображение битов на множество литер называется кодом. Следовательно, каждой литере соответствует целое неотрицательной число. Таким образом, тип char можно интерпретировать как множество неотрицательных целых чисел в интервале от 0 до 255, или множество целых чисел в интервале от -128 до +127. Некоторые языки имеют функции преобразования из целого числа в литерное и наоборот (например, BASIC).
Лирическое отступление UNICODE.
Хорошо, когда национальная письменность соотносится с набором литер латинского алфавита. Например, на 26 латинских литер - 33 литеры кириллицы. А каково арабам, китайцам, японцам? Клинопись, иероглифы и языки, в которых столько букв, что одного байта для кодировки не хватает. Для поддержки подобных языков были созданы двухбайтовые наборы символов. Как всегда, было предложено несколько вариантов, и после непродолжительных мучений был выработан стандарт Unicode. Его первоначально разработали фирмы Apple и Xerox в 1988 году. В 1991г был создан консорциум, в который вошли основные производители Hardware и Software. Строки в Unicode просты и логичны. Все символы в них состоят из 16-битовых кодов. Следовательно. Можно закодировать 65536 символов. Этого достаточно даже для японской каны. В настоящее время кодовые позиции определены для нескольких языков и задействовано около 34000 кодов. Так что место для расширения есть. Кодовые позиции разбиты на группы:
0000 - 007F ASCII
0080 - 00FF Расширение ASCII (Latin 1)
0100 - 017F Европейские латинские
0180 - 01FF Расширенные латинские
0250 - 02AF Стандартные фонетические
02B0 - 02FF Модифицированные литеры
0300 - 03FF Общие диакритические знаки
0370 - 03FF Греческий
0400 - 04FF Кириллица
0530 - 058F Армянский
0590 - 05FF Еврейский
0600 - 06FF Арабский
0900 - 097F Деванагари
Около 29000 кодовых позиций пока не занято, но зарезервировано для будущего использования. Приблизительно 6000 позиций оставлено специально для программистов.
Вещественный (real, float, double …) Особое значение имеет тот факт, что в машине можно представить только значения из конечного диапазона. В случае целых чисел можно утверждать, что при любых обстоятельствах, кроме переполнения, в результате выполнения арифметических операций получались точные значения. Но применительно к арифметике с вещественными числами это утверждение неверно.
Причина заключается в том, что на сколь угодно малом интервале оси вещественных чисел содержится бесконечно много значений. Ось вещественных чисел образует так называемый континуум.
В программировании, тип real не представляет бесконечное, несчетное множество вещественных чисел; ему соответствует конечное множество представителей интервалов континуума вещественных чисел.
Результаты вычислений, в которых участвуют приближенные, а не точные значения, в значительной степени зависят от решаемой задачи и от выбранного алгоритма. В лучшем случае полученные результаты будут приближениями с неизбежными погрешностями. Оценка этих погрешностей, которые являются результатом подмены вещественного континуума конечным множеством представителей, является очень трудной задачей и служит объектом изучения вычислительной математики.
Естественно, что производить вычисления, ничего не зная о природе и степени ожидаемой погрешности, бессмысленно. Чтобы понимать и даже проводить такие измерения, необходимо знать, какого вида представления используются для вещественных чисел с конечным числом цифр. В современных компьютерах обычно используют так называемое представление с плавающей точкой (отсюда и пошло название типа float)
Вещественное число x изображается с помощью двух целых чисел e и m, каждое из которых содержит конечное число цифр, так что
x = m * Be, -E < e < E, -M < m < M
Здесь m называется мантиссой, e - порядком, а B, E и M являются константами, характеризующими представление. Число B называется основанием представления с плавающей точкой. Обычно B не равно 10 (как мы привыкли в школьном курсе математики), а является малой степенью 2.
Для любого заданного значения x можно найти много различных пар (m, e). Каноническая или нормализованная форма определяется дополнительным соотношением
(M/B)<=|m|<M
При использовании только нормализованной формы плотность представителей интервалов на оси вещественных чисел экспоненциально уменьшается с увеличением |x|. Например, интервал [0.1: 1] содержит приблизительно столько же представителей, сколько интервал [10000: 100000]. (Для основания представления 10 это точно столько).
Эта неравномерность накладывает ряд ограничений. Очевидно, что нельзя точно описать элементарные операции над аргументами типа float. Поэтому они определяются в виде аксиом:
- Тип float является конечным подмножеством множества вещественных чисел
- Каждому числу x принадлежащему множеству вещественных чисел ставится в соответствие число типа float, которое называется его представителем.
- Каждое число типа float представляет множество вещественных чисел, но это множество значений является связным интервалом на вещественной числовой оси.
- Существует максимальное значение max, такое, что для всех |x| > max представители не определены.
- Множество чисел типа float симметрично относительно 0.
Следующие аксиомы постулируют совокупность требований, которые безоговорочно должны выполняться в любой машинной арифметике.
- Коммутативность сложения и умножения
x + y = y + x, x * y = y * x
- x >= y >= 0 (x - y) + y = x
- Симметричность основных операций относительно 0
x - y = x + (-y) = - (y - x)
(-x) * y = x * (-y) = - (x * y)
(-x) / y = x / (-y) = - (x / y)
- Монотонность основных операций
если 0 <= x <= a и 0 <= y <= b
то x + y <= a + b, x - b <= a - y,
x * y <= a * b/ x / b <= a / y
Обратите внимание, что обычные для арифметики законы ассоциативности и дистрибутивности отсутствуют в рассмотренных аксиомах. Это не случайно. Использование конечного числа представителей может нарушить исполнение этих законов. Например, если наше представление позволяет хранить только 4 цифры (порядок будем задавать положением десятичной точки) то
x = 9.900 y = 1.000 z = -0.999
1. (x + y) + z = 10.90 + (-0.999) = 9.910
2. x + (y + z) = 9.900 + 0.001 = 9.901
Вы можете сами представить подобный пример нарушения дистрибутивного закона.
Определенную опасность представляют операции сложения и вычитания. Они являются причиной значительных ошибок, особенно при вычитании почти равных значений. В этом случае большое количество значащих цифр взаимно уничтожаются, и в полученной разности может не оказаться нескольких, а может быть и всех значащих цифр.
Деление также представляет потенциальную опасность. В случае малых делителей результат легко может оказаться в области переполнения. Поэтому следует избегать деления на числа, близкие к нулю. Например, не следует в программе пользоваться отношением вида abs (t/x) <= eps, его лучше заменить отношением вида abs(t) <= eps * abs(x). Оно не содержит деления.
Мне кажется, что рассмотренные положения несколько поколебали Ваши представление о типах как о чем-то простом и понятном. А ведь мы пока говорили только об основных типах. Пора переходить к составным и производным типам.
2. Единицы измерения скорости передачи данных. Каналы передачи данных и их характеристики. От чего зависит скорость передачи данных
бит в секунду Бит в секунду (бит/с)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
байт в секунду Байт в секунду (байт/с)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
килобит в секунду (метрический) Килобит в секунду (кбит/с, десятичная приставка) — единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
килобайт в секунду (метрический) Килобайт в секунду (кБ/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
килобит в секунду Килобит в секунду (Кбит/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2¹⁰ является кибибит (Кибит). Однако двоичные приставки, введенные МЭК в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
килобайт в секунду Килобайт в секунду (КБ/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2¹⁰ является кибибайт (КиБ). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
мегабит в секунду (метрический) Мегабит в секунду (Мбит/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
мегабайт в секунду (метрический) Мегабайт в секунду (МБ/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
мегабит в секунду Мегабит в секунду (Мбит/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2²⁰ является мебибит (Мибит). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
мегабайт в секунду Мегабайт в секунду (МБ/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2²⁰ является мебибайт (МиБ). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
гигабит в секунду (метрический) Гигабит в секунду (Гбит/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
гигабайт в секунду (метрический) Гигабайт в секунду (ГБ/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
гигабит в секунду Гигабит в секунду (Гбит/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2³⁰ является гибибит (Гибит). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
гигабайт в секунду Гигабайт в секунду (ГБ/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2³⁰ является гибибайт (ГиБ). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
терабит в секунду (метрический) Терабит в секунду (Тбит/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
терабайт в секунду (метрический) Терабайт в секунду (ТБ/с, десятичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. В электросвязи битрейт традиционно используется с десятичными приставками СИ. |
терабит в секунду Терабит в секунду (Тбит/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2⁴⁰ является тебибит (Тибит). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |
терабайт в секунду Терабайт в секунду (ТБ/с, двоичная приставка)— единица измерения битрейта (англ. bit rate), используемая для количественной оценки эффективной скорости передачи информации по каналу связи. Правильной приставкой для 2⁴⁰ является тебибайт (ТиБ). Однако двоичные приставки, введенные Международной электротехнической комиссией (МЭК) в 1999, не получили распространения в компьютерной индустрии и системах передачи информации. |