• ベストアンサー

簡単なベーシック BASICが分かりません。

1 INPUT "華氏";F 2 PRINT C=5/9*(F-32) 3 PRINT K=C+273.15 4 end 2の変数の型が一致しませんとでます。 なぜでしょうか? ご指摘お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.2

BASICなんて扱わなくなって相当経つけど、PRINT文の引数に計算式を書くのって最近はアリなんですか? こんなふうに分解したらエラーはどうなるでしょう? 1 INPUT "華氏";F 2 C=5/9*(F-32) 3 PRINT C 4 K=C+273.15 5 PRINT K 6 end

iwannadie
質問者

お礼

教授に確認したところ、当っていました! ありがとうございました。 ホントに助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.3

No.2です。ちょっと間違いやすい表現をしてしまったので補足。 「PRINT文の引数に代入式を書くのって最近はアリなんですか?」に訂正。 PRINT文の引数に計算式が使えない訳ではないですね。 PRINT 5/9*(F-32) ならエラー出ないでしょうから。

iwannadie
質問者

お礼

それも確認したところ、やはりおっしゃる通り使えるようです。 しかし、よくこのような難しい言語が理解できますね。 すごいですね! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

普通でいけば、Fが文字型になっているから。 うっかりミスなら、Cが文字型(あるいはその他)で型宣言されている。

iwannadie
質問者

お礼

うっかりミスは確認しましたが、ありませんでした。 ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • BASICでの波形合成

    学校でのBASICの宿題で、複数のSIN波を合成する問題で 100 CLS 3:LINE(0,240)-(640,240),7 110 INPUT"基本波の周期は";C 120 INPUT"基本波の振幅は";W 130 INPUT"基本波の移送は";F 140 INPUT"第何倍音まで計算する";N:DIM A(N),B(N) 150 FOR I=1 TO N 160 PRINT I;:INPUT "番目の倍音の振幅は";A(I) 170 PRINT I;:INPUT "番目の倍音の移送は";B(I) 180 NEXT I 190 FOR K=0 TO 360/C*2*3.14159# STEP 3.14159#/90 200 X=C*K-F:Y=-(W*SIN(K))+240:LINE-(X,Y),4 210 NEXT K 220 FOR G=1 TO N:PSET(0,240),3 230 FOR H=0 TO 360/C*2*3.14159# STEP 3.14159#/90 240 X=C/(G+1)*H-B(G):Y=-((A(G))*SIN(H))+240:LINE-(X,Y),3 250 NEXT H,G ここで描いたSIN波を合成した波を描く方法が分からない状態です。 どうにも解決できないのでここに質問しました。どなたか分かる方がいたら教えてください。

  • プログラミングの宿題

    大学に入って初めてプログラミングを習いましたが、2回目の授業ではやくも関数のプログラムの宿題が出されました。 問題は「摂氏Cを入力し、これを華氏Fと絶対温度Kに換算せよ。ただし換算式はそれぞれ、F = 32.0 + 1.8c、K = 273.16 + cとし、華氏および絶対温度を求める部分は、それぞれ関数化すること。」というものなのですが、一応教科書にのっとって、作ってみましたが、コンパイルエラーが起こってしまいます。解決策が見つからないので質問することにしました。 以下が私が作ったプログラムです。 ------------------------------------------------- #include<stdio.h> float Sessi(float); void main(void) { float c; float kasi, zettaiondo; c = 25; kasi = Sessi(c); zettaiondo = Sessi(c); printf("華氏F = %f\n", kasi); printf("絶対温度K = %f\n", zettaiondo); } float Sessi(float c) { float f; f = 32.0 + 1.8 * c; return(f); float k; k = 273.16 + c; return(k); } ------------------------------------------------- 上はとりあえず、C=25の場合の換算です。 このプログラムですと、実行はできるのですが、C=○のところにどんな数字を入れても華氏F、絶対温度Kともに、77.00000になってしまいます。明らかにおかしいのは自分でも分かりますが、まだはじめたばかりなので分けが分かりません。 慣れている方には馬鹿馬鹿しい質問ですが、ご指摘お願い致します。

  • オブジェクト型の変数にフォームを入れて操作した

    オブジェクト型の変数にフォームを入れて操作したいのですが Sub アクセス() Dim F As Form Set F = "フォーム1" End Sub 以下省略 フォーム1の部分が 「型が一致しません」と言うエラーになりまず。 どこが間違ってるのでしょうか?

  • BASICからC言語に

    line input #2,w$ ex$=left$(w$,3) print"extension=";ex$ というBASICのプログラムをC言語に変換したいのですがどのようにしたら良いのでしょうか?

  • BASICからC言語に変換

    F-BASICでline inputとなっているのをC言語で同様に使用する場合には何を使用すればいいでしょうか?

  • FORTRAN手助けを・・

    摂氏から華氏、華氏から摂氏が出るプログラムを作ろうと思っています。 具体的に言えば100.0C(摂氏)を入力すると...F(華氏)の形で表示したいのです。最後にF,Cをつけ、それによって摂氏、華氏と認識するにはどのようにしたら良いのでしょうか? 答えでなくてもかまいません。何かヒントになるようなことでもいいので教えて下さい。

  • FORTRAN77

    助けてください~ --------------------------------------- 華氏゜Fが与えられた時、摂氏℃と絶対温度Zを求めよ C=(5/9)(F-32),Z=C+273.16 ここで華氏゜Fは書式カードF1.5でカードに用意されていて、数値999.9のデータを読み込んだら終わりとする。 ただし、華氏゜Fの値は、-50.0゜Fから200.0゜Fまで10.0゜Fごとに変化させる。 --------------------------------------- で、私が頑張って(っていっても教科書を見ながら)書いたのが以下です。 --------------------------------------- * write(6,200) 200 format(1h ,8x,1hf,10x,1hc, 9x,1hz) 10 read(5,100)f 100 format(f5.1) if(f.eq.999.9)stop c=(f-32.0)*5.0/9.0 z=c+273.16 write(6,201)f,c,z 201 format(1h ,3(5x,f5.1)) go to 10 end ------------------------------------- 100 formatの下からdo文を使うのが狙いかと思いますがよくわかりません。 ちなみに参考教科書は入力データが ------------------------------------- 32.5 135.5 68.3 999.9 ------------------------------------- となっていました。多分これは使わないです。 よろしくお願いします(><)

  • 問題がとけません

    以下の設問に答えよ。 型はC言語の基本型でchar型を除いたもので答えよ。 1.次の演算結果の型と値を求めよ。 100/10*5 2.次の演算結果の型と値を求めよ。 1.0f/2 3.次の演算結果の型と値を答えよ。 100/10*5.0 4.次の演算結果の値を答えよ。 54321-54321/100*100 5.次の演算結果の値を答えよ。※(int)(式)は,式の値の小数点以下を切り捨ててint型に変換する。 (int)(123/5.0+0.5) 6.次の演算結果の型と値を答えよ。 5<2 7.次の演算結果の型と値を答えよ。 5.0>2 8.変数a,b,cに関して,a<b<cの真偽を評価する論理式を書け。 9.次の文が実行された後,変数i,kの値はいくらになっているか。変数はどちらもint型とする。 i=0; k=0; k=5+(++i); 10.次の文が実行された後,変数kの値はいくらになっているか。変数はどちらもint型とする。 i=5; k=5; k *= i<0 ? (-i) : i; 11.次の文Aは実行されるか。kの型はintである。文法的な誤りはない。 if(k = 0)  文A

  • オブジェクト型の変数にフォームを入れたい

    VBAです。アクセスです。 Sub test2() Dim obj As AccessObject Dim f As Form For Each obj In CurrentProject.AllForms Set f = obj.Name Debug.Print f.Name 色々操作するコード Next End Sub このコードがうまく行かない理由がわからないのです。 Set f = obj.Nameの.Nameで、 「型が一致しません。」のエラーになります。 しかし、Set f = objにすると、 実行時エラー13になります。 オブジェクト型の変数にsetでフォームの名前を入れて、 その後いろいろ操作させるにはどのようにすればよろしいでしょうか?

  • 以下は、N88BASIC エラー・

    >10 ANSWER = INT(RND(1)*10)+1 >20 INPUT "GUESS (1-10)? ", GUESS >30 IF GUESS > ANSWER THEN PRINT "TOO HIGH!" : GOTO 20 >40 IF GUESS < ANSWER THEN PRINT "TOO LOW!" : GOTO 20 >50 IF GUESS = ANSWER THEN PRINT "YOU GOT IT!" : END 以上はN88BASICWINDOWS95互換プログラムで作成した、簡単な数あてゲーム しかし、実行しようとすると「文法エラー」とでる。 どこが問題か?