|
Faultless
#08
29 ноября 1997 |
|
Вычисления - организация математических вычислений.

ОРГАНИЗАЦИЯ МАТЕМАТИЧЕСКИХ ВЫЧИСЛЕНИЙ.
Способы формирования и изменения значе-
ний числовых параметров.
Исходные данные,промежуточные и оконча-
тельные результаты вычислений составляют
тот набор значений , который приходится
размещать и в течение некоторого времени
хранить в соответствующих переменных.
Для форомирования заранее известных зна
чений в числовых переменных обычно при-
бегают к процедуре ввода нужной информа-
ции,которая может быть прочитана из буфе
ра клавиатуры,из файла данных,расположен
ного на гибком или жестком магнитном дис
ке,из блока данных ,предварительно сфор-
мированного в оперативной памяти.
Если значение переменной должно быть по
лучено в результате вычеслений по ариф-
метической формуле, то его запись в об-
ласть оперативной памяти, выделенную для
хранения переменной, производится с по-
мощью оператора присвоения.
Блок числовых данных можно представить
себе как одновременный массив,располо-
женный в оперативной памяти.Последнее
обстоятельство является основанием наз-
вать этот блок внутренним. Запоминание
указанного массива ведется в процессе
предварительной обработки текста исход-
ной программы до ее запуска на счет.Как
только в программе встречается оператор
DATA,то все константы , перечисленные в
его теле, переносятся в специально от-
веденную область памяти. Порядок их раз-
мещения в блоке данных в точности пов-
торяет порядок их следования в списке
оператора DATA: DATA C1,C1,...,Cn.
Первая константа C1 становится первым
элементом блока данных ,вторая константа
C2 - вторым элементом и т.д.
В программе может встретиться не один
оператор DATA,и тогда очередная число-
вая опрция заносится в блок данных вслед
за предшествующей.Порядок переноса таких
опрций соответствует последовательности
расположения операторов DATA в тексте
программы.Сформированный т аким образом
блок данных может быть использован в ка-
честве поставщика числовых значений пе-
ременных арифметического типа во время
выполнения программы.Сами же операторы
DATA относятся к декларативным,и во вре-
мя работы программы их обходят.Характер-
ной особенностью блока данных является
последовательный доступ к его элементам.
В момент запуска программы на счет в сос
тояние готовновсти приводится числовое
значение,которое попало в блок данных
первым.Иными словами,это - первая конс-
танта самого первого оператора DATA.Пос-
ле выборки этого значения доступной ста-
новится следующая константа и т.д.
Для извлечения числовых значений из
блока данных предназначен оператор READ:
READ V1,V2,...,Vn.
Он последовательно удовлетворяет пере-
менные своего списка , ивлекая очередное
значение из блока данных и перемещая
его в область памяти , отведенную для
хранения переменной.Выполнение этой про-
цедуры при необходимости может сопровож-
даться преобразованием машинного формата
числовой константы к тому виду,который
соответствует типу переменной.
Попытка извлечь из блока данных хотя бы
еще одно значение после того,как уже бы-
ла прочитана последняя константа,расце-
нивается как ошибка периода выполнения
и приводит к аварийному завершению прог-
раммы.
Третьим оператором, который участвует в
обслуживании блока данных,является опе-
ратор RESTORE: RESTORE {N}.
Без операнда N этот оператор приводит
блок данных в первоночальное состояние,
при котором очередным доступным значе-
нием становится самая первая константа.
Если операнд задан ,то им может быть но-
мер программной строки ,в которой нахо-
дится оператор DATA.После выполнения
такого оператора RESTORE очередным дос-
тупным значением становится первая конс-
танта числовой порции указанного опера-
тора DATA.
Оператор RESTORE может быть применен на
любой стадии "опустошения" блока данных,
даже если мы из блока данных еще ни од-
ного значения и не извлекали.
Другие статьи номера:
Похожие статьи:
В этот день... 1 января
SibNews #08,
Woot! #01,
Spectrum Magazine #01,
ACNews #25,
Psychoz #14,
ACNews #14,
Last 128 #08,
Last 128 #06,
Last 128 #05,
Last 128 #04,
Last 128 #03,
Last 128 #02,
Last 128 #09,
Last 128 #3.5,
Last 128 #8.025,
Sinclair Club #05,
Last 128 #M!R 01,
Fantadrom #01,
Buzz #20,
Last 128 #01,
DonNews #13,
Nicron #120,
Promised Land #01,
Inferno #01,
Marazm #25,
Ultimathum #01,
Marazm #21,
Hooy Mag #02,
KrNews #11,
Marazm #22,
Marazm #23,
ZX Football 2000 #01,
Codemania #01,
Always #03,
Bugs #02,
IzhNews #08,
Virtual Worlds #01,
Listok #04,
Scenergy #02,
Flash Info #18,
Marazm #16,
Marazm #17,
Zed #01,
Balagan #02,
ZX Format #08,
ZX Power #03,
Shock #01,
Impulse #02,
Deja Vu #03,
ZX Club #08,
ZX Club #06,
Numberology #01,
Marazm #13,
Marazm #12,
Marazm #14,
Gorodok #02,
Zodiac #01,
Marazm #15,
Deja Vu #07,
Marazm #11,
Deja Vu #07,
Playboy #03,
Crazy News #2,
Crazy News #4,
ZX Light #01,
Crazy News #5,
Playboy #02,
ZX News #03,
ZX Review #1-2,
Read Me #02,
Crazy News #3,
Nicron #13,
Read Me #01,
Public Spirit #01,
Faultless #06,
Faultless #05,
ZX Software #01,
Stump #04,
Speccy #07,
Возраждение #0,
Speccy #03,
On-Line #17,
Scene+ #01,
Welcome Press #01,
ZX Konig #04,
Adventurer #01,
Faultless #05,
Faultless #04,
Di Halt #01,
Faultless #01,
Playboy #01,
Crazy News #1,
Faultless #03,
Pioneer #03,
Sinclair Town #02,
ZX Magazine #01,
Eldorado #01,
ZX Magazine #02,
Spectron #01,
ZX News #01,
ZX Konig #02,
200 #W,
Welcome Press #00,
Dune #07,
Subliminal Extacy #01,
Subliminal Extacy #02,
ZX Konig #01,
Subliminal Extacy #00,
Muchomor #01,
Spectrofon #01,
ZX Revija #02,
Outlet #01,
Outlet #1-3