Скачиваний:
109
Добавлен:
21.01.2014
Размер:
2.38 Mб
Скачать

4. Контрольные вопросы

                  1. Назначение и синтакис операторов GOSUB, RETURN, DEF FN, TYPE ?

Вопросы по процедуре выполнения индивидуального задания.

5. Библиографический список

                  1. Бобровский С. Программирование на языке QBASIC для школьников и студентов. — М.: Десс; Инфорком-Пресс, 1999. - 208 с.

                  1. Зельднер Г.А. Программируем на языке QuickBASIC 4.5. - М: ABF, 1996. - 432 с.

                  1. Введение в программирование на языке Microsoft BASIC: Учебное пособие / Ю.Я. Максимов, С.В. Осипов, А.В. Потемкин, Щ.С. Симоненков. - М.: ”Диалог-МИФИ”,1991. - 176 с.

Министерство образования

Российской Федерации

Тульский государственный университет

Кафедра “Инструментальные и метрологические системы”

Информатика

ЛАБОРАТОРНАЯ РАБОТА 14

ОРГАНИЗАЦИЯ СВЯЗИ С DOS

для студентов очного обучения

Тула 2000 г.

1. Цель и содержание работы

Целью работы является изучение принципов работы с окружением DOS: передачи управления другой программе; работы с датой, временем, файлами, командной строкой и таблицей окружения DOS.

Полученные знания и навыки необходимы для выполнения других лабораторных работ, а также практической деятельности.

2. Порядок выполнения работы

                  1. Изучить теоретическую часть.

                  1. Получить задание у преподавателя.

                  1. Выполнить задание.

                  1. Оформить отчет.

                  1. Защитить работу.

3. Теоретическая часть

Операторы для передачи управления другой

программе

CHAIN

Оператор

Передает управление из текущей программы в другую программу Basic.

CHAIN имя_файла

  • имя_ файла - символьное выражение, имя программы, которой передается управление. Может включать путь длинной до 127 символов.

  • Программы работающие в среде QB должны иметь расширение .BAS (по умолчанию). Нельзя передавать управление файлам типа .COM и .EXE.

  • Программы имеющие расширение .EXE могут передавать управление файлам .COM и .EXE, но не исходным файлам на BASIC.

  • Существует 3 способа переслать переменные вне cреды QB:

  • компилировать программу с опцией “Requiring BRUN45. EXE”.

  • передавать параметры через временный дисковый файл.

  • использовать межпрограммный 16-байтный буфер. Этот буфер специально предназначен для обмена сообщениями между программами.

  1. 'Предполагается, что программа TEST.BAS находится в каталоге \DOS.

CHAIN "C:\DOS\TEST.BAS"

RUN

Оператор

Выполняет текущую или указанную программу.

RUN [{номер_строки | файл$}]

  • номер_строки - числовая метка, указывающая строку, с которой начинается перезапуск. Если номер строки не указан, то выполнение программы начнется с первой выполняемой строки;

  • файл$ - символьное выражение, указывающее программу, которую нужно загрузить и запустить. Текущая программа удаляется из памяти.

  • Перед загрузкой программы, RUN закрывает все файлы и очищает память.

  • Используйте оператор CHAIN для запуска программы, не закрывая при этом файлов.

  • Строка с которой начинается перезапуск, должна находится на модульном уровне. Поэтому, оператор RUN в процедурах SUB или FUNCTION должен указывать на номер строки в модульном коде.

  • В среде QB по умолчанию загружается файл .BAS, а в откомпилированной программе файл .EXE, причем не обязательно написанный на BASIC.

  • В среде QB управление передпется среде (а не исходной программе), а в DOS - операционной системе.

  1. Пример

Результат

10 A = 9

20 B = 7

30 C = 5

40 D = 4

50 PRINT A, B, C, D

60 IF A = 0 THEN 70 ELSE RUN 20

70 IF B = 0 THEN 80 ELSE RUN 30

80 IF C = 0 THEN 90 ELSE RUN 40

90 IF D = 0 THEN END ELSE RUN 50

9 7 5 4

0 7 5 4

0 0 5 4

0 0 0 4

0 0 0 0

SHELL

Оператор

Приостанавливает выполнение программ Basic для запуска команд DOS или командного файла

SHELL [строка_команд]

  • строка_команд - символьное выражение, содержащее имя программы для ее запуска или команду DOS , включая все необходимые параметры.

  • Если опустить строку команд, SHELL вызывает COMMAND.COM и выводит на экран командное приглашение DOS.

  • Любые файлы типа *.COM, *.EXE, *.BAT или функции DOS могут быть исполнены при вызове оператора SHELL, т.к. он создает “порожденный процесс”. Такой процесс выполняется путем загрузки новой копии COMMAND.COM с опцией / С. Эта опция позволяет передать порожденному процессу значение командной строки. Она также позволяет предопределить стандартный ввод или вывод при выполнении таких команд, как DIR, PATH, и SORT.

  • Если в командной строке нет расширения файла, COMMAND.COM ищет сначала файл типа *.COM, затем *.EXE, а потом *.BAT. Если сам файл COMMAND.COM не найден, SHELL выдаст сообщение об ошибке “File not found” (Файл не найден). Но если COMMAND.COM не найдет файл, указанный в командной строке, то BASIC не выведет сообщения об ошибке.

  • Любой текст, отделенный от имени программы хотя бы одним пробелом, воспринимается как строка параметров, пересылаемых программе.

  • BASIC не освобождает память при выполнении порожденного процесса. При завершении процесса основная программа продолжается.

  • Не загружайте таким образом резидентные программы. При возврате в среду QB область памяти, занятая резидентной программой окажется занятой, что может привести к фрагментации оперативной памяти, ее нехватке, и сбоям в работе самого BASIC. Для возобновления выполнения программы используйте команду EXIT.

  1. СLS

SHELL

Операторы для работы с датой и временем

DATE$

Функция

DATE$

Оператор

Функция DATE$ возвращает текущую системную дату компьютера.

Оператор DATE$ устанавливает текущую системную дату в компьютере.

DATE$

DATE$ = символьное_выражение

  • Функция DATE$ возвращает строку в формате: мм-дд-гггг;

  • символьное_выражение - может иметь одну из следущих форм:

  • мм-дд-гг,

  • мм-дд-гггг,

  • мм/дд/гг, мм/дд/гггг,

  • мм - месяц; дд - день; гг или гггг - год.

  • Хотя формат даты для СССР принят, как дд-мм-гг, DATE$ использует формат, принятый в США, для совместимости с другими версиями Basic.

  1. PRINT DATE$

DATE$ = "07-21-91" 'Новая системная дата остается в силе, пока не измените ее. PRINT "Установленная дата "; DATE$

TIME$

Функция

TIME$

Оператор

Функция TIME$ возвращает текущее системное время компьютера.

Оператор TIME$ устанавливает текущее системное время в компьютере.

TIME$

TIME$ = символьное_выражение

  • Функция TIME$ возвращает строку в формате: чч:мм:сс;

  • символьное_выражение - устанавливает часы; минуты и секунды по умолчанию равны 00, и может иметь одну из следущих форм:

  • чч

  • чч:мм:сс.

  • чч:мм:сс.

  • чч - часы, мм - минуты, сс - секунды.

  1. PRINT TIME$

TIME$ = "08:00:58" 'Новое системное время остается в силе, пока не измените его.

PRINT "Установленное время "; TIME$

TIMER

Функция

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

TIMER

  • Используйте TIMER для хронометража программ или частей программ, или с оператором RANDOMIZE для запуска генератора случайных чисел.

  1. RANDOMIZE TIMER

Операторы для работы с файловой системой

CHDIR

MKDIR

RMDIR

FILES

Операторы

CHDIR изменяет каталог устройства, принимаемый по умолчанию. MKDIR создает подкаталог. RMDIR удаляет подкаталог. FILES отображает содержимое текущего каталога или указанного каталога.

CHDIR путь$

MKDIR путь$

RMDIR путь$

FILES [спецификация]

  • путь$ - путь нового каталога, принимаемого по умолчанию, создаваемого подкаталога или удаляемого каталога (например: [ диск: ] [ \ ] директория [ \ директория] ... ). Его длина для CHDIR не более 64 символов, для MKDIR и RMDIR не более 128 символов.

  • спецификация - cимвольная переменная или константа, содержащая имя файла, путь, диск. Можно использовать шаблоны DOS (? или*). Если аргумент спецификация опущен, то на экран дисплея выдается список файлов текущей директории.

  • CHDIR отличается от команды DOS CHDIR:

  • оператор не может быть сокращен до CD.

  • нет форм оператора, возвращающих значение текущей директории (В Microsoft BASIC PDS переход на другой диск - CHDRIVE, получение имени текущего каталога - CURDIR$, и списка файлов заданного каталога DIR$).

  • CHDIR меняет директорию, но не меняет диск.

  • Операторы MKDIR и RMDIR отличаются от команд DOS MKDIR и RMDIR тем что что они не могут быть сокращены до MD и RD соответственно.

  1. ' Для этого примера необходимо, чтобы существовал каталог C:\TMP

MKDIR "C:\TMP\TEST"

CHDIR "C:\TMP"

FILES

RMDIR "TEST"

KILL

Оператор

Удаляет файлы с диска.

KILL файлы$

  • файлы$ - определяет файл или файлы для удаления. Может включать путь и подстановочные символы DOS (? и *).

  • Соответствует команде DOS ERASE (DEL). Используется для всех типов файлов (кроме скрытых и только для чтения).

  • Попытка стереть открытый файл приведет к сообщению об ошибке “File alredy open” (Файл уже открыт).

  1. ‘ Стирает все файлы .DAT в директории IMS.

KILL “\IMS\*.DAT”

NAME

Операторы

Переименовывает файлы и каталоги

NAME старое_имя$ AS новое_имя$

  • старое_имя$ , новое_имя$ - существующее имя файла и новое имя файла. Каждое имя может включать путь.

  • Если оба аргумента имеют разные пути, данный оператор перемещает файл и переименовывает его. Оба файла должны находится на одном диске, в противном случае выдается ссобщение об ошибке “Rename across disks” (Перемещение между дисками).

  • Оператор соответствует команде DOS RENAME. NAME может переместить файл в другую директорию, но не может переместить всю директорию.

  • Использование NAME для открытого файла приведет к сообщению об ошибке “File alredy open” (Файл уже открыт).

  1. ‘ Переименование IMS.DOC в IMSTXT.DOC

NAME “IMS.DOC” AS “IMSTXT.DOC”

Связь с окружением DOS

COMMAND$

Функция

Возвращает значение командной строки DOS, заданной при запуске программы.

COMMAND$

  • Функция COMMAND$ возвращает полную командную строку, введенную после имени программы, включая параметры опций. COMMAND$ удаляет все начальные пробелы из данной строки и преобразует все буквы в заглавные (верхний регистр).

  • COMMAND$ может быть использована .EXE-файлами, а в среде QB она может быть задана опцией / CMD при запуске BASIC или путем выбора из меню “RUN” (ЗАПУСК) пункта “Modify COMMAND$” (Изменить переменную COMMAND$).

  1. ‘Включение музыкальной заставки (программа запущена с ключем “/M”)

СommandString$ = COMMAND$

...

IF INSTR (СommandString$, “/M”) > 0 THEN

PLAY “mbt200o215e17e17g>14c<18g>12c”

END IF

ENVIRON$

Функция

ENVIRON

Оператор

ENVIRON$ возвращает строку параметра из таблицы окружения DOS.

ENVIRON изменяет или добавляет строку среды в таблицу среды DOS.

ENVIRON$ (имя_параметра)

ENVIRON$ (num%)

ENVIRON символьное_выражение

  • имя_параметра - символьная переменная или константа, содержащая имя параметра из таблицы окружения DOS;

  • num% - номер параметра в таблице окружения;

  • символьное_выражение - может иметь вид:

  • параметр = текст

  • параметр текст

  • Все что находится слева от знака равенства или пробела, воспринимается как параметр, все, что справа - как текст.

  • Если указано имя_параметра или num%, которого нет в таблице, возвращается пустая строка, в противном случае - его значение.

  • Если параметр до выполнения оператора не существовал в таблице окружения, он добавляется в конец таблицы, в противном случае - его значение заменяется на данный текст, сам же параметр ставится в конец таблицы.

  • Если текст параметра - пустая строка (“”) или точка с запятой (;), то существующий параметр удаляется из таблицы окружения, а сама таблица сжимается. DOS восстанавливает таблицу окружения после завершения программы до ее исходного состояния.

  • Оператор ENVIRON можно применять для изменения параметра PATH для порожденного процесса (программы или команды, выполняемой оператором SHELL) или для пересылки параметров этому процессу путем создания нового параметра таблицы окружения.

  1. ENVIRON "PATH=TEST"

PRINT ENVIRON$("PATH")