ざざ虫ロゴ


なでしこ入門

日本語プログラミング言語

なでしこ


 指定の回数だけ繰り返す

○ for文(C言語)

例3-1 forを使った繰り返し
画面に「Hello」と10回表示させる
ひまわり
# 画面に「Hello」と10回表示させる カウンタで1から10まで繰り返す   「Hello」と表示。 別のプログラム記述の例 変数(カウンタ)を使わずにプログラムを書く 10回   「Hello」と表示。
C言語
'画面に「Hello」と10回表示させる #include <stdio.h> main() { int i; for (i=1; i<=10; i++) { printf("Hello\n"); } }
なでしこ関連
カウンタを使い、繰り返し処理
回数で○○から○○まで繰り返す(
  実行する処理。

繰り返す回数を指定して、繰り返し処理
○○回
  実行する処理。


 ある条件になるまで繰り返す

○ while文、do while 文(C言語)

例3-2 whileを使った繰り返し
「?」と表示して入力された数字の合計を計算し、「合計=○○」と表示する。
ただし、入力する数値は正の整数、0が入力されると終了。
なでしこ
# 入力された数字の合計を計算する 合計値は0 入力値は-1 入力値<>0の間   「? 」と尋ねる。   入力値はそれ。   合計値に入力値を足す。   合計値はそれ。 「合計={合計値}」と表示。
C言語
'入力された数字の合計を計算する #include <stdio.h> main() { int dt=-1, sum=0; while (dt != 0) { printf("? "); scanf("%d",&dt); sum = sum + dt; } printf("合計=%d\n", sum"); }
なでしこ関連
条件の間
  実行する処理。

なでしこには do while 文は、ない。


 繰り返しを打ち切る

○ break文、continue 文(C言語)

例3-3 break文、continue 文による繰り返し処理の中断
「文字コードは」と尋ね、32〜127の範囲にある場合は、「コード=○○」と表示し、それ以外の範囲にあるときは最初から、−1が入力された場合は繰り返しを終了する。
なでしこ
# 入力された数値(コード)の文字を出力する 「入力されたコードの文字を出力する。」と表示。 必要の間   「文字コード=」と尋ねる。   コードはそれ。   もし、コード=「」ならば     抜ける。   もし、コード≦32||コード≧127ならば     続ける。   違えば     字 = CHR(コード)     「{コード}={字}」と言う。
C言語
'入力された数値(コード)の文字を '出力する #include <stdio.h> main() { int i, c; for (i = 1;; i++) { printf("文字コード="); scanf("%d", &c); if(c == (-1)) { break; } else if(c <= 32 || 127 <= c) { continue; } else { printf("%x = %c\n", c, c); } } }
なでしこ関連
必要の間 # 無限ループ
  実行する処理。

抜ける:回、反復、繰り返すなどで、その処理を抜ける
続ける:回、反復、繰り返すなどで、その処理の先頭に戻る

その他の制御文
 おわる:プログラムを終了させる。       おわる。


 練習問題 3
二乗、三乗を計算する
以下の様に1から10までの数値の二乗、三乗を計算するプログラムを作成する
数値  二乗  三乗
  1    1    1
  2    4    8
  3    9   27
  4
  5
  6   :   :
  7
  8
  9
 10
回答
# 二乗、三乗の計算(例1) 書式は「%10d」。 「   数値   二乗   三乗」と表示。 数で1から10まで繰り返す   数を書式で形式指定して、一乗に代入。      数*数を書式で形式指定して、二乗に代入。      数*数*数を書式で形式指定して、三乗に代入。      「{一乗}{二乗}{三乗}」と表示。 # 二乗、三乗の計算(例2) 書式は「%10d」。 「   数値   二乗   三乗」と表示。 数で1から10まで繰り返す   「{数を書式で形式指定}{数*数を書式で形式指定}{数*数*数を書式で形式指定}」   と表示。


 課題 3
簡単な計算機のプログラムを考えなさい。
 数値、演算子、数値、演算子・・・・と、入力して、=が入力されたとき計算結果を表示するプログラムを作成する。演算子の入力はボタン選択とし、演算子ボタンは、+、−、×、÷、=。
回答1
# 簡単な計算機プログラム 「簡単な計算機」と表示 「数値」と尋ねる。 入力値はそれ。 入力値を表示。 答えは入力値。 必要の間  「={答え}{改行}演算子」を「+{〜}−{〜}×{〜}÷{〜}=」でボタン選択。  演算子はそれ。  演算子を表示。  もし、演算子が「=」ならば   抜ける。  「{答え}{演算子}{改行}数値」と尋ねる。  入力値はそれ。  入力値を表示。  演算子で条件分岐   「+」ならば    答えは答え+入力値   「−」ならば    答えは答え-入力値   「×」ならば    答えは答え*入力値   「÷」ならば    もし入力値=0ならば     答えは「計算できません。」     抜ける。    答えは答え/入力値 答えを表示。 回答2(改良型)
# 簡単な計算機プログラム(改良型) # =押して計算結果表示しても連続して計算できる様に改良した。 「簡単な計算機」と表示 選択ボタンは「+{〜}−{〜}×{〜}÷{〜}={〜}OFF」 答えは「」 必要の間   ダイアログ初期値は答え。 //ダイアログ初期値を設定   「数値」と尋ねる。   入力値はそれ。   入力値を表示。   答えは入力値。   「={答え}{改行}演算子」を選択ボタンでボタン選択。   もしそれが「OFF」ならば     終わり。   演算子はそれ。   演算子を表示。   もし、演算子が「=」ならば     答えを表示。     続ける。   必要の間     ダイアログ初期値は「」 //ダイアログ初期値を「」に設定     「{答え}{演算子}{改行}数値」と尋ねる。     入力値はそれ。     入力値を表示。     演算子で条件分岐 //計算途中の表示       「+」ならば         途中は答え+入力値       「−」ならば         途中は答え-入力値       「×」ならば         途中は答え*入力値       「÷」ならば         もし入力値=0ならば           ダイアログ初期値は「計算できません。」           続ける。         途中は答え/入力値     「={途中}{改行}演算子」を選択ボタンでボタン選択。     もしそれが「OFF」ならば       終わる。     答えは途中     演算子はそれ。     演算子を表示。     もし、演算子が「=」ならば       抜ける。   答えを表示。 回答3(拡張型)
# 簡単な計算機プログラム(拡張型) # =押して計算結果表示しても連続して計算できる様に改良した。 # AC、C ボタンを追加し、更に機能の拡張を図った。 //          計算機プログラムの手順 // 1. 数値を入力し、計算結果とする。(1段目のループ開始) // 2. 演算子を選択する。 // C・AC・終了にて、計算結果クリアして(1)に戻る、あるいは終了する。 // 3. 数値を入力する。未入力なら終了処理。(2段目のループ開始) // (4)にて C・AC 選択されるため計算はまだ行わない。 // 0の割り算の場合は数値再入力、演算子再選択する。 // 4. 演算子を選択する。 // Cにて、数値クリアして(3)に戻り、数値再入力。 // ACにて、計算結果クリアして(1)に戻る。 // 終了にて終了する。 // 5. 計算結果と数値を、先の演算子にて計算する。 // 6. 最後の演算子が=の場合は計算結果表示して計算の最初に戻るため(1)へ行く。 // +−×÷の場合は計算継続のため(3)に戻る。(2段目、1段目ループの終わり) 「   ☆☆☆☆☆ 簡単な計算機の操作法 ☆☆☆☆☆ 終了するには  数値の入力時:数値入力せずに《決定》して《終了》ボタンを押す  演算子入力時:《終了》ボタンを押す 演算結果(=数値)を数値に入力するには  数値の入力時:数値入力せずに《決定》して《終了》ボタンを押す」と表示 /* ボタンの設定 */ 演算ボタンは「+{〜}−{〜}×{〜}÷{〜}={〜}C{〜}AC{〜}終了」 数値ボタンは「数値{〜}演算子」 終了ボタンは「数値{〜}終了」 /* 変数の初期化 */ 演算子は「」 計算子は「」 入力値は「」 計算値は「」 必要の間   「={計算値}{改行}数値は」と尋ねる。// 最初の数値の入力または計算結果の表示   もしそれが「」ならば     入力値は計算値 // 前の計算結果を入力値にする   違えば     入力値はそれ   もし入力値が「」ならば // 最初の数値を未入力で終了の選択を可能とする     「数値未入力 {改行}ボタンは」を終了ボタンでボタン選択。     それで条件分岐       「数値」ならば // 数値の再入力行う         続ける。       「終了」ならば // 計算機を終了する         終了。   違えば     計算値は入力値 // 入力値を計算結果とする     入力値は「」 // 初めの演算子入力     「={計算値}{改行}演算子は」を演算ボタンでボタン選択。     それで条件分岐       「=」ならば // 計算結果を残して最初の数値入力へ         続ける。       「C」ならば // 計算結果を残して最初の数値入力へ         続ける。       「AC」ならば // 計算結果をクリアして最初の数値入力へ         計算値は「」         続ける。       「終了」ならば // 計算機を終了する         終了。     演算子はそれ。   必要の間 // 2つ目以降の数値の入力または計算途中の表示     「{計算値}{演算子}{改行}数値は」と尋ねる。     入力値はそれ。     もし入力値が「」ならば // 数値を未入力で終了の選択を可能とする       「数値未入力 {改行}ボタンは」を終了ボタンでボタン選択。       それで条件分岐         「数値」ならば // 数値の再入力行う           続ける。         「終了」ならば // 計算機を終了する           終了。     違えば // 0で割り算実行使用した時の処理       もし演算子が「÷」かつ入力値が0ならば         「0で割ろうとしています。」を数値ボタンでボタン選択。         入力値は「」                 もしそれが「数値」ならば // 数値の再入力行う           続ける。         違えば // 初めの演算子を再入力           「={計算値}{改行}演算子は」を演算ボタンでボタン選択。           それで条件分岐 // 再入力の演算子による処理             「=」ならば               演算子は「」               抜ける。             「C」ならば               抜ける。             「AC」ならば               計算値は「」               演算子は「」               抜ける。             「終了」ならば               終了。           演算子はそれ。           続ける。 /* 2つ目以降(最後)の演算子の入力 */       「{計算値}{演算子}{入力値}       演算子は」を演算ボタンでボタン選択       それで条件分岐 // 最後の演算子による処理         「C」ならば           入力値は「」           続ける。         「AC」ならば           計算値は「」           入力値は「」           演算子は「」           抜ける。         「終了」ならば           終了。       次演算はそれ。       演算子で条件分岐 // 前の演算子で計算する         「+」ならば           計算値=計算値+入力値         「−」ならば           計算値=計算値−入力値         「×」ならば           計算値=計算値×入力値         「÷」ならば           計算値=計算値÷入力値       入力値は「」       演算子は次演算       もし演算子が「=」ならば // 最後の演算子が=なら計算結果を表示する         抜ける。



このホームページはLightiningHTMLで作成しました。


Copyrights(c) 2000 ザザ虫. All rights reserved.