プログラム例とは? わかりやすく解説

プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2014/11/10 14:42 UTC 版)

TI-66」の記事における「プログラム例」の解説

(例) 2 以上 69 以下の指定した整数階乗計算するプログラムの例を示す。 行 コード コメント000-001 LBL A ラベルA(LBL A)を設置する。002-003 STO 01 メモリ01ストアする。004 1 1を置数する。005-006 LBL B ラベルB(LBL B)を設置する007 * 乗算を行う。008-009 RCL 01 メモリ01リコールする。010-012 DSZ 01 B メモリ01から1を減じその結果ゼロならば次のステップ(013)へ進む。 そうでなければラベルB(005)へ進む。013 = 最後乗算計算し確定させる。014 RTN プログラム終了し結果表示する。 このプログラム実行するには、 RST 6 R/S 又は 6 A のようにキー入力する。プログラム終了する計算結果720 のように表示される

※この「プログラム例」の解説は、「TI-66」の解説の一部です。
「プログラム例」を含む「TI-66」の記事については、「TI-66」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/07 20:45 UTC 版)

OCaml」の記事における「プログラム例」の解説

以下の例は、プログラム自体としてはML比べ特別なものでもないし、オブジェクト指向活用したものでもないが、OCaml を含む Caml では旧来のMLStandard ML からの記法や演算子名前の変更多く簡単なプログラムでもそのままではエラーになるものが多いので、ここでは OCamlコードを示す。 特徴として、型推論活用により、多く場合に型の宣言必要なく、一部静的型付き言語ありがちな煩雑さがないことが挙げられる

※この「プログラム例」の解説は、「OCaml」の解説の一部です。
「プログラム例」を含む「OCaml」の記事については、「OCaml」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/10/16 14:02 UTC 版)

PARLOG」の記事における「プログラム例」の解説

1983年版のPARLOG1986年改良されPARLOGとでは、言語特性や細かいシンタックスそれぞれ異なる。1983年PARLOGプログラムの例を以下に示す。append(x, y, z)は x と y の2つリスト連結したリストが z であるという関係を表している。Prolog異なり、英小文字で始まる項が変数を表す。relationモード宣言示し複数組み合わせ指定できるrelation append(?,?,^)relation append(?,^,?)relation append(?,?,?)append([], y, y).append([u|x], z, [u|z]) :- append(x, y, z) 1986年版では複雑だった言語仕様整理し、より効率的な実行可能になった。1986年PARLOGプログラムの例を以下に示す。Prolog同様、英大文字で始まる項が変数を表す。merge(Xs?,Ys?,Zs^)はXsYsの2本のストリームマージして1本のストリームZsにする。modeモード宣言示し1述語1つのみ指定できるmode merge(Xs?,Ys?,Zs^).merge([A|Xs],Ys,[A|Zs]) <- merge(Xs,Ys,Zs).merge(Xs,[A|Ys],[A|Zs]) <- merge(Xs,Ys,Zs).merge([],Ys,Ys).merge(Xs,[],Xs). PARLOGによるプロセス間の同期機能は、kernel PARLOGというモード宣言持たない単純な標準形式変換することで実現された。PARLOGモード宣言果たしていた役割は、特殊な単方向ユニフィケーション入力側はガード部に、出力側はボディ部に付加することで実現されガード部中断が行われる。例えば、上記プログラム最初の節はkernel PARLOGで以下の形式変換された。 merge(X,Ys,Z)<- [A|Xs] <= X : Z = [A|Zs] ,merge(Xs,Ys,Zs). <= は一方向ユニフィケーション表し、Xが[A|Xs]のようなリストの形になってない場合中断し、他のプロセスにより[A|Xs]の形に具体化され場合実行再開する。この時点Xs自体具体化されていなくてもかまわないため、リスト先頭からインクリメンタル具体化されるストリーム素直に処理できる

※この「プログラム例」の解説は、「PARLOG」の解説の一部です。
「プログラム例」を含む「PARLOG」の記事については、「PARLOG」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/01 11:29 UTC 版)

なでしこ (プログラミング言語)」の記事における「プログラム例」の解説

母艦(メインフォーム)に'Welcome to Nadesiko.'と表示されるプログラムWelcome to Nadesiko.」と表示ダイアログに'Hello Nadesiko.'と表示されるプログラムHello Nadesiko.」と言うメモ帳起動するプログラムnotepad.exe」を起動なでしこ3でアプリ起動する場合は、別途なでしこ3配布キット必要になる

※この「プログラム例」の解説は、「なでしこ (プログラミング言語)」の解説の一部です。
「プログラム例」を含む「なでしこ (プログラミング言語)」の記事については、「なでしこ (プログラミング言語)」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/12 22:09 UTC 版)

Concurrent Prolog」の記事における「プログラム例」の解説

以下にConcurrent Prologのプログラム例を示す。

※この「プログラム例」の解説は、「Concurrent Prolog」の解説の一部です。
「プログラム例」を含む「Concurrent Prolog」の記事については、「Concurrent Prolog」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/09 09:58 UTC 版)

LISP」の記事における「プログラム例」の解説

以下にいくつかのLISP (特にCommon Lisp) のコード例を示す。これらは産業界における典型的なコードではないが、コンピュータサイエンスコース通常教えられる典型的なLISPコードである。 LISP構文はそれ自身再帰的定義自然に適合している。それゆえ再帰的定義され集合列挙するというような数学の問題シンプルに表現できる。 以下の関数引数階乗評価される。 (defun factorial (n) (if (<= n 1) 1 (* n (factorial (- n 1))))) 下記別のやり方であり、末尾再帰になっている。 (defun factorial (n &optional (acc 1)) (if (<= n 1) acc (factorial (- n 1) (* acc n)))) 再帰対照的な概念である反復による計算の例として、Common Lisp代表的な繰り返し構文であるloopマクロ使った例を示す。 (defun factorial (n) (loop for i from 1 to n for fac = 1 then (* fac i) finally (return fac))) loopマクロであり、これが展開され最終的にプリミティブ構文組み合わせ翻訳される。 以下の関数引数リストをとり、そのリストの要素順番逆にしたもの評価されるLISP実際には同じことを行うビルトイン関数を普通持っている)。 (defun reverse (l &optional acc) (if (atom l) acc (reverse (cdr l) (cons (car l) acc))))

※この「プログラム例」の解説は、「LISP」の解説の一部です。
「プログラム例」を含む「LISP」の記事については、「LISP」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/19 04:48 UTC 版)

Windows Template Library」の記事における「プログラム例」の解説

Hello world表示するプログラムである。 #include //ATLヘッダ#define _ATL_NO_AUTOMATIC_NAMESPACE#include #include //WTLヘッダ#define _WTL_NO_AUTOMATIC_NAMESPACE#include #include class HelloWindow : public ATL::CWindowImpl{public: // ウィンドウクラス名を登録 DECLARE_WND_CLASS(TEXT("HelloWindow"));private: // メッセージマップ BEGIN_MSG_MAP(HelloWindow) MSG_WM_PAINT(OnPaint) MSG_WM_DESTROY(OnDestroy) END_MSG_MAP() // 描画メッセージ void OnPaint(HDC) { WTL::CPaintDC dc(m_hWnd); dc.TextOut(10, 10, TEXT("Hello, world"), -1); } // ウィンドウが破棄されるメッセージ void OnDestroy() { PostQuitMessage(0); }};int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int nCmdShow){ // ウィンドウのインタンスを生成 HelloWindow wnd; if (!wnd.Create(NULL, ATL::CWindow::rcDefault, TEXT("Hello, world"), WS_OVERLAPPEDWINDOW)) { return -1; } // ウィンドウ表示 wnd.ShowWindow(nCmdShow); wnd.UpdateWindow(); // メッセージループ WTL::CMessageLoop msgLoop; return msgLoop.Run();}

※この「プログラム例」の解説は、「Windows Template Library」の解説の一部です。
「プログラム例」を含む「Windows Template Library」の記事については、「Windows Template Library」の概要参照ください


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/26 07:06 UTC 版)

BCPL」の記事における「プログラム例」の解説

マーティン・リチャーズリリースしているBCPL最新版(2018年12月現在)であるCintsysで以下のプログラムを動かすには、エラー回避するためLIBHDR、START、WRITEFを小文字にすること。 階乗出力: GET "LIBHDR"LET START() = VALOF $(FOR I = 1 TO 5 DOWRITEF("%N! = %I4*N", I, FACT(I))RESULTIS 0$)AND FACT(N) = N = 0 -> 1, N * FACT(N - 1) n-クイーンパズルを解く: GET "LIBHDR"GLOBAL $(COUNT: 200ALL: 201$)LET TRY(LD, ROW, RD) BETEST ROW = ALL THENCOUNT := COUNT + 1ELSE $(LET POSS = ALL & ~(LD | ROW | RD)UNTIL POSS = 0 DO $(LET P = POSS & -POSSPOSS := POSS - PTRY(LD + P << 1, ROW + P, RD + P>> 1)$)$)LET START() = VALOF $(ALL := 1FOR I = 1 TO 12 DO $(COUNT := 0TRY(0, 0, 0)WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT)ALL := 2 * ALL + 1$)RESULTIS 0$)

※この「プログラム例」の解説は、「BCPL」の解説の一部です。
「プログラム例」を含む「BCPL」の記事については、「BCPL」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/26 07:52 UTC 版)

Constraint Handling Rules」の記事における「プログラム例」の解説

CHRのプログラム例を示す。

※この「プログラム例」の解説は、「Constraint Handling Rules」の解説の一部です。
「プログラム例」を含む「Constraint Handling Rules」の記事については、「Constraint Handling Rules」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/26 09:42 UTC 版)

KL1」の記事における「プログラム例」の解説

与えられリストクイックソートを行うプログラム例を示す。part/4はリストピボットより大きい数のリスト小さい数のリスト2つ分割する二分割された各々データそれぞれqsort/3でソートされる。 :- module quicksort.qsort([Pivot|Xs], Ys0, Ys2) :- part(Xs,Pivot, Small, Large), qsort(Small, Ys0, [Pivot|Ys1]), qsort(Large, Ys1, Ys2).qsort([], Ys0, Ys1) :- Ys0 = Ys1.part([X|Xs],Pivot,Small,Large) :- Pivot< X | Large=[X|L1], part(Xs,Pivot,Small,L1).part([X|Xs],Pivot,Small,Large) :- Pivot>=X | Small=[X|S1], part(Xs,Pivot,S1,Large).part([], _, Small,Large) :- Small=[], Large=[]. qsort/3を呼び出すことで順次part/4とqsort/3とのプロセスネットワークが作られ、それらの間で並行処理が行われる。

※この「プログラム例」の解説は、「KL1」の解説の一部です。
「プログラム例」を含む「KL1」の記事については、「KL1」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/01 09:24 UTC 版)

素数判定」の記事における「プログラム例」の解説

Pythonによる素数判定試し割り)のプログラム例を示す。 import mathdef is_prime(n): if n <= 1: return False if n== 2: return True if n % 2== 0: return False for i in range(3, math.ceil(math.sqrt(n)) + 1, 2): if n % i== 0: return False return True この例は入力nが素数である場合はTrueを返し、それ以外の場合はFalseを返す。 Pythonによる素数判定(エラトステネスの篩)のプログラム例を示す。 import mathdef eratosthenes(n): list_prime=list(range(2, n)) for i in range(2, n): if i in list_prime: for j in range(i * 2, n, i): if j in list_prime: list_prime.remove(j) if i> int(math.sqrt(n)): break return list_prime この例は入力nまでの素数リスト返す

※この「プログラム例」の解説は、「素数判定」の解説の一部です。
「プログラム例」を含む「素数判定」の記事については、「素数判定」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/03 10:22 UTC 版)

HP-28 シリーズ」の記事における「プログラム例」の解説

(例) 0 以上 253 以下の指定した整数階乗計算するプログラムの例を示す。 << → N << 1 1 N FOR I I * NEXT>> >> 解説01: << : プログラム開始(BEGIN)02: → N : Nをローカル変数として定義するスタックから一つ取り出す。(スタック一段下降取り出した値をNに代入する。03: << : プログラム開始(BEGIN) --- ローカル変数の適用範囲(スコープ)の開始位置を示す。04: 1 : スタックに1を置数する。(スタックは一段上昇) --- 計算結果の初期値05: 1 : スタックに1を置数する。(スタックは一段上昇) --- ループ変数Iの開始値06: N : スタックにNの値を置数する。(スタックは一段上昇) --- ループ変数Iの終了値07: FOR I : Iをループ変数とする。 スタックから二つ取り出す。(スタックは二段下降) 取り出した値をループ変数Iの開始値と終了値とする。 NEXTまでを繰り返す。08: I : スタックにループ変数Iの値を置数する。(スタックは一段上昇)09: * : スタックから二つ取り出す。(スタックは二段下降) 取り出した値の積を計算し、その値をスタックに置数する。(スタックは一段上昇)10: NEXT : ループ変数Iを1増加する。 ループ変数Iの値が終了値N未満ならばFORの直後の命令(08:)に戻る。 ループ変数Iの値が終了値N以上ならば、次の命令(11:)へ進む。11:>> : プログラム終了(END) --- ローカル変数適用範囲スコープ)の終了位置を示す。12: >> : プログラム終了(END) このプログラム実行するには、例えば、 << → N << 1 1 N FOR I I * NEXT>> >> ENTER 'FACT' STO として、入力したプログラム変数(ここではFACT)に格納しておく。その後、 6 FACT 等とすると、プログラム実行され720 のように実行結果第一スタック表示される

※この「プログラム例」の解説は、「HP-28 シリーズ」の解説の一部です。
「プログラム例」を含む「HP-28 シリーズ」の記事については、「HP-28 シリーズ」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/18 17:13 UTC 版)

GNU Scientific Library」の記事における「プログラム例」の解説

ベッセル関数の値を計算する C プログラムの例を以下に示す。 #include #include int main(void){ double x = 5.0; double y = gsl_sf_bessel_J0(x); printf("J0(%g) = %.18e\n", x, y); return 0;} GNU Make使って上のプログラムコンパイルし、GSLリンクしようとする場合、そのコマンドMakefile ファイル中では以下のようになるgcc $(gsl-config --cflags) example.c $(gsl-config --libs) 上のコマンド生成され実行ファイル実行すると、以下のように出力する計算値の精度倍精度実数である。 J0(5) = -1.775967713143382920e-01

※この「プログラム例」の解説は、「GNU Scientific Library」の解説の一部です。
「プログラム例」を含む「GNU Scientific Library」の記事については、「GNU Scientific Library」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/15 00:00 UTC 版)

if文」の記事における「プログラム例」の解説

特に断りない場合nanb大きい方をnc代入という意味である。

※この「プログラム例」の解説は、「if文」の解説の一部です。
「プログラム例」を含む「if文」の記事については、「if文」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/16 08:35 UTC 版)

Elektronika MK-61」の記事における「プログラム例」の解説

2 以上 69 以下の指定した整数階乗計算するプログラムの例を示す。 プログラムアドレスキー入力命令コード説明スタック00 「X→П」「0」 40 スタックXの値をRG0にストア - 01 「1」 01 1置数 上昇 02 「П→X」「0」 60 RG0の値をリコール 上昇 03 「×」 12 乗算 下降 04 「F」L0」 5Г RG0の値が 2<=RG0 ならば、RG0をデクリメントし、命令2バイト目で指定されアドレス(ここでは02)へジャンプする。RG0の値が 1<=RG0<2 の範囲ならば次の命令アドレス(ここでは06)へ進む。 - 05 「0」「2」 02 06 「С/П」 50 停止 - 「ПРГ」でプログラム編集モード入り上記プログラム入力する。「АВТ」で実行モード戻り計算した数値を、例えば、 6 などと入力し、「В/0」で先頭アドレス00移動し、「С/П」でプログラム実行すると、暫くして結果が、 720 のように表示される

※この「プログラム例」の解説は、「Elektronika MK-61」の解説の一部です。
「プログラム例」を含む「Elektronika MK-61」の記事については、「Elektronika MK-61」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/03 00:34 UTC 版)

HP-10Cシリーズ」の記事における「プログラム例」の解説

2 以上 69 以下の指定した整数階乗計算するプログラムの例を示す。 10C行 キー 表示 コメント01: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (スタック上昇02: STO 0 : 44 0 : スタックXをレジスタ0に入れる(STORE)03: R↓ : 33 : スタックYをスタックXに下降(ROLL DOWN)04: STO* 0 : 44,20, 0 : スタックXにレジスタ0を乗算してレジスタ0に入れる(STORE*)05: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (置数前のスタックXはスタックYに上昇06: - : 30 : スタックYからスタックXを減算してスタックXに入れる (スタック下降07: x=0 : 42 20 : スタックXがゼロならば次の行へ行きゼロなければ次の行をスキップする08: GTO 10 : 22 10 : 行10へ行く(GO TO)09: GTO 04 : 22 04 : 行04へ行く(GO TO)10: RCL 0 : 45 0 : レジスタ0からスタックXに入れる(RECALL) (スタック上昇11: R/S : 31 : プログラム停止しスタックXを表示する 11C行 キー 表示 コメント001: STO I : 44 25 : スタックXをレジスタI(インデックスレジスタ)に入れる(STORE)002: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (スタック上昇)003: LBL 0 : 42,21, 0 : ラベル0を設置(LABEL)004: RCL I : 45 25 : レジスタIからスタックXに入れる(RECALL) (リコール前のスタックXはスタックYに上昇005: * : 20 : スタックYにスタックXを乗算してスタックXに入れる (スタック下降006: DSE : 42 5 : レジスタIから1を減じその結果レジスタIがゼロ以下ならば次の行をスキップする007: GTO 0 : 22 0 : ラベル0へ行く(GO TO)008: R/S : 31 : プログラム停止しスタックXを表示する 12C行 キー 表示 コメント01: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (置数前のスタックXはスタックYに上昇02: STO 0 : 44 0 : スタックXをレジスタ0に入れる(STORE)03: R↓ : 33 : スタックYをスタックXに下降(ROLL DOWN)04: STO* 0 : 44,20, 0 : スタックXにレジスタ0を乗算してレジスタ0に入れる(STORE*)05: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (置数前のスタックXはスタックYに上昇06: - : 30 : スタックYからスタックXを減算してスタックXに入れる (スタック下降07: x=0 : 43 35 : スタックXがゼロならば次の行へ行きゼロなければ次の行をスキップする08: GTO 10 : 43,33,10 : 行10へ行く(GO TO)09: GTO 04 : 43,33,04 : 行04へ行く(GO TO)10: RCL 0 : 45 0 : レジスタ0からスタックXに入れる(RECALL) (スタック上昇11: R/S : 31 : プログラム停止しスタックXを表示する 12C Platinum (RPNモード)行 キー 表示 コメント001: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (置数前のスタックXはスタックYに上昇002: STO 0 : 44 0 : スタックXをレジスタ0に入れる(STORE)003: R↓ : 33 : スタックYをスタックXに下降(ROLL DOWN)004: STO* 0 : 44 20 0 : スタックXにレジスタ0を乗算してレジスタ0に入れる(STORE*)005: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (置数前のスタックXはスタックYに上昇006: - : 30 : スタックYからスタックXを減算してスタックXに入れる (スタック下降007: x=0 : 43 35 : スタックXがゼロならば次の行へ行きゼロなければ次の行をスキップする008: GTO 010 : 43,33,010 : 行010へ行く(GO TO)009: GTO 004 : 43,33,004 : 行004へ行く(GO TO)010: RCL 0 : 45 0 : レジスタ0からスタックXに入れる(RECALL) (スタック上昇011: R/S : 31 : プログラム停止しスタックXを表示する 15C行 キー 表示 コメント001: STO 0 : 44 0 : スタックXをレジスタ0に入れる(STORE)002: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (スタック上昇)003: LBL 1 : 42,21, 1 : ラベル設置(LABEL)004: RCL 0 : 45 0 : レジスタ0からスタックXに入れる(RECALL) (リコール前のスタックXはスタックYに上昇005: * : 20 : スタックYにスタックXを乗算してスタックXに入れる (スタック下降006: DSE 0 : 42, 5, 0 : レジスタ0から1を減じその結果レジスタ0がゼロ以下ならば次の行をスキップする007: GTO 1 : 22 1 : ラベル1へ行く(GO TO)008: R/S : 31 : プログラム停止しスタックXを表示する 16C行 キー 表示 コメント001: STO I : 44 32 : スタックXをレジスタI(インデックスレジスタ)に入れる(STORE)002: 1 : 1 : スタックXに1を置数(DIGIT ENTRY) (スタック上昇)003: LBL 0 : 43,22, 0 : ラベル0を設置(LABEL)004: RCL I : 45 32 : レジスタIからスタックXに入れる(RECALL) (リコール前のスタックXはスタックYに上昇005: * : 20 : スタックYにスタックXを乗算してスタックXに入れる (スタック下降006: DSZ : 43 23 : レジスタIから1を減じその結果レジスタIがゼロならば次の行をスキップする007: GTO 0 : 22 0 : ラベル0へ行く(GO TO)008: R/S : 31 : プログラム停止しスタックXを表示する このプログラム実行するには、例え下記のようにキー入力する。 GTO .00 プログラムカウンタを0行目にセット(10C及び12Cの場合GTO .000 プログラムカウンタを0行目にセット(11C、12C Platinum及び16Cの場合GTO CHS 000 プログラムカウンタを0行目にセット(15Cの場合6 階乗を計算すべき整数入力 (例: 6 ) R/S 階乗計算し結果表示 (例: 6!720プログラム終了する720 という結果表示される。 [P 1]~ ^ a b この例ではループカウンタとして使用しているレジスタ小数部がゼロである。この場合DSE命令はDSZ命令同様の動作をする。小数部がゼロない場合DSE命令の詳しい動作については取扱説明書参照

※この「プログラム例」の解説は、「HP-10Cシリーズ」の解説の一部です。
「プログラム例」を含む「HP-10Cシリーズ」の記事については、「HP-10Cシリーズ」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 15:58 UTC 版)

FX-602P」の記事における「プログラム例」の解説

このプログラムは、2から69指定した整数階乗計算するもので、5の階乗ならば、5 P0 と入力する120表示する。このプログラムメモリ9バイト分となる。 Key-codeCommentP0 P0 でプログラム起動させる Min00 レジスタ0に値を入力 1 1から開始 LBL0 ループラベル * 乗算 MR00 レジスタ0の値を呼び出し DSZ GOTO0 レジスタ0の値から1を引き、0になるまでLBL0にジャンプする = 終了n!計算結果表示される

※この「プログラム例」の解説は、「FX-602P」の解説の一部です。
「プログラム例」を含む「FX-602P」の記事については、「FX-602P」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/01 03:23 UTC 版)

FX-603P」の記事における「プログラム例」の解説

このプログラムは、2から69指定した整数階乗計算するもので、5の階乗ならば5P0と入力する120表示するアルファベット表示含めて14バイトプログラムとなる。 Key-codeCommentP0 P0でプログラム起動させる ALPHA#!=ALPHA 1列目に "n!=" と表示結果は2列目に表示される Min00 レジスタ00に値を入力 1 1から開始 LBL0 ループラベル * 乗算 MR00 レジスタ00の値を呼び出し DSZ GOTO0 レジスタ00の値から1を引き、0になるまでLBL0にジャンプする = 終了n!計算結果表示される

※この「プログラム例」の解説は、「FX-603P」の解説の一部です。
「プログラム例」を含む「FX-603P」の記事については、「FX-603P」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/17 20:57 UTC 版)

METAFONT」の記事における「プログラム例」の解説

簡単なサンプルプログラムとその出力を示す。 1: beginchar(65,10pt#,10pt#,0pt#);2: pickup pencircle xscaled 1.2pt yscaled 0.5pt rotated 120;3: z1=(0.1w,0.75h);4: z2-z1=whatever*(8,1);5: x2=0.9w;6: z3=(0.8w,0.1h);7: draw z1--z2{z1-z2}..{z2-z1}z3;8: labels(1,2,3);9: endchar;10: end.行番号説明のために付けてある。 1行目では文字情報定めている。この例では、文字コード65文字を幅10pt, 高さ10pt, 深さ0pt(幅と高さが同じ値だが、引数はこの順)で作成することを宣言している。 2行目では文字を描くのに用いる“ペン”を定義している。このペン単位円縦横異な比率拡大縮小してできる楕円120回転させたもので、次ののような形を持つ。 3行目から6行目までで3つの点の位置定めている。3つの点はそれぞれ z1, z2, z3 で、図中では1,2,3とラベル付けて表示してある。w と h の値は1行目の宣言によって決められて、この例では左下座標が (0,0)、右下(w,0)、右上(w,h) 等となる。 z1 と z3それぞれ3行目と6行目で明示的に決められるz2決め方に METAFONT特徴がよく現れている。4行目の段階では「z1 から z2 へ向かうベクトルが (8,1) という成分を持つベクトルの何倍かになっている」ことだけが定義されている。続く5行目で z2 のx成分明示的に与えられると、z2位置自動的に決定されるMETAFONT 内部では、4行目の段階一次方程式作られたのちに5行目と併せて解かれている。 7行目で文字を描く。まず z1 から z2直線を引き、z2 からは、z2 から z1 へと向かう方向へ線を引き始める。その線は滑らかな曲線描きながら z3 へと向かうのだが、最終的に z3たどり着くときには z1 から z2 へと向かう方向を向くようにする。 8行目では、3つの点にラベル付けて表示させている。 9行目で、1行目から続いた文字コード 65文字終了する。さらに他のコード文字描きたければ1行目と同様に続けることもできる10行目で1文字しかないこのフォントセット終了する。 (他のプログラム例がw:de:Metafontにも)

※この「プログラム例」の解説は、「METAFONT」の解説の一部です。
「プログラム例」を含む「METAFONT」の記事については、「METAFONT」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/26 13:32 UTC 版)

Strand」の記事における「プログラム例」の解説

2本のストリームマージして1本のストリームにするStrandプログラムの例を以下に示す。Prologと同様、A や Xs など英大文字で始まる項は変数を表す。 merge([A|Xs],Ys,Zs0) :- true | Zs0:=[A|Zs], merge(Xs,Ys,Zs).merge(Xs,[A|Ys],Zs0) :- true | Zs0:=[A|Zs], merge(Xs,Ys,Zs).merge([],Ys,Zs) :- true | Zs:=Ys.merge(Xs,[],Zs) :- true | Zs:=Xs. 例えば、上記プログラム最初の節では、最初引数が[A|Xs]のようなリストの形になってない場合中断し、他のプロセスにより[A|Xs]の形に具体化された(具体的に値が決まった場合実行再開する。この時点Xs自体具体化されていなくても構わないため、リスト先頭からインクリメンタル具体化されるストリーム素直に処理できる

※この「プログラム例」の解説は、「Strand」の解説の一部です。
「プログラム例」を含む「Strand」の記事については、「Strand」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:23 UTC 版)

並行論理プログラミング」の記事における「プログラム例」の解説

エラストテネスのふるいを使い素数生成を行うGuarded Horn Clauses (GHC) のプログラム例を示す。Prologと同様、MaxやPrimesなどの英大文字で始まる項は変数を表す。 gen_primes(Max,Primes) :- gen(2,Max,Ns), sift(Ns,Primes). gen_primes/2を実行すると、gen/3とsift/2の2つプロセス生成される。gen/3はMaxまでの自然数ストリーム生成し、sift/2はそれをふるいにかけ素数ストリームをPrimesに返す。gen/3とsift/2とはそれぞれ並行して動き、gen/3で生成され自然数ストリーム変数Nsを介して順次sift/2に渡されるプロセス間の同期は、ストリーム各要素具体化(Instantiation)されるまで待つ、という形で自然に表現される。 gen/3、sift/2の各プログラムそれぞれ以下のようになる。gen/3は、自然数ストリーム順次生成しMax超えた終了する。sift/2は、2,3,5,7,..などの各素数倍数ストリームから取り除くfilterプロセス(ふるい)を順に生成しながら、求まった素数順次ストリーム要素として返す。各filterプロセス変数を介して直列つながれいくため自然数ストリームから素数のみのストリーム求めることができる。 gen(N0,Max,Ns0) :- N0=Max | Ns0=[].sift([Prime|Xs1],Zs0) :- Zs0=[Prime|Zs1], filter(Prime,Xs1,Ys), sift(Ys,Zs1).sift([], Zs0) :- Zs0=[].filter(Prime,[X|Xs1],Ys0) :- X mod Prime=\=0 | Ys0=[X|Ys1], filter(Prime,Xs1,Ys1).filter(Prime,[X|Xs1],Ys0) :- X mod Prime=:=0 | filter(Prime,Xs1,Ys0).filter(_, [], Ys0) :- Ys0=[].

※この「プログラム例」の解説は、「並行論理プログラミング」の解説の一部です。
「プログラム例」を含む「並行論理プログラミング」の記事については、「並行論理プログラミング」の概要を参照ください。


プログラム例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/05/03 04:48 UTC 版)

Program Composition Notation」の記事における「プログラム例」の解説

可変変数 m の内容リスト x の要素であれば true(1) を、そうでなければ false(0) を返すプログラムの例を以下に示す。 member(x,m,r)int m, r;{? x ?= [] -> r:= false, x ?= [vlxs], v == m -> r:= true, x ?= [vlxs], v != m -> member(xs, m, r)} 二分木バイナリツリー)t の高さ z を求めプログラムの例を以下に示す。ツリー要素は {left, val, right} か空のタプル表現されているものとする。各深さ並行して計算され、定義変数 l と r によりheight実行とzの計算との同期が行われる。 height(t,z){? t ?= { } -> z = 0, t ?= {left, val, right} -> {|| height(left, l), height(right, r), {? l >= r -> z = 1 + l, r >= l -> z = 1 + r } }}

※この「プログラム例」の解説は、「Program Composition Notation」の解説の一部です。
「プログラム例」を含む「Program Composition Notation」の記事については、「Program Composition Notation」の概要を参照ください。

ウィキペディア小見出し辞書の「プログラム例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「プログラム例」の関連用語

検索ランキング

   

英語⇒日本語
日本語⇒英語
   



プログラム例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのTI-66 (改訂履歴)、OCaml (改訂履歴)、PARLOG (改訂履歴)、なでしこ (プログラミング言語) (改訂履歴)、Concurrent Prolog (改訂履歴)、LISP (改訂履歴)、Windows Template Library (改訂履歴)、BCPL (改訂履歴)、Constraint Handling Rules (改訂履歴)、KL1 (改訂履歴)、素数判定 (改訂履歴)、HP-28 シリーズ (改訂履歴)、GNU Scientific Library (改訂履歴)、if文 (改訂履歴)、Elektronika MK-61 (改訂履歴)、HP-10Cシリーズ (改訂履歴)、FX-602P (改訂履歴)、FX-603P (改訂履歴)、METAFONT (改訂履歴)、Strand (改訂履歴)、並行論理プログラミング (改訂履歴)、Program Composition Notation (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS