Глава 5 - Изучаем операторы WHILE...WEND, Random Access Files, APPEND, GET

Глава 5 - Изучаем операторы WHILE...WEND, Random Access Files, APPEND, GET

Глава ПЯТАЯ. Привет! В этой главе, мы изучим операторы:

 WHILE...WEND, Random Access Files, APPEND, GET (file I/O), SUB...END,  SUB, PUT(file I/O),
FUNCTION...END FUNCTION, LEN, GOSUB...RETURN, TYPE...END, TYPE,
DIM SHARED, COMMON SHARED, RTRIM$

 Чтож, приступим! Мы изучим другой метод выполнения цикла, путь прибавления к концу последовательного файла, структурного программирования.
Сначала вспомним прошлые способы выполнения цикла.
Как вы помните DO...LOOP и FOR...NEXT, а сейчас мы изучим операторы WHILE...WEND.
Этот оператор очень похож на цикл DO...UNTIL. Вот как выглядит синтаксис этого цикла:

 WHILE<условие>
 ...
WEND

 Скажем, Вы хотите сделать простую игру в предположения.
Всё, что требуется - простой цикл, как в этом примере:

 RANDOMIZE TIMER
 PRINT "Игра - угадай!"
 number = INT(RND * 10) + 1'случайное число от 1 до 10
 PRINT "Секретный номер находится в промежутке от 1 до 10"
 WHILE guess <> 10' цикл до предположения = 10
 INPUT "Попыток "; guess
 tries = tries + 1'счётчик попыток
 WEND
 PRINT "Хорошая работа! Вы угадали секретный номер с "; tries; "  попыт(ок),(ки)"
 END

 Эта программа составлена только в 10 строк!
Вот задание - объясните,
что делает каждая строча(как вы видите на некоторых строчках есть комментарии).
Теперь вы поняли, как действует цикл WHILE...WEND, он простой, и все же полезный!
 Мы говорили относительно файлов в Главе 4.
Вы помните команды INPUT и OUTPUT для последовательного входа в файл.
Есть еще один способ добавления к файлу информации, используя команду APPEND.
Команда используется точно так же как и OUTPUT и INPUT:

 OPEN "file.txt" FOR APPEND AS #1

 APPEND действует точно также как и OUTPUT и кроме этого не стирает то,
что уже записано в файле, прежде чем добавлять к этому другой текст.
Это полезно для продолжающихся высоких списков счета и связки других вещей.
 Сейчас мы должны изучить структурное программирование.
Очень не удобно в большой программе с тысячами строк и множеством операторов найти проблему! Поэтому, умные люди в 1960-ых разработали кое-что
называемое "структурным программированием - Ming. "
При использовании этой методики, мы можем использовать "подпрограммы" и "функции"
в создании наших программ, чтобы упорядочить программный текст.

 Чтобы создавать и редактировать подпрограмму в QBASIC,
нажимают кнопку на инструментальной панели меню
[E]dit(редактировать) > New [S]UB...(Новая подпрограмма...).
QBASIC спросит у вас относительно имени подпрограммы. Можно давать любое имя.
QBASIC тогда позволит вам редактировать текст подпрограммы.
В тексте подпрограммы используются те же операторы что и в обычной программе,
после того как вы написали подпрограмму, вы можете её посмотреть,
идите к [V]iew на инструментальной панели, выберите [S]UBS.
И затем выберите имя файла вашей подпрограммы в меню.
Если Вы хотите вернуться к главному тексту программу, то,
выберете в этом же меню название вашей программы. Знайте, что переменные,
которые Вы создаете в подпрограмме доступный только в этой же подпрограмме,
а переменные в теле программы доступны только в нём, сделать их общедоступными можно с использование следующая команда в начале подпрограммы:

 COMMON SHARED variable$, variable2, variable3!

 Команда "DECLARE SUB...", объявляет имя подпрограммы и её существование.
(QBASIC размещает эти инструкции в начале вашей программы, как только вы сохраняете её).
Сделать переменную доступной везде можно так (используя в задании переменной оператора SHARED):

 DIM SHARED array$(100)

 Удостоверитесь, что любые переменные(называемые "глобальной переменной")
находятся в вашей команде COMMON SHARED, иначе ваша программа будет работать с ошибками.
Передают переменные к подпрограмме подобно этому:

 SUB DoBox (x1, y1, x2, y2)

 Чтобы вызвать подпрограмму нужно написать имя подпрограммы и задать численное значение переменных(если они есть) подобно этому:

 DoBox 30, 20, 50, 20

 Если же нет переменных вы просто можете только напечатать название подпрограммы
в основном тексте программы(теле), подобно этому(здесь вызывается сразу 5 попрограмм):

 Mainloop: CLS
 DoGraphics
 DoLevel
 WaitForKey

 Как дополнение к подпрограммам есть ещё и функции. Они подобны подпрограммам,
о в основном они используются для вычисления. Создаёте их можно тем же самым путём,
каким вы создали бы подпрограмму, [E]dit > [F]UNCTION(но не SUB).
Редактировать функции можно так же как и подпрограммы. Вот простой пример:

 FUNCTION Cube(num)
 Cube = num * num * num
 END FUNCTION

 '[главная программа:]

 CLS
 INPUT "Номер "; number
 num3 = Cube(number)
 PRINT number; "в кубе = "; num3
 END

 Последний раздел, который мы будем изучать в этой главе - файл прямого доступа.
Они очень полезны для прикладных программ базы данных.
Чтобы сделать программу вы должны определить название вашей TYPE(название) программы и конец TYPE...END. Имеется короткий пример этого:

 TYPE people
 nm AS STRING * 40 ' название программы - 40 символов
 age AS INTEGER ' устанавливает возраст как целое число
 address AS STRING * 60 ' устанавливает адрес в 60 символов
 END TYPE

 Следующая вещь, которую мы должны изучить прежде,
перед тем как вы откроете файл - использование команды DIM,
для установления типа прямого доступа к файлу. Это делается так:

 DIM person AS people

 Теперь, мы должны научится открывать файл.
Снова используется команда OPEN(как вы помните из предыдущей главы), но теперь мы должны добавиться использования двух команд LEN и DIM. Вот пример:

 OPEN "address.dat" FOR RANDOM AS #1 LEN = LEN(person)

 Это открывает файл прямого доступа "address.dat" с книгой записей для присоединения информации. Теперь вы должны научится использовать свои переменные для ввода в файл информации.
Пример описан ниже:

 INPUT "Дайте название записи "; record
 INPUT "Имя"; person.nm
 INPUT "Возраст"; person.age
 INPUT "Адрес"; person.address
 PUT 1, record, person

 Как вы видите, вы должны задавать переменной имя массива, a точка, в вашей пременной ТИП.
Тогда, Командой PUT, вы помещаете переменные в файл.
Синтаксис для команды PUT:
PUT [имя файла], [номер записи], [имя переменной]
Это очень просто. Получать массив из файла, используется в основном тот же самый метод, за исключением команды GET .
Команда GET точно имеет тот же самый синтаксис, как команда PUT,
за исключением, того, что из файла читается в массив, который вы определяете.
Есть пример:

 INPUT " Представление, которые записи "; record
 GET 1, record, person
 PRINT "Название"; person.nm
 PRINT "Возраст"; person.age
 PRINT "Адрес"; person.address

 Так используют файл прямого доступа. Назовём, для примера файл RANDOM.BAS.
Файлы прямого доступа являются очень полезным для большого количества прикладных программ,
но они очень комплексны.

 Personname$ = RTRIM$ (person.nm)

 Такая команда бы подстроила к концу переменной несколько пробелов.

 Задание:

 1. Создать простую программу базы данных для адресов и названий(имен)
Использование структурного программирования.

Сайт создан в системе uCoz