Journal influence
Bookmark
Next issue
Abstract:
Аннотация:
Authors: () - , () - | |
Ключевое слово: |
|
Page views: 15350 |
Print version |
Недавно я столкнулся с одной серьезной проблемой — покупкой домашнего компьютера. Стоит он немного дешевле мотоцикла с коляской, но дороже цветного телевизора. Доказать его полезность в домашнем хозяйстве очень трудно, а приобретать компьютер, не посоветовавшись с членами семьи, рискованно. Можно оказаться в положении героя одного рассказа В. Шукшина, купившего микроскоп и вступившего из-за этого в крупный конфликт с супругой. Я поступил умнее: попросил на полгода персональную ЭВМ у своего приятеля, который, не посоветовавшись с женой, приобрел ее и тем самым вызвал семейный конфликт. Поэтому он и сам был рад избавиться от этой машины на время, но не насовсем, ибо без нее себя уже не мыслил. Как только машина оказалась на моем столе, я не стал терять времени даром. Представив с ее помощью неопровержимые доказательства целесообразности покупки компьютера, я убедил домашних в том, что он способен не только «делать дыры» в семейном бюджете, но и латать их. помогая экономно вести домашнее хозяйство. Главным моим доказательством послужила программа, которая превратила ЭВМ в удобную книгу для распределения семейного бюджета. Что это за книга? На первой странице записаны расходы и доходы со дня начала ведения книги до момента заполнения этой страницы. На последующих страницах записи ведутся аналогичным образом — период учета начинается с даты, проставленной на пре- дыдущей странице. Вот примерный вид разворота такой книги: 2S февраля 1УК7 г 2 марта 1987 г. Питание 10 руб. 112 коп. Питание 30 руб. 4К кои. Одежда 120 руб Одежда — Платежи— Платежи 211 руб. 35 коп. Развлечения НО коп Развлечения 30 коп. Прочее — Прочее 21 руб. Приход —___________________________________ Приход 242 руб. 31 коп.______ • Из книги явствует, что с 28 февраля по 2 марта 1987 года семья истратила на питание 30 рублей 4S1 копеек, а кто-то из ее членов в начале месяца получил зарплату 242 рубля 31 копейку. Вести записи каждый день необязательно, иначе машина превратится в тирана, требующего ежедневного общения. Но и забывать о записях тоже не следует, а то потом ничего не вспомнишь. Распределение расходов по статьям можно изменить, приспособить к особенностям конкретной семьи, предусмотреть учет сбережений, наличие долгов и т. д. Заполнение очередной страницы электронной бухгалтерской книги мала чем отличается от *аписи и Обычную тетрадь, только вместо авторучки используется клавиатура компьютера, а вместо бумаги — дисплей и магнитный слой на диске. Преимущества вычислительной техники в полной мере проявляются при последующей обработке записей. Машина быстро и точно подсчитает расходы и доходы за любой период времени. выра!и1 их в процентах к общей сумме и тем самым покажет, какие расходы следует уречать. чтобы, например, покрыть долг, возникший в связи с покупкой домашней ЭВМ. R программе, по которой ведутся все эти подсчеты, 27 строк плюс три небольших подпрограммы. Первая (строки 5000—5006)" по дате определяет номер дня на хронологической оси XX века. Дату нужно задавать в не совеем обычном виде: первые две цифры — год, потом точка, еще две цифры — месяц, опять точка, последние две цифры — день. Вторая подпрограмма (строки 5007—5011) проделывает обратную операцию. Третья (строка 5012) прерывает счет, чтобы тот, кто о данный момент испол-&1ЯСТ обязанности семейного бухгалтера (с ними хорошо справляется моя жена), успел вставить в дисковод нужный диск, снял с него защиту от записи, считал информацию с дисплея. Машина при этом терпеливо ждет нажатия клавиши ВК. Работа по программе «Бюджет семьи» начинается с задания длины литерных переменных и размеров массивов. Делается это в строке I. Сначала тянется довольно пространный перечень символов, которыми обозначены даты, фигурирующие в дальнейших расчетах. Длина каждой из этих литерных переменных — 8 байтов. Вещественный массив 5( ) будет хранить величины расходов и доходов, вписанных на одной странице книги, а массив SO ( } — их сумму за определенный период. В каждом таком массиве шесть элементов (но числу статей учета). Названия статей записаны в этой строке дальше : ПИТАНИЕ, ОДЕЖДА, ПЛАТЕЖИ и т. д. В первой строке эти названия становятся элементами литерного массива Stf ( ). Перед глазами сидящего за компьютером появляется запись, напоминающая титры в начале фильма: РАБОТА С КНИГОЙ РАСХОДОВ И ДОХОДОВ. Ради этого элемента культурного программирования я специально записал в программу строку 2. Вежливости ради я записал и строку 3. Компьютер попросит включить дисковод и, перейдя на подпрограмму в строке 5012, задержится, как этого требует начинающий подпрограмму оператор INPUT. ГОТОВО? — появится на дисплее. Нажмите любую клавишу на клавиатуре, потом клавишу ВК. Компьютер вернется на строку 3 и поинтересуется, не произошла ли какая-нибудь ошибка. Если да, то он начнет выполнять эту строку с начала, опять вежливо попросив включить дисковод. Следующая строка — 4. На магнитном лиске отдельным файлом ГРАНИНЫ хранятся две крайние даты книги в литерном и числовом виде (Dl$ , Dl, D2H , D2) и общее число записей в ней F. Это позволяет мац: и не быть уверенной в том. что работающий с ней человек не ошибся и вставил в дисковод нужный диск, а человеку — ориентироваться в книге и контролировать степень заполнения диска записями. Если же будет вставлен не тот диск, го анализатор ошибок, записанный в конце строки 3, повторит просьбу машины вставить в дисковод диск с файлом ГРАНИЦЫ. Его необходимо создать с самого начала. Для этого надо набрать на клавиатуре вспомогательную строку: 6000 PRTNT DATA НАЧАЛА ВЕДЕНИЯ КНИГИ; : GOSUB 5001 DATA SAVE DC OPEN R (2) ГРАНИЦЫ: DATA SAVE DCDH , D, DB , D.O: DATA SAVE DCEND Как видно из операнда (2), файл ГРАНИЦЫ занимает два сектора на диске (меньший объем памяти недопустим). Набрав эту строку, надо дать команду на се выполнение: RUN 6000, затем нажать клавишу ВК. 11о вернусь к разбору программы. Операторы строк б и 7 запрашивают календарную дату работы с книгой На строке 8 записано меню работы с ней. Оператор выбора позволяет либо записать в книгу новые данные об изменениях в семейном бюджете, то есть заполнить новую страницу [I), либо просмо-[реть старые записи (2). I [овая запись делается гак. В строке 9 запрашивается календарная дата, в строке 10 — расходы и до-■ коды, имевшие место накануне. Запрос их ведется циклически с заполнением массива S( ). При желании можно наверстать упущенное, но тогда дата чаписи будет отличаться от даты работы с машиной. В строке 11 производится новая запись. Ее имя полностью совпадает е календарной датой дня, по которой фиксировались расходы н доходы, так что все эти данные будут храниться на диске в виде файла под именем, допустим, «87.03.O4e. Это позволяет машине легко находить нужную информацию ] !овая ;апись. естествен но. меняет объем и границы заполнения книги, ив соответствии с этим содержание файла ГРАНИЦЫ меняется операторами строки 12. После этого происходит возврат на строку 8. Вот что будет при этом на дисплее: Алгоритм нторого режима работы с книгой — режима обработки записей — несколько сложнее. У него более ветвистая логика. Например, если заданная вами в строке 14 начальная дата совпадает с датой начала ведения книги, то по условию IF D3=D1 THEN 17 вы сразу окажетесь на строке 17. где нужно задать конечную дату." Если она совпадает с датой последней записи, то по условию IF I)4=D'THEN 18 вы сразу попадете на строку 18, где оператор MATS© ZER:S1,S2=O присвоит нулевые значения всем элементам массива ЪЩ ). переменным SI, S2. С этого начинается подсчет расходов и доходов за указанный вами период. Если же таких совпадений нет. то путь к строке IK проходит через проверки: правильна ли введена дата, есть ли на диско файл, озаглавленный такой датой. Первая из этик проверок осуществляется точно гак же. как в конце строки 9. Вторую удобнее разобрать на примере строки 15 Здесь в самом начале пред усматриваете и возможность программной ошибки: если на диске нет записи под указанной вами начальной датой, произойдет переход по ошибке ни строку 13. Машина укажет на нашу оплошность и попросит ввести дату !аново. Такие же действия определяются операторами, «писанными в конце строки 17. Но я не стану слишком подробно описывать все ходы и переходы в моей программе: разобраться в них самостоятельно, наверное, захочется каждому, кто начнет ее читать. Не буду лишать его этого удовольствия. Переход По ошибке возможен и дальше, при перелистывании книги. Это делается циклом с заголовком в строке 19 и концом в строке 24. Машина перебирает день за днем, начиная с D3, и прибавляет единицу »| единицей к переменной D. Каждый раз н подпрограмме, записанной со строки 5(107. эта число-пая переменная превращается в литерную, в строку вида ГГ. ММ ДД. которая стоит в заголовке каждой !алиси на страницах книги. Дальше в строке 19 написано ON ERROR EM . NH GOTO 24. Если машина будет пытаться считать данные по очередной дате, например К7 03.1)1, и их на диске нет, то переход по ошибке приведет на строку 24. где значение Г) увеличится на единицу, и машина будет искать на диске файл, озаглавленный следующей датой. Только в тон случае, когда ошибки хе произошло и на диске есть jariHCb под датой DH , этот файл считынается. Перейдя на строку 20, машина уведомляет, что будет выводить расходы и доходы с такого-то по такой-то день. Второй из этих дней — DH , т. е. тот. под которым на диске нашлась очередная запись. А первый D5H . Посмотрите в конец строки 23:05Й =DR . Нетрудно догадаться, что первый из названных на дисплее дней тот, под которым на диске значилась предыдущая запись. В строках 21-^23 имеется еще цикл с параметром 1: расходы и доходы суммируются по статьям, печатаются заголовки статей семейного бюджета, причем каждая заполняется по указанному формату. Дальше — ветвление по условию 1=6: если параметр I не достиг 6, содержимое 1-й статьи гфибавля-ется к сумме расходов; если достиг, речь идет уже о доходах, и в строке 22 содержимое 6-й статьи добавляется к сумме доходов S1. Б строках 25-=-27 на дисплее выдаются результаты расчетов: суммы по статьям семейного бюджета и их вес в процентном отошении. Вот как это может выглядеть на дисплее: То, что в феврале 1987 года в семье так мало денег тратилось на развлечения, легко объяснить. В прошлом году был куплен домашний компьютер, который теперь бесплатно развлекает нею семью играми, головоломками, тестами... Да, чуть не забыл: в моей программе не предусмотрена возможность исправления хранящихся на диске записей. Бухгалтерская книга должна быть прошнурована и пронумерована постранично, н ее электронный аналог — не исключение из этого правила: в ней нельзя делать подчисток." Календарные даты записываются по-разному. Вот несколько образцов: — Тысяча девятьсот семьдесят первый год, февраль, семнадцатый день — 14 ноября 1948 года — 23.Х/48 — 8.9.1913 — Последний день Страстной недели 1905 года — 27.01.S7 — 87 (12 28 — 1999. 12. 31 Последние две формы записи получают сейчас все большее распространение по двум причинам. Цифры, означающие год, m конца записи даты в ее начало «перетащили» компьютеры. Им так. оказывается, удобнее. Для 'ЗВМ литерное выражение ~86.03.23» в логических операциях будет больше, чем. например «85.12.31», так как код цифры 6 больше кода цифры 5. Год же стали записывать полностью из-за того, что XXI век не за горами, а такие даты, как 01.02.03, могут запутать даже компьютеры будущего. Конечно, вычислительную машину несложно научить принимать календарные даты, записанные в любой форме, но лучше договориться с ней заранее, где будет стоять год. где месяц, а где Число Программа «Вечный календарь», позволяет обрабатывать календарные даты 'см. меню на строке 20/. Про|рммму ^Бюджет ссиьн» несложно переделать д;|я веления дневника. При этом в файлы с именами, совпадающими с калгндлриои нагой. нуяою 5апиеывать деля, мысли и т. д. прошедшего дня. Такой электронный дневник поможет быстро Парировать упрех-восклпцаыне жскы гипа; *Я уже не помню когда мы последний раз были в театре?!» Для этого достаточно ировсети ретро еггеьтнпный поиск ил страницах дне-ппика по ключевому слову I ЬАТР
|
Permanent link: http://swsys.ru/index.php?id=1484&lang=en&page=article |
Print version |
The article was published in issue no. № 3, 1988 |
Perhaps, you might be interested in the following articles of similar topics:
- Средства сетевого менеджмента в мультисетевых структурах
- Инженерная программа трехмерного моделирования магнитных систем LittleMag
- О моделировании данных
- Алгоритмы и процедуры построения билинейных моделей непрерывных производств
- Вычислительный интеллект: немонотонные логики и графическое представление знаний
Back to the list of articles