Советы и лайфхаки

Qbasic команды – Представление не найдено [name, type, prefix]: category, pdf, contentView

Справочник команд по способу использования

Справочник команд по способу использования | QBASICBOOK.ru: сайт про QB64

Справочник команд по способу использования

Внимание: справочник в разработке!

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

Информацию на английском языке можно почитать по ссылке.

  1. Справочник команд по способу использования
    1. Символы программирования
      1. Печать, ввод или форматирование файла
        1. Точка с запятой | Semicolon | ; 
        2. Запятая | Comma | , после того, как PRINT нажимает невидимый курсор за конец напечатанного значения
        3. Двойные кавычки | Double quotes | " ограничивает концы символьного значения STRING в инструкции PRINT, INPUT или LINE INPUT
        4. Вопросительный знак | Question mark | ? является ярлыком для ключевого слова PRINT
      2. Маркеры кода программы
        1. Апостроф | Apostrophe | ' обозначает комментарий программы, чтобы игнорировать строку кода или Qbasic Metacommand. Является аналогом REM
        2. Запятая | Comma | , 
          оператор переменной или DATA, SUB или разделитель параметров FUNCTION
        3. Двоеточие | Сolon | : два или более несвязанных выражения на одной строке
        4. Знак доллара | Dollar sign | $ префикс обозначает Qbasic Metacommand, не следует комментировать только событие $CHECKING в QB64
        5. Круглые скобки | Parenthesis | [ ] заключить математический или условный порядок процедур, параметры SUB или FUNCTION или передача по значению
        6. Плюс конкатенация | Plus concatenation | + оператор ДОЛЖЕН использоваться для комбинирования строковых значений в определении переменной
        7. Двойные кавычки | Quotation mark | " ограничивает строковые значения STRING. Используйте CHR$[34] для вставки кавычек в текст STRING
        8. Ремарка | REM или апостроф используются для комментариев или игнорирования кода
        9. Нижнее подчеркивание | Underscore | _ в конце строки кода используется для продолжения строки кода для следующей строки программы только в QB64
      3. Переменная, имя, тип, суффиксы
        1. $ STRING текстовый тип символа [1 байт]
        2. ! SINGLE численный тип с плавающей запятой [4 байта]
        3. # DOUBLE численный тип с плавающей запятой [8 байтов]
        4. ## _FLOAT QB64 десятичной точки численного типа [32 байта]
        5. ~ _UNSIGNED QB64 всего положительного числового типа, когда он предшествует 6 числовым суффиксам ниже:
        6. % INTEGER числовой тип [2 байта]
        7. & LONG числовой тип [4 байта]
        8. && _INTEGER64 QB64 полный численный тип [8 байтов]
        9. ` _BIT целочисленный тип [1 бит] [ключ ниже тильды [~] или CHR$[96]]
        10. %% QB64 полный численный тип [1 байт]
        11. %& _OFFSET QB64 указатель на целочисленный тип адреса [требуется любой размер байта]
      4. Цифровые базовые префиксы
        1. &B двоичная база 2 цифры: 0 или 1 [QB64]
        2. &O восьмеричная база 8 цифр: от 0 до 7
        3. &H шестнадцатеричная база 16: цифры от 0 до F
      5. Математические операции
        1. сложение
        2. вычитание или отрицание
        3. умножение
        4. деление десятичной точки
        5. операция целочисленного деления
        6. экспоненциальная операция
        7. MOD целочисленная операция остатка
      6. Операции сравнения
        1. равно
        2. больше
        3. меньше
        4. <> не равно
        5. >= больше или равно
        6. <= меньше или равно
    1. Объявления и типы переменных
      1. _BIT ` числовой тип значения 0 [бит выключен] или -1 [бит включен], беззнаковые 0 или 1
      2. _BYTE %% числовой тип значения от -128 до 127 [один байт или 8 _BIT], беззнаковых от 0 до 255
      3. _DEFINE инструкция-выражение определяет диапазон имен нетипизированных переменных в соответствии с их первым символом в качестве типа данных
      4. _FLOAT ## числовой тип значения предлагают максимальную десятичную точность с плавающей запятой, доступную с использованием QB64
      5. _INTEGER64 && числовой тип значения от -9223372036854775808 до 9223372036854775807, беззнаковых 18446744073709551615
      6. _MEM тип переменной содержит только точки чтения для элементов OFFSET, SIZE, TYPE и ELEMENTSIZE блока памяти
      7. _OFFSET %& тип переменной может хранить любое целочисленное значение смещения памяти при использовании DECLARE LIBRARY или _MEMory
      8. _UNSIGNED ~ числовой тип определяет целочисленное числовое значение как положительное только в QB64
      9. COMMON инструкция-выражение разделяет общие значения переменных с другими программами Linked или CHAIN
      10. COMMON SHARED инструкция-выражение разделяет общие значения переменных со всеми подпроцедурами и другими связанными или CHAINed программами
      11. CONST инструкция-выражение определяет одно или несколько именованных числовых или строковых общих значений, которые не могут быть изменены в программе
      12. DEFDBL инструкция-выражение определяет неопределенные начальные буквы переменной как DOUBLE вместо SINGLE по умолчанию
      13. DEFINT инструкция-выражение определяет неопределенные переменные, начинающиеся с буквы как INTEGER, вместо значения по умолчанию для SINGLE
      14. DEFLNG инструкция-выражение определяет неопределенные начальные буквы переменной как LONG вместо SINGLE по умолчанию
      15. DEFSNG инструкция-выражение определяет неопределенные начальные буквы переменной как SINGLE вместо значения SINGLE по умолчанию
      16. DEFSTR инструкция-выражение определяет неопределенные переменные, начинающиеся с буквы как STRING, вместо значения по умолчанию для SINGLE
      17. DIM определяет переменную или размер статического массива и может определять тип возвращаемого значения
      18. DOUBLE # числовой тип 8-байтовый тип переменной с плавающей запятой с численными значениями до 15 знаков после запятой
      19. INTEGER % числовой тип двухбайтовый тип переменной со значениями от -32768 до 32767, беззнаковых 65535
      20. LONG & числовой тип целочисленные значения могут быть от -2147483648 до 2147483647, значения _UNSIGNED до 4294967295
      21. опция BASE инструкция-выражение устанавливает начальный индекс по умолчанию массива в 0 или 1
      22. REDIM определяет и определяет динамический [изменяемый] массив и может определять тип возвращаемого значения
      23. SHARED инструкция-выражение обозначает значения переменных, которые могут использоваться совместно с под-процедурами без использования параметров SUB
      24. SINGLE ! числовой тип 4-байтовый тип с плавающей запятой с численными значениями до 7 знаков после запятой
      25. STATIC инструкция-выражение определяет переменную или список переменных, которые сохраняют свои значения после выхода подпроцедуры
      26. STRING $ тип переменной однобайтная текстовая переменная с кодовыми значениями ASCII от 0 до 255
      27. TYPE инструкция-выражение определяет типы переменных, которые могут содержать более одного значения типа переменной фиксированной длины байта
    2. Логические операции
      1. AND логический оператор возвращает True, если все аргументы True
      2. NOT логический оператор возвращает противоположное состояние аргумента
      3. OR логический оператор возвращает True, если один из аргументов имеет значение True
      4. XOR логический оператор возвращает True, если только один из двух аргументов True
    3. Логические побитовые операции
      1. AND оператор бит устанавливается, когда оба бита установлены
      2. EQV оператор бит устанавливается, когда оба установлены или оба не установлены
      3. IMP оператор бит устанавливается, когда оба установлены или оба не установлены, или бит второго условия установлен
      4. OR оператор бит устанавливается, когда бит установлен
      5. NOT оператор бит устанавливается, когда бит не установлен и не установлен, когда бит установлен
      6. XOR оператор бит устанавливается, когда задан только один из битов
    4. Текст на экране
      1. _CONTROLCHR OFF позволяет использовать символы ASCII от 0 до 31, которые будут использоваться в качестве текстовых символов, ON [по умолчанию] сбрасывает по умолчанию использования
      2. _FONT функция создает новый алфавитный дескриптор шрифта из назначенного дескриптора изображения
      3. _FONT инструкция-выражение устанавливает текущий дескриптор шрифта функции _LOADFONT, который будет использоваться PRINT или _PRINTSTRING.
      4. _MAPUNICODE инструкция-выражение отображает значение Unicode в значение символьного кода ASCII
      5. _PRINTSTRING инструкция-выражение печатает текст или настраиваемые строки шрифтов, используя координаты столбцов и строк
      6. _SCREENPRINT инструкция-выражение имитирует ввод текста в программу Windows с помощью клавиатуры
      7. CHR$ функция возвращает текстовый символ, связанный с определенным кодом символа ASCII, как один байт STRING
      8. CLS инструкция-выражение очищает экранную страницу или программу SCREEN, QB64 может очищать цветом
      9. COLOR инструкция-выражение используется для изменения цвета текста и фона в некоторых устаревших режимах экрана
      10. CSRLIN функция возвращает текущую позицию строки курсора на экране на экране
      11. INPUT инструкция-выражение запрашивает STRING или числовую клавиатуру от пользователя программы
      12. KEY LIST инструкция-выражение вертикально перечисляет все функциональные клавиши ON KEY[n], связанные с каждой функциональной клавишей F1-F12
      13. LINE INPUT инструкция-выражение запрашивает ввод STRING клавиатуры от пользователя программы.
      14. LOCATE инструкция-выражение находит текстовые строки и столбцы экрана для процедуры PRINT или INPUT
      15. POS функция возвращает текущую позицию столбца курсора
      16. PRINT инструкция-выражение печатает числовые или строковые выражения на экране программы
      17. PRINT USING инструкция-выражение печатает шаблоны с числовыми или строковыми значениями на экране программы
      18. SCREEN инструкция-выражение устанавливает режим экрана программы, нет инструкции по умолчанию программы для текстового режима SCREEN 0
      19. SCREEN функция возвращает код ASCII текстового символа или атрибут цвета в заданном текстовом расположении на экране
      20. SPACE$ функция возвращает строку, состоящую из нескольких пробелов
      21. SPC функция используется в операторах PRINT и LPRINT для печати или вывода нескольких пробелов
      22. STR$ функция возвращает представление STRING численного значения
      23. STRING$  функция возвращает STRING, состоящую из одного символа, который повторяется определенное количество раз
      24. TAB функция используется в операторах PRINT и LPRINT для перехода к указанной позиции столбца текста
      25. VIEW PRINT инструкция-выражение определяет границы области PRINT окна просмотра
      26. WIDTH инструкция-выражение изменяет размер текста определенных режимов SCREEN или ширины страницы принтера
      27. WRITE оператор ввода/вывода на экране 
        записывает на экран список значений, разделенных запятыми
    5. Форматированный вывод на экране
      1. LPRINT USING инструкция-выражение распечатывает шаблон, форматированный текст STRING, на страницу LPT или USB-принтера
      2. PRINT USING инструкция-выражение печатает шаблон, форматированный текст STRING на экран
      3. PRINT USING файловый оператор печатает шаблон, отформатированный текст STRING в текстовый файл
    6. Ввод с клавиатуры
      1. _CONTROLCHR инструкция-выражение OFF позволяет использовать управляющие символы в качестве текстовых символов, ON [по умолчанию] могет использовать их в качестве команд
      2. _CONTROLCHR функция возвращает текущее состояние _CONTROLCHR как 1, когда OFF и 0, когда включено.
      3. _EXIT функция предотвращает выход пользователя программы и указывает, щелкнул ли пользователь кнопку закрытия окна X или CTRL + BREAK
      4. _KEYDOWN функция возвращает, будут ли изменены клавиши изменения, такие как CTRL, ALT, SHIFT и любые другие клавиши
      5. _KEYHIT функция возвращает ASCII один и два байта, коды клавиш SDL Virtual Key и Unicode для клавиатуры
      6. _SCREENPRINT инструкция-выражение имитирует ввод текста в другую ОС с помощью клавиатуры
      7. INKEY$ функция возвращает строковый символ ASCII нажатия клавиши
      8. INPUT инструкция-выражение запрашивает STRING или числовую клавиатуру от пользователя программы
      9. INPUT$ функция используется для получения заданного количества символов нажатия или байтов из файла
      10. INP функция возвращает значение кода сканирования из регистра клавиатуры и &H60[96] для определения нажатия клавиш
      11. KEY n оператор события используется для назначения строки «программной клавиши» ключу и/или отображения их
      12. KEY[n] оператор события назначает, включает, отключает или приостанавливает захват события нажатия клавиши.
      13. KEY LIST инструкция-выражение перечисляет 12 строк функциональных клавиш со строками, идущими вниз по левой стороне экрана
      14. LINE INPUT инструкция-выражение запрашивает запись с клавиатуры STRING от пользователя программы
      15. ON KEY[n] оператор события определяет номер строки или метку для перехода к нажатой клавише
      16. ON PEN оператор события позволяет управлять событиями для светляков, НЕ РЕАЛИЗОВАНА!
      17. PEN функция события возвращает запрошенную информацию о используемом осветительном устройстве, НЕ РЕАЛИЗОВАНА!
      18. PEN инструкция-выражение включает/отключает или приостанавливает захват событий на осветительном устройстве, НЕ РЕАЛИЗОВАНА!
      19. SLEEP инструкция-выражение приостанавливает программу на указанное количество секунд или до тех пор, пока не будет нажата клавиша
    7. Массивы и хранение данных
      1. Хранение данных
        1. DATA инструкция-выражение создает поле встроенных значений данных программы, разделенных запятыми
        2. READ инструкция-выражение последовательно считывает данные из поля данных
        3. RESTORE инструкция-выражение устанавливает указатель данных на начало всех DATA или заданного поля DATA
      2. Массивы
        1. _DEFINE инструкция-выражение определяет диапазон имен нетипизированных переменных в соответствии с их первым символом в качестве типа данных
        2. _PRESERVE REDIM-опция сохраняет значения существующих элементов при изменении размера массива
        3. CLEAR инструкция-выражение сбрасывает все значения переменных и значения элементов массива в 0 или NULL-строки и закрывает все открытые файлы
        4. DIM инструкция-выражение размерность статического массива и определение его типа
        5. $DYNAMIC метакоманда определяет, что все массивы являются динамическими или изменяемыми по размеру
        6. ERASE оператор массива очищает статический массив от всех значений и полностью удаляет динамический массив
        7. LBOUND фунция массива возвращает наименьший допустимый индекс [нижняя граница] массива
        8. OPTION BASE инструкция-выражение устанавливает по умолчанию начальный индекс массива в 0 или 1
        9. REDIM инструкция-выражение переопределяет количество элементов в динамическом [изменяемом по размеру] массиве и определяет тип
        10. SHARED инструкция-выражение значения переменных, которые могут использоваться совместно с подпрограммной без использования параметров
        11. STATIC инструкция-выражение определяет переменную или список переменных, которые сохраняют свои значения после выхода из подпрограммы
        12. $STATIC метакоманда определяет, что все массивы являются статическими или неизменяемыми по размеру
        13. SWAP инструкция-выражение обрабатывает значения двух числовых или строковых значений элементов массива
        14. UBOUND фунция массива возвращает наивысший допустимый индекс [верхняя граница] массива
    8. Манипулирование числовыми данными
      1. &B префикс базового номера, используемый в QB64 для представления _BITs как 1 если включен, или, выключен как 0
      2. _CV функция используется для преобразования строковых значений _MK$ ASCII в указанные типы числовых значений
      3. _MK$ функция преобразует указанный числовой тип в строковое значение ASCII, которое необходимо преобразовать с помощью _CV
      4. _PRESERVE REDIM действие сохраняет текущее содержимое массива, при повторном определении размерности
      5. _UNSIGNED тип числа определяет числовое значение как положительное только с использованием QB64
      6. ABS функция возвращает положительное значение переменной или буквальное числовое значение
      7. ASC функция возвращает код ASCII определенного текстового символа STRING или нажатия клавиши
      8. CDBL функция преобразует числовое значение в ближайшее значение точности DOUBLE
      9. CDECL инструкция-выражение используется для указания, что внешняя процедура использует порядок аргументов языка Си
      10. CHR$ функция возвращает символ, связанный с определенным кодом символа ASCII как STRING
      11. CINT функция возвращает самое близкое значение INTEGER для числа
      12. CLEAR инструкция-выражение очищает все значения переменных в 0 или NULL-строки и закрывает все открытые файлы
      13. CLNG функция округляет десятичные числа вверх или вниз до ближайшего целочисленного значения LONG
      14. CSNG функция преобразует числовое значение в ближайший номер SINGLE
      15. CVD функция преобразует значения STRING в числовые значения DOUBLE
      16. CVDMBF функция преобразует 8-байтовое значение строки двоичного формата Microsoft в число DOUBLE-точности
      17. CVI функция преобразует 2-байтовые значения STRING в числовые значения INTEGER
      18. CVL функция преобразует 4-байтовые значения STRING в LONG числовые значения
      19. CVS функция преобразует 4-байтовые значения STRING в SINGLE числовые значения
      20. CVSMBF функция преобразует 4-байтовое значение строки двоичного формата Microsoft в число SINGLE
      21. DIM инструкция-выражение используется для объявления типа переменной или измерения STATIC массива
      22. ERASE оператор массива очищает массив STATIC всех значений и полностью удаляет массив $DYNAMIC
      23. HEX$ функция преобразует десятичные значения INTEGER в шестнадцатеричные значения числа STRING, префиксные значения с &H
      24. INT функция округляет числовое значение до следующего целого числа или значение INTEGER
      25. LEN функция возвращает размер байтов строк или числовых переменных
      26. OCT$ преобразует десятичные числовые значения в значения Octal STRING, префиксные значения с &O
      27. RANDOMIZE инструкция-выражение источник последовательности генерации случайных чисел RND
      28. REDIM инструкция-выражение переопределяет количество элементов в динамическом [изменяемом по размеру] массиве
      29. RND функция возвращает произвольно сгенерированное число от 0 до .9999999
      30. SGN функция возвращает знак как -1 для отрицательного, ноль для 0 и 1 для положительных числовых значений
      31. STR$ функция преобразует числовое значение в значение STRING
      32. SWAP инструкция-выражение обмен значениями двух числовых типов или строк
      33. VAL функция преобразование числовых строк в числовые значения до тех пор, пока они не будут запущены в числовой символ
    9. Манипуляция и преобразование строк
      1. _CLIPBOARD$ функция возвращает текущее содержимое STRING из системного буфера обмена
      2. _CLIPBOARD$ инструкция-выражение устанавливает содержимое STRING текущего системного буфера обмена
      3. _CONTROLCHR инструкция-выражение OFF позволяет использовать управляющие символы в качестве текстовых символов, ON [по умолчанию] могут использовать их в качестве команд
      4. _CONTROLCHR функция возвращает текущее состояние _CONTROLCHR как 1 когда OFF и 0 когда ON
      5. _CV функция используется для преобразования строковых значений _MK$ ASCII в числовые значения
      6. _MK$ функция преобразует любой числовой тип в строковое значение ASCII, которое необходимо преобразовать с помощью _CV
      7. ASC инструкция-выражение позволяет программе QB64 изменять символ в любой позиции предопределенной STRING
      8. HEX$ функция возвращает основание 16-шестнадцатеричное представление целочисленное значение в виде строки
      9. INSTR функция ищет первое вхождение строки поиска в строке и возвращает позицию
      10. LCASE$ функция меняет прописные буквы строки в нижний регистр
      11. LEFT$ функция возвращает часть строки с самого начала обозначенного количества символов мест
      12. LEN функция возвращает количество байтов или символов в значении STRING
      13. LSET инструкция-выражение левое выравнивание строкового выражения с фиксированной длиной, основанное на размере STRING
      14. LTRIM$ функция возвращает строку со всеми удаленными пробелами
      15. MID$ инструкция-выражение возвращает часть строки: из стартовой позиции обозначенное количество символов
      16. MKD$ функция преобразует DOUBLE числового значения в значение строки ASCII 8 байт
      17. MKDMBF$ функция преобразует число двойной точности в строку, содержащую значение в двоичном формате Microsoft
      18. MKI$ функция преобразует числовое значение INTEGER в 2-байтовое строковое значение ASCII
      19. MKL$ функция преобразует числовое значение LONG в строковое значение ASCII длиной 4 байта
      20. MKS$ функция преобразует числовое значение SINGLE в 4-байтовое строковое значение ASCII
      21. MKSMBF$ функция преобразует число с одной точностью в строку, содержащую значение в двоичном формате Microsoft
      22. OCT$ функция возвращает основание восьмеричного представления целочисленного значения
      23. RIGHT$ функция возвращает заданное количество символов в переменной STRING начиная с конца
      24. RSET инструкция-выражение выравнивает по правому краю строку в соответствии с длиной строкового выражения
      25. RTRIM$ функция возвращает строку со всеми пробелами удаленными с правой стороны строки
      26. SPACE$ функция возвращает STRING, состоящую из нескольких символов пробела
      27. STR$ функция преобразует числовое значение в строку
      28. STRING $ тип переменной однобайтная текстовая переменная со значениями кода ASCII от 0 до 255
      29. STRING$ функция возвращает строку, состоящую из одного символа, повторенного заданное число раз
      30. SWAP инструкция-выражение используется для обмена значениями двух строковых переменных или элементов массива
      31. UCASE$ функция возвращает строку со всеми буквами в верхнем регистре
      32. VAL функция преобразует числовое значение строки в числовое значение
    10. Математические функции и операции
      1. _ROUND функция округляет до ближайшего значения EVEN INTEGER, LONG или _INTEGER64
      2. сложение
      3. вычитание или отрицание
      4. умножение
      5. деление десятичной точки
      6. операция целочисленного деления
      7. экспоненциальная операция
      8. MOD целочисленная операция остатка
      9. ABS функция возвращает положительное значение переменной или буквальное числовое значение
      10. ATN функция возвращает угол в радианах с числовым касательным значением
      11. CDBL функция функция двойного округления
      12. CINT функция целочисленная функция округления
      13. CLNG функция функция округления длинного целого числа
      14. COS функция косинус угла
      15. CSNG функция функция одиночного округления
      16. EXP функция возвращает значение экспоненты для мощности используемого параметра
      17. FIX функция округляет положительные или отрицательные значения до целых значений, близких к 0
      18. INT функция приведение к целочисленному значению
      19. LOG функция натуральный логарифм заданного численного значения
      20. SIN функция сину

qbasicbook.ru

Встроенный справочник QBASIC


⇐ ПредыдущаяСтр 2 из 5Следующая ⇒

 

{Shift+F1}- на экране появится окно системы помощи QBASIC. Для перемещения по пунктам кадра используют клавиши {Tab}, стрелки управления курсором, {PgUp}, {PgDn}.

Если в окне текстового редактора подвести курсор под какое-либо служебное слово и нажать{F1}, на экране появится раздел алфавитного указателя, поясняющий это слово.

Пример 1

CLS

INPUT”Введите фамилию”;F$

INPUT”Введите имя”;I$

RS$=F$+” “+I$

PRINT”Уважаемый (ая) ”;RS$;” ,я думаю, что мы с вами сработаемся”

END

¨ Набрать текст программы;

¨ Сохранить его на диск с именем prog1;

¨ Запустить программу на выполнение;

¨ Получить справку по оператору INPUT.

Пример 2

SCREEN 9

Color 1,5

Circle(200,180),100,6

Paint Step(0,0),7,6

Line(20,30)-(70,70),4,BF

¨ Набрать текст программы;

¨ Сохранить его на диск с именем prog2;

¨ Запустить программу на выполнение;

¨ Скопировать 3-ю и 4-ю строку и вставить после 5-ой

¨ Внести изменение: вместо значения 200 поставить 400

¨ Запустить программу на выполнение

 

Формальные сведения о QBASIC

Алфавит QBASIC

Алфавит языка BASIC включает:

¨ Все латинские прописные и строчные буквы;

¨ Арабские цифры 0-9;

¨ Знаки арифметических операций:^; *; /; +; -; \; MOD.

¨ Знаки операций отношения: =; >; <; >=; <=; <>.

¨ Разделители и прочие символы:

. – точка;

, - запятая;

; - точка с запятой;

: - двоеточие;

_ - пробел;

! – признак вещественной величины;

# - признак вещественной величины двойной точности;

% - признак целой величины;

& - признак длинной целой величины

$ - признак текстовой величины;

() – круглые скобки;

– кавычки;

– апостроф.

Используются также буквы русского алфавита, но в текстовых константах или комментариях.

 
 

Данные в языке QBASIC

 
 

 
 
 
 

 

 

       
   
 

 

 

Помните! Разделителем целой и дробной частей является точка.

 

Например:

102! – константа, числовая, вещественная, обычной точности.

95966.46789# - константа, числовая, вещественная, двойной точности.

4326% - константа, числовая, целая.

“План на неделю” – константа текстовая. Заключается в кавычки.

 

Переменные

 

Переменная – это величина, значение которой может изменяться в процессе выполнения программы, обозначается именем (идентификатором).

Имя переменной – это произвольный набор символов, который может содержать о 1 до 40 символов. Первый символ должен быть латинской буквой, а остальные – латинские буквы или цифры. Регистр букв не имеет значения.

Примеры имен: A; dN; GodRozd; k1%; dlina!

 
 

Тип переменной BASIC различает пять типов данных. Когда записано с=a+b+2, BASIC должен знать, какой тип чисел имеется в виду. BASIC распознает тип переменной по суффиксу, т.е. по последнему символу в имени переменной.
 
 

Применение суффиксов не всегда удобно: они загромождают текст, да и ошибиться в них легко.

Поэтому в BASIC предусмотрен другой способ описания типа переменной.

Общий формат команды описания типа:

DEFINT X-X(целые числа, INTeger)

DEFLNG X-X(длинные целые числа, LoNG)

DEFSNG X-X(вещественные числа обычной точности, SiNGle)

DEFDBL X-X(вещественные числа двойной точности, DouBLe)

DEFSTR X-X(строки символов, STRing)

Комбинация X-X - диапазон букв. Вместо диапазона можно указать одну букву.

Например:

DEFLNG A-D, все переменные, имена которых начинаются с букв, лежащих в указанном диапазоне, т.е. с A до D, будут считаться длинными целыми (aRc, BT, DLINA и т.п.)

DEFSTR STR, переменная STR- строка символов.

Константы

 

Константы (числовые или строковые) не меняются в ходе исполнения программы. Значения констант записываются явно, числом или строкой символов. Например:

A%=12

Z$=”План на неделю”

n!=-54.2

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

Формат описания констант:

CONSTимя переменной=константа

Например:

CONST F2=60, n%=12

Если переменная описана как константа с помощью CONST, QBASIC не позволит случайно изменить ее значение.

Пример:

CLS

DEFINT A-C

DEFLNG R

CONST G = 5

INPUT "Введите три значения"; A, B, C

R = A ^ 2 + B * C + G

PRINT "R="; R

END

Задание:

1. Набрать программу.

2. Запустить на выполнение.

3. В третьей строке внести изменение - DEF LNG заменить на DEFSNG.

4. В 6-ой строке внести изменение - * заменить на / .

 

 

 

 

 

 

Выражения в языке QBASIC

В языке QBASIC используются:

• Арифметические выражения;

• Условные выражения;

• Логические выражения;

• Символьные выражения.

 

Арифметические выражения

 

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

Знак операции Название Пример
^ возведение в степень X^Y
* умножение X*Y
/ деление X/Y
+ сложение X+Y
- вычитание X-Y
\ деление нацело X\Y; 10\4 (ответ-2)
MOD вычисление остатка от целочисленного деления X MOD Y 10 MOD 3 (ответ-1)

Операции расположены в порядке уменьшения приоритета. Для изменения приоритета используются круглые скобки.

Например:

х2 – х + 2 на языке QBASIC ( х ^ 2 – х + 2 ) / (х ^ 4+5*х^2+40)

х4+5х2+40

Условные выражения

 

Операндами условного выражения могут быть переменные, числа, функции, строки символов. Знаками отношения в условных выражениях служат:

= - равно;

>- больше;

< - меньше;

>= - больше или равно;

<= - меньше или равно;

<>- не равно.

Условное выражение принимает булево (логическое) значение: TRUE или FALSE.

Условные выражения широко используются в операциях ветвления и в организации циклов. Например:

IF k>0 THEN …

WHILE I=0 …

Логические выражения

 

Операндами логического выражения являются условные выражения, которые соединяются между собой знаками логических операций AND ("И", конъюнкция), OR ("ИЛИ", дизъюнкция), NOT (отрицание), например:

a+b>c AND d<>8

NOT(a>b)

Логическое выражение принимает булево (логическое) значение: TRUE или FALSE.

Частный случай логического выражения - условное выражение.

Так же, как и условные выражения, логические выражения применяются в операциях ветвления и в организации циклов, например:

IF d<>0 AND z$="V" THEN…

WHILE d=0 OR k>40…

 

Символьные выражения

 

Операндами символьных выражений являются строки символов. Для этих выражений определена лишь одна операция - конкатенация (соединение) строк. Знак операции - "+", а результат операции - новая строка символов. Например, "Оболочка "+"Windows" результата - " Оболочка Windows"

Встроенные функции

Функция Назначение (математическая запись) Пример/результат
Математические функции
ABS(арифм_выражение) Модуль значения арифм_выражения(|X|) ABS(-3) / 3
ATN(арифм_выражение) арктангенс значения арифм_выражения ( arctgx )  
COS(угол) Косинус аргумента (угол в радианах) ( cosx )  
SIN(угол) Синус аргумента (угол в радианах) ( sinx ) SIN(PI/2) / 1
TAN(угол) Тангенс аргумента (угол в радианах) ( tgx )  
EXP(арифм_выражение) Экспоненту значения арифм_выражения (ex)  
LOG(арифм_выражение) Натуральный логарифм ( lnx )  
SQR(арифм_выражение) Корень квадратный из значения арифм_выражения ( ÖX ) SQR(1.44) / 1.2
Функции преобразования числовых значений
FIX(арифм_выражение) Целая часть арифм_выражения FIX(24.3) / 24 FIX(-24.8) / -24
INT(арифм_выражение) Наибольшее целое, которое меньше или Равно значению арифм_выражения INT(24.3) / 24 INT(-24,3) / -25
CINT(арифм_выражение) Округляет значение арифм_выражения по правилам арифметики CINT(24.3) / 24 CINT(-24,8) / -25 CINT(-24,3) / -24

Например: Записать выражения на языке программирования QBASIC

Записать выражения на языке программирования QBASIC

tg2 x
       
 
 
   

½x½+ sin x3

       
   

√|х-1| • ³√| у |

 

(1+Y)(X+Y(X²+4))

-x-2 + (x²+4)

 

1+cos(Y-Z)

х4

2 + sin2 Z

 

Домашнее задание:

1)

 

 

B = х ( arctg2 Z – l – (x + 3) )

 

 

Команды в языке QBASIC

 

Программа, написанная на любом языке программирования, представляет собой набор инструкций, описывающий процесс выполнения алгоритма задачи. Инструкции записываются по определенным правилам, предусмотренным требованиями языка. Инструкции исходной программы называются командами или операторами.

 

Оператор комментариев

 

Любую команду в программе можно снабдить поясняющим текстом - комментарием. Комментарии облегчают понимание текста программы. Комментарии можно записать двумя способами:

a) REM произвольный текст

b) ' произвольный текст

На ход вычислений команда REM никакого влияния не оказывает.

Например:

REM вычисление функции

' вычисление функции

 

Оператор присваивания

Формат:

Имя переменной = выражение

Эта команда выполняется в два шага:

1) вычисляется значение арифметического или символьного выражения, указанного в правой части команды;

2) это значение присваивается переменной, записанной в левой части команды.

Например:

A = Y+X/Z²

 

Оператор ввода данных

Динамический ввод данных

Формат:

INPUT "Сообщение", список переменных

При выполнении команды INPUT вычисления приостанавливаются и на экран дисплея выводится поясняющее сообщение, если вы его написали. В списке переменных через запятую указываются имена переменных, которые принимают вводимые данные.

Например:

Команда: INPUT"Введите коэффициент и код режима",B,KR$

Экран: Введите коэффициент и код режима

Курсор устанавливается следом за последним символом выведенного текста, и программа ожидает ввода данных. Вы должны через запятую набрать все данные и нажать клавишу {Enter}.

Если строка символов замкнута не запятой, а точкой с запятой, INPUT выводит следом за текстом символ "?" и устанавливает курсор через пробел после "?".

Например:

Команда: INPUT"Год рождения";GR$

Экран: Год рождения?_

Сообщение в INPUT можно опустить. Тогда на экран будет просто выдан знак вопроса.

Тип и количество вводимых данных должны соответствовать типу и количеству описанных переменных.

Например:

Команда: INPUT"Введите № школы, класс, фамилию";N,K,F$

Экран: Введите № школы, класс, фамилию? 2,10,Петров

Виды ошибок:

1. Тип данных не совпадает с типом переменных.

2. Ввели слишком много данных.

 

Оператор вывода данных

Формат:

PRINT список_выражений

В поле операндов через запятую или через точку с запятой перечисляются выражения, значения которых надо вывести. Значения данных выводятся с текущей позиции курсора.

1. Плотный вывод - разделитель ";"

Например:

a) Команда: PRINT"Мне";K;"лет"

Экран: Мне 16 лет (если К=16)

Перед значением числа выводится либо пробел, либо знак "минус".

b) Команда: PRINT"Пра";"бабушка"

Экран: Прабабушка

2. Зональный вывод - разделитель ","

Если указана запятая, QBASIC выводит данные по зонам, каждая зона - 14 позиций.

Например:

Команда: PRINT"Мне",K,"лет"

Экран: Мне 16 лет (если К=16)

3. Вывод в разных строках

Например:

Команда: PRINT "Зарплата"

PRINT ZP;"руб"

Экран: Зарплата

2000 руб

Пример. Даны катет прямоугольного треугольника и прилежащий угол. Определить площадь треугольника и гипотенузу. Длину и угол в радианах ввести динамически. Результат вычисления вывести в разных зонах.

INPUT"Введите катет прямоугольного треугольника и прилежащий угол";A,U

C=A/COS(U) 'Вычисление гипотенузы

B=SQR(C^2-A^2) 'Вычисление катета

S= 0.5*B*A 'Вычисление площади треугольника

PRINT"C=";C,"S=";S

End

Для самостоятельного решения:

1. Кольцо задано радиусами двух окружностей. Вычислить площадь кольца. Данные задать динамически. Результат вычисления вывести в разных строках.

2. Даны числа x, y, z. Вычислить s=x2+y/(z2+y2/(x+y)3). Данные ввести динамически.

 

Статический ввод данных

Если программа постоянно работает с некоторым набором числовых или символьных констант, то можно объявить такой набор блоком данных:

DATAсписок констант

В списке констант через запятую указываются значения констант, например:

10 DATA 5,25,19.6,30,12,"ABC"

20 DATA "BASIC","Pascal",25.9

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

Для присвоения значений констант из блока данных переменным используется оператор READ:

READсписок переменных

В списке переменных через запятую указываются имена переменных, которым присваиваются значения констант из блока данных. Типы переменных в списке READ должны соответствовать типам констант из блока данных. Например:

READ a%, m%, t

Переменным a%, m%, t присвоятся значения 5, 25 и 19.6. Указатель перемещается на 4-ую константу. Оператор

READ c, sc%, a$

Присвоит переменным c, sc%, a$ значения 30, 12, "ABC" и указатель переместится на "BASIC" и т.д.

Как несколько раз прочитать одни и те же данные из блока данных? Для восстановления указателя блока данных используется оператор RESTORE:

RESTOREномер строки или метка

где номер строки должен указывать на оператор DATA.

Если не указан номер строки, следующий после RESTORE, READ начнет чтение с первой константы блока данных. Например:

RESTORE

READ vk%, s%

RESTORE 20

READ z1$, z2$

vk%, s% присвоятся значения 5 и 25, а переменным z1$, z2$ - значения "BASIC" и "Pascal".

Блок данных удобен в тех случаях, когда несколько раз используется одна и та же последовательность констант.

Пример. Составить программу нахождения высоты равнобедренной трапеции, у которой основания 5м и 11м, а боковая сторона 4м. Данные ввести статически.

DATA 5,11,4

READ BC,AD,AB

AE=(AD-BC)/2 'Основание треугольника

HT=SQR(AB^2-AE^2)

PRINT"Высота трапеции =";HT

END

 

 


Рекомендуемые страницы:

lektsia.com

Операторы, массивы, функции qbasic | Basic113

    

Операторы qbasic


Операторы

Cls - очищает либо графическую область, либо область просмотра - смотретьPrint - LPrint - выводит данные на экран, или печатает их на принтере - смотретьInput - оператор для ввода данных - смотретьDim - описывает массив, или указывает тип данных для переменного массива - смотретьLet - присваивает какое-либо значение переменной - смотретьRem - позволяет вставлять комментарии в программу - смотретьGosub - Return - переходит в подпрограмму и возвращается из нее - смотретьFor - Next - Step - повторяет блок операторов указанное число раз - смотретьGoto - выполняет переход в указанную строку - смотретьIf - Then - Else - выполняет оператор, или блок операторов, в зависимости от указанного условия - смотретьData - Read - Restore - операторы блока данных - смотретьSwap - обменивает значения двух переменных - смотретьScreen - устанавливает режим и другие характеристики экрана - смотретьColor - устанавливает цвета экрана - смотретьLine - рисует на экране линию, или прямоугольник - смотретьLocate - перемещает курсор на экране в указанную позицию - смотретьCircle - рисование окружности любых форм и размеров, есть возможность рисовать закрашенную окружность - смотретьPaint - заполняет графическую область указанным цветом или образцом - смотретьPset - Preset - рисует заданную точку на экране - смотретьBeep - генерирует звуковой сигнал через динамик компьютера, длительность звукового сигнала = 0,25 секунды,
часто используется, когда нужно привлечь внимание при выполнении какой-либо части программы - смотреть
Sound - генерирует звук через динамик вашего компьютера - смотретьEnd - завершает программу и закрывает все файлы - смотретьSleep - приостанавливает выполнение программы - смотреть


Политика конфиденциальности:

Часть материалов публикуемых на сайте написанна автором сайта вручную, остальные материалы взяты
из открытых источников. 

basic113.narod.ru

Решение: Нужны команды QBasic - QBasic

Формулировка задачи:

ребята скопируйте мне все команды по программе basic за ранее спасибо!!!

  Узнать стоимость выполнения Вашей работы

Код к задаче: «Нужны команды QBasic - QBasic»

textual
A
 
  ABS Функция                       APPEND Ключевое слово
  ABSOLUTE Ключевое слово           AS Ключевое слово
  ACCESS Ключевое слово             ASC Функция
  AND Оператор                      ATN Функция
  ANY Ключевое слово
B
 
  BASE Ключевое слово               BLOAD Оператор
  BEEP Оператор                     BSAVE Оператор
  BINARY Ключевое слово
 
C
 
  CALL Оператор                     COLOR Оператор
  CALL ABSOLUTE Оператор            COM Оператор
  CASE Ключевое слово               COMMON Оператор
  CDBL Функция                      CONST Оператор
  CHAIN Оператор                    COS Функция
  CHDIR Оператор                    CSNG Функция
  CHR$ Функция                      CSRLIN Функция
  CINT Функция                      CVD Функция
  CIRCLE Оператор                   CVDMBF Функция
  CLEAR Оператор                    CVI Функция
  CLNG Функция                      CVL Функция
  CLOSE Оператор                    CVS Функция
  CLS Оператор                      CVSMBF Функция
 
D
 
  DATA Оператор                     DEFLNG Оператор
  DATE$ Функция                     DEFSNG Оператор
  DATE$ Оператор                    DEFSTR Оператор
  DECLARE Оператор                  DIM Оператор
  DEF FN Оператор                   DO...LOOP Оператор
  DEF SEG Оператор                  DOUBLE Ключевое слово
  DEFDBL Оператор                   DRAW Оператор
  DEFINT Оператор                   $DYNAMIC Метакоманда
 
E
 
  ELSE Ключевое слово               ERDEV Функция
  ELSEIF Ключевое слово             ERDEV$ Функция
  END Оператор                      ERL Функция
  ENVIRON Оператор                  ERR Функция
  ENVIRON$ Функция                  ERROR Оператор
  EOF Функция                       EXIT Оператор
  EQV Оператор                      EXP Функция
  ERASE Оператор
 
F
 
  FIELD Оператор                    FOR...NEXT Оператор
  FILEATTR Функция                  FRE Функция
  FILES Оператор                    FREEFILE Функция
  FIX Функция                       FUNCTION Оператор
 
G
 
  GET (В/ВВ файлов) Оператор        GOSUB Оператор
  GET (Графика) Оператор            GOTO Оператор
 
H
 
  HEX$ Функция
 
I
 
  IF...THEN...ELSE Оператор         INSTR Функция
  IMP Оператор                      INT Функция
  INKEY$ Функция                    INTEGER Ключевое слово
  INP Функция                       IOCTL Оператор
  INPUT Оператор                    IOCTL$ Функция
  INPUT$ Функция                    IS Ключевое слово
 
K
 
  KEY (Присваивание) Оператор       KILL Оператор
  KEY (Отслеживание событий) Оператор
 
L
 
  LBOUND Функция                    LOCK...UNLOCK Операторы
  LCASE$ Функция                    LOF Функция
  LEFT$ Функция                     LOG Функция
  LEN Функция                       LONG Ключевое слово
  LET Оператор                      LOOP Ключевое слово
  LINE (Графика) Оператор           LPOS Функция
  LINE INPUT Оператор               LPRINT Оператор
  LIST Ключевое слово               LPRINT USING Оператор
  LOC Функция                       LSET Оператор
  LOCATE Оператор                   LTRIM$ Функция
 
M
 
  MID$ Функция                      MKI$ Функция
  MID$ Оператор                     MKL$ Функция
  MKD$ Функция                      MKS$ Функция
  MKDIR Оператор                    MKSMBF$ Функция
  MKDMBF$ Функция                   MOD Оператор
 
N
 
  NAME Оператор                     NOT Оператор
  NEXT Ключевое слово
 
O
 
  OCT$ Функция                      ON TIMER Оператор
  OFF Ключевое слово                ON...GOSUB Оператор
  ON COM Оператор                   ON...GOTO Оператор
  ON ERROR Оператор                 OPEN Оператор
  ON Ключевое слово                 OPEN COM Оператор
  ON KEY Оператор                   OPTION BASE Оператор
  ON PEN Оператор                   OR Оператор
  ON PLAY Оператор                  OUT Оператор
  ON STRIG Оператор                 OUTPUT Ключевое слово
 
P
 
  PAINT Оператор                    POINT Функция
  PALETTE Операторы                 POKE Оператор
  PCOPY Оператор                    POS Функция
  PEEK Функция                      PRESET Оператор
  PEN Функция                       PRINT Оператор
  PEN Оператор                      PRINT USING Оператор
  PLAY Функция                      PSET Оператор
  PLAY (Музыка) Оператор            PUT (В/ВВ файлов) Оператор
  PMAP Функция                      PUT (Графика) Оператор
  PLAY (Отслеживание событий) Операторы
 
R
 
  RANDOM Ключевое слово             RETURN Оператор
  RANDOMIZE Оператор                RIGHT$ Функция
  READ Оператор                     RMDIR Оператор
  REDIM Оператор                    RND Функция
  REM Оператор                      RSET Оператор
  RESET Оператор                    RTRIM$ Функция
  RESTORE Оператор                  RUN Оператор
  RESUME Оператор
 
S
 
  SCREEN Функция                    SQR Функция
  SCREEN Оператор                   STATIC Оператор
  SEEK Функция                      $STATIC Метакоманда
  SEEK Оператор                     STEP Ключевое слово
  SELECT CASE Оператор              STICK Функция
  SGN Функция                       STOP Оператор
  SHARED Оператор                   STR$ Функция
  SHELL Оператор                    STRIG Функция
  SIN Функция                       STRIG Операторы
  SINGLE Ключевое слово             STRING Ключевое слово
  SLEEP Оператор                    STRING$ Функция
  SOUND Оператор                    SUB Оператор
  SPACE$ Функция                    SWAP Оператор
  SPC Функция                       SYSTEM Оператор
 
T
 
  TAB Функция                       TIMER Операторы
  TAN Функция                       TO Ключевое слово
  THEN Ключевое слово               TROFF Оператор
  TIME$ Функция                     TRON Оператор
  TIME$ Оператор                    TYPE Оператор
  TIMER Функция
 
U
 
  UBOUND Функция                    UNTIL Ключевое слово
  UCASE$ Функция                    USING Ключевое слово
  UNLOCK Оператор
 
V
 
  VAL Функция                       VARSEG Функция
  VARPTR Функция                    VIEW Оператор
  VARPTR$ Функция                   VIEW PRINT Оператор
 
W
 
  WAIT Оператор                     WIDTH Операторы
  WEND Ключевое слово               WINDOW Оператор
  WHILE...WEND Оператор             WRITE Оператор
 
X
 
  XOR Оператор

СОХРАНИТЬ ССЫЛКУ

studassistent.ru

qbasic

7.10.2007

Самоучитель для начинающих. | Иван Собакарь

Введение.

MicrosoftQBasic– самый простой из современных языков программирования. Собственно, он настолько устарел, что единственное его назначение – учить детей составлять программы. Его продолжение – VisualBasic– используется как базовый язык программирования в Microsoft, так что хотя сам Qbasic нигде не используется, владение им крайне желательно любому программисту. Собственно, этот самоучитель кратко расскажет о особенностях программирования текстовых и графических приложений на Qbasic. Автор заранее извиняется за все орфографические ошибки, которые будут в этом документе, строго не судите. В общем, удачи в освоении!

До начала...

Итак, Вы сидите за компьютером в Windows и хотите научиться программировать на Qbasic. Что Вам нужно? Сама среда программирования, без неё нет смысла даже пытаться. Скачать её можно на моем сайте http://sysadmin.3dn.ru/. Если Вы хотите изучить составление текстовых приложений, этого достаточно. Я рекомендую работать в оконном режиме, это удобнее. У кого плохо со зрением – переходите в полноэкранный (Alt+Enter).

Теперь договоримся о разметке документа. Я буду печатать авторский текст обычным шрифтом, где нужно обратить внимание – полужирным, а тексты программ –другим шрифтом. В общем, по ходу все поймете. В общем, в одну руку мышь, в другую чипсы – и вперед!

Самая простая программа.

В языке Qbasic нет ничего обязательного. Т.е. нет таких строчек, которые обязательно нужно писать. Например, самая простая программа, которая будет как-то себя проявлять, имеет вид:

Print “Превед! Кагдила?”

В языке Qbasic есть понятие «команда» - это слово, которое Qbasic понимает. В данном случае – это команда print. Можно писать с большой буквы, можно с маленькой – без разницы, но если Qbasic заспознает команду, он переведет все слово в большие буквы. После слова print идет в кавычках через запятую то, что нужно вывести на экран (смысл команды print – вывод на экран или текстовой строки, или значения переменной). Можно сделать так:

Print “Превед! “, “Кагдила?”

Значения не имеет. Обратите внимание, что если Вы напечатали что-нибудь, то курсор автоматически переходит на следующую строку, так что если Вам нужно что-то напечатать в одной строке – делайте это сразу.

Необязательные коды...

Есть ряд правил, которыми должен руководствоваться программист. Это не является обязательным, но улучшает визуальное оформление кода программы. Ниже приведена программа из примера выше, но с обязательными кодами:

10 Rem zadaca 1 20 cls 30 print “Превед! Кагдила?” 40 end

Рассмотрим код построчно. Вы обратили внимание, что строки пронумерованы с шагом 10. Это обязательно только тогда, когда Вы используете оператор безусловного перехода (познакомимся потом), а пока Вам нужно знать две вещи – (1) строчки в простых программах нумеровать не обязательно и (2) нумерация может быть как угодно, но желательно по возрастающей и только целыми положительными числами (например, 2, 4, 6, 14, 15, 18, 100, 500, 501, 537). Классический способ нумерации – с шагом 10.

Но мы отвлеклись. Первая строка содержит команду rem. Эта команда ничего не делает. Все, что написано после rem в этой строке – не учитывается при выполнении. Я обычно там пишу название программы и комментарии по ходу программы, Вы можете писать там все, что угодно. Вторая строка содержит командуcls. Эта команда очищает экран. Третья строка содержит хорошо знакомую нам командуprint, а четвертая – командуend, которая указывает на конец программы, но при этом тоже ничего не делает и не обязательна. Больше необязательных кодов нет.

Переменные.

Если бы Qbasic мог только выводить текст и очищать экран – в нем бы не было необходимости. Первое, что обязан делать любой язык программирования – хранить информацию. Информация хранится в ячейках памяти – переменных. Можно хранить числовую и текстовую информацию. Числовая информация может быть целой и дробной (но представлена не дробью, а обычным числом с цифрами после запятой). В общем, рассмотрим для начала числовые переменные. Чтобы использовать переменную, нужно придумать ей имя. Имя может быть буквой, может быть целым словом. Ограничение – нельзя, чтобы имя переменной начиналась с цифры, и нельзя использовать в качестве имени переменной имя команды (например cls или print), и нельзя использовать rnd.Например, вот кусок программы:

A = 10 print A

В данном примере на экран будет выведено «10» потому, что во второй строке «А» не заключена в кавычки. Обратите внимание – любая строка в программе должна содержать или присвоение значения, или команду Qbasic. Если строка начинается не с команды и в ней нет присвоения (<имя переменной> = <значение>), то это будет считаться ошибкой. Рассмотрим другой пример:

A = 2.5 b = 5.3547852 Print A, b

Здесь я присваиваю переменным дробные значения. Сейчас сосредоточтесь, т.к. я скажу две критически важные вещи: (1) если Вы в начале использовали переменную с большой буквы, то Вы всегда обязаны писать её с большой буквы(здесь - А) и (2) –дробные числа пишутся через точку (2.5), а не через запятую. Всегда.

Другой тип переменных – текстовые. Они обозначаются точно так же, как и числовые, но отличаются типом хранимой информации. Однако, обычно они обозначаются со знаком “$” на конце. Вот программа:

A$ = “Превед!” print A$, “Чуваг!”

На таком простом примере можно показать, как использовать переменные. Для чего нужны текстовые переменные? Честно говоря, их используют только если хотят использовать введенные пользователем данные. Вам не часто придется использовать текстовые переменные, а если и придется, то писать “$” на конце не обязательно.

Ввод с клавиатуры.

Ну и самое интересное и нужное – введение пользователем информации. Информацию можно ввести двух типов – текстовую и числовую. Зависит от того, в ячейку какого типа информация вводится. Пример программы:

Input “Введи свое имя ”, a$ print “Превед, ”, a$, “!”

Подробнее разберем этот пример. Новая команда – input– вводит с клавиатуры информацию и помещает её в определенную переменную, в данном случае в переменную текстового типа a$. Сразу после input пишется подсказка, после подсказки очень желательно ставить пробел, чтобы текст не сливался. Потом кавычка закрывается, запятая и имя переменной. Во второй строчке я вывел слово «Превед, », после этого запятая и имя переменной, а после этого снова запятая и опять в кавычках текст. Можно чередовать переменные и текст, текст и текст, переменные и переменные до бесконечности. Можно делать так:

Input “Введи число: ”, q% print q%, q%, q%

Обратите внимание, что я после имени переменной поставил “%”. Если нам нужно получить число, а в случае ввода текста повторить ввод, то переменную нужно писать со знаком “%”. Если только текст, то со знаком “$”. Если нам не важно, что введено, то можно писать просто имя переменной.

Здесь я получаю числовое значение и трижды его вывожу. Обратите внимание – если Вы попытаетесь ввести текст вместо цифр, то Qbasic снова попросит ввести число. И так, пока Вы его не введете. Я рекомендую потренироваться сinputиprint, т.к. это – основа языка. Её полное понимание – половина успеха. А сейчас я покажу фишку (даже две!):

Input “Введи два числа через запятую: ”, a, b print a, b, a/2, b/2

Первая фишка – можно за раз затребовать ввода через запятую нескольких переменных. Вторая фишка –при выводе числе с ними сразу можно делать математические операции. Это не желательно, но возможно.

Простейшая математика.

На данном этапе полученных знаний достаточно, чтобы начать писать полезные программы. Рассмотрим задачу: «Дана формула Y = X*2/3. Ввести с клавиатуры Х и посчитать Y. В конце вывести и Х, и Y.». Давайте разработаем стратегию: сначала введем с клавиатуры значение Х, после этого посчитаем по формуле и выведем результат. Сказано – сделано:

Cls input “Введите значение X: ”, x y = x*2/3 print “Значение Х: ”, x, “, а значение Y: ”, y

Первая команда - очистка экрана. Начиная отсюда, я всегда буду очищать экран перед выполнением, рекомендую и Вам так делать. Во второй строчке ввожу Х. В третьей – вычисляю. Обратите внимание – использую вторую переменную y, которую нигде раньше не вводил и не использовал – просто сразу использую её и все. Ну и в 4-й строчке я печатаю результат. Все просто. Почти . Есть одна вещь – отбрасывание дробной части, которая Вам может пригодиться. Вот, сравните код:

Cls input “Введите значение X: ”, x y = int(x*2/3) print “Значение Х: ”, x, “а значение Y: ”, y

Вы видите int(<выражение>). Он отбрасывает дробную часть числа. Именно отбрасывает, а не округляет. Например, int(2.9) вернет «2», а не «3».

В общем, полученных знаний достаточно, чтобы писать программы класса «вычислить по формуле и вывести на экран».

Теперь математические действия:

Возведение числа в степень

<Переменная> ^ <степень>

4^2 = 16; x^2 = x*x и т.п.

Сложение

+

2+2 = 4, x+x и т.п.

Вычитание

-

2-2=0 и т.п.

Умножение

*

2*2=4, 3*4 = 12

Деление

/

2/2 = 1, 5/2 = 2.5

Квадратный корень

SQR(x)

SQR(4) = 2; SQR(9) = 3

Приоритет \ скобки

()

(2+2)/4 = 1, 2+2/4 = 2.5 и т.п.

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

Массивы и матрицы.

Модное слово – матрица . Означает оно – многомерный массив. Собственно, массивы – это когда внутри одной переменной можно хранить несколько значений. Иногда это очень удобно, так что советую привыкнуть к массивам, как к необходимости. Массив нужноинициализировать– т.е. сообщить, что собираемся его использовать инициализация должна идти до первого использования, обычно в начале программы. Сразу покажу пример:

Cls dim a(3) a(1) = 3 a(2) = 5 a(3) = 1 print a(1), a(3), a(2)

Вторая строка – инициализация массива. Я сообщил, что буду использовать массив из трех ячеек.

З

А

десь нужно сделать примечание. На самом деле dim(n) состоит из n+1 ячеек, т.к. есть нулевая ячейка. Но чтобы было удобнее считать, обычно её не используют.

Е

А

сли попытаться представить себе это визуально, то переменная выглядит так:

А

(0)

(1)

(2)

(3)

(4)

массив выглядит так:

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

Dim massiv(2) massiv(1) = 23.4 massiv(2) = 1 print int(massiv(1)), massiv(2)

Одно из важных умений программиста – уметь читать кучу вложенных друг в друга скобок. Разберем программу: первая строка – я объявляю массив с именем massiv и двумя (тремя, если с нулем, но мы его не используем!) ячейками. В первую заношу 23.4, а во вторую – просто 1. После этого я печатаю значение первой ячейки без дробной части (помните int(<число или переменная>)?), а вторую – как есть.

Теперь на счет матрицы. Матрица – это тоже массив, только он многомерный. Обозначается двухмерный массив как dim (a, b), трехмерный как dim (a, b, c) и работа ведется с ним как с обычным, только в скобках пишется сразу два (или три) числа через запятую.Вот пример использования матрицы:

Dim x(3, 3) x(1, 1) = 2 x(3, 1) = 5 x(1, 2) = 15.2 print x(1, 2)

Это простейший примитивнейший пример и его назначение – лишь показать, как использовать матрицу. Приемы работы те же самые, как и с одномерным массивом. Многомерный массив можно сравнить с домом, когда у нас есть номер этажа (столбца) и номер квартиры (строки). Трехмерные массивы имеют ещё одну координату.

Подведение итогов.

Итак, первая часть самоучителя закончена. В ней мы узнали, как писать простейшие программы, как получать данные с клавиатуры и выводить их, как использовать массивы и отбрасывать дробную часть, как очищать экран и т.п. Во второй части я познакомлю Вас с командами условия и циклов, а так же безусловного перехода.

Логические выражения.

Вторую главу нужно начать именно с них. Вот сводная таблица:

>

Больше

2 > 1 – истина,2 > 4 – ложь

<

Меньше

1 < 4 – истина, 2 < 2 – ложь

>=

Больше или равно

2 >= 2 – истина,2 >= 1.9 - ложь

<=

Меньше или равно

2 <= 8 – истина,2 <= 2.01 - ложь

=

Равно

2 = 2 – истина, 2 = 3 – ложь

<>

Не равно

2 <> 3 – истина,2 <> 2 – ложь

Not

Отрицание выражения – не

Not(2 = 3) – истина,not(2 < 3) – ложь

Or

Хотя бы одно – или

( 2 > 3) or (5 > 3) – истина,(12 < 2) or (12 > 55) – ложь

And

Обязательно оба - и

(2<3) and (4<5) – истина, (12>5) and (5>12)- ложь.

Это кажется простым и понятным (хотя не всем), но это очень важно для верного написания программ с операторами циклов и условий. Рекомендую хорошо эту табличку знать.

Оператор условия.

Иногда нужно проверить некоторые данные. Например, больше ли 12 введенное число или делится ли на 5 без остатка результат уравнения и т.п. Для этого нужна фантазия и оператор IF. В лучших традициях, я сразу приведу пример его использования:

Input “Сколько Вам лет? ”, l if l > 15 then print “Тебе больше 15!” else print “Тебе меньше 15!”

Сразу можно придраться и сказать, что если введешь 15, то он все равно скажет второе, но это учебный пример, а не «боевой». В общем, сначала мы получаем число, а потом проверяем его. Синтаксис оператора IFтакой:

If <условие> then <если верно> else <если не верно>, где <условие> может быть любым логическим выражением, <если верно> - команда, которая выполняется, если условие имеет статус истина, а <если не верно> - команда, выполняемая при статусе – ложь. Можно использовать просто:

If <условие> then <если верно>, так его в основом и используют. Приведу боевой пример, он немного сложноват, но если Вы его понимаете, это очень хорошо:

Cls input “Введите число от 1 до 5”, a if (a >= 1) and (a <= 5) then print “Введено верно!” cls input “Теперь введите число от 1 до 10”, b if (b >= 1) and (b <= 10) then print “Верно!” print “Сумма введенных чисел: ”, a+b

Я использовал clsдважды – так тоже можно, если есть необходимость. В строчке 3 я проверяю, если число больше или равно 1 и меньше или равно 5, то я пишу «введено верно!», аналогично и в строчке 6. В общем, ничего сложного.

Двоеточие...

Настало время рассказать про двоеточие. Оно служит, чтобы в одной строке написать несколько операторов, например:

A = 2 : b = 3

В нем нет особой необходимости, но если встретите его, просто знайте, что имеется в виду.

Оператор повторений.

Это одна из самых важных тем. Понимание оператора повторений дает ключ к автоматизации процесса. Например, если Вам нужно 10 раз подряд спросить у пользователя число, а потом посчитать сумму? Будете 10 раз печатать запрос? А если 20 раз? 100? В общем, без лишних слов – оператор повторений:

For <переменная>=1 to <сколько раз повторять> step X <операторы> ... <операторы> next <переменная>

Сразу обратите внимание на «step X». Я больше об этом никогда говорить не буду, потому как я это не использую. Если это не писать (можно не писать), то программа после каждого прохода увеличивает переменную на 1. Если написать step X, то программа будет увеличивать переменную на Х.

Обратите внимание, что в операторе for нужно использовать переменную как счетчик. Используйте незанятую переменную, которую Вы нигде больше не используете, я называю её всегда cnt, вы называйте хоть «m». Пример:

Cls a = 0 Input “Сумму скольки первых чисел нужно находить? ”, n for cnt = 1 to n a = a + cnt next cnt print a

Вот и все. Теперь смысл. Первая строчка очищает экран. Во второй строчке я делаю очень важную вещь – я собираюсь в переменную «а» складывать сумму всех чисел и перед этим присваиваю этой переменной значение 0. Если Вы собираетесь искать произведение чисел, то следует переменой присвоить 1, т.к. если бы там был 0, то произведение всех чисел было бы 0. Короче, это просто нужно думать по ходу написания программ. Для суммы нужно присваивать 0, для произведения – 1. В общем, в 4 строчке написано «n раз повторять все что после 4 строчки и перед next n». В самой программе я могу использовать и cnt, но присваивать счетчику значения нужно только если знаешь, что делаешь. В общем,next cntговорит, что это конец куска кода, который надо повторять. А после этого я вывожуa, в которой содержится сумма чисел от 1 до n.

Теперь разберем алгоритм программы, важно понять его:

  1. Мы получили n. Это сколько раз надо повторять. Для наглядности пусть будет 3.

  2. a=a+cnt. Сначала в «a» было ноль, после первого разаn+cnt.Cntсначала 1.

  3. теперь увеличиваем cnt и возвращаемся на второй шаг. Если cntуже достигn, то прекратить выполнение цикла.

После первого захода в n было 1, после второго 1+2, а после третьего – 1+2+3. А теперь догадайтесь, что в конце в n будет? Правильно – 6!

Смысл оператора for такой, что он несколько раз (nраз) прогоняет операторы, что перед next cnt, притом номер число cnt – номер повтора. Не обязательно его использовать в самой программе, можно делать, что хотите, просто это что-то будет выполнено n раз.

Оператор for очень удобно группировать с массивами. Пример:

Cls dim a(5) for cnt = 1 to 5 input “Введите число”, a(cnt) next cnt print a(1), a(2), a(3), a(4), a(5)

В данном примере я вместо числа в скобках в обозначении массива в 4 строчке использую счетчик, которые после каждого повторения увеличивается на 1, в качестве номера элемента массива. Всего будет 5 заходов, как Вы видите из третьей строчки. В общем, это называется «заполнение массива с клавиатуры». Потренеруйтесь ещё! Измените пример выше таким образом, чтобы он принималтри текстовыхстрочки. Затрудняетесь? Ничего сложного!

Cls dim a$(3) for cnt = 1 to 3 input “Введите текст”, a$(cnt) next cnt print a$(1), a$(2), a$(3)

Вот ещё пример того, как можно использовать массив в связке с оператором повторений. Если Вы затруднились с написанием своего варианта, то рекомендую остановиться на этом этапе изучения языка, пойти попить кофе, в общем – пока приостановить изучение и отдохнуть. С новыми силами попробуйте написать программу, которая сначала будет ждать ввода трех чисел, а затем пяти строк. Хранить числа в массиве a(3), а строки в массиве b(5). Это довольно сложно, но вполне решаемо. Если Вы сможете написать это – есть повод гордиться.

Случайное число.

В мире случайностей не бывает. Ничего не может возникать ниоткуда и исчезать в никуда. Это распространяется и на компьютер – в нем ничего само по себе не происходит. И все же есть одно понятие, которое этому противоречит – случайное число.

Если интересно: на самом деле термин «случайное число» не верный. Полученное этим способом число не является случайным – это текущая дата и время, с которыми произвели математические операции. Это очень сложный процесс и для простоты принято говорить, что это число случайно. Но мы – то знаем, что такого не бывает ...

Итак, использование случайного числа – довольно легкий процесс, если понять суть его. Случайное число, как и массив, нужно в начале программы инициализировать строчкой randomize timer. Это делается один раз в начале программы (обычно после имени программы и объявления массивов, если такие есть). В самой программе наше случайное число хранится в переменнойrnd, которую мы должны использовать только для чтения и никак больше. Например, вот неполная программа:

Randomize timer print rnd

Если Вы её запустите, она выдаст Вам что-то типа «.3587412». Это происходит потому, что в начале ноль программа не пишет. Т.е. «как есть» число rnd не доходит до целого. Но ведь нам нужны целые числа, причем в заданных пределах? Именно поэтому переменную rnd «как есть» не используют. Делают так:

Randomize timer print int(rnd*10)

Если Вы вникли во все предыдущие главы самоучителя, то должны понять, что тут делается. А делается вот что: первая строка говорит программе, что мы вообще будем использовать случайное число. Во второй строке мы берем rnd, умножаем его на 10 (получилось что-то типа 3.587412) и отбрасываем дробную часть (ответ - 3) и печатаем результат вычислений. Помните, что сначала математические действия вычисляются и только в последнюю очередь печатается их результат. И что мы получили? По идее rnd может принимать значения от 0.0000001 до 0.9999999, т.е.указанная выше программа будет выдавать результат от нуль до девяти. Ещё пример:

Randomize timer print int(rnd*10-5)

Вот теперь она будет выдавать значения от 0-5 до 9-5, т.е. от -5 до 4. Помните, Вы никогда не сможете заставить выдавать значения от -5 до 5, можно лишь от -5 до 4, чтобы между минимумом и максимумом было 9 цифр.

Ещё очень важная вещь: rnd каждую секунду меняется, так что если дважды подряд обратитесь к ней, даже например так:

Randomize timer print rnd, rnd

То будут выведены два разных числа. Хотя лично у меня никогда не было необходимости дважды подряд генерировать случайное число. Так что особенно не задумывайтесь над этим.

Оператор цикла.

Это очень сложная и требующая напряжения внимания глава. Чтобы понять принцип действия оператора цикла, нужно внимание и силы. В общем, вот пример:

While a <> 5 input “Введите число 5 для выхода: ”, a wend

Что будет делать эта программа? Она будет выдавать запрос на ввод числа до тех пор, пока Вы не введете число 5. Синтаксис оператора цикла:

While <истинное условие> <ваши операторы, которые нужно повторять> wend

Итак, рассказываю: как только Qbasic находит слово while, он начинает проверять условие после этого слова на истинность. Если оно истинно (как в данном случае, т.к. а сначала - ноль), то будет проделано то, что после этой строчки и перед wend (это просто служебное слово, обозначающее конец цикла). Он один раз прогнал <ваши операторы, которые нужно повторять> и снова оценивает выражение, и если оно снова истинно, он снова повторяет цикл до тех пор, пока он не станет ложным. Если выражение ложно, он приступает к следующей после wend строчке.Обратите внимание, что сам Qbasic ничего не делает для того, чтобы сделать выражение ложным, так что обязательно продумывайте ситуацию, когда цикл будет окончен, иначе придется нажать Ctrl+Break и программа остановится с ошибкой. (когда нажимаете эти кнопки, программа сама останавливается. После этого надо нажать Выполнить - Перезапустить). Вот ещё пример использования цикла:

While x <= 5 print “Сейчас Х равен ”, x x = x + 1 wend

Вот, сдесь программа напечатает цифры от нуля до 5. Постоянное увеличение числа х обеспечивается третьей строчкой. В общем, все просто.

Подпрограммы.

Это самая сложная тема во всем Qbasic. Она не является критически важной, но она сложная. В общем, программу не обязательно писать одним куском. Если Вы в программе часто делаете одно и то же действие, например делите на два и возводите в третью степень (просто для примера), то можно сделать деление и возведение в степень в отдельном как бы куске текста, вот пример:

10 cls 20 input “Введите число: ”, a 30 gosub 100 40 print a 50 gosub 100 60 print a 70 end 100 rem подпрограмма деления и возведения в степень 110 a = (a / 2)^3 120 return

Вот. Обратите внимание, что если Вы используете подпрограммы, Вы обязаны вести нумерацию строк (а как – это не важно. У меня вот после 70 сразу 100 ). Итак рассказываю. В строчке (буду называть по номерам) 10 я очищаю экран. В 20-й строчке я жду ввода числа а. После этого идет новая команда –gosub – она говорит, чтобы Qbasic перешел на строчку с заданным номером, здесь – 100. После этого Qbasic находится на строчке 100, которая соержит только комментарий. Хорошим стилем считается начинать подпрограмму с комментария, который рассказывает, как подпрограмма называется. В общем, дальше идет 110 строчка. Что она делает – понятно. А вот 120 строчка содержит командуreturn, которая говорит, чтобы Qbasic вернулся туда, откуда перескочил на подпрограмму, т.е. на 30 строчку. Т.к. она уже выполнена, то он переходит на 40 строчку. Печатает переделанное число «а» и переходит на 50. Здесь он снова перескакивает на 100 и делает, как я рассказал выше. После этого он на 60 строчке снова печатает число а и заканчивает программу словомendна 70 строчке.

Теперь смысл: подпрограммы нужны тогда, когда нужно что-то сделать много раз. Но их использование доставляет проблемы: начиная от того, что нужно нумеровать строчки, и заканчивая тем, что нужно отслеживать порядок выполнения программы. Я очень редко использую подпрограммы... Синтаксис использования под программ такой:

Q <ваши операторы> w gosub X e <ваши операторы> Х rem <название подпрограммы> z <операторы> n return

Вот так. Буквы в начале строк обозначают то, что строчки надо нумеровать.

Оператор перехода.

Эту тему подробно в школах не изучают, поэтому я просто коротко и ней расскажу. GOTO– оператор безусловного перехода. Все, что он делает, это передает управление на заданную строчку в программе. И все – ничего больше он не может.Он тоже требует нумерации строк в программе. Вот пример:

10 Cls 20 input “Сколько Вам лет? ”, a 30 print “Превед!” 40 if a < 18 then goto 200 50 print “Пиво будешь?” 200 print “Ну ладно, удачи!” 210 end

В строчке 40 идет проверка на возраст. Если возраст меньше 18, то переход на строчку с номером 200. Все просто и понятно.

Подведение итогов.

Итак, закончена глава автоматизации операций. Если Вы внимательно её читали, то теперь умеете заставить программу выполнить требуемое количество раз одно и то же действие, получать случайное число, разбираетесь с оператором условия и цикла. Это самое важное, что есть в Qbasic, так что хорошенько разберитесь с каждым из приведенных выше операторов, чтобы потом не было вопросов.

studfiles.net

учебник по qbasic 1 - глава 5

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

 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. Создать простую программу базы данных для адресов и названий(имен)
Использование структурного программирования.

 Сохраняйте ваши программы !!!!! Они могут стать шедевром!!!) Желаю  удачи!! :)))

basic113.narod.ru

учебник по qbasic 1 - глава 1

Глава ПЕРВАЯ. Добро пожаловать! На этих уроках вы научитесь, как использовать
язык программирования QBASIC. Если вы хотите изучить Бейсик, то, преступим!

 Вы можете спросить, каков он, QBASIC. QBASIC - язык программирования, написанный на компьютерах
в 1975, Биллом Гейтсом и Паулем Алленом, и с тех пор был приятен всем. Почему?
Из-за легкости в использовании, команды - чистый английский язык, и мощность. QBASIC заменяет Универсальную Символическую систему команд. Несколько команд - чистый Английский язык - PRINT, LET…, и многие другие. Язык имеет простую структуру программ: строки пронумерованы (10, 20, 30,
и т.д.). Но почему вы решили использовать QBASIC? Когда вы изучаете QBASIC,
вы также изучаете многие из основных принципов других языков программирования.
Изучив учебник, вы сами сможете создавать программы, и, я думаю, найдёте в этом забаву:))).
К концу этих уроков, вы должны знать много вещей относительно QBASIC, и будете способны писать превосходные программы, которые будут являться полезными для вас и ваших друзей:))

 QBASIC очень лёгок в использовании. Почти на каждом компьютере записан QBASIC.
Если Вы ещё не знаете, где QBASIC записан на вашем компьютере, проверьте каталог "C:\DOS",
или используя программу поиска, найдите QBASIC.EXE.

 Я знаю, что вы хотите сразу же, научится программированию и написать первую программу.
Есть программа для вас. Напишите в окне Бейсика:

 CLS:PRINT "Привет"! : PRINT : PRINT " Это моя первая программа! "

 Это только список команд, которые компьютер будет выполнять.
Нажмите  на меню "RUN",> "START". На экране появится что-то вроде:

 Привет!
 Это - моя первая программа!

 Обратите внимание, что QBASIC не выводит CLS, или PRINT, или что-нибудь другое.
Нажмите любую клавишу, чтобы вернуться к программе.  Объяснение операторов:

 CLS - Очищает экран

 Оператор PRINT - печатает написанный вами в кавычках текст.

 Чтобы сохранить программу нажмите на меню "FILE">Save as…, наберите имя файла
укажите директорию и сохраните файл. Чтобы начать новую программу,
нажмите на меню "FILE">"NEW" ОСТЕРЕГАЙТЕСЬ - любая программа в памяти будет потеряна НАВСЕГДА, если она не сохранена. Если Вы хотите загрузить свою программу снова, нажмите на меню "FILE",
нажмите "LOAD", зайдите в ту директорию где лежит ваша программа выберете её и загрузите.

 Итак в этой главе мы изучили 2 оператора "PRINT" и "CLS".

basic113.narod.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *