• 締切済み

教えてください

二次関数と一次関数のグラフを書くプログラムなのですが、以下のように作ったところ   10 CLS 20 LINE(100,80)-(100,300) 30 LINE(80,280)-(300,280) 40 LINE(80,260)-(300,100) 50 LINE(200,260)-(190,255) 60 LINE(190,255)-(180,240) 70 LINE(180,240)-(170,215) 80 LINE(170,215)-(160,180) 90 LINE(160,180)-(150,135) 100 LINE(150,135)-(140,80) 110 LINE(200,260)-(210,255) 120 LINE(210,255)-(220,240) 130 LINE(220,240)-(230,215) 140 LINE(230,215)-(240,180) 150 LINE(240,180)-(250,135) 160 LINE(250,135)-(260,80) このプログラムを送ったところ「for nextをつかって汎用性のあるプログラムにできませんか。」というメッセージが返ってきたのですがどう直したらよいかわかりません。教えてください。

みんなの回答

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.4

#3です。すいません、忘れてました(バグです^^;)。 LINEで描いた後に XB = X YB = Y を入れます。

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.3

y = ax + b という汎用的なものということでしょう。 これをグラフにするとき、a, b は定数で、x を変化させ yを求めながらグラフを描きます。 たとえば、 A = 2 B = 5 XB = 0 YB = A * XB + B FOR X = 0 TO 200  Y = A * X + B  LINE (XB, YB)-(X, Y) NEXT のような感じです。 実際には画面の座標軸やスケールに合わせて X や Yの値をオフセットする事で画面上にきれいに表示されるようになります。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

同じような質問がありました。No404530です。 http://www.okweb.ne.jp/kotaeru_reply.php3?q=404530 で観てください。ただ処理系BASICが違う(上記はVB)ので、参考になりますでしょうか。 配列をつかわずとも、1点手前の値を記憶しておけば、出来ると思います。 理屈は簡単なのです(i*iを計算するだけ)が、2次曲線の特徴のある頂点辺りが適当なところへ表すこと、カーブが尖がりすぎず、平たくなりすぎないようにするための係数が工夫が必要で、私は手探りで決めました。

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

言語も書いてないし・・・ 昔のBASICかな? 配列変数のテーブルにすれば良いのじゃないでしょうか? でも、私ならプログラム中に書かずに、外部データファイルにしますけど? そうすれば、プログラムを触らずに、外部ファイルの書き換えだけで自由な腺が書けます。

関連するQ&A

  • 消す軌跡と残す軌跡

    For t = 0 To 6 Step 0.01 Picture1.Line (0, 0)-(Cos(t), Sin(t)) Picture1.Cls Picture1.PSet (Cos(t), Sin(t)) Next t アニメーションで Line文の描く軌跡は消したいのでClsを使ったのですが Pset文の描く軌跡は残したいのです。 その場合どうしたらいいのでしょうか? 上のプログラムですとline文の軌跡もPset文の軌跡も消えてしまいます。

  • basicでの三角関数のグラフの書き方??

    active basicを使って、sinxのグラフを書こうとしたのですが、出来ません。以下のようにやってみたのですが、x軸と平行な点線が描かれるだけ…。 100 cls3 110 line(50,550)-(1050,550) 120 line(550,50)-(550,1050) 130 for i=0 to 360 140 x=i/360:y=sinx 150 xw=500*x+550:yw=500*y+550 160 pset (xw,yw) 170 line -(xw,yw) 180 next i 990 end どこを直せばいいのか分かりません。初心者なので…。 どなたか分かる方がいらっしゃったら、教えてください。 宜しくお願いします。

  • エラーがでて困っています。

    デジタイザーという数値変換機を使ってグラフを数値化するプログラムを 作成したいと思っています。 デジタイザーはPCに認識済みでプログラム中でOPEN文でCOM1ポートを 開こうと思っていますが、実行するとエラーが出てしまいます。 通信ポートや通信速度等の設定は問題ないと思われます。 どなたか詳しい方がいらっしゃったら教えてください。 お願いします。 下にプログラムの一部を記します。 このプログラム中の4680行で メッセージの定義されていないエラーです、と エラーが必ず出ます。 他に何か間違いがあったら指摘して貰えたら嬉しいです。 4220 CLS 3 4230 WINDOW(0,0)-(639,399) 4240 VIEW(0,0)-(639,399) 4250 DIM X(1000),Y(1000),Q(12000) 4260 INPUT "FILE NAME >> ";AA$ 4270 BB$="C:\"+AA$+".FCV" 4280 AA$="C:\"+AA$+".DAT" 4300 INPUT "何分?",TTTT : INPUT "AU?",AAAA 4305 CHANGE=TTTT/3 4310 INPUT "カラム温度は";CT 4320 INPUT "流量は";FR 4325 INPUT "空隙率は";E 4326 CLS 3 4330 FOR I=0 TO 3 4340 LINE(100+I,40+I)-(500-I,300-I),5,B 4350 NEXT I 4580 WINDOW(40,40)-(3880*CHANGE,3860) 4590 VIEW(100,40)-(500,300) 4610 FOR I=1 TO 7 4620 LINE(40+I*500*CHANGE,3860)-(40+I*500*CHANGE,3700),5 4630 NEXT I 4650 FOR I=1 TO 7 4660 LINE(40*CHANGE,3860-(40+500*I))-(150*CHANGE,3860-(40+500*I)),5 4670 NEXT I 4680 OPEN "COM:N83NN" FOR OUTPUT AS #1 4690 OPEN AA$ FOR OUTPUT AS #2 4700 BEEP

  • c言語でグラフをつくる

    「三角関数sinとcosのグラフを描かせるプログラムを作成する。」という問題なのですが、色々本で調べてもうまくいきません。forで繰り返しをするまではなんとかわかったのですが。・゜・(ノД`)・゜・。

  • メイキング・プログラム!

    プログラムで、 ・二次関数のp,qのずれがあるグラフの定数などの値を入力して、 グラフを描くプログラム ・分数関数のp,qのずれがあるグラフの定数などの値を入力して、 グラフを描くプログラム ・式を入力して、その逆関数の式を表示し、さらにグラフを描くプログラム ・べき関数のグラフを描くプログラム 参考にして、やってみたいのです。これは、宿題とかではありません。なるべく簡単な構文でおしえてくださいまし 。

  • 音量のプログラミング

    現在waveIn()関数を使って音声を取得するプログラムを作っています。このプログラムにある一定の音量以上でメッセージを出し、それ以下なら別のメッセージを出すというのをリアルタイムで実行したいのですが、どんな関数を使えばいいのかで戸惑っています。 何かいいものがあれば教えてください。

  • C言語で今まで表示していた画面の消すには?

    こんにちわ, 今LinuxでC(C++でなく普通の)言語でプログラムを作っています。 それでいろいろprintfなどで表示していたものを消したいのですが,BASICでいうところのCLSのような画面を一度きれいにしてその後一番上の行からはじめるようなプログラム,関数などはないのでしょうか。 もしもありましたら教えてください。 よろしくお願いします。

  • Office 2003 excel vbaでグラフの種類を一系列毎に判

    Office 2003 excel vbaでグラフの種類を一系列毎に判定するマクロを組もうとしております。マクロの対象となるグラフには合計で4系列が含まれており、上から棒グラフ、棒グラフ、マーカーなしの折れ線グラフ、マーカー付のおれせんグラフとなっています。 以下のマクロを実行して、「xlbar」「xlbar」「xlline」「xlline」とメッセージが返る事を想定していたのですが、実際には「51」「51」「65」「4」とメッセージが表示されます。 どこで間違っているのかご教示いただけますと幸いです。 Sub 判定() Dim i As Integer Dim seriesCounts As Integer seriesCounts = ActiveChart.SeriesCollection.Count For i = 1 To seriesCounts MsgBox ActiveChart.SeriesCollection(i).ChartType Next i End Sub

  • エクセル2000で教えて下さい。  

    マクロでグラフを180度回転させたいのですが どうしても わかりません。 そこでcharts関数を使うのかな?と思うのですが 記述がわかりません。 よろしくお願いします。 例)vbsで動作させる場合の記述 Set objXLchart = objXL.Charts.Add() objXL.Visible = True objXLchart.Type = -4100 For intRotate = 5 To 180 Step 5 objXLchart.Rotation = intRotate Next For intRotate = 175 To 0 Step -5 objXLchart.Rotation = intRotate Next

  • 構造 他のクラスの構造体を別のクラスで使いたい。

    C#で以下のようにCls1で定義している構造体をCls2の引数に使いたいのですが 定義されていないエラーになります。 Cls2で再定義すると、同じものが2つできて修正するときに困りそうです。 プログラムの構造について、何か良い方法がありましたら教えてください。 namespace A { class Cls1 { public struct Kumi { public string name; public int age; } private test(){ Kumi k; k.name = "太郎"; k.age = 5; Cls2 c2 = new Cls2(); c2.Write(k); } } } 別のクラスファイル namespace A { class Cls2 { public Write(Kumi k){ } } }

専門家に質問してみよう