• 検索結果がありません。

ループ(繰り返し

N/A
N/A
Protected

Academic year: 2021

シェア "ループ(繰り返し"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

基礎プログラミング演習 II 教材 (#6)

■ ループ(繰り返し)

 

□ ループを作る

実験 : 右上のプログラムを入力し、結果を予測し、実行 して確認して下さい。

こういった繰り返す処理(ループ)は、while 文によって 実現することができます。

実験 : プログラムを右のように修正し、結果を予測し、

実行して確認して下さい。このプログラムは無限に繰り 返すので、Control - C(Control キーを押しながらCキー を押す)によって強制停止させてください。

□ while 文(無限に繰り返す使い方)

右に示すように while 文は後に続くブロック内(中 カッコに囲まれた部分)に書かれた処理を繰り返し 実行します。

上 で 実 験 し た プ ロ グ ラ ム の 動 作 が 納 得 で き ま す

か?(while(1)の 1 の意味は後で説明します)

□ 途中で実行を停止する(if 文との組み合わせ)

しかし無限に繰り返すわけでなく、例えば5 回繰り返したら止めたく なる場合があります。今までに学んだ範囲のテクニックで実現するに は、どうすれば良いでしょう?

課題 1.

count が 5 になったら exit() 関数を実行してプログラムを停止する

ようにプログラムを修正してください。( if 文で判定できますね?)

□ 途中でループから抜け出す(break)

しかし常に exit() で終了したいわけではなく、

例えば5 回繰り返したらループから抜けてそれ 以降の処理を続行したいばあいがあります。

この目的のために break 文があります。

break はそれ以降の処理をせず、ループを抜け

出します。つまり while () に続くブロック(中 カッコ)の終わりまで飛ばすのです。

課題 2.

右の例のように最後に一行終了したことを意味 するメッセージを表示するようにプログラムを 修正してください。

int count;

count=0;

printf("%d\n", count);

count=count+1;

printf("%d\n", count);

count=count+1;

printf("%d\n", count);

count=count+1;

int count;

count=0;

while( 1 ) {

printf("%d\n", count);

count=count+1;

}

while( 1 ) { 処理1... ; 処理2... ; }

while( 1 ) {

if( ... ) break;

処理1... ; 処理2... ; }

処理X... ; (続く...

0 1 2 3 4

finished.

(2)

□ 繰り返し処理の考え方

★教科書 p.75以降の例 5.1、5..2、図5.1 を参照。

二乗を求める処理には繰り返しの構造があり、変数を用いて処理を記述すれば、ループによって処 理できることが納得できますか?

p.77 の「このように考えてみると・・・」のパラグラフの説明が理解できるでしょうか。

□ while (繰り返し判定条件付き)

p.77 のすぐ次のパラグラフにあるように、while には繰り返し条件の判定を直接記述できます。

★ 教科書p.78 文法 5.1 を参照してください。

p.79 の例 5.3 のプログラムの内容が理解できますか?

注意すべきは while の条件式は「繰り返し処理を行うか否か」であって、

先に試みた「繰り返しを中断するか否か」ではありません。

(論理が逆です。右の図の条件部の yes / no も逆転しています。)

課題 3.

break を使わず、while( ) の条件指定によってループを終了させてください。ただし0~4までを表

示するのではなく、scanf()によって入力された数から0までカウントダウンさせるように。

■ 宿題(今回の提出は課題 4. と 5. だけで結構です)

ループを学ぶときに、どのようなループの方法があるか、while 文の文法規則はどういったものか、

といったことに集中しすぎてはいけません。重要なのはいかにループするか、ではなく、ループを 用いて何をするか、です。

□ 課題4.

1から50までの数について、3 あるいは 5 の倍数だけを選んで表示させてください。

(つまり 3, 5, 6, 9, 10, 12, 15 ~ 45, 48, 50です。)

□ 課題5.

1から10までの合計を求めるプログラムを作成してください。(55になるはずですね)

考え方:

・はじめに合計をゼロとする

・1回目のループの際には合計に 1 を加え、二回目のループの際には合計に 2 を加え・・・

・ループを終わった時の合計が結果として使えるのではないか?

・まず 10 回ループするプログラムを作り、そこに上記の処理手順を組み込もう

押さ えて 欲 しい ポイ ント : 目的の処理を実現する手順を考えることが、プログラミングその ものです。機能を確認することが目的の課題と、考え方を学ぶ課題の違いを意識してください。

磨くべき能力を見失わないように。

参照

関連したドキュメント

 □ 同意する       □ 同意しない (該当箇所に☑ をしてください).  □ 同意する       □ 同意しない

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

えて リア 会を設 したのです そして、 リア で 会を開 して、そこに 者を 込 ような仕 けをしました そして 会を必 開 して、オブザーバーにも必 の けをし ます

イヌワシは晩秋に繁殖行動を開始します。オスとメスが一緒に飛んだり、オス が波状飛行を繰り返します。その後、12月から

子どもたちは、全5回のプログラムで学習したこと を思い出しながら、 「昔の人は霧ヶ峰に何をしにきてい

帰ってから “Crossing the Mississippi” を読み返してみると,「ミ