Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Получение символов кода ascII.

Поиск

Функция CHR$ преобразует ASCII-код в соответствующий символ (ASCII=American Standard Code for Information Interchange — Американский стандартный код для обмена информацией). Аргумент функции — число типа INTEGER в диапазоне от 0 до 255.

Соответствие кодов ASCII определенным символам дано в ASCII-таб-лице, размещенной в справочнике (Help) OBASIC и приведенной ниже. Также можно воспользоваться следующей программой:

'ASCII-символьное предложениеDIM ascll%DOINPUT "Ввести ASCII-значение ", ascii% LOOP UNTIL ascii% > 0 AND ascii% <= 256PRINT "Код ASCII "; ascll%;" соответствует символу ";CHR$(ascii%)

Получение ASCII-кода символа.

Функция ASC — обратная по отношению к функции CHR$. Аргумент функции ASC — символ, а значение функции — соответствующий этому символу ASCII-код.

Пример:PRINT ASC ("А")

Выделение левых крайних символов строки.

Функция LEFT$ выделяет крайние слева символы строки. Вызов функции:
LEFT$ (Строка, Число)
Строка - Строка, из которой выделяются символы.
Число - Величина типа INTEGER, которая задает количество выделяемых символов.

Пример:PRINT LEFT$ ("Хелло, QBASIC", 5)

Выделение правых крайних символов строки.

Функция RIGHT$ выделяет крайние справа символы строки. Вызов функции:
RIGHT$ (Строка, Число). Строка - Строка, из которой выделяются символы.
Число - Значение типа INTEGER, в котором указывается количество выделяемых справа символов.

Пример:PRINT RIGHTS ("Хелло, OBASIC, 5)

Выбор подстроки.

Функция MID$ копирует из строки любой ее фрагмент.
MID$ (Строка, Начало, Длина)
Строка - Строка, из которой должны выделятся символы.
Начало - Позиция, с которой начинается выбор фрагмента.
Длина - Длина подстроки.

Пример:' MID$ - функцияDIM A$, i%, j%А$=" Доброе утро"1%=3J%=5PRINT MID$ ("Хелло, QBASIC",4,4)PRINT MID$(aS,i%,j%)

Получение строчных символов.

Функция LCASE$ возвращает заданную строку в виде строчных букв. Пользуясь этой функцией, следует принять во внимание, что аргументы для LCASE$ расположены в подмножестве символов, коды которых лежат в диапазоне от 32 до 127. Следующие 128 символов (от 128 до 256) предназначены для кодирования символов национальных алфавитов, псевдографики, математических и др.

Пример:‘LCASE$ PRINT LCASE$ ("HUT OF BROWN NOW SIT DOWN")

Получение заглавных символов.

Функция UCASE$ противоположна функции LCASE$ и возвращает заданную строку в виде заглавных букв. Следует принимать во внимание тот факт, что аргументом для UCASE$ могут быть лишь символы, коды которых расположены в диапазоне от 32 до 127.

Пример:‘UCASE$ PRINT UCASE$ ("hut of brown now sit down")

Устранение ведущих пробелов.

Функция LTRIM$ устраняет в строке ведущие пробелы. Возвращенное значение сдвинуто влево.

Пример:'LTRIM$DIM wort$, lwort$wort$ = " Сдвиг влево"Iwort$= LTRIM$(wort$)PRINT wort$PRINT LEN(wort$)PRINTPRINT Iwort$PRINT LEN(lwort$)

Устранение последних пробелов.

Функция RTRIM$ убирает в строке последние пробелы.

Пример:‘RTRIM$DIM wort1$, wort2$wort1$= "левыйwort2$=" и правый"PRINT wort1$+wort2$PRINT PTRIM$(wort1$)+wort2$

Создание строки из пробелов.

Функция SPACE$ создает строку из пробелов. Аргумент функции — длина этой строки.

Пример:DIM leer$leer$-SPACES$(45) PRINT LEN(leer$)

Преобразование строки в число.

Функция VAL преобразует число из строкового представления в числовое. Предполагается, что преобразуемая строка содержит допустимые для представления чисел символы. Если нецифровой знак встречается первым в строке, то преобразование невозможно и значение функции равно нулю.

Пример:PRINT VAL("234.23) PRINT VAL("Hallo") PRINT VAL("43D12)

Математические вычисления.

С простыми математическими вычислениями Вы уже познакомились в главе "Элементы языка QBASIC ". В этой главе рассмотрим функции, которые позволяют проводить сложные математические расчеты. Без этих функций такие расчеты либо не возможны, либо требуют для реализации значительных затрат.

Абсолютное значение числа.

Функция ABS возвращает абсолютное значение заданного арифметического выражения.

Пример:'Функция ABS DIM wert% wert% = 45 PRINT ABS(wert%) PRINT ABS(-1 * wert%)

Тригонометрические функции.

В QBASIC определены следующие тригонометрические функции:

SIN (угол) Функция синус угла
COS(угол) Функция косинус угла
TAN (угол) Функция тангенс угла
ATN (арифм.выраж.) Функция арктангенс угла

 

Угол следует задавать в радианах. Функция, обратная тангенсу — ATN, возвращает значение угла, выраженное в радианах. Для преобразования значения угла из градусной меры в радианную, и наоборот, можно воспользоваться формулами:
D град = рад* (180 /pi)
D рад =град* (pi/ 180) где pi =3,14159

Пример:'Примеры тригонометрических функцийCONST pi!- 3.14159CONST bogum! - 180 / pi!CONST gradum!-pi!/ 180'Вычисление синуса, косинуса и тангенса угла 17 градусовPRINT SIN(17*gradum)PRINT COS(17 * gradum)PRINT TAN(17*gradum)'Функция, обратная тангенсу — ATN'Требуется опять получить 17 градусовPRINT ATN(TAN(197 * gradum)) * bogum'Конец программы

Функция вычисления экспоненты.

Функция ЕХР вычисляет значения функции е в степени х, где е=2,71 — основание натурального логарифма. Результат имеет вещественный тип SINGLE.

Пример:'Функция:f(x)-- 3*ex+ 2*eзxDIMx!CLSINPUT "Задать аргумент функции ",х!PRINT "f(";x;")-";PRINT -3 * EXP(x!) + 2 * EXP(3 * xl) 'Конец программы

Вычисление натурального логарифма.

Функция LOG вычисляет значение натурального логарифма, т.е. логарифма с основанием е. Результат имеет вещественный тип SINGLE.

Пример:'Функция LOGDIMx!CLSINPUT "Задать аргумент функции ",х!PRINT "ln(";x!;")-"; LOG(x!)'проверкаPRINT "так как е^"; LOG(x!); "-х- "; EXP(LOG(x!))

Преобразование к типу INTEGER.

Функция INT возвращает наибольшее целое, не превосходящее значение ее аргумента.

PRINT INT(2.234)PRINT INT(-2.234)'Ближайшее меньшее целое число для -2.234 равно -3

Функцию INT удобно использовать для коммерческих округлений.

Пример:'Округление с помощью функции INT CONST nkstelle%-10 'константа для определения количества'значащих цифр после запятой при округлении 'nkstelle - 10 — соответствует одной цифре после запятой 'nkstelle - 100 — соответствует двум цифрам после запятой DIM x!, rund! CLSINPUT "Задать число ";х! rund!=х! * nkstelle% + 0.5 rund!= INT(rund!) rund! = rund! / nkstelle% PRINT х!; " ";rund! 'Конец программы

Чтобы разобраться в работе этой программы, составим такую же таблицу значений переменных, как в главе "От задачи — к программе":

Переменные Действия
х! rund!
    DIM x!, rund!
23.352   Ввод 23.352 (INPUT)
23.352 234.2 х! * nkstelle% +.5 = 23.352 * 10 +.5
23.352   int(rund!)
23.352 23.4 rund! / nkstelle% = 234 / 10

Выделение целой части числа.

Функция FIX возвращает целую часть арифметического значения аргумента. Результат имеет целочисленный тип (INTEGER).

Пример:PRINT FIX(2.334) PRINT FIX(-2.334)

Извлечение квадратного корня.

Функция SQR возвращает корень квадратный заданного аргумента. Результат — вещественное число типа SINGLE. Помните, что аргумент обязательно должен быть неотрицательным числом.

Пример:PRINT SQR(4) PRINT SQR(1OO) PRINT SQR(234.234) 'Следующая команда с ошибкой PRINT SQR(-4)

Для других дробных степеней в QBASIC нет стандартных функций. В главе "Функции и процедуры, определенные пользователем" Вы познакомитесь с тем, как можно самостоятельно создавать такие функции в QBASIC.

Определение знака числа (функция сигнатуры).

Функция SGN (Signum) возвращает значения -1,0,1, если аргумент соответственно меньше, равен или больше нуля.

Пример:'Функция SGN PRINT SGN(-23.3454) PRINT SGN(0) PRINT SGN(23.32)

Преобразование числа в строку.

Функция STR$ преобразует числовое значение в цифровую строку и является функцией, обратной VAL.

DIM zeichen$ZeichenS= "Это "+ STR$(10.234)PRINT zeichenS

Массивы в 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 20PRINT "Ввести стоимость "; 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)


Поделиться:


Последнее изменение этой страницы: 2016-09-20; просмотров: 344; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.126.33 (0.008 с.)