ヒント
1.1つの値を受け取って,何けたの数か表示するだけの作業
値を1つキーボードから受け取る
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する「何けたの数か,桁数を数える作業」は次のように行えばよい
カウンタ変数=0
while (与えられた変数>0) {
カウンタ変数を1増やす
与えられた変数=与えられた変数/10
}
(この時点でカウンタ変数には何回10で割ることができたか数えた値が入っている)
(すなわちこの値が桁数)
2.負の数を受け取るまで「1」の作業を繰り返す作業(まともに繰り返す)
値を1つキーボードから受け取る
その値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取る
その値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取る
その値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取る
その値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
:
3.繰り返し処理部分の発見
「2.」では,同じ作業が繰り返されているのがわかる。
繰り返しの作業の一回分は値を1つキーボードから受け取る
その値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示するであるが,繰り返しの作業の始まりは,while文を使うので
その値が正なら次へ進み,負なら作業終了
にならなければならない。そうすると,「2.」の作業は,最初の1行が仲間はずれになり,
値を1つキーボードから受け取る
その値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取るその値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取るその値が正なら次へ進み,負なら作業終了
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取るその値が正なら次へ進み,負なら作業終了
:
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取るのように繰り返し作業単位を考えなければならない。この作業は,while文を使うと
やはり,最初の1行が仲間外れになり,値を1つキーボードから受け取る
while(その値が正だったら){
その値が何けたの数か,桁数を数える作業を行う
桁数を表示する
値を1つキーボードから受け取る
}になる。
4.プログラムとして構成
プログラムとして構成すると次のようになる。
値を1つキーボードから受け取る
while(その値が正だったら){
カウンタ変数=0
while (与えられた変数>0) {
カウンタ変数を1増やす
与えられた変数=与えられた変数/10
}
(この時点でカウンタ変数には何回10で割ることができたか数えた値が入っている)
(すなわちこの値が桁数)桁数を表示する
値を1つキーボードから受け取る
}