@@ -172,79 +172,6 @@ increment();
172172
173173:::
174174
175- ## 処理の分割
176-
177- { /* prettier-ignore */ }
178- <Term >関数</Term >は、複数回使用する処理を簡便に記述するためだけでなく、複雑で長い処理の一部を切り出すことにも用いることができます。
179-
180- 長い処理をパーツに分割すると、次のようなメリットがあります。
181-
182- - 考えるべきことが少なくなるので、読みやすい
183- - パーツごとにテストができるので、デバッグがしやすい
184- - パーツの使いまわしができる
185-
186- 次の例は、` totalTicketCount ` 枚のうち` hitTicketCount ` 枚の当たりがあるくじから` drawnTicketCount ` 枚を引いたときに、当たりが少なくとも1枚出る確率` winningProbability ` を、` ■■■□□□□□□□ ` のようなグラフ形式で表示するプログラムです。
187-
188- ``` javascript
189- const totalTicketCount = 10 ;
190- const hitTicketCount = 5 ;
191- const drawnTicketCount = 3 ;
192-
193- let losingProbability = 1 ;
194- for (let i = 0 ; i < drawnTicketCount; i += 1 ) {
195- losingProbability *=
196- (totalTicketCount - hitTicketCount - i) / (totalTicketCount - i);
197- }
198- const winningProbability = 1 - losingProbability;
199-
200- for (let p = 0 ; p < 1 ; p += 0.1 ) {
201- if (p < winningProbability) {
202- document .write (" ■" );
203- } else {
204- document .write (" □" );
205- }
206- }
207- ```
208-
209- このプログラムを、<Term >関数</Term >を用いて確率を計算する部分とグラフとして表示する部分に分割すると、次のようになります。先頭の9行を読むだけでプログラム全体の処理の流れが追えるようになりました。
210-
211- ``` javascript
212- const totalTicketCount = 10 ;
213- const hitTicketCount = 5 ;
214- const drawnTicketCount = 3 ;
215- const winningProbability = calculateWinningProbability (
216- totalTicketCount,
217- hitTicketCount,
218- drawnTicketCount,
219- );
220- showProbabilityAsGraph (winningProbability);
221-
222- function calculateWinningProbability (
223- totalTicketCount ,
224- hitTicketCount ,
225- drawnTicketCount ,
226- ) {
227- let losingProbability = 1 ;
228- for (let i = 0 ; i < drawnTicketCount; i += 1 ) {
229- losingProbability *=
230- (totalTicketCount - hitTicketCount - i) / (totalTicketCount - i);
231- }
232- return 1 - losingProbability;
233- }
234-
235- function showProbabilityAsGraph (probability ) {
236- for (let p = 0 ; p < 1 ; p += 0.1 ) {
237- if (p < probability) {
238- document .write (" ■" );
239- } else {
240- document .write (" □" );
241- }
242- }
243- }
244- ```
245-
246- このように、大きなプログラムを意味的に独立した小さなまとまりに分割する操作を、<Term >** モジュール化** </Term >と呼ぶ場合があります。
247-
248175---
249176
250177## 基礎演習
0 commit comments