Главная » Basic » СОХРАНЕНИЕ ПРОГРАММЫ

0

При работе с вычислительной системой очень важно иметь возможность запоминать в  архивной памяти  находящиеся  в  памяти  ЭВМ  программы  и  данные  и  считывать  их  обратно.  Архивной памятью служит магнитный носитель, способный хранить информацию многие месяцы и даже годы, не требуя для этого электропитания. Как и в случае машинных адресов памяти, сущест-

вуют довольно сложные средства выбора требуемых областей магнитного носителя. На магнитных лентах имеются дорожки, а на дисках — дорожки, секторы или даже цилиндры. К  счастью, есть средства отнести все эти понятия к сфере компетенции ЭВМ и работать с архивной памятью гораздо более удобным образом. Большинство систем с Бейсиком позволяет  представлять эту память как большую область, способную сохранять информацию. Любой части этой области можно присвоить имя  по  своему  усмотрению  (выбор  имени  ограничен  лишь   некоторыми  соглашениями),  и  в поименованной области можно запоминать программы или  данные. Каждая поименованная часть называется файлом, а вся область — файловой.

1.2.4.  ПОЛУЧЕНИЕ ДЕТАЛЬНЫХ СВЕДЕНИЙ О ФАЙЛАХ

Объем  памяти,  требуемый  для  конкретного  файла,  зависит  от  объема  содержащейся  в   нем программы (или данных), но обычно он не может быть меньше некоторого минимального  объема, определяемого   характеристиками   системы.   Так   как   архивная   память   не   может   содержать бесконечное число файлов, то Вам полезно знать, что она содержит и сколько именно памяти уже занято.  Если  в  Вашем  распоряжении  имеется  только  кассетный  магнитофон,  то  Вам  придется хранить на бумаге список запомненных на кассете файлов с указанием их положения на магнитной ленте, но если Вы располагаете дисковой вычислительной системой, то в ней существует встроенный справочник. Операционная система или  система с  Бейсиком  отражает в  нем текущее состояние дисковой памяти.

По  поводу  команд,  обеспечивающих  выдачу  сведений  обо  всех  этих  деталях,  обратитесь   к справочнику по  Вашей  ЭВМ.  Некоторые из  широко  распространенных вычислительных  систем освещаются в гл. 8.

1.3.  ПРИМЕР СЕАНСА РАБОТЫ

В  приведенном ниже  примере сеанса  работы с  Бейсиком опущены  детали  процесса  инициации системы, описанного в предыдущих разделах этой главы. Разрабатываемая здесь программа требует ввести число и выводит квадрат, куб и четвертую степень этого числа.

Вводимые пользователем данные подчеркнуты. В скобках в конце строки или между строк даются комментарии.

Инициация системы с Бейсиком

10 REM NUMBER EXAMPLE                     (набирается каждая строка) 20   INPUT A

30 B=A*A 10 PRINT "KBAДPAT PABEH" ,A

LIST                                                        (печатается текущее состояние программы)

10   REM NUMBER EXAMPLE

20   INPUT A

30      B=A*A

40  PRINT "КВАДРАТ РАВЕН" ,А

) ERROR AT LINE  40

(Системе могло "не понравиться", что программа не завершена оператором END. Она может не допускать выполнение команды RUN до тех пор, пока не будет вставлен оператор END. А результат неправилен потому, что в строке 40 вместо переменной В была указана переменная А.)

40   PRINT "КВАДРАТ РАВЕН", В              (исправление строки 40) 50      В=В*А                                            (набираются новые строки) 60   PRINT "КУБ РАВЕН", В

70      В=В*В

80   PRINT "ЧЕТВЕРТАЯ СТЕПЕНЬ", В

90 PRINT

100   END

RUN                                                                (исполнить программу)

? 9                                                                 • (запрашивается ввод)

КВАДРАТ РАВЕН 81

КУБ РАВЕН   729

ЧЕТВЕРТАЯ СТЕПЕНЬ  5.31441Е+5            (печатаются результаты) END AT LINE 100

(Правильными будут результаты 81, 729 и 6561, поэтому надо искать ошибку в программе.) LIST                                                              (распечатать программу)

10               REM NUMBER EXAMPLE

11               20   INPUT A

30      В=А*А

40   PRINT "КВАДРАТ РАВЕН", В

50      В=В*А

60   PRINT "КУБ РАВЕН", В

70      В=В*В

80   PRINT "ЧЕТВЕРТАЯ СТЕПЕНЬ", В

90   PRINT

100   END

(Ошибочна строка 70; в ней должно быть В*А. Кроме того, надо поправить текст в строке 80.) 70 В=В*А                                                    (строки набираются заново)

80   PRINT "ЧЕТВЕРТАЯ СТЕПЕНЬ РАВНА", В

RUN                                                                      (исполнить программу)

? 9                                                                         (запрашивается ввод)

КВАДРАТ РАВЕН   81

КУБ РАВЕН           729                                       (правильные результаты)

ЧЕТВЕРТАЯ СТЕПЕНЬ РАВНА 6561

(пустая строка выдана оператором PRINT в строке 90) END AT LINE 100

SAVE "EXAMPLE 1"                                          (сохранить    копию    текущей программы в архивной памяти

под именем EXAMPLE 1)

LIST 20                                                                (распечатать одну строку про-

граммы)

20  INPUT А                                                        (программа все еще находится в памяти; команда SAVE не перемещает ее, а только копирует)

NEW                                                                     (удалить программу из памяти)

LIST

NO PROGRAM                                                      (так отвечают некоторые системы) (Если в памяти нет никакой программы, реакции на команду LIST может и не быть.) LOAD "EXAMPLE 1"                                         (восстановить    копию    ранее

сохраненной программы)

LIST  80,100                                               (распечатать группу строк про-

граммы)

80   PRINT "ЧЕТВЕРТАЯ СТЕПЕНЬ РАВНА" ,В 90   PRINT 100   END

Программа возвращена в память и может быть исполнена снова, а может быть и изменена с какойлибо  целью.  Учтите,  что  некоторые  детали  команд  SAVE  и  LOAD  зависят  от  используемого носителя (ленты или диска), а также от вычислительной системы.

УПРАЖНЕНИЯ

2.1.     Выплата денег по ссуде или закладной производится фиксированными ежегодными платежами, погашающими как часть полученной взаймы суммы, так и начисленные за  непогашенный остаток проценты.

Если т фунтов стерлингов взято взаймы на t лет с процентами i, то размер годового платежа можно определить по следующей алгебраической формуле:

размер платежа=mrt(r-1)/(rt-1), где r=1+i/100.

Напишите программу, требующую ввода значений m, t, i и вычисляющую размер годового платежа.

2.2.     Требуется производить картонные коробки с заданными размерами. Определите объем коробки,

площадь поверхности расходуемого на нее картона и стоимость производства.

Длина коробки L, высота H и ширина W (в сантиметрах) вводятся в программу. За раскрой картона и формирование коробки из заготовки взимается постоянная плата 5 пенсов, не зависящая от размеров коробки. Цена самого картона 0.02 пенса за квадратный сантиметр. Припуском картона на склейку стенок пренебрегите. Напишите программу так,  чтобы печаталось все,  что  должно  вводиться и выводиться.

2.3.     Пусть коробки из упражнения 2.2 надо использовать для упаковки шоколадных конфет, для чего на крышке и  четырех боковых стенках каждой коробки требуется сделать  цветную надпечатку. Стоимость надпечатки 0.005 пенса за квадратный сантиметр.

Модифицируйте программу из упражнения 2.2 с учетом этих изменений в условии задачи. Выберите размеры  коробки  с  таким  расчетом,  чтобы  в  ней  помещался  1  фунт  (около  450  г)  конфет,  и проанализируйте, как изменяется стоимость производства коробки, если ее размеры варьируются так, чтобы объем коробки оставался одним и

тем же.

2.4.       Требуется ежемесячно проводить расчеты с владельцами кредитных карточек. Общая  форма расчета  показана  ниже.  Она  начинается  с  баланса  предыдущего  месяца  (т.  е.   непогашенного владельцем карточки долга)   и начисленных на него процентов (из расчета 8 % ежемесячно). Далее идет  перечень  купленных  владельцем  карточки  товаров    с  указанием  их  стоимости,    В  конце подытоживается текущая сумма долга клиента    кредитной   фирме   и   указывается    минимальная выплата  для  погашения долга, составляющая 10 % от него.

Напишите программу для выдачи подобного расчета после покупки трех товаров. (Для  хранения названий товаров используйте строковые переменные.)

Расчет должен выдаваться в следующем виде: КРЕДИТНАЯ ФИРМА TAXHAVEN

ОСТЬ

YYYYYY                   ХХХХ

YYYYYY                   ХХХХ

YYYYYY                    ХХХХ                   ИТОГО:                      ХХХХ

МИНИМАЛЬНАЯ ВЫПЛАТА

:         ХХХХ

Источник: Уолш Б.    Программирование на Бейсике: Пер. с англ. М.: Радио и связь, 1988. 336 с: ил.

По теме:

  • Комментарии