FreeBASIC을 시작하면서 알아야 할
기본 문법을 정리해봤습니다.
freebasic 공식 온라인 문서를 참고합니다.
시작하기 전에 한가지 알아두면 좋은 것은
FreeBASIC은 QBasic 코드와 호환이 되지만
컴파일에서 -lang qb 옵션을 추가해야 합니다.
기본은 FreeBASIC 컴파일이니까 두 언어의
문법을 잘 구분할 필요가 있습니다.
(비슷하면서도 미세하게 달라서 헷갈릴 수 있다)
여러개의 BASIC을 학습하다가 생기는 일이니
FreeBASIC으로 베이식을 시작한 사람은
신경쓰지 않아도 좋습니다.
1. bas 파일
소스코드가 들어간 파일의 확장자는 bas 입니다.
확장자가 QBasic 의 소스파일과
같으니까 혼동에 주의합니다.
2. bi 파일
bi 는 헤더파일의 확장자입니다.
bas 파일에서 #include 해서 사용합니다.
헤더파일은 C언의의 h 헤더파일처럼 전처리되며
함수 프로토타입, 상수 등이 선언되어 있습니다.
헤더파일을 include 하다 보면 중복해서
전처리하는 경우가 발생하는데 그럴 때
#include once 구문으로 한번만
include 하도록 체크할 수 있습니다.
혹은 ifndef(심볼이 정의되지 않았다면)를
사용할 수도 있습니다.
(#ifndef 는 C언어의 전처리 지시자와 같다)
#include once "file.bi"
#ifndef __HEADER_BI__
#define __HEADER_BI__ 10
#endif
3. C Runtime
C의 Runtime 헤더를 include 해서
C 라이브러리 함수를 사용할 수 있습니다.
crt는 C Runtime 의 약자입니다.
crt의 특정 헤더파일을 포함하려면
"crt/stdio.bi" 처럼 사용합니다.
FreeBASIC 컴파일러의 inc 폴더안에
crt 폴더가 있고 또 그안에 여러개의
헤더파일이 있습니다. C라이브러리와
이름이 같으니 C를 사용해봤다면
찾는데 어렵지 않을겁니다.
#include once "crt.bi"
printf(!"Hello World! FreeBASIC\n")
printf(!"value : %d\n", 35)
puts(!"Hello Again\n")
FreeBASIC에서 외부 라이브러리의
인덱스를 제공합니다. GUI, 그래픽스,
오디오, 네트워크 등 다양하니까 참고합니다.
각 라이브러리를 사용하기 위해서는
라이브러리 설치(빌드)와 런타임과 DLL 등
프로그램 환경 세팅이 되어 있어야 합니다.
https://www.freebasic.net/wiki/ExtLibTOC
Dim 키워드는 변수를 선언하고 데이터 타입을
명시하는데 사용합니다. Dim 의 원뜻은
Dimension (차원)이었다는데 그 의미는
히스토리가 있어서 그렇게 된 거고
Dim 은 변수 선언이다 - 라고 알면 됩니다.
[예제 - Dim]
Dim을 사용하여 문자열 (String)과
정수형(Integer)를 변수를 선언합니다.
Dim hello As String
hello = "Hello World!"
Print hello
Sleep
GetKey
Dim a As Integer
a = 20
Print a
Print 는 콘솔 표준출력이고
Input 은 콘솔 표준입력입니다.
Print 는 스크린에 문자를 출력하고
Input 은 키보드로부터 문자를 받습니다.
[예제 - Print, Input]
Dim yourName As String
Input "Enter your name: ", yourName
Print "Hello! "; yourName
Input 함수는 메시지를 출력한 후
String 변수에 입력을 받고 Print 함수는
; 다음에 오는 문자열을 연속으로 출력합니다.
For Next 루프입니다. 예제는 인덱스를
1부터 10까지 10개의 숫자를 더해봅니다.
[예제 - For Next]
Dim As Integer index, sum
sum = 0
For index=1 To 10
sum = sum + index
Next
Print "Sum : "; sum
베이식의 if 분기 문법입니다.
If Then 사이에 표현식으로 조건을 검사합니다.
참이면 실행 거짓이면 실행하지 않습니다.
[예제]
Dim var1 As Integer
Input "Enter a Integer Number: ", var1
If var1 > 0 Then
Print "positive number"
ElseIf var1 < 0 Then
Print "negative number"
Else
Print "zero"
End If
Do Loop 반복문은 C언어의
do while 문하고 닮았습니다.
루프 탈출조건은 내부에 If문으로 구현합니다.
If Then Exit Do 구문을 사용합니다.
If 안의 표현식이 = 인 점에 주의합니다.
C언어 등 다른 고급언어(high level language)에서
== (같다) = (할당)으로 사용하지만
여기서는 If Then 안의 = 는 같다입니다.
[예제]
숫자를 받아서 더하다 0을 입력하면 종료합니다.
Dim var1 As Integer
Dim sum As Integer
Do
Input "Add a Number:[0 to exit] ", var1
If var1 = 0 Then Exit Do
sum = sum + var1
Print "Sum : "; sum
Loop
Print "Program Closed..."