Понедельник, 29.04.2024, 16:19

Компьютерный сайт Computer-narod.ucoz.ru

Форма входа
Поиск
Наш опрос
Оцените мой сайт
Всего ответов: 25
Счётчики


Rambler's Top100

Рейтинг@Mail.ru


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Меню сайта
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Теги
commercial freeware open source shareware распространение Статус распространения API API функции WinAPI Windows API процессор PureBasic компилятор программирование
PureBasic - один из языков с очень простым синтаксисом. Если вы выбрали PureBasic для программирования, вам это знать просто необходимо.

Переменные
Переменные – это участки памяти, в которых хранится информация для программы. Информация, записанная в переменную, называется значением переменной. Чтобы работать с переменной, её нужно объявить. Это делается так:
<имя переменной>.<тип данных> = <значение> 
имя переменной – произвольное имя переменной. Оно может содержать только латинские буквы и цифры, причём начинаться может только с буквы.
Word, Name, Luna7 – правильные имена переменных.
123ABC, Привет, C++ – неправильные имена переменных.
тип данных – тип информации, записанной в переменную. В PureBasic возможны следующие типы:

Типы данных в PureBasic
Название типаСпособ объявленияЗанимаемая памятьВозможные значения
 Byte a.b 1 byte от -128 до +127
 Character a.c 1 byte (ASCII)
 2 byte (Unicode)
 от 0 до 255 (ASCII)
 от 0 до 65535 (Unicode) 
 Word a.w 2 byteот -32768 до +32767  
 Long a.l 4 byteот -2147483648 до +2147483647 
 Float a.f 4 byteнеограниченно 
 Quad a.q 8 byteот -9223372036854775808 до +9223372036854775807 
 Double a.d 8 byteнеограниченно  
 String a.s или a$длинна строки + 1 byte неограниченно 
 
Для хранения целых чисел используют типы Byte и Long, для дробных –  Double и Quad, для строк – String. Необходимо всегда указывать тип переменной. По умолчанию, если тип не указан, используются типы хранения целых чисел – их компилятор выбирает сам, в зависимости от значения переменной. 
значение – значение переменной, то есть информация, которую переменная будет хранить. Если это строка, она должна быть взята в кавычки. Нередко значением переменной являются другие переменные или функции.
Кстати, нередко вам может понадобиться приведение типов данных. Чтобы преобразовать число в строку, используйте функцию Str():
Str(<имя переменной>)
Чтобы преобразовать строку в число, используйте функцию Val():
Val(<имя переменной>)

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

Константы
Константа – это переменная с фиксированным значением. Все константы начинаются с символа #. Чтобы использовать константу, её нужно объявить таким образом:
#<имя константы>.<тип> = <значение>
Правила названия, типов и значений такие же, как и у переменных.
После объявления константы её можно использовать без указания типа данных. При попытке изменить значение уже объявленной константы воз-никнет ошибка.
Кстати, во многих функциях есть необязательный параметр «Флаг». Это один или нескольких параметров, разделённые символом «|». Так вот, эти флаги, по сути, являются константами. Разница в том, что перед использованием флагов их не нужно объявлять.
Во многих функциях вы встретите параметр «ID». Я рекомендую использовать для этого целые числа, равные или больше нуля. Но если вам так не удобно, можно использовать константы. Например:

OpenWindow(#Mywindow1,0,0,100,100,"my window")

Используя этот способ, вам нужно будет объявлять константы в самом начале программы. В начале идёт функция Enumeration. У неё есть необязательные параметры Constants (значение самой первой константы) и Step (шаг для автоматического задания значений). Далее идёт список констант (без значений, каждая константа на следующей строке). Затем следует слово EndEnumeration. Затем идёт код программы. Вот пример:
Enumeration
#Mywindow1
#Button1
#File

EndEnumeration
IfOpenWindow(#Mywindow1,0,0,100,100,"my window")
ButtonGadget(#Button1,5,5,30,30,"button")
IfOpenFile(#File,"C:/Users/User/Desktop/Myfile.txt")
EndIf
EndIf
End


Комментарии
Комментарии - это поясняющий текст для блоков кода. Пример использования комментариев:
Enumeration;Открываем список констант
#Mywindow1
#Button1
#File

EndEnumeration;Закрываем список констант
If OpenWindow(#Mywindow1,0,0,100,100,"my window");Открываем окно
ButtonGadget(#Button1,5,5,30,30,"button");Создаём кнопку
If OpenFile(#File,"C:/Users/User/Desktop/Myfile.txt");Открываем файл
EndIf
EndIf
End

Операторы
Операторы – это ключевые слова или символы, которые позволяют выполнять те или иные операции. Операторов существует несколько видов. Рассмотрим их все.

Арифметические операторы
Арифметические операторы используются для операций с числами и строками. Приведём таблицу арифметических операторов PureBasic.

Арифметические операторы
 Оператор Описание
 = Присваивание переменной значения.
 + Сложение чисел и строк
 - Вычитание чисел
* Умножение чисел
 / Деление чисел
 % Остаток от деления


Теперь стоит поговорить о приоритете операторов. Приведём выражение:
age = 34 + 32*(23%2)/2-1
Порядок вычислений будет такой:
  1. Будет найден остаток от деления числа 23 на число 2
  2. Полученное значение будет умножено на 32
  3. Полученное число будет разделено на 2
  4. К результату прибавится число 34
  5. От полученного числа отнимется 1
  6. Полученное значение будет присвоено переменной age.
Условные операторы
Условные операторы выполняют проверку условия и, в зависимости от результата, выполняют определённый код.
В PureBasic есть два условных оператора. Рассмотрим их все.

Оператор If:EndIf
Данный оператор записывается так:

If <условие 1>
  <выполняемый блок кода 1>
ElseIf <условие 2>
  <выполняемый блок кода 2>
Else
  <выполняемый блок кода 3>
EndIf

Если «условие 1» справедливо, то выполняется «блок 1». Если «условие 1» ложно, то проверяются условия ElseIf. Если все условия ложны, выполняется «блок 3». Стоит заметить, что параметры ElseIf и Else являются необязательными. Кроме того, в этом операторе может быть любое количество параметров ElseIf.

Оператор Select:EndSelect
Данный оператор записывается так:

Select <переменная>
  Case <условие 1>
    <блок 1>
  Case <условие 2>
    <блок 2>
  Default
    <блок 3>
EndSelect

Если значение переменной равно условию 1, то выполняется «блок 1»; если справедливо условие 2, выполняется «блок 2». Если все условия ложны, выполняется блок Default.
Блок Default не обязателен. В данном операторе может быть любое количество блоков Case.

Операторы сравнения
В условных операторах используются специальные операторы сравнения. В PureBasic существуют следующие операторы сравнения:

Операторы сравнения
 Оператор Описание
 = Равно
 < Меньше
 > Больше
 <= Меньше или равно
 >= Больше или равно
 <> Не равно
 And Логическое "И"
 Or Логическое "Или"
 Xor Логическое исключающее "Или"
 Not Логическое отрицание

Ну а теперь приведём пример. Напишем программу, которая пишет, чётное ли число, введённое пользователем, положительное оно или отрицательное. Вот код с использованием оператора If…EndIf:

int$ = InputRequester("Информация о числе","Введите число","")
integer = Val(int$)
If integer%2 = 0
  integertype$ = "чётное число"
Else
  integertype$ = "нечётное число" 
EndIf
If integer < 0
  integertype$ + Chr(10) + "Отрицательное число"
Else
  integertype$ + Chr(10) + "Положительное число"
EndIf
MessageRequester("Информация о числе",integertype$,#MB_ICONINFORMATION)
End



Циклы

Циклы предназначены для повторяющихся действий. Например, нам нужно вывести в окне все чётные числа от 0 до 50. Обычным способом это было бы очень долго. Но с помощью циклов можно сильно упростить задачу:

text$ = ""
For a = 0 To 50 Step 2
  text$ = text$ + Str(a) + Chr(10)
Next
MessageRequester("Числа",text$,#MB_ICONINFORMATION)


Цикл For:Next

Цикл For…Next записывается так:

For <переменная> = <значение1> To <значение2> Step <шаг>
<код>
Next


Код будет выполняться, пока значение переменной не станет равным "значению 2". Step можно не писать, так как по умолчанию шаг равен одному.

Цикл While:Wend
Цикл While…Wend записывается так:

While <условие>
  <код>
Wend

Код будет выполняться, пока справедливо условие.

Цикл Repeat:Until
Цикл Repeat…Until записывается так:

Repeat
  <код>
Until <условие>

Код будет выполняться, пока условие ложно. Как только условие становится истинным, происходит выход из цикла.
Любой цикл можно прервать с помощью оператора Break или отправить на следующий виток с помощью оператора Continue.



Массивы
Массив – это матрица, состоящая из нескольких переменных. Массив создаётся следующим образом:

Dim <имя>.<тип данных> (<размер>)

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

<имя массива> (<индекс элемента>) = <значение>

И в этом случае нужно помнить, что индексация в массиве начинается с нуля. Поэтому, если нам нужно присвоить значение первому элементу массива, индекс элемента должен быть равен нулю.
Размер массива можно менять. Делается это так:

ReDim <имя массива> (<новый размер массива>)


Процедуры
Процедуры – это функции, которые мы можем сами создавать и использовать в последствии.

Procedure.<тип значения и аргументов> <имя> (<параметры>)

Использовать процедуру можно как и любую другую функцию, например так:

Procedure Summa (Arg1,Arg2)
  ProcedureReturn Arg1+Arg2
EndProcedure
m1.b=1
m2.b=5
m3.b=Summa(m1, m2)

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

Declare.b Summa(a1.b, a2.b)

Использование процедур существенно облегчает программирование, во многих случаях очень удобно сначала описать какой-либо набор действий в процедуре, а затем просто вызывать ее там, где необходимо.
Также надо знать, что в каждой процедуре используется "свой" набор переменных, то есть: name.s="nikita" внутри процедуры может иметь совсем другое значение, переменные, объявленные вне процедуры в ней "не видны" и наоборот.
Если Вы хотите, чтобы переменная была одинаково видна как в основной части программы, так и во всех процедурах, ее надо сделать глобальной, а для этого объявим ее не так как описано выше, но следующим образом:

Global name.s="nikita"

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

Static name.s="nikita"


Подпрограммы
Подпрограмма записывается так:

<имя метки>:
  <код>
Return

Вызов подпрограммы происходит следующим образом:

Gosub <имя метки>

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

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

Structure Person
Name.s
Yo.l
Num.l
EndStructure

Потом создаем объект, относящийся к этой структуре:

a.Person ;это также, как создать переменную типа Person

и этот объект, в данном случае, обладает тремя свойствами:

a\Name="Vasya"
a\Yo=39
a\Num=4207

Можно сделать массив объектов типа Person:

Dim a.Person(100)
a(1)\Name="Vasya"
a(1)\Yo=39
a(1)\Num=4207


Операторы With…EndWith - удобно использовать вместе со структурами.
Возьмем предпоследний пример и перепишем его следующим образом:

With a
\Name="Vasya" 
\Yo=39
\Num=4207
EndWith


Вот и закончился наш учебник по синтаксису языка программирования PureBasic. Я думаю, что вы поняли, насколько лёгок синтаксис у этого языка. Мы искренне надеемся, что наш учебник поможет вам в программировании.