[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 184 1...177178179180181182183184185186187188189190191...652 新しいコメント Всеволод 2011.09.17 18:41 #1831 double Mas[];//массив куда надо заносить данные ゼロが出力される場合は、指で説明するよりもコードを添付したほうがよいでしょう。 オープンな配列を宣言した場合は、ArrayResizeを 行うか、すぐに大きな次元を宣言することをお勧めします。 Всеволод 2011.09.17 18:51 #1832 double mas[]; int start() { double v1=mas[1]; mas[1]=89; double v2=mas[1]; ArrayResize(mas,iBars(NULL,0)); double v3=mas[1]; mas[1]=89; double v4=mas[1]; Alert(v1,"-",v2,"-",v3,"-",v4); return(0); } このスクリプトは純粋に楽しむためのものですが、Alert(GetLastError()) をキャッチすることもできます; get err_array_index_out_of_range4002配列のインデックスが 範囲外である 削除済み 2011.09.17 18:58 #1833 splxgf: ゼロが出力される場合は、指で説明するよりもコードを添付したほうがよいでしょう。 開いている配列を宣言した場合は、ArrayResizeを行うか、すぐに大きな次元の配列を宣言することが望ましい。 最初の投稿ですでにコードを添付しています。ただ、どこかに正しい行を2つほど追加して配列を形成する必要があります。ま さにそれが本題でした)。 実際、どこかでこんな感じになっているはずだと思います。 ArrayResize(Mas,n)。 Mas[n]={diff}とする。 nは新しい次元、diffは結果の差分値である。 しかし、そのようにはならず、差分の0.00000をプリントしてしまう。ループの中、ループの後ろ、条件の中にも差分を入れることはすでに試しています。 要するに、茫然自失の状態です)。 書き方をご存知の方は、ぜひ教えてください。 削除済み 2011.09.17 19:04 #1834 splxgf: このスクリプトは純粋に楽しむためのものですが、Alert(GetLastError()) をキャッチすることもできます; get err_array_index_out_of_range4002配列のインデックスが範囲外である なるほど、コードの中で配列のサイズと値の両方を明示的に指定していることがわかりました。まさに、この記事で理解したことです。 でも、私の例では、なぜかできません(. Всеволод 2011.09.17 19:13 #1835 NickXXX: 配列の次元と値を明示的に指定する。 それ以外の選択肢はない。 double v1=mas[1]; mas[1]=89; Alert(GetLastError()); double v2=mas[1]; Alert(GetLastError()); ArrayResize(mas,iBars(NULL,0)); エレメントは、アクセスしても作成されません。 削除済み 2011.09.17 19:35 #1836 splxgf:それ以外の選択肢はない。 エレメントはアクセス時に生成されない。よし、見てくれ。正しく理解できているか? この例では、89という1つの値からなる1次元の配列を作成しています。 ちなみに次元数とは、1次元の配列の要素数のことです。プログラムの途中で変更できるのでは?結局のところ、最初に配列を明示的に指定しないのは無駄なことではないのです。例えば、I.e.。 double Mas[]; //1次元配列の初期化 int n=0; //配列の要素 数として利用することができます. さらに、私の例のように、次のようなループを行います。 に対して { if(...)//注目する条件 { n++;//何回動いたか数える diff=...興味のある値 } } そして、どこか他の場所で、一次元配列 Mas[n] に diff 値を詰め込みます(n は要素の数です)。 ごく普通に、そのようにできると思っていたのですが......。それとも、そうなのか? Всеволод 2011.09.17 19:45 #1837 forの前に、必要な要素数だけArrayResizeを追加 する。 例えば、ポイント ArrayResize(mas,iBars(NULL,0)); は、現在のウィンドウのチャートのバーの数を指向しています。または、iBarsの代わりに天文学的数字に近いものを指定することもできます。 配列は最初は空で作成されます。アクセスする前に、何個の要素を格納するかを指定する必要があります。完全なコードを掲載すれば、ナビゲーションが容易になります。 削除済み 2011.09.17 19:48 #1838 splxgf:forの前に、必要な要素数だけArrayResizeを追加する。例えば、ポイント は、現在のウィンドウにあるチャートのバーの数を指向しています。または、iBarsの代わりに天文学的数字に近いものを指定することもできます。 しかし、その前に要素の数が分からないので、if条件の数を計算するときに初めて分かることになる。forの後にArrayResizeを付けて みたところ、0が要素として出力されました。 Всеволод 2011.09.17 20:20 #1839 例では、要素数がマークされていない配列は使えないことを紹介しています。 最初の2回の呼び出しでエラーが発生し、0が返されます。 ゴキブリを駆除するには、次のように書けばよい。 double mas[999999]; うまくいったら、ゴキブリをどうにかしてください。 削除済み 2011.09.17 20:28 #1840 splxgf: この例では、要素数がマークされていない配列は使えないことを紹介しています。 最初の2回の呼び出しでエラーが発生し、0が返されます。 飼っているゴキブリを駆除するために。 うまくいったら、ゴキブリをどうにかしてください。 最初から要素数を指定する必要はなく、doubleのMas[]構造も適しています。 1...177178179180181182183184185186187188189190191...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ゼロが出力される場合は、指で説明するよりもコードを添付したほうがよいでしょう。
オープンな配列を宣言した場合は、ArrayResizeを 行うか、すぐに大きな次元を宣言することをお勧めします。
このスクリプトは純粋に楽しむためのものですが、Alert(GetLastError()) をキャッチすることもできます; get
ゼロが出力される場合は、指で説明するよりもコードを添付したほうがよいでしょう。
開いている配列を宣言した場合は、ArrayResizeを行うか、すぐに大きな次元の配列を宣言することが望ましい。
最初の投稿ですでにコードを添付しています。ただ、どこかに正しい行を2つほど追加して配列を形成する必要があります。ま さにそれが本題でした)。
実際、どこかでこんな感じになっているはずだと思います。
ArrayResize(Mas,n)。
Mas[n]={diff}とする。
nは新しい次元、diffは結果の差分値である。
しかし、そのようにはならず、差分の0.00000をプリントしてしまう。ループの中、ループの後ろ、条件の中にも差分を入れることはすでに試しています。
要するに、茫然自失の状態です)。
書き方をご存知の方は、ぜひ教えてください。
このスクリプトは純粋に楽しむためのものですが、Alert(GetLastError()) をキャッチすることもできます; get
なるほど、コードの中で配列のサイズと値の両方を明示的に指定していることがわかりました。まさに、この記事で理解したことです。
でも、私の例では、なぜかできません(.
配列の次元と値を明示的に指定する。
それ以外の選択肢はない。
エレメントは、アクセスしても作成されません。
それ以外の選択肢はない。
エレメントはアクセス時に生成されない。
よし、見てくれ。正しく理解できているか?
この例では、89という1つの値からなる1次元の配列を作成しています。
ちなみに次元数とは、1次元の配列の要素数のことです。プログラムの途中で変更できるのでは?結局のところ、最初に配列を明示的に指定しないのは無駄なことではないのです。例えば、I.e.。
double Mas[]; //1次元配列の初期化
int n=0; //配列の要素 数として利用することができます.
さらに、私の例のように、次のようなループを行います。
に対して
{
if(...)//注目する条件
{
n++;//何回動いたか数える
diff=...興味のある値
}
}
そして、どこか他の場所で、一次元配列 Mas[n] に diff 値を詰め込みます(n は要素の数です)。
ごく普通に、そのようにできると思っていたのですが......。それとも、そうなのか?
forの前に、必要な要素数だけArrayResizeを追加 する。
例えば、ポイント
は、現在のウィンドウのチャートのバーの数を指向しています。または、iBarsの代わりに天文学的数字に近いものを指定することもできます。
配列は最初は空で作成されます。アクセスする前に、何個の要素を格納するかを指定する必要があります。完全なコードを掲載すれば、ナビゲーションが容易になります。
forの前に、必要な要素数だけArrayResizeを追加する。
例えば、ポイント
は、現在のウィンドウにあるチャートのバーの数を指向しています。または、iBarsの代わりに天文学的数字に近いものを指定することもできます。
例では、要素数がマークされていない配列は使えないことを紹介しています。
最初の2回の呼び出しでエラーが発生し、0が返されます。
ゴキブリを駆除するには、次のように書けばよい。
double mas[999999];
うまくいったら、ゴキブリをどうにかしてください。
この例では、要素数がマークされていない配列は使えないことを紹介しています。
最初の2回の呼び出しでエラーが発生し、0が返されます。
飼っているゴキブリを駆除するために。
うまくいったら、ゴキブリをどうにかしてください。
最初から要素数を指定する必要はなく、doubleのMas[]構造も適しています。