質問するログイン新規登録

回答編集履歴

5

追記0:オフトピに対しての根拠の追加

2021/10/26 08:14

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -4,7 +4,6 @@
4
4
  (おそらく質問者さんはお気づきかもしれませんが)
5
5
 
6
6
  なので、現実世界でならどうするかを考えるのです。
7
-
8
7
  今回の場合、割と楽な気がします。
9
8
 
10
9
  かっこが使われていますが、入れ子はなく、かつ数字は常に一桁であることが前提のようですから。
@@ -24,11 +23,8 @@
24
23
 
25
24
  ということは、『(…)で囲まれている式を先に計算』するということです。
26
25
 
27
- 構造をよくみてください。
26
+ 構造をよくみてください。必ず、“(”と“)”の数は同じであるはずです。そして、入れ子ではない。
28
27
 
29
- 必ず、“(”と“)”の数は同じであるはずです。
30
- そして、入れ子ではない。
31
-
32
28
  ということは、
33
29
 
34
30
  ```ここに言語を入力
@@ -46,10 +42,7 @@
46
42
 
47
43
  あとは実現方法。
48
44
 
49
- 現実世界で考えてみてください。
50
-
51
- 質問者さんは脳内ではどのようにやっていますか?
45
+ 現実世界で考えてみてください。質問者さんは脳内ではどのようにやっていますか?
52
-
53
46
  おそらく、かっこの中を先に計算して、そこをYとかのような別の値に変換しているのではないかなと。
54
47
 
55
48
  ```ここに言語を入力
@@ -63,20 +56,14 @@
63
56
 
64
57
  と置き換える。
65
58
 
66
- これ以上かっこ付きはないので次の演算子へ。
59
+ これ以上かっこ付きはないので次の演算子へ。次に優先順位の高いものは掛け算なので、
67
-
68
- 次に優先順位の高いものは掛け算なので、
69
-
70
- *を探す。そうすると3*Yがヒット。
60
+ *を探す。そうすると3*Yがヒット。これを計算する。
71
- これを計算する。
72
-
73
61
  この計算結果をXと置くと、
74
62
 
75
63
  F = 1+X
76
64
 
77
- となる。
65
+ となる。これ以上優先するものはないので以降は先端から計算していく。
78
66
 
79
- これ以上優先するものはないので以降は先端から計算していく。
80
67
  ```
81
68
 
82
69
  的な感じになっているはずです。
@@ -86,11 +73,8 @@
86
73
  Yとかを使わずに数字にするのが普通かもしれませんが。
87
74
 
88
75
  とにかく、『元の計算式の特定の部分を書き換える』的な処理を脳内でしているはずです。
76
+ 上記で言えば(2+4) を Y とおく感じの。実際にはYではなく、2+4の結果、6と置き換える感じです。
89
77
 
90
- 上記で言えば(2+4) を Y とおく感じの。
91
-
92
- 実際にはYではなく、2+4の結果、6と置き換える感じです。
93
-
94
78
  アルゴリズムっぽく考えると、
95
79
 
96
80
  ```ここに言語を入力
@@ -105,10 +89,10 @@
105
89
 
106
90
  的な感じになるかなと。
107
91
 
108
- つまり、『切り出し』→『計算』→『元の文字列に置き換え』的な処理ですね。
92
+ つまり、『切り出し』→『計算』→『元の文字列に置き換え』的な処理ですね。入れ子になっていると面倒ですが、それでも発想は同じかも。
109
93
 
110
- 入れ子になっていると面倒ですが、それでも発想は同じかも。
111
- ———-
94
+ ------
95
+
112
96
  [追記0]
113
97
 
114
98
  あと、質問では“+”とかを-1やらなんやらに置き換えていますが、それはしなくてもできるはずです。
@@ -119,8 +103,7 @@
119
103
 
120
104
  “1”も“+”も文字です。
121
105
 
122
- それに、出てくる数字に関しては(かっこ内でないなら)
106
+ それに、出てくる数字に関しては(かっこ内でないなら)常に一桁ですよね。
123
- 常に一桁ですよね。
124
107
 
125
108
  ということは、
126
109
 
@@ -128,8 +111,7 @@
128
111
 
129
112
  となっているはずです。
130
113
 
131
- よくみると、数字と演算子が交互に出ています。
132
- となると、かっこ内をすでに計算した後という前提であれば、
114
+ よくみる、数字と演算子が交互に出ています。となると、かっこ内をすでに計算した後という前提であれば、
133
115
 
134
116
  ```
135
117
  1. 文字数分ループ
@@ -143,9 +125,7 @@
143
125
 
144
126
  のような感じになるかなと。
145
127
 
146
- ただし、”1”と 1は別物です。
147
- なので『文字を整数にする処理』が必要になります。
128
+ ただし、”1”と 1は別物です。なので『文字を整数にする処理』が必要になります。文字列ではありません。
148
- 文字列ではありません。
149
129
 
150
130
  これに関しては調べてください。
151
131
 
@@ -157,18 +137,17 @@
157
137
  修正依頼のところに書くべき内容ですが、質問者さんは無視しているのか、やり方がわからないのかわかりませんが、改善されていないようなので書いておきます。
158
138
 
159
139
  コードは”<code>”または”<コード>”のボタンを押して出てくるやつの中にかきましょう。
140
+ **ご自分の質問にあるコードと回答者のコード等を比較してみましょう**。今のままでは非常に読みづらいです。ひらがなでしかも句読点なしの文章を読まされるようなものです。
160
141
 
161
- **ご自分の質問コード回答のコード等を比較ししょう**
142
+ 知っていて我を押し通すつもりなら次からは回答者が一気ると思います。そうすると質問さんにとっ有用な情報も得られなくなり
162
- 今のままでは非常に読みづらいです。
163
143
 
164
- でしも句読点なし文章されるよなもので
144
+ らなかったなら、これ機にやってみしょ。質問は修正できるので修正してください
165
145
 
166
- 知っていて我を押し通すつもりなら次からは回答者が一気に減ると思います。
167
- そうすると質問者さんにとって有用な情報も得られなくなります。
146
+ [私が「修正依頼を無視してい考えた根拠]
168
147
 
148
+ 過去質問(一件ですが)では、ある方がご指摘なさっていますが、それを無視しています。
149
+ もしかしたらMarkdownとかの存在がわからない可能性もあるとは思いますが、流石にアニメーションで提示されているのでそれは無いかなと。
169
150
 
170
- 知らなかったのなら、機にやってしょう
151
+ 仮に「質問を編集できるということが分かっていなかった」だけだとしても、二回目以降質問でも同じようなこをやってなので「改善する気が無い」人なのかなと勘繰ってみたり。
171
- 質問は修正できるので修正してください。
172
152
 
173
-
174
153
  ※このオフトピ追記は質問が修正され次第、削除する予定です。

4

一言多いので削除

2021/10/26 08:14

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -1,7 +1,3 @@
1
- まだ完璧に頭が回っているわけじゃないので詳しくはわかりませんが。
2
-
3
- ーーーー
4
-
5
1
  まず、プログラミングは「こう書けばいい」というものではありません。
6
2
  **現実世界のシミュレーション**です。
7
3
 

3

修正

2021/10/26 02:40

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -30,14 +30,14 @@
30
30
 
31
31
  構造をよくみてください。
32
32
 
33
- 必ず、”(と”(“の数は同じであるはずです。
33
+ 必ず、“(”と)”の数は同じであるはずです。
34
34
  そして、入れ子ではない。
35
35
 
36
36
  ということは、
37
37
 
38
38
  ```ここに言語を入力
39
39
  1. 先頭から末尾までの中で最初の“(“を探す
40
- 2. “(があったら
40
+ 2. “(があったら
41
41
  2.1. “)”の場所を探す
42
42
  2.2. (1)の場所から(2.1)の場所まで切り出す
43
43
  2.3. 計算する
@@ -98,7 +98,7 @@
98
98
  アルゴリズムっぽく考えると、
99
99
 
100
100
  ```ここに言語を入力
101
- 1. “(の場所を調べる(int beginとする)
101
+ 1. “(の場所を調べる(int beginとする)
102
102
  2. “)”の場所を調べる(int endとする)
103
103
  3. beginからendまでの文字列を切り出す
104
104
  4. (3)を計算(int tempとする)
@@ -115,13 +115,13 @@
115
115
  ———-
116
116
  [追記0]
117
117
 
118
- あと、質問では+”とかを-1やらなんやらに置き換えていますが、それはしなくてもできるはずです。
118
+ あと、質問では+”とかを-1やらなんやらに置き換えていますが、それはしなくてもできるはずです。
119
119
 
120
120
  式全体をFとしたとき、Fは単なる文字列です。
121
121
  文字列は文字が0文字以上連なったものです。
122
122
  だから配列で表現するのです。
123
123
 
124
- “1”も+”も文字です。
124
+ “1”も+”も文字です。
125
125
 
126
126
  それに、出てくる数字に関しては(かっこ内でないなら)
127
127
  常に一桁ですよね。
@@ -138,10 +138,10 @@
138
138
  ```
139
139
  1. 文字数分ループ
140
140
  1.1. 現在の文字を取得
141
- 1.2. 現在の文字が+”なら
141
+ 1.2. 現在の文字が+”なら
142
142
  1.2.1. 前後の文字をそれぞれ整数にして
143
143
  1.2.2. 計算する
144
- 1.3. (そうじゃなくて)”-“なら
144
+ 1.3. (そうじゃなくて) -”なら
145
145
 
146
146
  ```
147
147
 

2

追記

2021/10/26 02:38

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -153,4 +153,26 @@
153
153
 
154
154
  これに関しては調べてください。
155
155
 
156
- 上で切り出したかっこ内の式もこの考えを適用できます。
156
+ 上で切り出したかっこ内の式もこの考えを適用できます。
157
+
158
+ ーーーー
159
+ [追記0:オフトピ]
160
+
161
+ 修正依頼のところに書くべき内容ですが、質問者さんは無視しているのか、やり方がわからないのかわかりませんが、改善されていないようなので書いておきます。
162
+
163
+ コードは”<code>”または”<コード>”のボタンを押して出てくるやつの中にかきましょう。
164
+
165
+ **ご自分の質問にあるコードと回答者のコード等を比較してみましょう**。
166
+ 今のままでは非常に読みづらいです。
167
+
168
+ ひらがなでしかも句読点なしの文章を読まされるようなものです。
169
+
170
+ 知っていて我を押し通すつもりなら次からは回答者が一気に減ると思います。
171
+ そうすると質問者さんにとって有用な情報も得られなくなります。
172
+
173
+
174
+ 知らなかったのなら、これを機にやってみましょう。
175
+ 質問は修正できるので修正してください。
176
+
177
+
178
+ ※このオフトピ追記は質問が修正され次第、削除する予定です。

1

追記0

2021/10/25 23:05

投稿

BeatStar
BeatStar

スコア4962

answer CHANGED
@@ -111,4 +111,46 @@
111
111
 
112
112
  つまり、『切り出し』→『計算』→『元の文字列に置き換え』的な処理ですね。
113
113
 
114
- 入れ子になっていると面倒ですが、それでも発想は同じかも。
114
+ 入れ子になっていると面倒ですが、それでも発想は同じかも。
115
+ ———-
116
+ [追記0]
117
+
118
+ あと、質問では”+”とかを-1やらなんやらに置き換えていますが、それはしなくてもできるはずです。
119
+
120
+ 式全体をFとしたとき、Fは単なる文字列です。
121
+ 文字列は文字が0文字以上連なったものです。
122
+ だから配列で表現するのです。
123
+
124
+ “1”も”+”も文字です。
125
+
126
+ それに、出てくる数字に関しては(かっこ内でないなら)
127
+ 常に一桁ですよね。
128
+
129
+ ということは、
130
+
131
+ <数字><演算子><数字><演算子>…
132
+
133
+ となっているはずです。
134
+
135
+ よくみると、数字と演算子が交互に出ています。
136
+ となると、かっこ内をすでに計算した後という前提であれば、
137
+
138
+ ```
139
+ 1. 文字数分ループ
140
+ 1.1. 現在の文字を取得
141
+ 1.2. 現在の文字が”+”なら
142
+ 1.2.1. 前後の文字をそれぞれ整数にして
143
+ 1.2.2. 計算する
144
+ 1.3. (そうじゃなくて)”-“なら
145
+
146
+ ```
147
+
148
+ のような感じになるかなと。
149
+
150
+ ただし、”1”と 1は別物です。
151
+ なので『文字を整数にする処理』が必要になります。
152
+ 文字列ではありません。
153
+
154
+ これに関しては調べてください。
155
+
156
+ 上で切り出したかっこ内の式もこの考えを適用できます。