• 締切済み

Basicでのプログラムなのですが・・・

高校の情報の問題なのですが・・・・ ・三角形の面積を求めるプログラム ・n,rを入力しnPrを求めるプログラム をBASICでプログラムを作らなければならないのですが・・・・ 全く解りません。 どなたか,教えてください。

みんなの回答

  • ultraCS
  • ベストアンサー率44% (3956/8947)
回答No.7

情報の課題と言うことで、多分、プログラムの方が本題だと思うので、幾何のヒントを 三角形がどういう形で出題されているのかわかりませんが、各点の座標が与えられているなら、そこから辺長を計算して、ヘロンの公式を使います。 http://www.asahi-net.or.jp/~jb2y-bk/NaturalSci/math/heron.htm 底辺と高さで出題なら、点辺×高さ÷2ですみますから、それでいいです。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.6

★アドバイス >高校の授業ではN88というソフトで実習をしているのですが・・・  ↑  驚き!  N88-BASIC ってかなり古いですね。  今の高校では『情報A』で BASIC を習うんですか? ・さて本題。 >n,rを入力しnPrを求めるプログラム  ↑  これを求めるには先に階乗を求めるサブルーチンとかを作って処理すれば楽になりますよ。  あと順列 nPr は n!/(n - r)! という式で簡単にもとまります。  なので  (1)n の階乗を求める…α  (2)(n - r) の階乗を求める…β  (3)α÷βで nPr が計算できます。  ↑  これを参考にして下さい。 サンプル: '階乗を求める部分 ANS=1 LOOP=N ←求める階乗の数 WHILE LOOP != 1  ANS = ANS * LOOP  LOOP = LOOP - 1 WEND PRINT "Nの階乗は";ANS;"です。" 解説: ・上記のサンプルは階乗を計算する部分のみです。  この部分を参考に nPr の n、(n-r) の階乗を求めて割り算すれば順列が求まります。  サブルーチンにしても良いし、上記のサンプルを処理手順の順に記述しても良い。  とにかく nPr は n!/(n - r)! という式で簡単に計算できます。 >たぶん、底辺×高さ÷2の方だと思います。  ↑  これだけなら INPUT で『底辺』、『高さ』を入力して計算したものを PRINT 文で  画面に表示すればよいだけです。 ・以上。

参考URL:
http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/prob/node3.html
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.5

N88-BASICですか。やべっ詳しい文法を覚えてねぇ。 とりあえず、間違いだけ指摘させてもらいます。 (1)問題ないですが、工夫するともっと良くなります。 (2)ELSEも使いましょう。 (3)実際には2行に分けたほうが良いです。aが1から始まるとS = n * (n-1) * (n-2) * ・・・ * (n-r+1)とは違うますよ。 (4),(5)は、代入文です。代入先を用意しないと。 (6)ループの方法は何を習いましたか? (7)これでも表示されますが、工夫するとさらに良くなります。 サンプルがあるんで、ここをまず読んでみてください。 http://mis.edu.yamaguchi-u.ac.jp/kaisetu/n88basic_00/index.html で、自宅でフリーソフトのN88-BASIC互換ソフトが使えます。上のサンプルも互換BASICを使っています。WindowsVsitaじゃなければ問題なく動くはずです。 http://www.vector.co.jp./soft/win31/prog/se025866.html http://www.vector.co.jp./soft/win95/prog/se055956.html 2つあるんで、使いやすくて問題なく動くほうを使ってください。

回答No.4

> それだけでいいんですか!? > てっきり二辺×間の角のsinかと思ってました・・・・ いやいやいや、実際の所わかりません。 どんな三角形か、よりも三角形のどの要素を使って面積を求める事になっているのか、条件が分からないと正しいかどうか判断できません。 二辺と間の角で求めよ、となっているなら、その条件で式を考えなくてはいけません。 これはプログラムを構築する以前に「仕様」の問題です。 底辺と高さを与えると言われていたら、二辺の長さは分かりっこ無いですよね。 こういった条件を何も提示されていないなら、簡単な方で答えても間違ってはいないですよね?(^_-)

azz12qefwf
質問者

お礼

それもそうですね。 たぶん、底辺×高さ÷2の方だと思います。 ご意見有難うございました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

そうですね。3角形のほうはNo.2の方の通りなので2つ目を整理してプログラム的にしてみます。 (1)n,rを入力します。 (2)(n ≧ r)かチェックして問題がないなら続行。 (3)sとaを初期化します。 (4)sに(n-a)を掛け算します。 (5)aに1を足します。 (6)r回ループを回るまで(4)~(6)を繰り返します。 (7)sを表示します。 では質問です。(1)~(7)で使うBASICの命令は何でしょうか? sとaを初期化しますと書きましたが、初期値は何でしょう? あっ、使っているBASICの種類を聞き忘れました。ソフトメーカーはどこのメーカーのBASICでしょう?バージョンは?

azz12qefwf
質問者

お礼

(1)INPUT n,r (2)IF n>=r THEN GOTO (3) (3)s=1 a=1 (4)s*(n-a) (5)a+1 (6) (7)PRINT s みたいな感じでしょうか? (4)~(6)がよくわかりません・・・・ 初期値はどちらも1でしょうか? ソフトメーカーは・・・わかりません。 高校の授業ではN88というソフトで実習をしているのですが・・・

回答No.2

三角形はどんな三角形であれ、底辺×高さ÷2ですよね? その3つの変数へ数値を代入して計算結果を表示させれば終わりでは?

azz12qefwf
質問者

お礼

それだけでいいんですか!? てっきり二辺×間の角のsinかと思ってました・・・・ 有難うございます

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

教えて!gooでは学校の問題の丸投げは[作成依頼目的]でNGです。自分が出来たところまでを必ず書いてください。 もし全然出来ないなら、まず先生か友達に分かるまで徹底して聞きましょう。そのために授業料を払って学校に行っているんですから。 2つの問題の解法を箇条書きで書けるなら、BASIC化するヒントはあげられると思います。

azz12qefwf
質問者

お礼

有難うございます。 そうですよね。 もっと頑張ってみないとダメですね・・・ 一応、このあたりまでは出来たのですが・・・ nPrの方は  (n ≧ r)  n,rを入力して  求める答えをSとして  S = n * (n-1) * (n-2) * ・・・ * (n-r+1)  Sを表示 みたいな感じでいいと思うのですがどうでしょうか? 三角形の面積の方はどんな三角形か書いてないので解らないです・・・

関連するQ&A

  • HPの中にBASICのプログラムを使えますか?

    今、完成しているBASICの計算用プログラムがあります。 例えば、BASICのプログラムの入力がA、出力がBです。 Webで入力としてAを入力し、Bの出力が欲しいです。 できますでしょうか? 教えてください。 お願いします。

  • N88BASIC,F-BASICで書いたプログラムをWINDOW(XP

    N88BASIC,F-BASICで書いたプログラムをWINDOW(XP,or 7)上で、ランさせて、その結果をプリントアウトさせたいのです。  window95で、MS-DOS-basicをF-BASICに翻訳し、プリンターはEPSON-700V2Cにより、計算結果を記録しておりましたが、最近のWINDOW XPおよび、プリンター(EPSONほか)では、プリントアウト出来なくなっております。  BASICからの、計算結果をプリントさせる方法を、お教えいただければ、また、  basicをプリント可能なものに、変換できるような、プログラムがあれば、幸いです。

  • 十進BASICでのプログラム

    星型五角形 あるいは, n を入力し, 星型 n 角形を描くのプログラムを書きたいのですが教えてください。

  • N88BASIC

    N88BASICのプログラムのソースをwindowsのメモ帳でよみたいのですが。 なにかコンバートツールはないのでしょうか? また。プロッピーにプログラムのソースがあるのですが よろしくおねがいします。

  • 球の体積と表面積を表示するプログラム

    高校生です。 学校であった問題なのですがいまいち理解できません。 いまのところ習ったものはprintf関数とscanf関数のみです。 問題を書くので誰かご教授ねがえませんでしょうか? Q.半径をキーボードから入力し球の体積と表面積を表示するプログラムを作成しなさい。なお、入力は整数値で行い、面積は実数値で表示するものとする。 公式 球の体積=4/3πr3(三乗です。)    球の表面積=4πr2(二乗です。)    r:球の半径 π:円周率(プログラム上では3.14を用いる) お願いします。

  • WINDOWS3.1の起動(N88BASIC)

     NECPC-9821BF/U8W WINDOWS3.1にN88BASICをインストールしたパソコンがあり、現在BASICの学習に取り組んでおります。  WINDOWS3.1はDOSよりの起動と覚えておりますが、現在過去にBASICで組み込まれたプログラムが立ち上がってしまいます。  新しくプログラムを書く時は、一度立ち上がったプログラムを終了し、「SYSTEM」でWINDOWS3.1を起動し、デバイスマネージャーでN88BASIC.EXEを起動しております。 (1)PC起動の際通常はDOSかWINDOWS3.1が起動するとおもいますが、どのようにすれば宜しいのでしょうか? (2)(1)が分かればよいと思いますが、通常N88BASIC.EXEを立ち上げるにはどのように行えば宜しいのでしょうか? (3)N88BASICをFILESで確認しますとAUTOEXECがあります。この機種はDOSだからDOS側で編集するのでしょうか? (4)WINDOWS3.1はよくわからないのですが、WINDOWS終了時はDOSの画面が出るのが正しいのでしょうか? (5)DOSでDIR/Wでファイルを確認しますとN88BASIC EXEがあります。  DOSでA:\>の後にN88BASICと打っても起動しません、DOSより直接BASICを起動するにはどうしたら宜しいのでしょうか? 質問が多くなりましたが宜しくお願いします。

  • n88basicからwindows版Basicへの変換について

    以前に作成したn88basic版のプログラムをwindows版Basicに変換して使いたいと思い、Vector内のwindows版Basic(フリーソフト)をいくつか試してみたのですが、次の3つの条件を満たすプログラムがなかなか見つかりません。 n88basic版を卒業された先輩方、こんなプログラムを試してみたらというアドバイスがありましたら、よろしくお願いします。 (条件1)chain merge "filename",line%,all,delete 50000-60000 文が使えること。 または、chain文とdelete文が使えること。 "filename"の部分は、50000-60000 に書かれた各月日の気象データ等で、このFileを置き換えてRead Data文で読み込んでいました。 (条件2)プログラム全体を8個のプログラムに分けておのおのをバッチファイルで起動させていましたが、それに対応するプログラム。 (条件3)出来るだけn88basicから移行するのにやさしい プログラム。(頭が固くなっていますので----。)

  • n88basicのプログラムを十進ベーシックに翻訳してください。

    n88basicの次のプログラムを十1進ベーシックではどうなるのか教えてください。 10 cls 20 p=1000 30 for n=1 to 1000:next n 40 p=p-1 50 if p=-1 then end 60 locate 10,10:print p 70 goto 30

  • N88BASIC DISKBASIC

    N88BASIC DISKBASICというすごく古いシステムなんですが   1.フロッピーの初期化をしたいのですがコマンドがしりたいのですが   おしえてくだい。 2.XXX.BASのプログラムをWINDOWSでみれるように   コンバートしたいのですが、何かいい方法はないですか ※MS-DOSのN88BASICではありません  DISKがなくてフロッピーだけで動くシステムみたいんなんですが

  • 10進basicにて

    今、10進basicで配列についてやっています。 問題は a(1),a(2)…a(5)を自ら入力して、偶数が少なくとも一つあれば「あり」、全てが奇数ならば「なし」と表示するプログラムを組みなさい。 というものなんです。 一つずつのaの判定ならできるのですが、全部の値を入力した後に、「あり」「なし」の判定をどう出せばいいのかわかりません。 100 dim a(5) 200 for k=1 to5 300 input a(k) この後はどうすればいいのでしょうか。 ご回答お願いします。

専門家に質問してみよう