プチコン3号&BIGまとめWiki

投稿プログラム :汎用ライブラリ(数学・文字列操作など)

2018年5月20日投稿 / 2018年5月20日更新 / 投稿者 : しゅうさん / タグ : 投稿プログラム 実用ツール ライブラリ

概要

様々な便利な機能を詰め込んだ、汎用ライブラリです。
数学、文字列操作、時間・日付関係などの関数が追加されます。おすすめは定積分日本語変換です。
本ページ、また、プログラム内に簡易リファレンスがありますので、ご確認ください。

  1. ’ ─────────────────────
  2. ’ こんな風に書くと、実行できます。
  3. ’ ─────────────────────
  4. LOAD ”PRG1:COM_LIB”,FALSE
  5. USE 1
  6. ’// ここに関数 //

公開キー

プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。

Ver 1.0.1

プチコン3号/BIG 公開キー
Q3A8XX8X

過去のバージョン

以下のファイルはサポート外です。
また、古いデータは削除されている可能性があります。
・Ver 1.0.0 DDN3X384

リファレンス

数学

RTD(数値)
入力された数値を、弧度法(rad)から度数法(deg)へ変換します。

DTR(数値)
入力された数値を、度数法(deg)から弧度法(rad)へ変換します。

DISCR(A,B,C)
2次方程式の判別式 D=b^2-4ac を解きます。
返り値が1……2つの実数解、返り値が0……1つの実数解(重解)、返り値が-1……実数解なし(虚数解)。

LEQU(A,B)
1次方程式 ax=b=0 を x について解きます。ただし、Aが0のときは返り値が0となります。

QEQU A,B,C OUT X1$,X2$
2次方程式 ax^2+bx+c=0 を x について解きます。ただし、Aが0のときは返り値が""となります。

GOLDR()
黄金数(約1.618)を返します。

NAP()
ネイピア数(約2.718)を返します。

INF()
infを返します。

CLOG(X)
常用対数(log[10]X)を求めます。

IN(X)
自然対数(InX=log[e]X)を求めます。

LG(X)
二進対数(lgX=log[2]X)を求めます。

FCT 数値 OUT 整数,小数
数値を、整数部と小数部に分解します(例:11.53 → 11と0.53)。

ROUNDN(数値,N)
数値の小数点以下を、N以上のときに繰り上げます。Nが5のとき、四捨五入。

FACT(X)
Xの階乗(X!)を求めます。Xの小数点以下は自動的に切り捨てられます。

HYPOT(A,B)
2乗の和の平方根(√(a^2+b^2))を求めます。

ROOT(A,B,C)
平方根(b√(a^c) = a^(c/b))を求めます。

NPR(N,R)
順列(nPr)を求めます。NはR以上である必要があります。

NCR(N,R)
組み合わせ(nCr)を求めます。NはR以上である必要があります。

SUM(数値配列)
数値配列の総和を求めます。

INTEG(A,B,F)
定積分(∫[a,b]fdx)を求めます。

MEAN(数値配列)
数値配列の相加平均を求めます。

GEOMEAN(数値配列)
数値配列の相乗平均を求めます。

HARMEAN(数値配列)
数値配列の調和平均を求めます。

RMS(数値配列)
数値配列のRMS(二乗平均平方根)を求めます。

MED(数値配列)
数値配列の中央値(メジアン)を求めます。

RANGE(数値配列)
数値配列の範囲(レンジ)を求めます。

VALCMP(A,B)
AとBを比較して、一致した場合はTRUE、不一致の場合はFALSEを返します。

ZELLER(”YYYY/MM/DD”)
"YYYY/MM/DD"の形式から、ツェラーの公式を解きます。
土:0 日:1 月:2 火:3 水:4 木:5 金:6

DEC8(数値)
8進数から10進数に変換します。

OCT(数値)
10進数から8進数に変換します。

RNDRAN(数値1,数値2)
数値1以上、数値2以下の乱数を生成します。

RANGESET(NUM,数値1,数値2)
数値変数NUMの範囲を設定します。
例えば、RANGESET(8,3,5) は 5 を返します。

RANGESETR(NUM,数値1,数値2)
数値変数NUMの範囲を設定します。範囲を上回った場合は最小値を返します。下回った場合には最大値を返します。
例えば、RANGESETR(8,3,5) は 3 を返します。

ファイル・文字列操作

TXTLOAD$(ファイル名,数値)
[ファイル名]というファイルの[数値]行目の文字列を返します。
改行があるまでを1行とみなします。ファイル名の「TXT:」は、もし記述されていない場合は自動で追加されます。

CAPIT$(文字列)
文字列内の小文字アルファベットを大文字に変換します。

LOWER$(文字列)
文字列内の大文字アルファベットを小文字に変換します。

CAPITMID$(文字列,開始地点,文字数)
文字列の開始地点から文字数分の小文字アルファベットを大文字に変換します。
開始地点は 0~文字数-1。

LOWERMID$(文字列,開始地点,文字数)
文字列の開始地点から文字数分の大文字アルファベットを、小文字に変換します。
開始地点は 0~文字数-1。

ROMAHIRA$(文字列)
Ver 1.0.0まで HIRA$(文字列)
文字列内のカタカナをひらがなに変換します。

ROMAKATA$(文字列)
Ver 1.0.0まで KATA$(文字列)
文字列内のひらがなをカタカナに変換します。

HIRAMID$(文字列,開始地点,文字数)
文字列の開始地点から文字数分のカタカナをひらがなに変換します。
開始地点は 0~文字数-1。

KATAMID$(文字列,開始地点,文字数)
文字列の開始地点から文字数分のひらがなを、カタカナに変換します。
開始地点は 0~文字数-1。

ROMAHIRA$(文字列)
文字列内の大文字アルファベットを、ローマ字でひらがなに変換します。

ROMAKATA$(文字列)
文字列内の大文字アルファベットを、ローマ字でカタカナに変換します。

TF$(数値)
引数が0だと"FALSE"、1だと"TRUE"、それ以外だと""を返します。

TF(文字列)
文字列が"TRUE"だと1を、"FALSE"だと0を、それ以外だと-1を返します。

STRCMP(文字列1,文字列2)
文字列1と文字列2を比較して、一致した場合はTRUE、不一致の場合はFALSEを返します。

REPLACE$(元の文字列,置換前文字列,置換後文字列)
[元の文字列]内にある[置換前文字列]を[置換後文字列]に置き換えます。

TRIM$(文字列)
文字列両端のスペースを取り除きます。

TRIML$(文字列)
文字列左端のスペースを取り除きます。

TRIMR$(文字列)
文字列右端のスペースを取り除きます。

CUTL$(文字列)
文字列の、左端からスペースまでの文字列を切り取ります。

CUTR$(文字列)
文字列の、右端からスペースまでの文字列を切り取ります。

SHORT$(文字列)
文字列内のスペースを取り除きます。

REJ$(文字列,A$)
文字列からA$を取り除きます。

OPPOS$(文字列)
文字列を反対にします。(例:"ABCDEF" → "FEDCBA")

SPACE$(文字列)
文字列をスペースで置換します。

RNDTXT$(長さ)
指定した長さの、ランダムな英数字の文を生成します。

RNDENG$(長さ)
指定した長さの、ランダムな大文字アルファベットの文を生成します。

RNDENGLW$(長さ)
指定した長さの、ランダムな小文字アルファベットの文を生成します。

ANAG$(文字列)
文字列をランダムに並び替え(アナグラムを生成し)ます。

SENUM(文字列,A$)
文字列に含まれるA$の数を返します。

FILENG$(文字列)
文字列をアルファベット(1文字)でフィルタリングします。
FILENG$("A") は "A" を、FILENG$("あいう") は "" を返します。

FILENGCAP$(文字列)
文字列を大文字アルファベット(1文字)でフィルタリングします。
FILENGCAP$("A") は "A" を、FILENGCAP$("abc") は "" を返します。

FILENGLOW$(文字列)
文字列を小文字アルファベット(1文字)でフィルタリングします。
FILENGLOW$("a") は "a" を、FILENGLOW$("ABC") は "" を返します。

FILJP$(文字列)
文字列をひらがな・カタカナ(1文字)でフィルタリングします。
FILJP$("あ") は "あ" を、FILJP$("A") は "" を返します。

FILJPHIRA$(文字列)
文字列をひらがな(1文字)でフィルタリングします。
FILJPHIRA$("あ") は "あ" を、FILJPHIRA$("ア") は "" を返します。

FILJPKATA$(文字列)
文字列をカタカナ(1文字)でフィルタリングします。
FILJPKATA$("ア") は "ア" を、FILJPKATA$("あ") は "" を返します。

CB 文字列
クリップボードに文字列を設定します。CLIPBOARD 文字列と同様。

CBD()
クリップボードに文字列を返します。CLIPBOARD()と同様。

CBCHR 数値
文字コードからクリップボードを設定します。

CBDEL
クリップボードを削除(""に設定)します。

時間

YEAR()
システムの「年」を返します。

MONTH()
システムの「月」を返します。

DAY()
システムの「日」を返します。

HOUR()
システムの「時間」を返します。

MINUTE()
システムの「分」を返します。

SEC()
システムの「秒」を返します。

YMD ”YYYY/MM/DD” OUT 年,月,日
"YYYY/MM/DD" から、数値で年月日に分解します。

HMS ”HH:MM:SS” OUT 時,分,秒
"HH:MM:SS" から、数値で時分秒に分解します。

BOOTSEC()
システム起動時間を秒で返します。

CHSEC(”HH:MM:SS”)
"HH:MM:SS"から数値(秒)を求めます。

CHTIME$(数値)
数値(秒)から"HH:MM:SS"を求めます。

WEEK$(年,月,日)
ツェラーの公式を用いて、年月日から曜日を求めます。
返り値の例:"SUNDAY"

WEEKJP$(年,月,日)
ツェラーの公式を用いて、年月日から曜日を求めます。
返り値の例:"日曜日"

その他

BGMNAME$(数値)
指定した番号のBGMの名前を返します。

BEEPNAME$(数値)
指定した番号のBEEP(効果音)の名前を返します。

GMNAME$(数値)
指定した番号のGM(楽器)の名前を返します。

サンプルコード

簡易ローマ字入力

入力した文字が自動的にひらがなになります。バックスペースキーで削除することができます。

使用している関数
・FILENGCAP$():文字列が1文字の大文字アルファベット以外のとき、フィルタリングして "" を返す。
・ROMAHIRA$():文字列の大文字アルファベットを、ローマ字で日本語に変換する。

  1. ’ サンプル1:簡易ローマ字入力
  2. ’ ─────────────────────
  3. ACLS
  4. LOAD ”PRG3:COM_LIB”,FALSE
  5. USE 3
  6. @LOOP
  7. KEY$=INKEY$()
  8. ’−− バックスペースキーの検知 −−
  9. IF KEY$==CHR$(8) AND LEN(TEXT$)>0 THEN
  10.  TEXT$=SUBST$(TEXT$,LEN(TEXT$)−1,1,””)
  11. ENDIF
  12. ’−− 文字入力 −−
  13. KEY$=FILENGCAP$(KEY$)
  14. IF KEY$!=”” THEN TEXT$=TEXT$+KEY$
  15. ’−− 日本語変換 −−
  16. TEXT$=ROMAHIRA$(TEXT$)
  17. ’−− 画面表示 −−
  18. LOCATE 0,0
  19. CLS
  20. PRINT TEXT$
  21. VSYNC 1
  22. GOTO @LOOP


簡易ミュージックプレイヤー

十字ボタン左右で曲の切り替え、Aボタンで曲の再生・停止をすることができます。

使用している関数
・RANGESETR():指定した数値が範囲より下だと、範囲の最大値を返す。また、範囲より上だと、範囲の最小値を返す。
・BGMNAME$():指定した番号のBGMの名前を返す。

  1. ’ サンプル2:簡易ミュージックプレイヤー
  2. ’ ─────────────────────
  3. ACLS
  4. LOAD ”PRG3:COM_LIB”,FALSE
  5. USE 3
  6. @LOOP
  7. B=BUTTON(2)
  8. ’−− 曲の選択 −−
  9. IF B==#RIGHT THEN BGMNUM=BGMNUM+1:BEEP 9
  10. IF B==#LEFT THEN BGMNUM=BGMNUM−1:BEEP 9
  11. BGMNUM=RANGESETR(BGMNUM,0,42)
  12. ’−− 曲の再生 −−
  13. IF B==#A AND BGMCHK()==TRUE THEN
  14.  BGMSTOP
  15. ELSEIF B==#A AND BGMCHK()==FALSE THEN
  16.  BGMPLAY BGMNUM
  17. ENDIF
  18. ’−− 曲名の表示 −−
  19. CLS
  20. LOCATE 0,0
  21. PRINT BGMNAME$(BGMNUM)
  22. VSYNC 1
  23. GOTO @LOOP


更新履歴

+  クリックで開く


CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 天郷思音 : 充実のラインナップ! (2018/05/20 (日) 17:41:26)
  • 名無しさん : ほんとに充実してるね (2018/05/22 (火) 07:04:06)
  • 名無しさん : 文が間違っている箇所があったので修正しました。 (2018/07/22 (日) 19:42:41)
  • MONO-CASEI : 方程式プログラムつくろっかな... (2018/12/02 (日) 12:51:18)
  • くり : 正しくは (2018/12/12 (水) 16:45:21)
  • くり : 正しくはI(アイ)n (2018/12/12 (水) 16:46:02)
  • くり : ↑誤爆です すみませんでした 正しくはI(アイ)nではなく l(エル)nだと思います。 凄いですね! (2018/12/12 (水) 16:48:44)
  • mog : rtdとdtrは円周率÷180、180÷円周率の数値を先に計算しておいて (2019/11/27 (水) 23:27:26)
  • mog : x×小数の形にしたらもっと計算量減らせませんかね? (2019/11/27 (水) 23:30:00)

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 1419 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.198 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:29 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30