質問編集履歴

2

誤字修正

2020/05/02 03:20

投稿

hanzo5555
hanzo5555

スコア2

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
 
58
58
 
59
- Print(a0,a1,a2,a3,a4,a5); //本来、012345となるはずが、00005と、最後の値しか検索できていない
59
+ Print(a0,a1,a2,a3,a4,a5); //本来、012345となるはずが、00005と、最初と最後の値しか検索できていない
60
60
 
61
61
 
62
62
 

1

コードのミスを修正して、もう少しわかりやすく編集しました。

2020/05/02 03:20

投稿

hanzo5555
hanzo5555

スコア2

test CHANGED
File without changes
test CHANGED
@@ -18,69 +18,83 @@
18
18
 
19
19
 
20
20
 
21
+ ```MQL4
22
+
21
23
  int OnInit()
22
24
 
23
25
  {
24
26
 
25
27
 
26
28
 
27
- //うまくいかないパターン
29
+ double a[6];
28
30
 
29
- double a[4];
31
+ a[0] = High[0];
30
32
 
31
- a[0] = High[1];
33
+ a[1] = High[1];
32
34
 
33
- a[1] = High[2];
35
+ a[2] = High[2];
34
36
 
35
- a[2] = High[3];
37
+ a[3] = High[3];
36
38
 
37
- a[2] = High[4];
39
+ a[4] = High[4];
40
+
41
+ a[5] = High[5];
38
42
 
39
43
 
40
44
 
41
- int b1 = ArrayBsearch(a, High[1], WHOLE_ARRAY, 0, MODE_ASCEND);
45
+ int a0 = ArrayBsearch(a, High[0], WHOLE_ARRAY, 0, MODE_ASCEND);
42
46
 
43
- int b2 = ArrayBsearch(a, High[2], WHOLE_ARRAY, 0, MODE_ASCEND);
47
+ int a1 = ArrayBsearch(a, High[1], WHOLE_ARRAY, 0, MODE_ASCEND);
44
48
 
45
- int b3 = ArrayBsearch(a, High[3], WHOLE_ARRAY, 0, MODE_ASCEND);
49
+ int a2 = ArrayBsearch(a, High[2], WHOLE_ARRAY, 0, MODE_ASCEND);
46
50
 
51
+ int a3 = ArrayBsearch(a, High[3], WHOLE_ARRAY, 0, MODE_ASCEND);
52
+
47
- int b4 = ArrayBsearch(a, High[4], WHOLE_ARRAY, 0, MODE_ASCEND);
53
+ int a4 = ArrayBsearch(a, High[4], WHOLE_ARRAY, 0, MODE_ASCEND);
54
+
55
+ int a5 = ArrayBsearch(a, High[5], WHOLE_ARRAY, 0, MODE_ASCEND);
48
56
 
49
57
 
50
58
 
51
- Print(" b1 is ",b1,"(←返るべき値は0), b2 is ",b2,"(←返るべき値は1), b3 is ",b3,"(←返るべき値は2) b4 is ",b4,"(←返値は4)");
59
+ Print(a0,a1,a2,a3,a4,a5); //本来、012345となはずが、00005と、最後の値しか検索でていない
52
60
 
53
61
 
54
62
 
55
- //うまくいくパターン
56
-
57
- //全く同じ処理をHigh[]を使わずに実数で処理した場合。これは想定どおりに動きます。
63
+ //以下は全く同じ処理をHigh[]を使わずに実数で処理した場合。これは想定どおりに動きます。
58
64
 
59
65
 
60
66
 
61
- double c[4];
67
+ double c[6];
62
68
 
63
- c[0] = 106.891;
69
+ c[0] = 106.890;
64
70
 
65
- c[1] = 106.892;
71
+ c[1] = 106.891;
66
72
 
67
- c[2] = 106.893;
73
+ c[2] = 106.892;
68
74
 
69
- c[3] = 106.894;
75
+ c[3] = 106.893;
76
+
77
+ c[4] = 106.894;
78
+
79
+ c[5] = 106.895;
70
80
 
71
81
 
72
82
 
73
- int d1 = ArrayBsearch(c, 106.891, WHOLE_ARRAY, 0, MODE_ASCEND);
83
+ int c0 = ArrayBsearch(c, 106.890, WHOLE_ARRAY, 0, MODE_ASCEND);
74
84
 
75
- int d2 = ArrayBsearch(c, 106.892, WHOLE_ARRAY, 0, MODE_ASCEND);
85
+ int c1 = ArrayBsearch(c, 106.891, WHOLE_ARRAY, 0, MODE_ASCEND);
76
86
 
77
- int d3 = ArrayBsearch(c, 106.893, WHOLE_ARRAY, 0, MODE_ASCEND);
87
+ int c2 = ArrayBsearch(c, 106.892, WHOLE_ARRAY, 0, MODE_ASCEND);
78
88
 
89
+ int c3 = ArrayBsearch(c, 106.893, WHOLE_ARRAY, 0, MODE_ASCEND);
90
+
79
- int d4 = ArrayBsearch(c, 106.894, WHOLE_ARRAY, 0, MODE_ASCEND);
91
+ int c4 = ArrayBsearch(c, 106.894, WHOLE_ARRAY, 0, MODE_ASCEND);
92
+
93
+ int c5 = ArrayBsearch(c, 106.895, WHOLE_ARRAY, 0, MODE_ASCEND);
80
94
 
81
95
 
82
96
 
83
- Print(" d1 is ",d1,"(←返るべき値は0), d2 is ",d2,"(←返るべき値は1), d3 is ",d3,"(←返るべき値は2) d4 is ",d4,"(←返べき値は4)");
97
+ Print(c0,c1, c2,c3,c4,c5); //こちら想定通り、012345と表示され
84
98
 
85
99
 
86
100
 
@@ -88,7 +102,9 @@
88
102
 
89
103
  }
90
104
 
105
+
91
106
 
107
+ ```
92
108
 
93
109
  ### 試したこと
94
110