ustify"> Рис. 2.7 Блок-схема циклічного обчислювального процесу із застосуванням двовимірного масиву
- перезапис в файл; - читання файлу; - режим введення/виводу.
Якщо ви відкрили файл для доповнення, то це робиться наступним чином:
OPEN FILE.TXT APPEND AS # 1 $= your text here =344,9 # 1, a $ # 1, w # 1
У результаті програма допише в файл FILE.TXT два рядки, у першій - значення змінної a $, у другій - значення змінної w. Рекомендується в кінці програми ставити CLOSE, тоді вона автоматично закриває всі файли. Якщо не закрити файл, то у вас не буде до нього доступу, в ньому нічого не зміниться і т.д., команда CLOSE закриває всі файли і проблем не виникне.
Для читання з файлу використовується оператор INPUT #:
OPEN FILE.TXT FOR INPUT AS # 1 # 1, D $ # 1, R # 1 D $
PRINT R
CLOSE
Ще одне гарне властивість - команда FREEFILE - вказує наступний вільний номер для файлів, коли у вас відкрито декілька файлів і ви думаєте який ще придумати номер - не мучте, пишіть:
n=FREEFILE name for append as #n
...
close #n
Приклад. Знайти всі масиву C (5,5)., Великі за модулем 2.
Сформуємо файл data містить елементи масиву за допомогою оператора PRINT #:
DIM C (5,5) data for output as # 1I=1 TO 4J=1 TO 5X # 1, XJ, I # 1
Для вирішення нашої задачі елементи масиву зчитуємо з файлу data за допомогою оператора INPUT #.
Результати запишемо у файл rez.
open data for input as # 2rez for output as # 3I=1 TO 5J=1 TO 5 # 2, C (I, J) ABS (C (I, J)) gt; 2 THEN PRINT # 3 C ( I, J) J, I
CLOSE
.5.5 Підпрограми
Відокремлену групу операторів, яку можна виконувати багаторазово, звертаючись до неї з різних місць програми, називають підпрограмою. Щоб підпрограма при зверненні до неї виконувалася щоразу з новими даними, її потрібно скласти в загальному вигляді, а вихідні дані для роботи передавати в змінні підпрограми перед зверненням до неї.
1. Блокова функція користувача.
FN ім'я [(список параметрів)]
Операториімя=вираз
ОператориDEF
uickBASIC - програма для прикладу 2:
REM LR - 5-1, m=13, n=5
DEF fnf (x, y)=cos (x ^ 2 + y ^ 2) DEF
REM Блокова функція користувача
INPUT m, n=m/n: y=- 2 * n: f1=fnf (x, y)=3 * (m + n): y=- 5.5 * m: f2= fnf (x, y)=(f1 + f2)/2/(m + n) z =; z
2. Підпрограма-функція
UNCTION ім'я [(список параметрів) STATIC]
[Оператори підпрограми]
ім'я=вираженіеFUNCTIONuickBASIC - програма для прикладу 2:
FUNCTION f (x, y)
REM LR - 5-2, m=13, n=5=cos (x ^ 2 + y ^ 2) FUNCTIONFUNCTION f (x, y) Підпрограма-функція
INPUT m, n
x=m/n: y=- 2 * n: f1=f (x, y)=3 * (m + n): y=- 5.5 * m: f2=f (x , y)=(f1 + f2)/2/(m + n) z =; z
3. Підпрограма загального вигляду
SUB ім'я [(список параметрів)] [STATIC]
Оператори подпрограммиSUB
[CALL] ім'я підпрограми [(список аргументів)] uickBASIC - програма для прикладу 2:
SUB c (x, y, f)
REM LR - 5-3, m=13, n=5=cos (x ^ 2 + y ^ 2) SUBSUB c (x, y, f) Підпрограма загального вигляду
INPUT m, n
x=m/n: y=- 2 * n: CALL c (x, y, f1)=3 * (m + n): y=- 5.5 * m: CALL c (x , y, f2)=(f1 + f2)/2/(m + n) z =; z
4. Підпрограма GO SUB
Звернення до підпрограми здійснюється оператором GOSUB N
де N - номер рядка, з якої починається підпрограма.
Підпрограма розміщується в послідовних рядках, починаючи з N - й. Останнім оператором, виконуваним в підпрограмі, повинен бути оператор RETURN. За оператору RETURN здійснюється повернення в те місце програми, з якого відбулося звернення до підпрограми, а саме до оператора, наступного за GOSUB N. Підпрограма може містити звернення до інших подпрограммам.uickBASIC - програма для прикладу 2:
REM LR - 5-4, m=13, n=5
INPUT m...