7. Функция табуляции
Функция TAB так же, как функция SPC, применяется в операторе PRINT. Позволяет начать вывод данных текущей строки с определенной позиции.
TAB (Столбец)
Столбец - Переменная типа INTEGER, задает номер столбца вывода данных текущей строки.
Функция TAB очень полезна в случаях, когда с помощью оператора LPRINT требуется оформить наглядный листинг.
8. Остановка программы
В основном любой алгоритм должен как-то заканчиваться, поэтому отсутствие необходимости использовать оператор END в последних версиях QBASICа, считается отрицательным его качеством. Но он всё же существует, и вставлять его в конец программы всё же стоит (потом пригодится). Также если хотите прервать вашу программу в любом её месте то надо использовать оператор STOP.
Он останавливает выполнение программы на том месте, где стоит.
11.Программирование разветвляющихся алгоритмов в QBasic.
Оператор условного перехода в программе
Этот оператор позволяет изменять порядок выполнения операторов в программе в зависимости от определенных условий. Синтаксис оператора:
IF Условие THEN
[Оператор 1-1]
[Оператор 1-n]
[ELSE
[Оператор 2-1]
[Оператор 2-m]
END IF
Как видно из синтаксического описания, оператор IF состоит из THEN-ветви с операторами 1-1 ... 1-n и из ELSE-ветви, которая содержит операторы 2-1 ... 2-m. Если условие, заданное в операторе IF истинно, то выполняется THEN-ветвь, т. е. последовательно выполняются операторы 1-1 ... 1-n. В противном случае выполняются операторы 2-1... 2-m ELSE-ветви. После выполнения одной из ветвей работа программы продолжается с оператора, следующего за END IF, если ход выполнения программы не изменяется оператором GOTO.
Если отсутствует ELSE-ветвь и условие в операторе IF ложно, то работа программы всегда продолжается с оператора, следующего за END IF. В отличие от ELSE ключевое слово THEN пропускать нельзя. В прежних версиях BASIC часто незаменимой была конструкция условного перехода, т. е. комбинация операторов IF и GOTO.
12. Программирование циклических алгоритмов в QBasic.
Цикл WHILE
С помощью конструкции WHILE … WEND можно реализовать выполнение ряда операторов до тех пор, пока выполняется определенное условие. Последовательность операторов, выполнение которых повторяется циклически, называется циклом.
WHILE Условие
[Оператор_1]
.
.
.
[Оператор_n]
WEND
До тех пор пока соблюдается условие, последовательно выполняются операторы от 1 до n. Ключевое слово WEND закрывает конструкцию по аналогии с командой END IF. Если условие цикла больше не соблюдается, то выполнение программы продолжается, начиная с оператора, следующего за WEND. Если условие цикла WHILE не выполняется с самого начала, то управление сразу же передается оператору, расположенному за WEND. Следите за тем, чтобы действия внутри цикла влияли на WHILE-условие. В данном примере показано, что произойдет, если эту рекомендацию не выполнить.
Пример:
'Конструкция цикла WHILE с подвохом
DIM i%
i%=1
WHILE i%=1
PRINT "1-ый оператор в While-цикле"
PRINT "2-ой оператор в While-цикле"
WEND
'Конец программы
Примечание: Если Вы используете цикл WHILE... WEND, следите за тем, чтобы к моменту первой проверки логического условия переменные, входящие в него, были установлены соответствующим образом.
Цикл DO
Конструкция DO...LOOP очень похожа на WHILE...WEND. Здесь также имеется последовательность операторов, повторное выполнение которых зависит от некоторых условий.
Вариант 1: | Вариант 2: |
{WHILE I UNTIL} - Ключевыми словами WHILE или UNTIL определяется способ проверки условий. При использовании WHILE цикл выполняется до тех пор, пока соблюдается условие (значение логического выражения истинно). И, наоборот, при использовании UNTIL цикл выполняется только тогда, когда условие не соблюдается (значение логического выражения ложно).
EXIT DO - Оператор EXIT DO преждевременно прерывает выполнение цикла.
DO...LOOP- Работа программы продолжается с оператора, следующего за LOOP.
В первом варианте цикл выполняется по крайней мере один раз, так как проверка условия находится в конце цикла. А во втором варианте цикл может вообще не выполняться, если соответствующее условие с самого начала не позволяет входить в него. Этот вариант очень похож на цикл WHILE...WEND. Как видно из синтаксического описания, DO...LOOP может работать без проверки условий. В этом случае из бесконечного цикла можно выйти с помощью оператора EXIT DO.
Цикл FOR...NEXT
Используя оператор FOR...NEXT, можно программировать циклы, количество прохождений которых зависит от значения счетчика.
FOR Счетчик = Нач_значение ТО Кон_значение [STEP Шаг]
[Оператор_1]
.
.
.
[Оператор_n]
[EXIT FOR]
NEXT Счетчик
Счетчик - Арифметическая переменная, которая изменяется при повторении цикла. Ее часто называют управляющей переменной цикла.
Нач. значение- Арифметическое выражение, задающее начальное значение счетчика.
Кон. значение - Арифметическое выражение, задающее конечное значение счетчика.
Шаг - Арифметическое выражение, задающее приращение счетчика при каждом прохождении цикла. Если эта опция пропущена, значение шага по умолчанию принимается равным +1
EXIT FOR- Прерывает выполнение цикла. Программа продолжает работу с оператора,
следующего за NEXT FOR.
Операторы между FOR и NEXT повторяются до тех пор, пока управляющая переменная цикла не превысит конечное значение. После каждого прохождения цикла переменная цикла изменяется на величину шага. Если шаг — положительное число, то начальное значение переменной цикла должно быть меньше конечного значения, иначе цикл ни разу не выполнится, и, наоборот, если шаг отрицательный, то начальное значение переменной цикла должно быть больше конечного, иначе опять-таки цикл ни разу не отработает. В остальных случаях количество прохождений цикла с шагом — это ближайшее большее целое от выражения: "( конечное значение — начальное значение+1) / шаг", если шаг положительный, и "(конечное значение—начальное значение-1) / шаг", если шаг отрицательный.
13.Массивы. Обработка массивов в QBasic.
Массивы в QBASIC
Под массивом понимают объединение переменных одного типа в единую структуру. Обращение к отдельным элементам в массиве осуществляется по индексу. Допустим, в программе необходимо 20 переменных для запоминания стоимостей каких-то товаров artprl,..artpr20. Переменные можно объявить следующим образом:
Dim artpi1!, artpr2!,......artpr20!
Ввод данных выглядит так:
INPUT "Artpri ",artpr1!
INPUT "Artpr 20 ",anpr20!
Перечень подобных примеров можно продолжить (вывод наименований товаров, суммирование цен, стирание старых цен и т. п.). Значительно удобнее в подобных случаях вместо 20 отдельных полей данных использовать массив из 20 элементов и отдельный элемент идентифицировать с помощью числового индекса. Причем индекс может изменятся, например, как переменная цикла. Массив объявляется командой DIM: DIM [SHARED] Переменная [Размерность]
В отличие от объявления простых переменных появляется новая спецификация — размерность. В ней указывается максимальное значение индекса массива.
Пример:
DIM artlkel$(1 T0 20)
DIM prels%(5 TO 10)
DIM alter%(18 T0 65)
'20 строковых элементов 1...20
'6 Integer-элементов 5...10
'48 Integer-элементов 18...65
В программе для выбора элемента из массива используется индекс.
Пример:
PRINT preis%(5)
'Выбор элемента массива с индексом 5
При программировании вышеописанного примера отчетливо видны преимущества применения массивов.
Пример:
'Упражнение с использованием массива
DIM artpr!(1 TO 20) 'массив цен
DIM 1% 'индекс-переменная
CLS
'Ввод цен для 20 наименований товаров
FOR i%-1 T0 20
PRINT "Ввести стоимость "; 1%; "-го товара";
'Ввод в элемемент массива с индексом 1% INPUT "",artpr(l%)
NEXT I %
'Вывод 20 наименований
CLS
'Вывод в строку
'суммы, количества, среднего значения, Max, Min
До сих пор мы рассматривали одномерные массивы. Но в QBASIC массив может иметь несколько индексов. Например, использование второго индекса позволяет обрабатывать двумерные таблицы. Трехмерный массив можно представить как куб. Можно описать массивы с четырьмя, пятью и более индексами. Максимально допустимое число индексов для одного массива — 255.
Пример:
'Использование трехмерных массивов
DIM zahl%(1 TO 10, 4 ТО 16, 6 ТО 30)
zahl%(1,5,23)=13
PRINTzahl%(1,523)
14.Обработка текстовых данных в QBasic.
Обработка строк
В этой главе рассмотрим функции, которые осуществляют обработку строк. В QBASIC функция состоит из имени и аргументов, которые заключаются в круглые скобки и располагаются всегда за именем функции. Значения функций обработки строк могут быть или типа STRING, или принадлежать к группе арифметических типов данных. Функции, наряду с переменными и константами, применяют в качестве составляющих оператора или используют при составлении выражений или логических условий. Естественно, зна - чение функции должно быть совместимо с остальными составляющими оператора, например, в арифметическое выражение нельзя встраивать функцию, значение которой является строковым выражением.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |



