サイン、コサイン、タンジェント!三角形の研究は測量や航海等に実際に役立ってきた分野です。tan)が基本なのですが、rpnはこれらの3つの関数をサポートしています。記述方法は以下のとおりです(値はラジアン)。tan(1.57)1255.77ラジアンは角度の単位です。小学で学ぶ分度器の一回り360°が2πに対応します。すると、180°がπ。90°が1/πになりますね。ちなみに上の例の1.57は3.14の2分の1です。π/2のことなので、以下でもいいわけです。s」の式も「オペランドを先にオペコードを後に」という逆ポーランド記法の原則に従って設計されています。sin」の後置記法というように式の並びは必ずしも一致していません。役に立つ三角関数では、例題を示して、三角関数を使ってみましょう。今、目の前に大きな木が立っているとします。高さを測りたいのですが、高すぎて上れません。現地点から木までの水平距離はわかっているし、木の頂上までの角度もわかっています(図1参照)。木の高さを求めることはできないでしょうか。図1この場合、木の高さを求めるには、以下のようにします。/」は62°からラジアンへの変換です。(答え:約45.1m)角度を求めるには三角関数の逆関数が必要です。使い方は応用コーナーの角度計算なら逆三角関数にあります。興味のある方は閲覧ください。次に、もう少し複雑な例を示してみましょう。B地点とC地点の間の距離はわかっています。A地点とC地点の間の距離もわかっています。A地点からB地点までは、障害物があって測定できません(図2参照)。A地点からB地点までの距離を求めるにはどうすればよいでしょう。図2この場合、A-B間の距離は余弦定理というものを使って求めることができます。余弦定理は以下で定義されます。2ab・cosZこの式を使ってrpnで距離を求めてみます。60°は先にラジアンに変換しておくことにします(60°は1.047197)。(答え:約48.8Km)少々、複雑なので、公式と照らし合わせて解説しておきますね。cos(60°)rpnでプログラミングさて、最後の余弦定理の逆ポーランド式ですが、式が長いことに加えて数値がたくさん出てくるので入力を間違えやすく、その場限りで汎用性に乏しいです。そこで、rpnは入力をサポートし、汎用性を高める、いくつかの機能を用意しています。ここではその内の2つを紹介します。1つ目は最後の数値をコピーするもので、「.」を使用します。これで、長い数字を二回入力することを避けられます。2つ目はレジスタと呼ばれるメモリ(記憶場所)です。a~zまでとA~Zまでの52個あります。#p」で表現されます。一度メモリに格納すると、その後は@pで3.14159を参照できます。pレジスタの有効範囲はrpnの処理が全て終わって、DOSプロンプトに戻るまでです。これらを利用して、上の式を書き換えてみましょう。r48.7874このように記述できます。複雑になったように思えますが、レジスタを変数とみなすことで汎用性のある数式にすることができます。1.047197」の定数は式とは独立しています。r」にまとめ上げることが可能だということです。これは、一種のプログラミングとも言えます。『今回の問題』.................................................................................以下を逆ポーランド記法式に変換せよ。消費税率0.05をレジスタzに格納する式。消費税率0.05をレジスタzに格納し、1030円の税込金額を計算する式。トップへ文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。rpn試用版と標準版(2kリビジョン)はダブルクォートで囲ってください。"foo"ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。TIPS」を参照ください。rpnの障害情報はこちら。rpn試用版の場合、複雑なプログラムや処理時間のかかるプログラムの一部には動作しないものがあるかもしれません。無料提供であることを勘案・了承ください。rpn標準版は、すべてのプログラムが動作します。※ウェブサイトの内容を無断で複製、変更することは法律で禁じられています。