630 likes | 1.39k Views
Программирование в среде Gambas. Нужно взять только идею и воплотить ее в жизнь. (ГВИ). Глезденев В.И. – учитель информатики высшей квалификационной категории. Запускаем Gambas и выбираем «Новый проект». «Консольное приложение».
E N D
Программирование в среде Gambas. Нужно взять только идею и воплотить ее в жизнь. (ГВИ) Глезденев В.И. – учитель информатики высшей квалификационной категории
Указываем, где будет располагаться наш проект
Указываем имя программы, заголовок и нажимаем на «ОК»
Консольный режим Gambas полностью соответствует модульному режиму в VB
Набираем программу и нажимаем F5, как это обычно в Basic_е
Результат выводится в специальное «консольное окно»
Типы переменных в Gambas Dim [список переменных]As [тип]
Математические функции в Gambas [переменная] = [функция][параметры]
Использование функции Rnd • Rnd([Min],[Max]) • Вычисляет псевдо-случайное число с плавающей точкой, используя алгоритм Lehmer. • Если параметры не заданы, возвращает псевдо-случайное число в интервале [ 0 , 1 ]. • Если один из параметров задан, возвращает псевдо-случайное число в интервале [ 0 , Min ]. • -Если оба параметра заданы, возвращает псевдо-случайное числов интервале • [ Min , Max ].
Использование функции Rnd ' между 0 и 1PRINT Rnd --> 0.019539254718 ' между 0 и 2PRINT Rnd(2) --> 0.040205506608 ' между Pi и Pi*2PRINT Rnd(Pi, Pi(2)) --> 3.204108046818 ' илиPRINT Rnd(Pi, Pi*2) --> 3.464108046818 STATIC PUBLIC SUB Main()DIM Dice AS IntegerRandomizeDice = Int(Rnd(1,7))PRINT "Случайное число между 1 и 6 =" & diceEND
Функции преобразования Asc Code = Asc ( String [ , Position ] ) Возвращает ASCII код символа в позиции Position строки. Если Position не задано, возвращается ASCII код первого символа. Будьте внимательны ! Gambas использует UTF-8 кодировку внутренне, так что код символа больше, чем 128 не имеет значения, это используется в кодировках типа ISO8859-1. Пример:PRINT Asc("Gambas")-->71PRINT Asc("Gambas", 3)-->109
Функции преобразования Chr$ Character = Chr$ ( Code )Возвращает символ, чей ASCII код - это Code. Пример:PRINT Chr$(65) --> APUBLIC SUB Button1_Click()DIM X AS IntegerFOR X = 32 TO 127PRINT Chr$(X);NEXTEND Замечание: В Gambas имеют смысл только 128 первых символов, так что данный пример неслучаен.
Функции преобразования Val Expression=Val(String)Конвертирует строку в булево значение, число или дату, согласно содержимому строки.Если строка - дата и время (с даты и времени разделителями), тогда возвращается дата и время.Если строка число с плавающей точкой, тогда возвращается число с плавающей точкой.Если строка - целое число, тогда возвращается это целое число.Если строка - это TRUE или FALSE , тогда возвращается соответствующее булево значение.В противном случае возвращается NULL. Пример: PRINT Val("09/06/72 01:00") ---> 09/06/72 01:00:00PRINT Val("3.1415") ---> 3.1415PRINT Val("-25") ---> -25PRINT Val("True") ---> True
Функции преобразования Str$ String = Str$ ( Expression )Конвертирует выражение в представление выводимой строки. Это точно противоположно Val() .Текущая локализация используется для конвертации чисел и дат. Пример: PRINT Str$(10)+Str&(-10) -->10-10 ' Print on standard output or in a messagePUBLIC CONST ON_STDOUT AS Integer = 1PUBLIC CONST ON_MESSAGE AS Integer = 2SUB PrintOn(Where AS Integer, What AS Variant)IF Where = ON_STDOUT THEN PRINT WhatELSEIF Where = ON_MESSAGE THEN Message(Str$(What))END IFEND
Функции преобразования Hex$ String=Hex$(Number[,Digits])Шестнадцатеричное представление десятичного числа. Digits - количество цифр в шестнадцатеричном представлении. Пример: PRINT Hex$(1972) --> 7B4PRINT Hex$(1972, 8) --> 000007B4 Bin$ String=Bin$(Number[,Digits])Двоичное представление десятичного числа. Digits - количество цифр в двоичном представлении. Пример: PRINT Bin$(77) -->1001101PRINT Bin$(77, 16) -->0000000001001101
Краткая формаусловного оператора: Запись в одну строку, если нужно выполнить одно действие по условию:IF <условие> THEN <действие> Запись в одну строку, если нужно выполнить несколько действие по условию:IF <условие> THEN <действие_1>:<действие_2> Запись, если действий много и их желательно записать каждое в отдельной строке: IF <условие> THEN<действие_1><действие_2>…<действие_N>END IF
Условием может выступать любая арифметическая операция сравнения: > - больше; < - меньше; = - равно; >= - больше или равно; <= - меньше или равно; <> - неравно; Графическое представление:
Полная форма условного оператора: Запись в одну строку, если нужно выполнить одно из двух действийIF <условие> THEN <дейст_1> ELSE <дейст_2>Запись, если действий много:IF <условие> THEN<действие_1_1>…<действие_1_N>ELSE<действие_2_1>…<действие_2_N>END IF Графическое представление :
1 0 Использование логических функций NOTResult = NOT ExpressionВычисляет логическое not от выражения, т.е. обратное значение логического выражения. Если Expression=TRUE, то функция NOT выдает False и наоборот. Пример:PRINT NOT TRUE --> FalsePRINT NOT FALSE --> TruePRINT NOT 11 --> -12PRINT NOT CByte(11) --> 244PRINT NOT "Gambas" --> FalsePRINT NOT "" --> True
1 1 1 Использование логических функцийANDResult = Expression1 AND Expression2Вычисляет логическое and двух булевых выражений, или численное and двух целых чисел.Пример:PRINT TRUE AND FALSE --> FalsePRINT TRUE AND TRUE --> TruePRINT 7 AND 11 --> 3
Использование логических функций ORResult = Expression1 OR Expression2Вычисляет логическое or двух выражений.Пример:PRINT TRUE OR FALSE --> TruePRINT FALSE OR FALSE --> FalsePRINT 7 OR 11 --> 15 XORResult = Expression XOR ExpressionВычисляет логическое exclusive or двух выражений. ПримерыPRINT TRUE XOR FALSE -->TruePRINT TRUE XOR TRUE -->FalsePRINT 7 XOR 11 -->12 1 1 0
Потоковое вычислениефункции IF: Value = If ( Boolean , True value [ , False value ] ) Вычисляется Boolean выражение и возвращается True value , если выражение истнно, или False value , если выражение ложно. Если False value не задано, ему присваивается NULL .Пример: X = 7 PRINT If((X MOD 2) = 0, "Pair", "Impair") -->Impair X=X+1 PRINT If((X MOD 2) = 1, "Impair", 1 / 0) -->** Division by zero **
Оператор выбора Select Case SELECT Psel [ CASE Zsel_a1 [ , Zsel_a2 ... ]действие_1 ] [ CASE Zsel_b1 [ , Zsel_b2 ... ] действие_2]… END SELECT Выбирает выражение для сравнения и выполняет код, заключенный в соответствующий совпадению с CASE заявлением.
Оператор выбора Select Case с альтернативойSELECT Psel [ CASE Zsel_a1 [ , Zsel_a2 ... ]действие_1] [ CASE Zsel_b1 [ , Zsel_b2 ... ] действие_2]… [ ( CASE ELSE | DEFAULT )действие_N+1] END SELECT Выбирает выражение для сравнения и выполняет код, заключенный в соответствующий совпадению с CASE заявлением. Если нет совпадений с CASE заявлением, выполняется DEFAULT или CASE ELSE заявление.
Оператор цикла FOR FOR i=1 TO 20 STEP 0.5 (заголовок)команды цикла (тело цикла)NEXT i (конец цикла) i - переменная цикла, которая будет изменять свое значение по мере выполнения цикла от начального значения (нз=1) до конечного значения (кз=20) с шагом 0.5 (шп=0.5).Если шаг изменения переменной цикла равен 1, то он не указывается.Графическое представление цикла FOR:
PUBLIC SUB Form_Open()DIM x,w,a,b,c,d,e,f AS IntegerFOR x = 1 TO 1000w = Int(Rnd(6) + 1)SELECT CASE wCASE 1 a = a + 1CASE 2 b = b + 1CASE 3 c = c + 1CASE 4 d = d + 1CASE 5e = e + 1CASE 6f = f + 1END SELECTNEXT x PRINT a, b, c, d, e, fEND Пример:Смоделировать случайную функцию игральной кости, Так что, т.е. нужно задать повторение случайной функции тысячу раз, подсчитывая сколько выпадений 1, 2, 3, 4, 5 или 6 было. Замечание:Обратите внимание, что Select Case может выполнить не более одной из содержащихся в ней последовательностей конструкций. После того как одно из условий оказалось равно True, и была выполнена соответствующая последовательность конструкций, Select Case завершит свою работу. Остальные условия проверяться не будут.
Оператор цикла While Цикл выполнения по условию, т.е. цикл повторяется до тех пор, пока действительно условие, как только условие становится ложным, так цикл завершает выполнение команд, находящихся в теле цикла: WHILE условие[тело цикла] WEND Если условие ложно, цикл никогда не выполняется совсем. Цикл WHILE ... WEND эквивалентен циклу DO WHILE ... LOOP.
Использование цикла DOБесконечный цикл DOтело циклаLOOPЕсли задано WHILE, цикл завершается, когда условие (логическое выражение) становится ложно (false). Если условие ложно в начале цикла, цикл не выполняется совсем.DO [WHILE] [условие]тело циклаLOOP
Цикл Repeat ... Until Repeat тело циклаUntil условие Цикл повторяется до тех пор, пока условие не станет истинным. Заметьте, что цикл repeat (повторять) всегда выполняется хотя бы раз, даже если значение UNTIL инициализируется, как ложное – true (условие истинно). Пример:PUBLIC SUB Form_Open()DIM i AS Integeri=11 REPEAT Inc(i)PRINT i;UNTIL i > 10END
Использование функций работы со строкойLenLength = Len(String)Возвращает длину строки. Примеры:PRINT Len("Gambas") --> 6PRINT Len("") --> 0Left$Result = Left$(String [,Length])Возвращает Length первых символов строки.Если Length не задана, возвращается первый символ строки.Если Length отрицательна, возвращается вся строка за исключением (- Length) последних символов. Примеры:PRINT Left$("Gambas", 4) --> GambPRINT Left$("Gambas") --> GPRINT Left$("Gambas", -1) --> Gamba
Использование функций работы со строкой Right$ Result = Right$(String[,Length])Возвращает Length последних символов строки.Если Length не задано, возвращаются последний символ строки.Если Length отрицательно, возвращается вся строка, исключая (- Length ) первых символов.Примеры: PRINT Right$("Gambas", 4) --> mbasPRINT Right$("Gambas") --> sPRINT Right$("Gambas", -1) --> ambas
Использование функций работы со строкой Mid$ Result=Mid$(String,Start[,Length]) Возвращает подстроку, содержащую Length символов с позиции Start.Если Length не задано, возвращается все с позиции Start.Если Length отрицательно, возвращается все с позиции Start, исключая (- Length ) последних символов. Примеры: PRINT Mid$("Gambas", 3, 2) --> mbPRINT Mid$("Gambas", 4) --> basPRINT Mid$("Gambas", 2, -1) --> amba
Использование функций работы со строкой InStr Position=InStr(String,Substring[,Start]) Возвращает позицию первого обнаружения подстроки Substring в String.Если Start задано, поиск начинается с позиции Start.Если подстрока не находится, InStr() возвращает ноль. Примеры: PRINT Instr("Gambas is basic", "bas") --> 4PRINT Instr("Gambas is basic", "bas", 5) --> 11PRINT Instr("Gambas is basic", "not") --> 0
Использование функций работы со строкой RInStr Position=RInStr(String,Substring[,Start]) Возвращает позицию последнего обнаружения Substring в String. Если Start задано, поиск останавливается у позиции Start.Если подстрока не находится, RInStr() возвращает ноль. Примеры: PRINT RInStr("Gambas is basic", "bas") --> 11PRINT RInStr("Gambas is basic", "not") --> 0
Использование функций работы со строкой Replace$ Result = Replace$ ( String , Pattern , ReplaceString )Замещает каждое обнаружение строки Pattern в строке String строкой ReplaceString , и возвращает результат.Если String - это нуль, тогда возвращается нулевая строка.Если Pattern - это нуль, тогда возвращается строка String.Примеры:PRINT Replace$("Gambas is basic", "bas", "BAS") --> GamBAS is BASicPRINT Replace$("Gambas is basic", "a", "") --> Gmbs is bsicPRINT Replace$("Gambas is basic", " ", "--") --> Gambas--is--basic
Массивы.Массив – это ряд переменных, объединенных одним именем. Каждая переменная в данном ряду имеет свой порядковый номер и значение. Переменную массива называют элементом массива. Все элементы массива – однотипны. Массив с именем А можно изобразить следующей таблицей: Для определения массива необходимо использовать команду:Dim A[20]т.е. определен массив A в 20 элементов.
Arrayarray1 = Array ( Expression , ... )Создает массив и возвращает его. Тип массива - это тип первого выражения. Другое выражение автоматически конвертируется.Вы можете использовать синтаксис квадратных скобок, как альтернативу Array() подпрограмме. Пример:a = Array (“000”,”010”,”020”,”030”) PRINT a(2)-->020
Использование графических методов.С помощью методов графики можно рисовать графические примитивы: линии, прямоугольники, многоугольники и эллипсы на поверхности формы или в области для рисования, а также выводить текст в нужном месте.DRAW.BEGIN(DRAWAREA1)К объекту DRAWAREA1 применить метод НАЧАТЬ РИСОВАНИЕ.Параметром может выступить и форма, например: DRAW.BEGIN(Form1)DRAW.LINE (X1,Y1,X2,Y2)Рисовать линию(отрезок) от (x1,y1) до (x2,y2).
Использование графических методов.DRAW.RECT(X,Y, ширина, высота) Нарисовать прямоугольник. Левый верхний угол (X,Y). Ширина и высота заданы. DRAW.ELLIPSE(X,Y, ширина, высота, начало дуги, длина дуги) Нарисовать эллипс. Первые 4 параметра – это параметры описанного прямоугольника. Два последних – параметры дуги в градусах, задаются если нужна дуга, а не целый эллипс.
DRAW.POLYLINE(ОБЪЕКТ МАССИВ ТОЧЕК)Нарисовать ломаную по заданным точкам. До этой команды нужно определить объект и присвоить значения координатам точек.DRAW.POLYGON(ОБЪЕКТ МАССИВ ТОЧЕК)Нарисовать многоугольник по заданным точкам.DRAW.PICTURE(ПУТЬ К ФАЙЛУ)Нарисовать картинку из файла.DRAW.TEXT(“Hello”,100,120)Вывести текст на картинке в заданной точке.DRAW.END()Применить метод окончить рисование.