ПОИСК Статьи Рисунки Таблицы Подготовка задач к программированию из "Программирование проектных расчетов" Содержанием второго этапа программирования является подготовка формул заданного алгоритма к составлению программы. Основной задачей программиста на этом этапе является правильный выбор способа представления числового материала в памяти вычислительной машины. При выборе способа представления чисел надо учитывать особенности каждого способа. [c.28] Представление чисел с фиксированной запятой прежде всего обеспечивает минимальное время решения задачи на машине. Пусть, например, для получения результата расчета алгоритмом задачи предусмотрено выполнить а сложений и вычитаний, Ь умножений, с делений и й пересылок и повторить эти операции N раз. При решении задач с фиксированной занятой для реализации алгоритма всего потребуется Р = (а Ь + с 2 (1) N операций, если опустить операции передачи управления, доля которых в общем числе операций обычно невелика. При решении задачи с плавающей запятой для каждого арифметического действия необходимо реализовать алгоритмы но правилам, указанным в главе I. Эта реализация в кодах машины Урал-1 приводит к необходимости в ходе каждого сложения и вычитания выполнить 30—31 операцию, включая операции засылки слагаемых в ячейки входа в подпрограмму и операции обращения к стандартной подпрограмме сложения (вычитания). Для каждого умножения и деления в кодах той же машины выполняется по шесть операций. [c.28] В кодах машины Минск-1 для каждого сложения (вычитания) при тех же условиях требуется 28—29 команд, для умножения — 4—5, для деления — 6—7. [c.28] Для тех же вычислений на машине Минск-1 (см. табл. 3) требуется Р = 14 команд (а = б, 6 = 8, с = d = О, N = 1) в первом случае и Рг = 200 команд во втором, т. е. в 13 раз больше. [c.29] Увеличение количества команд в программах с плавающей запятой требует большего объема памяти для программы и для числового материала, чем при решениях с фиксированной занятой, и в ряде случаев требует либо разбивки задачи на несколько последовательных звеньев, либо вообще заставляет отказаться от решения задачи на машинах с фиксированной запятой. [c.29] При решении задач в режиме с фиксированной запятой в памяти вычислительной машины числа должны все время удовлетворять условию (8). Необходимость обеспечить выполнение этого условия значительно усложняет подготовительный этан программирования и потому относится к существенным недостаткам режима с фиксированной занятой. Чтобы гарантировать отсутствие переполнения разрядной сетки машины на любом этане решения задачи, программист должен проверить выполнимость условия (8) для заданных значений параметров в каждом случае сложения, вычитания и деления, предусмотренном алгоритмом задачи. [c.29] К большому недостатку программ с фиксированно запятой относится и возможность потери точности. [c.29] 005076100 имеет семь значащих цифр — 5, О, 7, 6, 1, О, 0. Два последних нуля указывают на то, что число задано с абсолютно погрешностью, не превышающей 10 , и поэтому их принято считать значащими. Данное определение значащих цифр сохраняет силу и при двоичной записи чисел. [c.29] Потеря точности возникает при умножении чисел с фиксированной занятой и объясняется потере значащих цифр. К потере значащих цифр приводит ограниченность разрядной сетки вычислительной машины. [c.29] При записи с фиксированной занятой чисел аир количество значащих цифр этих чисел будет равно соответственно N — T a + + 1 иЛ — р +1- Определим теперь количество значащих цифр произведения ар-. [c.30] Чтобы обеспечить выполнение условия (8) при решении задач на машине и получить требуемую точность вычислений, программист должен придерживаться определенных правил при подготовке алгоритма задачи к программированию. Эти правила будут рассмотрены ниже. [c.30] С экономической точки зрения режим с фиксированной занятой более выгодный, но в ряде случаев оказывается невозможным добиться заданной точности, и тогда прибегают к режиму с плавающей запятой, комбинируя режимы при решении одной и той же задачи. [c.30] Вернуться к основной статье