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

Как ваша программа запускается
  • О компиляторе
  • Синтаксис
  • Ход выполнения программы
Переменные
  • Типы данных Basic
Ввод/Вывод (IO)

Вышеописанные концепции программирования важны для абсолютного новичка. Я расскажу, как эти понятия работают в FreeBASIC. Важно также узнать, как использовать документацию, которая находится по адресу www.freebasic.net/wiki . Большинство решений для программирования описаны по этой ссылке в описаниях и демонстрациях. Советую всегда искать информацию именно в руководстве wiki, прежде чем искать в другом месте. Даже если этой информации нет на данный момент, она скорее всего будет добавлена в ближайшее время.

Этот учебник имеет версию 1.0.

Как ваша программа запускается


О компиляторе

FreeBASIC - компилируемый язык программирования, а не интерпретируемый. Это означает, что FreeBASIC берет код, который Вы пишете, такой как "PRINT" или "SLEEP", и переводит его непосредственно в ассемблер и далее в машинный код. Машинный код - это то, что понимает компьютер. В целом вы никогда не будете кодировать в Машинном коде, независимо от того какой "низкий уровень программирования" вы используете.

FreeBASIC - язык программирования высокого уровня. FreeBASIC позволяет программисту выполнять меньше работы для достижения цели. С высокоуровневым программированием вы не должны волноваться о более сложных областях программирования. На языках программирования, таких как C и ASM, которые являются низкоуровневыми, программист имеет преимущество управления компьютером на более точном и менее человеческом уровне, но с недостатком необходимости знать больше о внутренностях.

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

Синтаксис

Синтаксис- это слова и команды сгруппированные в программировании. Порядок, в котором они находятся, будут устанавливать правила относительно того, как вы будете структурировать вашу программу.

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

Синтаксис FreeBASIC обычно такой: ИМЯ_КОМАНДЫ [Аргумент,] [Другой аргумент]

Хотя приведенная выше запись может показаться запутанной на первый взгляд, на самом деле все просто. Вы даете компилятору команду, а затем определяете свои аргументы после команды. Запятая отделяет аргументы друг от друга. Пример команды может быть: Draw Circle, 10. Можно предположить, что Draw будет рисовать что-то, Circle будет рисуемой формой, а 10 будет радиус окружности. В этом случае, синтаксические правила для этой команды могут выглядеть следующим образом: Draw [Shape,] [Size]

FreeBASIC не учитывает регистр. Вызов команды 'DRaW' тоже самое что и  'draw'.

Ход выполнения программы

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

Print "HI"
Sleep


Поскольку строка PRINT находится выше строки SLEEP, то PRINT выполнится в первую очередь, а SLEEP выполнится сразу после PRINT.

Комментарии могут вноситься в код FreeBASIC. Они игнорируются компилятором, и не станут частью вашей программы. Комментарии могут занять целую линию, если вы начнете ее с аппостофа ', или могут быть многострочными, если вы запишете их так /' комментарий '/. Вот пример использования комментариев.

'  ABLASHD
' PRINT "HI!" ' Эта строка кода не будет выполнена, потому что это комментарий.
Print "This is not a comment.  This event will occur."  ' Распечатает все, что находится в двойных кавычках.
Sleep ' приостановит программу, пока пользователь не нажмет какую-либо клавишу.


Переменные


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

Из алгебры или математики: x = 4, 1 + x = 5. В программировании x - это и есть переменная. По сути переменная - это слова или набор букв, которые содержат значения.  В качестве значений , переменные могут хранить важные данные, такие как имя, уровень здоровья вашего главного героя в вашей игре, или даже просто цвет одного пикселя. В реале переменная - это небольшой кусок памяти компьютера. В FreeBASIC , как и в большинстве языков программирования, вы будете много работать с переменными.

Для создания переменных в FreeBASIC, мы используем команду DIM. Что означает аббревиатура Dim? Я не уверен, но оно может происходить от слова DIMENSION. DIM говорит FreeBASIC, что мы создаем новую переменную в нашей программе. Команда подробно описана на этой странице, но я собираюсь объяснить это в не менее подробной форме здесь.

Это наиболее простой синтаксис для DIM: DIM [VariableName] AS [DataType] [="[Value] ]

Что эта запись означает в FreeBASIC:
- Мы создаем переменную, потому, что мы набрали команду DIM
- Мы именуем переменную как [VariableName] (Где VariableName - это это имя переменной, которую вы хотите создать. Переменная может быть названа X, Y, AlexPritchard, BLahblh, Foo, и др.)
- Мы указываем тип переменной, потому что мы ввели спецификатор AS после VariableName
- Мы создаем переменную типа [DataType] (Datatype может быть integer, double и пр.)
- Мы также можем присвоить значение переменной, поставив РАВНО (=) после нашей созданной переменной.

Пример:
Dim foo As Integer = 5
Print foo
Sleep


В нашей программе мы создали foo. FOO была создана как INTEGER (тип данных содержит числа) Мы присвоили переменной значение 5. Мы вызвали команду PRINT, чтобы напечатать информацию из переменной на экран.  PRINT foo выведет 5 на экран, поскольку foo как раз и содержит 5. Далее вызываем команду SLEEP, чтобы увидеть результат печати на экран. После нажатия любой клавиши программа завершится

Типы данных Basic

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

Integer - Содержит числа БЕЗ ДРОБЕЙ.
Double - Содержит числа С ДРОБЯМИ
String - Содержит строки

DIM variablename as INTEGER создаст переменную variablename с типом INTEGER. Если вы замените INTEGER на DOUBLE, или STRING, то переменная будет иметь тип, вмещающий дробные числа или строки соотвественно. Вы не можете присвоить строковой переменной целое число 5, но вы можете присвоить ей строку "5". Кавычки показывают , что значение между ними является строкой.

Вот пример, который демонстрирует, как можно использовать переменные для хранения вашего имени.

'' Создаем переменную MyName.  И присваиваем ей значение 'Alex'
Dim As String MyName = "Alex"

'' Печатаем значение переменной MyName на экран
Print MyName

'' останавливаем программу до нажатия любой клавиши.
Sleep


Ввод/Вывод


Ввод - это те данные, которые получает программа из вне (от пользователя, из файла, и пр.). Вывод - это извлекаемые данные из программы в определенное место , например на экран, в файл, на принтер и пр.  

Input и Output (ввод и вывод) часто сокращают как I/O, или IO.


FreeBASIC имеет множество методов ввода и вывода. Для начинающих большинство из этих методов может ввести в заблуждение, потому что они, как правило, требуют лучшего знания переменных и более сложные формы программирования. Мы собираемся изучить самые основы ввода-вывода.

Вы помните, команду PRINT в примере? Так вот, PRINT является командой вывода , потому, что она берет информацию из программы и выводит ее на экран. Сама по себе PRINT является очень простой формой вывода. Вы просто вызываете команду PRINT, а затем указываете ей то, что вы хотите напечатать. Если например вы хотите напечатать слова, то заключите эти слова в двойные кавычки. Если вы хотите напечатать значение переменной, то указываете имя переменной после PRINT.

Print [ЧТО_ХОТИМ_НАПЕЧАТАТЬ]

Пример:

'' Печатаем слово, HI! на экране
Print "HI!"

'' создаем новую переменную foo с типом Integer.  Присваиваем ей значение 10.
Dim As Integer foo = 10

'' Печатаем значение переменной foo.
Print foo
Sleep


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

1) Нам нужна переменная для хранения этой информации.
2) Нам нужно вызвать команду для получения входных данных.
3) Нам нужно напечатать входные данные, чтобы убедиться, что мы храним верную информацию.

Мы знаем как делать 1 и 3 пункт, а для 2 пункта мы изучим новую команду INPUT.

Ее синтаксис: INPUT [ПЕРЕМЕННАЯ_ДЛЯ_ВХОДНЫХ_ДАННЫХ]

Вы также можете использовать INPUT вот так: INPUT [СТРОКА_ПОДКАЗКА,] [ПЕРЕМЕННАЯ_ДЛЯ_ВХОДНЫХ_ДАННЫХ]

Первая версия INPUT позволит вам получить ввод и положить данные прямо в переменную. Вторая версия INPUT выводит сообщение на экран перед запросом ввода. Таким образом, пользователь будет знать, что нужно вводить! Кроме того вы можете просто использовать команду PRINT до INPUT, чтобы оставить подсказку пользователю, но иногда удобнее все это сделать с помощью одной строки кода, используя второй синтаксис команды INPUT.

Пример:

'' Создаем строковую переменную. В нее будем помещать входные данные!
Dim As String MyName

'' Получаем имя пользователя!
'' На экране передано сообщение - Пожалуйста введите ваше имя,
'' и пользователь имеет возможность ввести имя!
Input "Please enter your name!", MyName

'' Печатаем имя, которое ввел пользователь
'' Перед именем будет надпись - Ваше имя:
'' Аргументы для Print мы разделили запятой
Print "Your Name Is: ", MyName

'' пауза в программе, пока не будет нажата любая клавиша
Sleep


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

Определения программирования


Аргумент: Смотрим параметр

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

Компиляция: Процесс превращения текста из одного языка в другой. Расширенно: BASIC в FreeBASIC компилируется в ASM. Затем компилятор ASM компилирует в машинный код.

Машинный код: 0 или 1. Это код, который будет понимать ваш компьютер.

Параметр: Данные, которые передаются в команду при вызове. Передаваемые параметры позволяют командам определять нужные действия. Передача параметра «Rectangle» команде «Draw», имело бы смысл как рисования прямоугольника на экране

Пиксел: Одна «точка» на вашем мониторе. Мониторы состоят из тысяч крошечных точек, которые освещены разными цветами. Цвет зависит от значения пикселя в переменной, который получает монитор. Верьте или нет, но даже ваше оборудование будет использовать переменные, во многих отношениях.

Синтаксис: Как слова группируются вместе. Синтаксис программирования является набором правил, которые говорят вам, какой код можно размещать и где. Это гарантирует, что только логический код допускается. Расширенно: Print "Hi". PRINT - это команда, "Hi" - это то, что команда будет печатать.

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