約 4,283,737 件
https://w.atwiki.jp/abwiki/pages/382.html
/***********************************************************change.c -- 小銭の払い方***********************************************************/Function change(n As Long, k As Long) As Long /* 再帰版 */Dim s As Longchange = 0If n 0 Then Exit Functions = 1 + n / 5 + change(n - 10, 10)If k = 50 Then s = s + change(n - 50, 50)If k = 100 Then s = s + change(n - 100, 100)change = sEnd FunctionFunction change1(n As Long) As Long /* 非再帰版 */Dim i As Long, j As Long, s As Long, t As Long, u As Longs = 0i = n / 100 While i = 0 i=i-1 /* 100円玉 */t = n - 100 * ij = t / 50 While j = 0 j=j-1 /* 50円玉 */u = t - 50 * js = s + ((1 + u / 5 - u / 10) * (1 + u / 10))WendWendchange1 = sEnd Function'main#N88BASICDim i As LongPrint "お金の払い方"Print " 金額 再帰版 非再帰版"For i=0 To 500 Step 5Print i, change(i, i), change1(i)Next
https://w.atwiki.jp/abwiki/pages/399.html
/***********************************************************contfrac.c -- 連分数***********************************************************/#N88BASICSub contfrac(x As Double, n As Long, b As *Long)Dim i As Longb[0] = Fix(x)For i = 1 To nx = 1 / (x - b[i - 1])b[i] = Fix(x)NextEnd SubFunction gcd(x As Long, y As Long) As LongDim t As LongWhile (y 0) t = x Mod y x = y y = tWendgcd = xEnd FunctionSub reduce_cf(n As Long, b As *Long)Dim i As LongDim f As Long, g As Long, temp As Long, d As Longf = b[n] g = 1For i = n - 1 To 0 Step -1temp = b[i] * f + g g = f f = tempd = gcd(f, g) f = f / d g = g / dNextPrint f ;"/"; g ;"="; f / gEnd SubConst N = 17Dim i As LongDim b[N] As Long/* e = 2.718...の連分数展開 */contfrac(2.71828182845904524, N, b)Print "e = [";For i = 0 To N Print b[i];",";NextPrint "...]"/* ふつうの分数と実数に直す */reduce_cf(N, b)
https://w.atwiki.jp/abwiki/pages/316.html
関数(かんすう)とは、functionの言い換え。 数学の関数とは微妙に違う。 たくさんの命令にわかりやすい名前をつけたもの。 関数を使うことでプログラムの見通しを良くしたり、再利用が可能になる。 昔のBASICでDEF FNなる関数定義の命令があったけど 現在に関数はどちらかと言えばGoSub~Returnに近い挙動。
https://w.atwiki.jp/abwiki/pages/258.html
/***********************************************************strmatch.c -- 文字列照合***********************************************************/Function position(text As *Byte, pattern As *Byte) As LongDim i As Long, j As Long, k As Long, c As Longc = pattern[0] i = 0while (text[i] 0) if (text[i] = c) Thenk = i+1 j = 1while (text[k] = pattern[j]) And (pattern[j] 0)k++ j++Wendif (pattern[j] = 0) Thenposition= k - j /* 見つかった */Exit FunctionEnd IfEnd Ifi++Wendposition = -1 /* 見つからなかった */End Function#N88BASICDim i As LongDim text = "私の名前は平井公彦" As *ByteDim pattern[3] = ["私の", "名前は", "平井公彦", "阿部高和"] As *Byte Dim out[100] As ByteFor i=0 To 3wsprintf(out, Ex"position(\q%s\q, \q%s\q) = %d\n", text, pattern[i], position(text, pattern[i]))Print MakeStr(out)Next
https://w.atwiki.jp/tryo/pages/28.html
2007/11/28 OpenOffice.orgの開発ガイド 1363%5B1%5D.gif 2007/11/26 Unoなどについての参考サイト 2007/9/27 Basicの参考サイト 2007/9/26 RCalcが動かない! 2007/11/28 OpenOffice.orgの開発ガイド 1363%5B1%5D.gif Basicの関数のメソッドはまったく意味がわからない!!!!!(><#)ので、デモファイルを解読しようもできなくて・・・ 使えそうな資料(サイト): StarSuite 8 Basicプログラミングガイド第 4 章 StarSuite API について OpenOffice.org Developer s Guide←もうエイゴは勘弁してほしかったのに(T。T)がんばってみます>< 2007/11/26 Unoなどについての参考サイト UNOで広がるOpenOffice.orgの世界.pdf(著者は中本 崇志さん) OpenOffice.orgにアドオンを登録.pdf(著者は鎌滝 雅久さん) OpenOffice.orgの使い方 2007/9/27 Basicの参考サイト Basicプログラミング関係 StarSuite 8 Basic プログラミングガイド(HP) StarSuite 8 Basic プログラミングガイド(PDF) OpenOffice.org 初めての人へ OpenOffice.org ガイド オープンガイドブック OpenOffice.org2.0公開版 ver0.0.1のダウンロード(ZIP形式, 9.3MB) 簡単な使い方マニュアル(窓の杜にとぶ) 2007/9/26 RCalcが動かない! まずは,OooとRをつないで計算するサンプルファイル「RDemoDens」を動かせたい!><;なぜうまく動かないのでしょう~~ 「Cannot load RProxy」というエラーメッセージが出る! 可能性その一:(R(D)COM/RCOM解説)より 複数のRのバージョンがインストールされているとRDCOMがうまく動かない カレントのバージョン指定をしないとRDCOMは上手く動かないことがある。~ (1) bin内のRSetReg.exeを実行すると、そのバージョンがカレントになる。~ (2) http //code.google.com/p/batchfiles/からRversions.htaをダウンロードし、実行させると任意のカレントバージョンの設定ができる。~ 可能性その二:(Index for R(D)COM Sever)より R プロキシライブラリがロードされていない。この原因は以下のようなものである: * 1. 環境変数 %R_HOME% が、 R がインストールされていないディレクトリを示しており、 * 2.R のインストールに対応するレジストリキーが R のフォルダを指しておらず、 * 3.rproxy.dll 及び R.dll が %PATH% 内に見つからない。 R を CRAN からバイナリをダウンロードし、インストールした場合には、それが何か悪かったのかもしれない。セットアッププログラムを用いて再インストールを試みてほしい。また、何が問題なのかを発見するために "dbgview"(see section "Resources" セクションを参照のこと)をダウンロードすること。 自分自身で R をコンパイルしたのであれば、 %R_HOME%\bin\rproxy.dll を確認しレジストリキー HKEY_LOCAL_MACHINE\Software\R-core\R\InstallPath が R がインストールされているフォルダを指しているかを確認すること。R 2.2.0 からはレジストリキーは HKEY_CURRENT_USER\Software\R-core\R\InstallPath も用いている。R (D)COM サーバはまず HKEY_CURRENT_USER 下を探す。 レジストリキーが失われていているか間違っている場合は、R に関する情報をレジストリに書き込むボックスがチェックされていることを忘れずに再インストールすること。または RSetReg.exe をコマンドウィンドウで呼び出すこと。 調べてみると: 可能性その一に対して:(1)も(2)も試してみたが効果が見られない>< 可能性その二に対して: * 1.問題はなかった * 2.レジストリキーと言う単語から分からない><また調べてみるが・・ * 3.これも問題ないと思うけど・・・ 何ででしょう・・・(T_T) 名前 コメント ファイルメニュー -> パッケージ -> パッケージのインストールから、rcomとRExcelInstallerをインストールしてはいかがでしょうか? -- とおりすがりのもの (2009-01-09 11 00 23) HTMLの禁止文字をつかってしましました。 -- 名無しさん (2009-01-09 10 58 54) Rのバージョンにもよりますが、ファイルメニューの quotパッケージ quot- quotパッケージのインストール quotから、rcomとRExcelInstallerをインストールしてはいかがでしょうか? -- とおりすがりのもの (2008-12-25 16 52 00)
https://w.atwiki.jp/abwiki/pages/182.html
#N88BASICDeclare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _ ( lpApplicationName As BytePtr, _ lpKeyName As BytePtr, _ nDefault As Long, _ lpFileName As BytePtr) As LongDeclare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _ ( lpApplicationName As BytePtr, _ lpKeyName As VoidPtr, _ lpDefault As BytePtr, _ lpReturnedString As BytePtr, _ nSize As Long, _ lpFileName As BytePtr) As LongDeclare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _ ( lpApplicationName As BytePtr, _ lpKeyName As VoidPtr, _ lpString As VoidPtr, _ lpFileName As BytePtr) As Long'ファイル名だけだとWINDOUSフォルダにつくってしまうConst IniFile = ".\平井公彦.ini"Dim s[20] As ByteDim d As LongWritePrivateProfileString("kuki-yuuki-aki", "Kimihiko", "( ̄ー+ ̄)キラリ", IniFile)'Iniファイルは文字列にしないとカキコできない!d=090-7777-7777wsprintf(s, "%d", d)WritePrivateProfileString("kuki-yuuki-aki", "Kimihiko2", s, IniFile)GetPrivateProfileString("kuki-yuuki-aki", "Kimihiko", "?",s,20,IniFile)Print MakeStr(s)d = GetPrivateProfileInt("kuki-yuuki-aki", "Kimihiko2", 64,IniFile)Print d
https://w.atwiki.jp/abwiki/pages/400.html
/***********************************************************eulerian.c -- Euler (オイラー) の数***********************************************************/Function Eulerian(n As Long,k As Long) As LongIf (k = 0) Then Eulerian = 1 Exit FunctionIf (k 0 Or k = n) Then Eulerian = 0 Exit FunctionEulerian = (k + 1) * Eulerian(n - 1, k) + (n - k) * Eulerian(n - 1, k - 1)End Function#N88BASICDim n As Long,k As LongPrint " k";For k=0 To 8 Print k;" "; NextPrint ""Print "n ";For k=0 To 8 Print "------"; NextPrint ""For n=0 To 8Print n;"| ";For k=0 To 8 Print Eulerian(n, k);" "; NextPrint ""Next
https://w.atwiki.jp/abwiki/pages/374.html
N88BASICでグラフィック命令を覚えたら 最初に作るのが花火 '綺麗な花火#N88BASICCONST PI = 3.1416Const BASE = 380Dim x As Long, y As LongDim yy As Long, r As LongDim c As Long, k As DoubleDim p As LongDim ax As Long, ay As LongRandomizeCls 3Line(0,BASE)-(640,BASE)*LLLx = 70+Rnd()*500yy = 50+Rnd()*50'For y=BASE-2 To yy Step -1Circle(x,y),2,7Sleep(5)Circle(x,y),2,0Nextp = Rnd() * 4Select Case pCase 0For r=10 To 50 Step 2Circle(x,y),r,Rnd()*7+1Sleep(40)Circle(x,y),r,0NextCase 1For k=0 To PI*2 Step PI/15ax = x + 10*k * Cos(k)ay = y - 10*k * Sin(k)Line(x,y)-(ax,ay),Rnd()*7+1Sleep(40)Line(x,y)-(ax,ay),0NextCase 2For k=0 To PI*2 Step PI/15ax = x + 10*k * Cos(k)ay = y + 10*k * Sin(k)Line(x,y)-(ax,ay),Rnd()*7+1Sleep(40)Line(x,y)-(ax,ay),0NextCase 3For k=0 To 100ax = x + 100 * Rnd() -50ay = y + 100 * Rnd() -50Circle(ax,ay),2,Rnd()*7+1Sleep(10)Circle(ax,ay),2,0NextEnd SelectGoto *LLL
https://w.atwiki.jp/abwiki/pages/23.html
クラスは、次のように作る。 Class C private A As Long public Sub C() A=1 End Sub Sub ~C() End Sub Function Member1() As Long Member1=A End Functoin End Class ここでクラス名がCなら、コンストラクタ(生成時に1度だけ呼ばれる関数)の名前はC、デストラクタ(開放時に1度だけ呼ばれる関数)の名前は~Cとなる。 public と書いてあるが、これはpublicアクセスの開始を宣言するもので、クラスの中からは勿論、クラスの外からも使うことが出来る事を意味する。 コンストラクタとデストラクタはこのpublicアクセスの中で定義する必要がある。 一方private と書いてあるが、これはprivateアクセスの開始を宣言するもので、このクラスの外からは一切参照できなくなる。 外から勝手に書き換えられたくない場合に用いる。 他にprotected と書くものがあり、これはprotectedアクセスの開始を宣言するもので、protectedアクセスの中の変数や関数は、このクラスとこのクラスの派生先のクラスで参照できる。ただしそれ以外の場所からは参照できない。 ちなみにClass開始時はprivateアクセスになるので、先頭に書く場合はprivate は省略できる。 使う時はこのクラスの型か、そのポインタ型等として宣言する。 Dim A As C Dim B As Long B = A.Member1() Dim A As *C Dim B As Long A = new C B = A- Member1() delete A 等と書ける。尚、ポインタでない型として宣言した場合、宣言した直後にコンストラクタが呼ばれる。 継承の例 #N88BASIC Class Idol Protected charisma As Long looks As Long Public Sub talk() Print "アイドル" End Sub End Class Class KAT_TUN Inherits Idol Public Sub talk() Print "田中聖" End Sub End Class Dim Kouki As KAT_TUN Kouki.talk()
https://w.atwiki.jp/abwiki/pages/273.html
ABでもちょっとくふうすれば簡単なダウンローダーがすぐにできる。 ここでは限定的な機能しか無いダウンローダを作る。 連番のファイル例えばhttp //○○001.mp4~http //○○999.mp4 こんなものを毎回右クリするのは地獄だ。 せっかくABがあるんだから、自動化してみようかな。 連番の部分を(*)と置き換えて桁数を入力すれば、内部で展開する。 Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA"(lpszCallerName As BytePtr,dwAccessType As Long,_ lpszProxyName As BytePtr,lpszProxyBypass As BytePtr,dwFlags As Long) As Long Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA"(hHttpRequest As Long,dwInfoLevel As Long,_ lpvBuffer As BytePtr,ByRef lpdwBufferLength As Long,ByRef lpdwIndex As Long) As Long Declare Function InternetCloseHandle Lib "wininet.dll"(hInternetHandle As Long) As Long Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (hInternetSession As Long,_ sUrl As BytePtr,sHeaders As Long,lHeadersLength As Long,lFlags As Long,lContext As Long) As Long Declare Function InternetReadFile Lib "wininet.dll" (hFile As Long, sBuffer As BytePtr,_ lNumBytesToRead As Long,lNumberOfBytesRead As Long) As Long Const HTTP_QUERY_CONTENT_TYPE=1 Const HTTP_QUERY_CONTENT_LENGTH=5 Const HTTP_QUERY_LAST_MODIFIED=11 /***********************************************************ダウンロード。***********************************************************/Sub Download(url As BytePtr, localfile As BytePtr) Dim hOpen As HANDLE, hUrl As HANDLE,hFile As HANDLE Dim buffer As BytePtr Dim Size As Long Dim a As Long Dim dwReadSize As DWord, dwWriteSize As DWord Dim TotalReadSize As DWord Print "接続待ち - ";MakeStr(url) Size = 33333 buffer=calloc(Size) hOpen=InternetOpen(0,0,0,0,0) hUrl=InternetOpenUrl(hOpen,url,0,0,0,0) HttpQueryInfo(url,HTTP_QUERY_CONTENT_LENGTH,buffer,Size,a) Print "ファイルサイズ - " ; MakeStr(buffer) hFile = CreateFile(localfile, GENERIC_WRITE, 0, ByVal NULL, CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0) If hFile = INVALID_HANDLE_VALUE Then Print "CreateFile失敗" Goto *goot End If Print "DL開始" Do InternetReadFile(hUrl, buffer, Size, VarPtr(dwReadSize)) WriteFile(hFile, buffer, dwReadSize,VarPtr(dwWriteSize), ByVal NULL) If dwReadSize dwWriteSize Then Print "書き込みエラー?" TotalReadSize += dwReadSize Print TotalReadSize;"Byte" Loop While (dwReadSize) Print "完了" *gootCloseHandle(hFile) InternetCloseHandle(hUrl) InternetCloseHandle(hOpen) free(buffer) End Sub/***********************************************************strmatch.c -- 文字列照合***********************************************************/Function position(text As *Byte, pattern As *Byte) As LongDim i As Long, j As Long, k As Long, c As Longc = pattern[0] i = 0while (text[i] 0) if (text[i] = c) Thenk = i+1 j = 1while (text[k] = pattern[j]) And (pattern[j] 0)k++ j++Wendif (pattern[j] = 0) Thenposition= k - j /* 見つかった */Exit FunctionEnd IfEnd Ifi++Wendposition = -1 /* 見つからなかった */End Function/* ワイルドカードの痴漢 (*)がワイルドカードとして機能。返り血: 痴漢成功ならTRUE、0以外、失敗なら0*/Declare Function sprintf CDECL Lib"msvcrt"(s As *Byte, ...) As LongConst WILD_II = "(*)"Function wildcard(m1 As *Byte, des As *Byte, keta As Long, value As Long) As LongDim p1 As *Byte, p2 As *ByteDim internal_buffer[428] As Bytelstrcpy(internal_buffer, m1)'1. ワイルドカードを見つけるp1 = position(internal_buffer, WILD_II)If p1 = -1 Then Exit Functionp2 = internal_buffer+p1+lstrlen(WILD_II)SetByte(internal_buffer+p1, 0)sprintf(des, "%s%0*d%s", internal_buffer, keta, value, p2)wildcard = 1End Function#N88BASICDim n As Long, min As Long, max As LongDim keta As LongDim base_url[428] As Byte, url[428] As ByteDim base_local[428] As Byte, local[428] As Bytelstrcpy(base_url, "http //www.google.cn/(*).jpg")lstrcpy(base_local, "downloadtest_(*).jpg")DoInput "桁数?"; ketaLoop While keta=0n =0min = 0max = 10^keta-1For n=min To maxwildcard(base_url, url, keta, n)wildcard(base_local, local, keta, n)Print MakeStr(url);"- "; MakeStr(local)'for check'Download(url, local)Next