• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複雑なマクロ計算のプログラム)

複雑なマクロ計算のプログラム

このQ&Aのポイント
  • この記事では、複雑なマクロ計算のプログラムについて解説します。
  • エクセルのファイルから3列のデータを取得し、関数f(x,y,t)=c値を求めます。
  • 計算結果をCSVファイルに保存する方法も紹介します。

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

  • ベストアンサー
  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

選択セルをA2、B2、C2、と移動させて1回計算、 これが終わるとA3B3C3と移動、 この繰り返しで何もない行になればマクロも終わり。 計算にはxytは引数で与えるといいでしょう。 選択セル位置の操作はFOR文、OFFSET等でできます。 ファイルが毎度違うなら最初はシート名固定にするとか。 計算ロジックを記載してますが、わからないのはセル操作ですか?。計算ロジック記載しているのでこれの何がわからないのかあいまいです。

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

その他の回答 (2)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3
全文を見る
すると、全ての回答が全文表示されます。
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

説明が解りにくいです。 >マクロにて入力する変数は、d, hs, htの値です。 マクロにて入力? 誰が何にどうやって入力するのですか? [step1]の内容の意味がさっぱり解りません。 Σα とだけしか書いていませんが、だから何なのですか? i=1の時、何をするんですか? [step2]で、u,wを変数にするのは解りましたが、u1_1の最初の1と次の1は何を表しているのですか? vを変数とする、とは書いていませんが、v1_1も変数なんですよね?   (x1-xi)/hs=u1_1,   (y-yi)/hs=v1_1,   (t-ti)/ht=w1_1 となっていますが、   (y1-yi)/hs=v1_1,   (t1-ti)/ht=w1_1 の間違いじゃないですか? i=1のときは、 (x1-xi)/hs=(x1-x1)/hs=0 ということで良いですか? [step3]で、 (w1_!)^2=M1 とありますが、 (w1_1)^2=M1 の間違いですか? 最終的に、 『マクロを記録することはできるのですが、 ファイルによって、x,y,tが何行もあるとなると、一貫してコーディングができないため、知恵をお貸しください。』 ということだと理解していますが、そうであれば、もしx,y,tがたった3行だった場合は、部分的に値の違う似たようなコードを3つ(3行分)書くだけなので、何とか書けるんですよね? それを提示してみましょう。

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

関連するQ&A

  • 三角形の外接円の中心と半径を出力するcプログラム

    http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0010&lang=jp この問題で、sample inputのデータを入力すると問題なく出力されるのですが、コードを提出するとなぜかWrong Answer となってしまいます。 どこがおかしいのか教えてください。。 #include<stdio.h> #include<math.h> int main(){ double x1,x2,x3,y1,y2,y3,p,q,r; int i,n; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3); p = ((y1-y3)*(y1*y1-y2*y2+x1*x1-x2*x2)-(y1-y2)*(y1*y1-y3*y3+x1*x1-x3*x3))/(2*(y1-y3)*(x1-x2)-2*(y1-y2)*(x1-x3)); q = ((x1-x3)*(x1*x1-x2*x2+y1*x1-y2*x2)-(x1-x2)*(x1*x1-x3*x3+y1*y1-y3*y3))/(2*(x1-x3)*(y1-y2)-2*(x1-x2)*(y1-y3)); r = sqrt((x1-p)*(x1-p)+(y1-q)*(y1-q)); printf("%.3f %.3f %.3f\n",p,q,r); } return 0; }

  • このプログラムの修正箇所を教えていただけないでしょうか?

    xとyをそれぞれ0から10まで1きざみで変え、そのすべてを組み合わせた平面上の11x11個の点(x,y)を考え、これらの点のうちで、原点が(6,6)、半径5の円の内側(円周上は除く)に含まれる点の数を出力するプログラム。 とりあえず、原点が(6,6),半径5の円の内側なので,原点(6,6)と点(x,y)との距離の2乗が5*5より小さいと考えました。 そこで私が考えたプログムなんですが、結果と照らし合わせたところ上手く計算が合いませんでした…。 #include <stdio.h> int main(void) { int x,y,h1=0,i1=0,j1=0,k1=0,l1=0,m1=0,n1=0,o1=0,p1=0,q1=0,r1=0,t=0; /*y=0の行について考える*/ for(x=0,y=0;x<=10;x++){ if((6-x)*(6-x) + (6-y)*(6-y)<=5*5) h1+=1; } /*y=1の行について考える*/ for(x=0,y=1;x<=10;x++){ if((6-x)*(6-x) + (6-y)*(6-y)<=5*5) i1+=1; } :(中略yを1ずつ増やして同じことの繰り返し) : : /*y=10の行について考える*/ for(x=0,y=10;x<=10;x++){ if((6-x)*(6-x) + (6-y)*(6-y)<=5*5) r1+=1; } t=h1+i1+j1+k1+l1+m1+n1+o1+p1+q1+r1; printf("%d",t); return(0); } 自分自身、初心者でかなりまどろっこしい書き方をしていると思います; ここで完全に自分では詰まってしまったので、計算が合うような修正箇所、簡潔な書き方、ヒント等をどなたかご教授いただけると幸いです。 よろしくお願いします。

  • 代数学☆イデアルの問題!!

    次の問題について教えてください!! N:自然数 R:環 L,M:左イデアル LM={x1・y1+x2・y2+・・・+xn・yn |         xi∈L,yi∈M (i=1,2,・・・,n),n∈N} LMがイデアルであることを示せ。 左イデアルであることは示せたんですが、右イデアルであることが示せません。 右イデアルを示すために a∈LM,r∈Rに対して a=x1・y1+x2・y2+・・・+xn・yn (xi∈L,yi∈M) とおくと、 a・r=(x1・y1+x2・y2+・・・+xn・yn)・r    =(x1・y1)・r+(x2・y2)・r+・・・+(xn・yn)・r    =x1・(y1・r)+x2・(y2・r)+・・・+xn・(yn・r) になって、 a・r∈LMを示すのにyi・r∈Mを示すのかな、と思ったのですが、 どう示すのか分りません。  やり方自体間違っているのでしょうか、それともyi・r∈Mを示す方法があるのでしょうか。教えてください!!

  • プログラムに内容と計算の質問です。

    こんにちは。 補間多項式についての、コンピュータのプログラムの解読に困っています。内容は、 「For the numerical experiments suggested in the computer problems, the following two procedures should be satisfactory. The first is called Coef. It requires as input the number n and tabular values in the array {Xi} and {Yi}. Remember that the number of points in the table is n+1. The procedure then computes the coefficients required in the Newton interpolating polynomial, storing them in the array{Ai}. -------------------------------------------------------- procedure; Coef(n,{Xi},{Yi},{Ai}) real array; {Xi}0:n, {Yi}0:n, {Ai}0:n integer; i,j,n for i=0 to n do {Ai}←{Yi} end for for j=1 to n do for i=n to j step -1 do Ai←({Ai}-{Ai-1})/({Xi}-{Xi-j}) end for end for end procedure Coef --------------------------------------------------------- このプログラムのn=3の時を考えるとき、  (1)j=1のとき、i=3,2,1 <j=1,i=1> {A1}=({A1}-{A0})/({X1}-{X0}) =({Y1}-{Y0})/({X1}-{X0}) <i=1,i=2> {A2}=({A2}-{A1})/({X2}-{X1}) =({Y2}-{Y1})/({X2}-{X1}) <i=1,i=3> {A3}=({A3}-{A2})/({X3}-{X2}) =({Y3}-{Y2})/({X3}-{X2}) (2)j=2のとき、i=3,2 <j=2,i=1> A1=({A2}-{A1})/({X2}-{X0})          ={[({Y2}-{Y1})/({X2}-{X1})]-[({Y1}-{Y0})/({X1}-{X0})]}/({X2}-{X0}) =この式変形をしたいのですが、どのように         すれば良いのかわかりません。ラグランジェ         型になりそうでなりません(泣)         (1)で求めた{A1},{A2},{A3}を使って求めな         いといけないみたいです。 見にくい表し方で申し訳ありません。 アドバイスお願いします!!

  • 直線 x=-3-2t、y=4+t ...(1) と直線 x=-3+3t, y=-7+4t....(2)

    問題1 直線 x=-3-2t、y=4+t ...(1) と直線 x=-3+3t, y=-7+4t....(2)のグラフを書き、その交点を求めよ。 問題2 直線(1)、(2)のなす角をΘ(0°≦Θ≦90°)とするとき、CosΘを求めよ。 問題3 直線(1)と(2)について、それぞれの方向余弦のうち、xの値が正であるものを求めよ。 ⇔問題1はとけましたけど、問題2と3がわかりませんでした。 まず問題1は、x=-3-2t=-3+3s y=4+t=-7+4sとしました。sと置き換えたのは=とした時にtの値が同じとは限らないので、 結果 2t+3s=0 t-4s=-11となり、 t=-3、s=2となりました。 交点は(x、y)=(3.1)となりました(答) 問題2は (1)の方向ベクトルと(2)の方向ベクトルがどのようにしたら求めてよいのか解らないのでとけませんでした。 いままで学んだ内容だと、二点P1(-1,3),P2(2,-1)をとおる媒介変数tを表せという問題をといてきて、 単純にp1p2=(x-x1,y-y1) をやって方向ベクトルをもとめ、x=x1+tl,y=y1+tmの公式にしたがってx=-1+3t,y=3-4tと方向ベクトルを求めていたのですけど、 今回はx-x1にあたる部分が題意を読んで何処なのかわかりませんでした。 題意のx=-3-2t、y=4+t (1)と(2)の式からx1の部分をー3、y1の部分を4とみるのでしょうか? そうすると、x-x1、y-y1のx1とy1の部分はわかるのですけど、xとyが解らないので、引き算ができず、方向ベクトルが求まりませんでした。 答えをみるとl→=(-2,1)(1) m→=(-3、-4)(2)となってました。どうやったらこのように求まるのでしょうか? 問題3は手が付けられませんでした>_< だれかこの問題詳しく教えてください、宜しくおねがいします!!>_<

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • 積分の計算をお願いします。

    qは4元ベクトルで、 q=(q0, p1, p2, p3) , p=(p1, p2, p3) とする。このとき ∫d^4q/(2π)^4 (i/(q0^2-p1^2-p2^2-p3^2+iε)e^(-i(q0x0-p1x1-p2x2-p3x3) =∫d^3q/(2π)^3(1/2|p|)e^(-i(q0x0-p1x1-p2x2-p3x3) を示してください。

  • ブロック行列の計算

    ブロック行列の計算 P:=[Y N] P^(-1):=[X M]   [N~ Z]     [M~ W] ~は転置を表し N M W X Y Zは時間微分可能です 新たに Π:=[X I]   [M~ 0] Iは単位行列,0は零行列です このとき Π~PΠ=[X I]       [I Y] これは計算して実際こうなること確かめたんですが Pの時間微分を・Pとして(他の変数でも・で書きます Π~・PΠ=[ -・X  X・Y+M・N~]       [・YX+・NM~  ・Y  ] こうなるらしいですが -・Xのところが出せません _12 _21 _22要素のものは実際これになりましたが どのような作業をすればこうなるんでしょうか

  • テーパー加工のプログラムにおいて

    G41 G1 G51 X19.3925 T5. N180 G3 X-19.3925 I-19.3925 N190 X19.3925 I19.3925 N200 G40 G1 G50 X0. T0. N220 M30 % とするのと G1 X19.3925 G41G51T5. N180 G3 X-19.3925 I-19.3925 N190 X19.3925 I19.3925 N200 G1X0. G40 G50 T0. N220 M30 とするののちがいを教えて頂けないでしょうか? よろしくお願いします。

  • 確率の問題です!

    X1,X2は独立な確率変数で、P(Xi=k)=(1-pi)pi^k-1 (i=1,2 k=1,2,…) (1)E(X1) (2)E(X1X2) (3)P(X1 < X2) (1)はΣk(1-p1)p1^k-1を計算して1/(1-p1) (2)は1/{(1-p1)(1-p2)}となるのは分かったのですが(3)が分かりません。教えてください。 あと、確率変数XとYは互いに独立で、それぞれパラメーターλ,ν(0<λ,ν<1)の幾何分布に従うとする。Z=min{X,Y}とおくときP(Z=N)(n=1,2,…)を求めよ。 この問題はさっぱり言ってる意味が分かりません。分かる方是非教えてください。