Za one koji ne znaju FreeBASIC je open source kompajler za Windows, DOS i Linux. Sintaksa je vrlo slična QuickBASIC-u s time da je ovaj itekako unaprijeđen. Ima značajke objektno-orjentiranog programiranja kao što su metode, konstruktori, dinamičko alociranje memorije, klase...
FreeBASIC ima vlastitu grafičku biblioteku FBgfx sa kojom je jednostavno prikazivati osnovne grafičke funkcije.
Sve u svemu, jezik je vrlo jednostavan za korištenje, možda su ga neki već koristili. Preporučujem ga onima koji počinju programirati.
Neki primjeri:
Hello, world:
? "Hello, World!
Sleep
Grafika:
ScreenRes 640, 480
Line(0, 0)-(100, 100), 1, BF
? "Hello, World!"
Circle(10, 10), 20, 2
PSet(50, 15), 4
Sleep
Varijable:
Dim As Integer polje(15), i
For i=0 To 15
polje(i) = Int(Rnd(1)*10000)
Next
For i=0 To 15
? i & " = " & polje(i)
Next
Sleep
Klase:
Type ucenik
godina As Integer
prosjek As Single
razred As Integer
ime As String
prezime As String
godiste As Integer
End Type
Dim As ucenik pero
With pero
.godina = 17
.prosjek = 4.7
.razred = 3
.ime = "Pero"
.prezime = "Peric"
.godiste = 1994
End With
? "Ovo je ucenik " & pero.ime & " " & pero.prezime & " roden " & pero.godiste & ". godine, te ima " & pero.godina & " godina."
? pero.ime & " ide u " & pero.razred & ". razred."
? "Prosjek mu je " & pero.prosjek & "."
Sleep
WinAPI:
#Include Once "windows.bi"
Dim Shared As HINSTANCE hInst
hInst = GetModuleHandle(NULL)
Function WndProc(hWnd As HWND, msg As UINT, wParam As WPARAM, lParam As LPARAM) As LRESULT
Select Case msg
Case WM_CREATE
MessageBox(hWnd, !"Pozdrav BUG-u!\nKlikni OK za početak!", "Pozdravna poruka", MB_OK Or MB_ICONASTERISK)
Case WM_PAINT
Dim As PAINTSTRUCT ps
BeginPaint(hWnd, @ps)
SelectObject(ps.hdc, GetStockObject(DEFAULT_GUI_FONT))
DrawText(ps.hdc, @"Podrav BUG-u!", -1, @ps.rcPaint, DT_CENTER Or DT_VCENTER Or DT_SINGLELINE)
EndPaint(hWnd, @ps)
Case WM_DESTROY
PostQuitMessage(NULL)
End Select
Return DefWindowProc(hWnd, msg, wParam, lParam)
End Function
Dim As MSG uMsg
Dim As WNDCLASS wcls
Dim As HWND hWnd
With wcls
.style = CS_HREDRAW Or CS_VREDRAW
.lpfnWndProc = Cast(WNDPROC, @WndProc)
.hInstance = hInst
.hIcon = LoadIcon(NULL, IDI_EXCLAMATION)
.hCursor = LoadCursor(NULL, IDC_ARROW)
.hbrBackground = GetStockObject(WHITE_BRUSH)
.lpszMenuName = NULL
.lpszClassName = StrPtr("WindowClass")
End With
If RegisterClass(@wcls) = FALSE Then
MessageBox(NULL, "RegisterClass(@wcls) FAIL!", "Error!", MB_OK Or MB_ICONERROR)
End
EndIf
hWnd = CreateWindowEx(NULL, "WindowClass", "Pozdrav BUG", WS_OVERLAPPEDWINDOW Or WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL)
UpdateWindow(hWnd)
While GetMessage(@uMsg, NULL, NULL, NULL) <> FALSE
TranslateMessage(@uMsg)
DispatchMessage(@uMsg)
Wend
Download compilera: http://www.freebasic.net/get
I toplo preporučujem FbEdit kao IDE: http://sourceforge.net/projects/fbedit/
Slobodno postajte pitanja, odgovore, projekte, primjedbe itd...