2019년 12월 25일 수요일

[AI 엔진] db 쿼리 추가 및 테스트 [C,I,U,D]



원문: https://blog.naver.com/ihaneter/221749959682
--> 지금까지 진행된 결과는 위 사이트에 게시되어 있습니다.
--> 이 내용은 AI 구현을 위해 Script Language의 개발 과정입니다.

안녕하세요 오타쟁이 한이터 백승기 입니다.
이제 부터는 DB 엔진을 이용해서 쿼리 테스트를 수행하고자 합니다.
​
첫번째작업 테이블이 완료 되었습니다.
쿼리 툴은 디비버(DBeaver)를 사용합니다.
1. Create, Insert, Update, delete의 기능을 테스트합니다.
​
void bsk_main() {
@sqla_init;
@sql_connect,/AI_PROJECT/AIxbsk/sqlite_db/test1.db;
@sqla+CREATE TABLE contacts(;
@sqla+ id1 INTEGER PRIMARY KEY,;
@sqla+ fname TEXT NOT NULL,;
@sqla+ lname TEXT NOT NULL,;
@sqla+ email TEXT NOT NULL UNIQUE,;
@sqla+ phone TEXT NOT NULL UNIQUE);
@sqla_run; //Create 테이블
@sqla_table, contacts ; // 테이블명 지정
@sqla_vars , id1, fname,lname,email,phone ; // 테이블변수 항목
@sqla_insert , '1', 'fname1', 'ln1', '1@1.com', '111-1111' ; //Insert 1
@sqla_insert , '2', 'fname2', 'ln2', '1@2.com', '222-1111' ; //Insert 2
@sqla_insert, '3', 'fname3', 'ln3', '1@3.com', '333-1111' ; //Insert 3
@sqla_delete, id1='3' ; //Delete
@sqla_where, id1='2' and phone='222-1111'; //Where
@sqla_update, fname='fname222',lname='lname222' ; //Update
@sqla_close;
};
​
// 위와 같이 쿼리문을 스크립트에 기능을 추가하고 적용해 보왔습니다.
// 쓰는 형식이나 문장구조는 전부 작업상의 신속성에 목표를 두었으므로
// 기존 스타일이 무엇이든지 고려하지 않습니다.
​
// ==> 실행 후 생성된 결과를 이미지로 캡쳐 했습니다.
// ==> 다음과 같이 DB 필드가 추가되고 수정되고 삭제되었습니다.
// ==> 다음의 스크립트문과 데이터를 조고 받는 Interface 차례입니다.
// ==> 실행 로그 입니다.
------- comfile_list -----------
​
make_split_src_1 src_list count = 1
func_name[0]=void bsk_main()
[00][00] [@sqla_init]
[00][01] [@sql_connect,/AI_PROJECT/AIxbsk/sqlite_db/test1.db]
[00][02] [@sqla+CREATE TABLE contacts(]
[00][03] [@sqla+ id1 INTEGER PRIMARY KEY,]
[00][04] [@sqla+ fname TEXT NOT NULL,]
[00][05] [@sqla+ lname TEXT NOT NULL,]
[00][06] [@sqla+ email TEXT NOT NULL UNIQUE,]
[00][07] [@sqla+ phone TEXT NOT NULL UNIQUE][)]
[00][08] [@sqla_run]
[00][09] [@sqla_table, contacts]
[00][10] [@sqla_vars , id1, fname,lname,email,phone]
[00][11] [@sqla_insert , '1', 'fname1', 'ln1', '1@1.com', '111-1111']
[00][12] [@sqla_insert , '2', 'fname2', 'ln2', '1@2.com', '222-1111']
[00][13] [@sqla_insert, '3', 'fname3', 'ln3', '1@3.com', '333-1111']
[00][14] [@sqla_delete, id1='3']
[00][15] [@sqla_where, id1='2' and phone='222-1111']
[00][16] [@sqla_update, fname='fname222',lname='lname222']
[00][17] [@sqla_close]
​
------- comfile_var -----------
​
​
------- run bsk_main ----------
​
[hi][INIT][sqla] [init][hi] db open or create SUCCESS /AI_PROJECT/AIxbsk/sqlite_db/test1.db
[sqla] [CREATE TABLE contacts(][]
[sqla] [ id1 INTEGER PRIMARY KEY,][]
[sqla] [ fname TEXT NOT NULL,][]
[sqla] [ lname TEXT NOT NULL,][]
[sqla] [ email TEXT NOT NULL UNIQUE,][]
[sqla] [ phone TEXT NOT NULL UNIQUE][)]
[sqla] [run][hi][EXEC] db_tbl_exec=CREATE TABLE contacts( id1 INTEGER PRIMARY KEY, fname TEXT NOT NULL, lname TEXT NOT NULL, email TEXT NOT NULL UNIQUE, phone TEXT NOT NULL UNIQUE);
*** sql_sqla_table [ contacts][]
*** sql_sqla_vars [ id1, fname,lname,email,phone][]
*** sql_sqla_insert [INSERT INTO contacts( id1, fname,lname,email,phone) values ( '1', 'fname1', 'ln1', '1@1.com', '111-1111')]
*** sql_sqla_insert [INSERT INTO contacts( id1, fname,lname,email,phone) values ( '2', 'fname2', 'ln2', '1@2.com', '222-1111')]
*** sql_sqla_insert [INSERT INTO contacts( id1, fname,lname,email,phone) values ( '3', 'fname3', 'ln3', '1@3.com', '333-1111')]
*** sql_sqla_delete [DELETE from contacts where id1='3']
*** sql_sqla_where [ id1='2' and phone='222-1111']
*** sql_sqla_update [UPDATE contacts set fname='fname222',lname='lname222' where id1='2' and phone='222-1111']
[hi] db_close
[sqla] [close]
G:\AI_PROJECT\cvtList\cvtList\x64\Debug\BskSuperPSR.exe(828 프로세스)이(가) 0 코드로 인해 종료되었습니다.
디버깅이 중지될 때 콘솔을 자동으로 닫으려면 [도구]->[옵션]->[디버깅]->[디버깅이 중지되면 자동으로 콘솔 닫기]를 사용하도 록 설정합니다.
이 창을 닫으려면 아무 키나 누르세요.
​

2019년 12월 17일 화요일

[AI 엔진] float 실수 변수 추가 및 테스트



AI 프로그램기능은 이제 함수 와 및 실수 연산을 수행할수 있게 되었습니다.
지금까지 개발내용은 다음의 블로그에서 확인 가능합니다.
진정한 AI 의 엔진 개발을 목표로 하고 있으며 이프로그램 은 계속 리셋되어
2019.10 부터 새로 개발중입니다.
https://blog.naver.com/ihaneter/221740768914


안녕하세요 오타쟁이 한이터 백승기 입니다.
이번에는 sin,cos,tan 함수 기능을 추가했고
추가한 sin,cos,tan 함수를 테스트합니다.
​
원래 정수만 인식 되도록 만든 AI 엔진입니다.
하지만 이번에 float 변수를 추가 했고 테스트를 진행하고 있습니다.
다음은 소스 스크립트 입니다.
​
string demo_math = ""
"void bsk_main() {"
" print ' sin(1)=',@sin(1);"
" print ' cos(3)=',@cos(3);"
" print ' tan(5)=',@tan(5);"
" print ' asin(1)=',@asin(1);"
" print ' acos(0.1)=',@acos(0.1);"
" print ' atan(5)=',@atan(5);"
" print ' ';"
" print ' sin loop 1 to 9;"
" loopfor II=1,9,1;"
" print ' sin(',II,')=',@cos(II),' cos(',II,')=',@tan(II),' sin(',II,')=',@tan(II);"
" loopend II;"
"};";
​
다음은 소스 스크립트의 실행 결과 입니다.
사실 int 와 float 는 모두 내부에서 실수 연산을 수행하도록 변경 하였지만
프로그램 내부에서 실수와 정수가 구분되도록 하여야 하기때문에
int 와 float 를 구분하였습니다.
이것이 장차 어떻게 발전할지 기대됩니다.
​
------- comfile_list -----------
​
make_split_src_1 src_list count = 1
func_name[0]=void bsk_main()
[00][00] [print][' sin(1)='][,][@sin(1)]
[00][01] [print][' cos(3)='][,][@cos(3)]
[00][02] [print][' tan(5)='][,][@tan(5)]
[00][03] [print][' asin(1)='][,][@asin(1)]
[00][04] [print][' acos(0.1)='][,][@acos(0.1)]
[00][05] [print][' atan(5)='][,][@atan(5)]
[00][06] [print][' ']
[00][07] [print][' sin loop 1 to 9]
[00][08] [loopfor][II][=][1][,][9][,][1]
[00][09] [print][' sin('][,][II][,][')='][,][@cos(II)][,][' cos('][,][II][,][')='][,][@tan(II)][,][' sin('][,][II][,][')='][,][@tan(II)]
[00][10] [loopend][II]
------- comfile_var -----------
​
------- run bsk_main ----------
​
sin(1)= 0.841471
cos(3)= -0.989992
tan(5)= -3.380515
asin(1)= 1.570796
acos(0.1)= 1.470629
atan(5)= 1.373401
​
sin loop 1 to 9
sin( 1 )= 0.540302 cos( 1 )= 1.557408 sin( 1 )= 1.557408
sin( 2 )= -0.416147 cos( 2 )= -2.185040 sin( 2 )= -2.185040
sin( 3 )= -0.989992 cos( 3 )= -0.142547 sin( 3 )= -0.142547
sin( 4 )= -0.653644 cos( 4 )= 1.157821 sin( 4 )= 1.157821
sin( 5 )= 0.283662 cos( 5 )= -3.380515 sin( 5 )= -3.380515
sin( 6 )= 0.960170 cos( 6 )= -0.291006 sin( 6 )= -0.291006
sin( 7 )= 0.753902 cos( 7 )= 0.871448 sin( 7 )= 0.871448
sin( 8 )= -0.145500 cos( 8 )= -6.799711 sin( 8 )= -6.799711
sin( 9 )= -0.911130 cos( 9 )= -0.452316 sin( 9 )= -0.452316