Оператор dim, блоки даних, підпрограми мови basic - мова програмування basic

Якщо в задачі оброблювані дані організовуються у вигляді масивів, в цьому випадку інтерпретатора потрібно повідомити інформацію, необхідну для розподілу пам'яті під масиви, використовувані в програмі. Для цього використовується оператор DIM.

Формат: DIM a1 (m1), a2 (m2). aN (mN)

ai - ім'я масиву;

mi - список параметрів, які задають максимальні значення індексів масиву. Список mi може містити одну або дві цілі константи або змінні, розділені за п'ятими, а також арифметичні вирази. Індекси з змінюються від 0 до максимального.

Приклад: DIM A (4), B (5,8), A1 $ (5), B1 $ (3,4)

Оператор DIM описує числові масиви A і B, символьні масиви A1 $ і B1 $. Масив A одновимірний і містить 5 елементів A (0), A (1), A (2), A (3), A (4). Двовимірний числовий масив B містить 6 рядків і 9 стовпців. Символьний одновимірний масив A1 $ складається з 6 елементів. Символьний двовимірний масив B1 $ складається з 20 елементів (4 рядки, 5 стовпців).

Обробка масивів в мові BASIC проводиться поелементно. Оператор DIM, що описує масив, повинен бути розташований в програмі до першого оператора, що використовує його елементи.

Якщо в одновимірному масиві не більше 11 елементів, а в двовимірному не більше 11 рядків і 11 стовпців, то такі масиви можна не описувати.

Як максимальних індексів можна використовувати імена змінних. Але значення змінним повинні бути присвоєні до оператора DIM.

Приклад 1: Приклад 2:

10 INPUT N, K 10 INPUT N, М

20 DIM A (N), B (K, N) 20 DIM A (N + 1, М)

Приклад 3: Дано одновимірні масиви A і B, що містять по N елементів. Сформувати новий масив D, кожен елемент якого визначається за формулою

10 INPUT "Введіть розмірність масивів"; N

20 DIM A (N), B (N), C (N), D (N)

40 INPUT A (I), B (I), C (I)

блоки даних

а) Оператор DATA

Оператор DATA призначений для створення блоку даних.

DATA - ключове слово;

А - список, що містить одну або більше речових, цілих або строкових констант, розділених комами (рядкові константи необов'язково брати в лапки).

Оператор DATA створює в оперативній пам'яті ЕОМ блок даних. Інформація в блок даних записується в тому порядку, в якому вона розташовується в списку. Якщо в програмі використовується не скільки операторів DATA, то формується блок даних шляхом послідовного зчеплення значень зі списків в порядку появи операторів.

Приклад: 20 DATA 2, 5.6, програма

50 DATA 8, приклад, 37.6, 5

У блоці даних буде 7 елементів: 2, 5.6, програма, 8, приклад, 37.6, 5

б) оператор READ

Для читання інформації з блоку даних призначений оператор READ.

READ - ключове слово;

V - список імен однієї або більше змінних, розділених комами.

Блок даних організований таким чином, що забезпечує послідовний доступ до зберігається в ньому за допомогою внутрішнього покажчика. Поточне положення покажчика показує на елемент блоку даних, який безпосередньо доступний для читання. При запуску програми покажчик встановлюється на початковий елемент блоку. При роботі оператора READ перший елемент блоку даних зі списку оператора DATA привласнюється як значення змінної, ім'я якої розташоване першим в списку оператора READ, а покажчик зміщується на наступну позицію і вказує тепер на другий елемент блоку даних. Якщо в списку оператора READ є ще одне ім'я змінної, то другий елемент буде присвоюватися їй в якості значення. Потім покажчик переміщається на наступну позицію, і процес повторюється до тих пір, поки список оператора READ не закінчиться.

Після закінчення списку покажчик буде встановлений на елемент блоку даних, що настає за останнім лічених значенням. Якщо в програмі зустрінеться ще один оператор READ, то привласнення елементів з блоку даних змінним зі списку оператора READ буде проводитися, починаючи з поточного положення покажчика.

Приклад: 30 READ A, B

A = 2 B = 5.6 C = "програма"

D = 8 E = "приклад" F = 37.6 G = 5

DATA - єдиний оператор мови BASIC, номер рядка якого не впливає на порядок виконуваних дій. Номер рядка потрібен лише для того, щоб був витриманий загальний формат програми.

Тільки оператор READ визначає, коли і які дані повинні бути лічені.

в) Оператор RESTORE

Для повернення покажчика на початок блоку даних служить опера тор RESTORE.

Формат: RESTORE або RESTORE N

N - номер рядка, що містить оператор DATA.

Використання цього оператора дозволяє багаторазово зчитувати одні й ті ж дані різними операторами DATA і привласнювати їх в якості значень різним змінним.

40 DATA 2, 4, 8, 3, -6, 4

A = 2, A1 = 4, A2 = 8, покажчик на числі 3, але RESTORE повертає його на перше число, таким чином B = 2, B1 = 4.

Якщо в операторі RESTORE вказати номер рядка, що містить оператор DATA, то покажчик відзначить перше значення. Після того як RESTORE змінить становище покажчика, будь-який наступний READ почне читання даних з новою зазначеної позиції.

Оператор DATA доцільно використовувати у випадках, коли деяким змінним кожен раз при виконанні програми потрібно присвоювати одні і ті ж значення.

Підпрограми мови basic

а) Оператори GOSUB і RETURN

При написанні програм часто виникає необхідність в ви виконанні одних і тих же дій в різних місцях програми. У багатьох випадках ці дії повинні проводитися з різними вихідними даними. Написання такої програми спроститься, якщо записати повторюється ділянку обчислень один раз, а потім звертатися до нього з різних місць програми. Таку можливість забезпечує використання підпрограм.

У мові BASIC звернення до підпрограми здійснюється оператором GOSUB.

GOSUB - ключове слово;

N - номер першого рядка, з якої має розпочатися виконання підпрограми (точка входу в підпрограму).

Останнім виконуваних в підпрограмі оператором повинен бути оператор RETURN, який повертає управління в основну програму.

Приклад: Є дані про посівні площі пшениці в господарствах району. Потрібно визначити кількість господарств, в яких площа більше деякої за даної величини.

10 REM основна програма

30 PRINT "Введіть кількість господарств"

60 PRINT "Введіть посівну площу в господарстві"; I

90 PRINT "Введіть нижню межу посівної площі" 100 INPUT D

120 PRINT "Кількість господарств з посівною площею>"; D; "="; K