ПРОГРАМНІ ФАЙЛИ

Написані на Бейсике програми зазвичай запамятовуються в ЕОМ в деякому внутрішньому форматі, який досить близький до того, який зображається на екрані ВТУ, але відрізняється тим, що в ньому видалені прогалини, службові слова замінені на умовні символи, а змінні можуть замінюватися посиланнями на таблицю умовних символів Цей компактний формат зазвичай використовується при збереженні програм у файлах Такі файли організовані послідовним чином, причому програмі передують її імя та інші деталі Файл може зберігатися на стрічці або диску, і метод його використання досить стандартний

У табл 82 зібрані команди, що копіюють програми з памяті в файл і назад В цілому команди SAVE і LOAD досить стандартні, чого не можна сказати про їх деяких додаткових параметрах У персональній обчислювальній машині PET в цих командах треба вказувати номер пристрої введення-виведення якщо він відсутній, то маються на увазі файли на

Таблиця 82 Команди для роботи з програмними файлами

Дія

Приклади

команд

Коментар

Збереження копії

програми у файлі

SAVE &quotFRED&quot

SAVE

Звичайний для мікроЕОМ формат У ко-

манду можуть входити додаткові параметри

У ICL 2904 така команда зберігає програму, якої попередньо присвоєно імя (командами NAME FRED або NEW FRED)

Завантаження копії програми з файлу

Видалення програмного файлу

Зчитування іншої програми з диска на місце поточної програми

LOAD &quotFRED&quot GET FRED OLD FRED

KILL &quotFRED&quot KILL FRED UNSAVE FRED

10 CHAIN &quotFRED&quot 10

LOAD &quotFRED&quot

Звичайний для мікроЕОМ формат У персональній ЕОМ PET ця команда містить додатковий параметр, що визначає пристрій (диск або магнітофон), а в Бейсике Microsoft в ній можна вказати R для негайного запуску програми

Формат, прийнятий у ICL 2904 та багатьох інших великих ЕОМ

Використовується тільки в дискових систе-

мах для мікроЕОМ

Використовується на ICL 2904 та багатьох інших великих ЕОМ

Є оператором і може мати багато додаткових параметрів

У деяких системах, наприклад PET, застосування LOAD в якості оператора дає той же ефект, що і команда CHAIN

побутової магнітної касеті При роботі з диском потрібно вказувати спеціальне імя файлу,

що включає в себе номер дисковода Наприклад, команда

LOAD &quot0:FRED&quot,8

завантажить в память файл FRED з диска (пристрій 8), встановленого в дисковод 0

При роботі з побутовою магнітної касетою такої команди видалення файлу, як KILL (знищити), немає: мається на увазі, що для видалення файлу треба його перезаписати Зазвичай протяжку стрічки в касеті, запис і перемотування доводиться ініціювати вручну Типова послідовність дій при виконанні команди SAVE така: треба набрати повний текст команди, але клавішу повернення каретки (або ENTER) поки не натискувати Потім треба включити магнітофон і перевести його в режим запису Через

кілька секунд натискається клавіша повернення каретки (або ENTER), щоб послати команду ЕОМ Через кілька хвилин система видасть на ВТУ повідомлення ОК (усі в порядку), після чого стрічку можна зупинити

Касетна система ВВС запамятовує детальні відомості про програму в кожному блоці програми, записаному на стрічці Ці відомості зображуються при завантаженні програми в память за допомогою команди LOAD і забезпечують корисну індикацію стану процесу завантаження Крім того, за допомогою команди * САТ досить просто організовується каталог змісту стрічки при її читанні від початку до кінця Ця можливість дуже корисна при перемотуванню стрічки до потрібної програми Досить набрати * САТ, пропустити декілька файлів або перемотати стрічку ближче до початку і потім читати стрічку доти, поки не буде виявлена ​​необхідна програма

Іноді через обмеженість памяті програма не може в ній поміститися цілком Ця проблема усувається оператором CHAIN ​​(повязувати в ланцюжок), що викликає іншу програму для перезапису поточної і передає їй управління Розглянемо приклад програми, написаної (звичайно ж) В модульному стилі для виконання обчислень і видачі результатів в графічному вигляді У памяті ЕОМ поміщається тільки по одному модулю за раз, так що модулі треба поперемінно викликати командою CHAIN ​​(рис 81)

Виконання програми починається з модуля FRED При цьому запитуються і вводяться деякі дані, над якими виконуються певні обчислення Так як результати вимагається накреслити на екрані, то оператор 500 викликає файл JIM для перезапису поточної програми і продовжує виконання з початку ліченої програми побудови зображень Після завершення програма JIM знищує себе, викликаючи програму FRED, яка може запитати нові дані і продовжити роботу або ж відразу зупинитися Процес зміни програм протікає повільно, але часто іншого шляху виконання великих програм немає

Точні деталі виконання команди CHAIN ​​змінюються від системи до системи Більшість систем вимагає, щоб кожен сегмент включав в себе основну програму Тому, на жаль, робити зміну тільки підпрограм можна Досить часто вихідні змінні зберігають свої значення після зміни програми, а в інших випадках, наприклад в Бейсике Microsoft, для вказівки тих змінних, значення яких потрібно зберегти, використовується оператор COMMON Аналогічним чином багато системи дозволяють зберігати і привязки до файлів даних, так що наступний сегмент може продовжувати читання або запис з того місця, на якому зупинилася попередня програма У будь-якому випадку ті значення, які треба передавати від сегмента до сегмента, можна помістити в тимчасові файли даних, які можна знищити в кінці виконання

Широко поширеною загальною програмної конструкцією є меню, з яким зручно поєднуються оператори CHAIN:

10 REM ПРОГРАМА ДЛЯ РЕАЛІЗАЦІЇ ОСНОВНОГО МЕНЮ

20 REM

30 PRINT МЕНЮ ОПЕРАЦІЙ

40 PRINT &quot————&quot

50 PRINT Оберіть, будь ласка, Необхідні ПРЕДМЕТ 60 PRINT

ЩОБ ЗАКІНЧИТИ, ВВЕДІТЬ І

70 PRINT ЗАРПЛАТА ВВЕДІТЬ 1

80 PRINT ПОДАТОК ВВЕДІТЬ 2

90 PRINT РАХУНКУ ВВЕДІТЬ 3

100 PRINT СЛУЖБОВЦІ ВВЕДІТЬ 4

110 INPUT N

120 Rем

130 IF N=l THEN CHAIN &quotWAGES&quot

140 IF N=2 THEN CHAIN &quotTAX&quot

150 IF N=3 THEN CHAIN &quotACCTS&quot

160 IF N=4 THEN CHAIN &quotEMPLYS&quot

170 END

У цій програмі немає явного повернення для повтору видачі зображення меню, але неявно передбачається, що кожен модуль повертає управління в початок основної програми У деяких різновидах оператора CHAIN ​​допускається зазначення номера рядка, що показує, звідки треба починати виконання викликаної програми Для деяких ЕОМ наведений вище приклад треба доповнити деякими деталями наприклад, у системі PET потрібно, щоб при кожному виклику з диска нової програми командою CHAIN ​​в осередку 42 і 43 заносилося значення покажчика на початок області змінних командою Роке

Файли будь-якого типу містять певні засоби виявлення помилок, повязаних з втратою або спотворенням даних Це особливо важливо при роботі з більш чутливими до пошкоджень носіями – касетами з магнітною стрічкою і гнучкими магнітними дисками Зазвичай до кожного запоминаемому блоку байтів додається кілька зайвих бітів, що дозволяють системі виявляти помилки при читанні блоку До нещастя, помилка тільки в одному блоці може перешкодити прочитуванню всього файлу, а то і всього диска – принаймні, на наявних у Вашому розпорядженні пристроях Спробуйте в цьому випадку прочитати касету або диск на інший 240

ЕОМ, так як її пристрої можуть мати іншу чутливість якщо і це не допомагає, а інформація дуже важлива, то у постачальників або виробників ЕОМ можуть матися засоби, що дозволяють врятувати значну частину

даних

Джерело: Уолш Б Програмування на Бейсике: Пер з англ М: Радіо і звязок, 1988 336 с: ил

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*