DNCL(実践2)

DNCL(共通テスト手順記述標準言語)

前回の記事でDNCLの「1 出力」~「4 入力」までご説明しました
今回も「なでしこ」というサイトの「なでしこ3簡易エディタ」を使ってプログラムを書いていきます
必ず1行目に半角で「!DNCL2」もしくは全角で「!DNCL2」と記述してください

引用元:なでしこ3簡易エディタ
著作権:kujirahand

演習問題1

これまで学習した知識を使って以下のプログラムを作ってみましょう

ルール1)下の図のような台形を想定し、変数Xと変数Yと変数Zの長さをそれぞれ入力するように求める
ルール2)ルール1で入力したX、Y、Zを使って面積を求め、その値を変数mensekiへ代入する
ルール3)「上底がXcm下底がYcm高さがZcmの台形の面積はmensekiです」と表示する
(変数X、Y、Z、mensekiはルール1およびルール2で決めた値)

以下はプログラムを実行した時のイメージです

演習問題1ヒント:考え方

台形の面積の公式は(上底 + 下底) × 高さ ÷ 2 なので menseki = (X + Y) * Z / 2 となる

演習問題1解答
!DNCL2
"上底の長さ(cm)を入力してください"と尋ねてXに代入
"下底の長さ(cm)を入力してください"と尋ねてYに代入
"高さ(cm)を入力してください"と尋ねてZに代入
menseki = (X + Y)* Z / 2
表示する("上底が" , X , "cm下底が" , Y , "cm高さが" , Z , "cmの台形の面積は" , menseki , "㎠です")

5 条件分岐

条件ごとに処理を分けることを条件分岐と言いますが、ここでは条件分岐を学びましょう
条件分岐の書き方は以下のように書きます

もし、条件1ならば:
 処理1
を実行し、そうでなくもし条件2ならば:
 処理2
を実行し、そうでなくもし条件3ならば:
 処理3
そうでなければ:
 処理4

これは条件1を満たす時は処理1を実行し、条件1を満たさなくて条件2を満たす時は処理2を実行し、
条件1も条件2も満たさなくて条件3を満たす時は処理3を実行し、どの条件も満たさない時は処理4を実行するプログラムです
なお、処理の前には空白を入れないとエラーになり、この空白のことをインデントといいます
空白(インデント)は半角でも全角でもどちらでも構いません

以下はジャンケンの手を変数 te に入力し、その te の値により結果を複数の場合に分けています
なお、te の値が何の値か比べる際は 「te == “グー”」 や 「te == “チョキ”」 や 「te == “パー”」のように記載します(詳しくは次の 「6.比較演算」 で学習します)

!DNCL2
"グーかチョキかパーのどれかを入力してください"と尋ねてteに代入
もし、te == "グー"ならば:
 表示する("あなたの勝ちです")
を実行し、そうでなくもし te == "チョキ" ならば:
 表示する("あいこです")
を実行し、そうでなくもし te == "パー" ならば:
 表示する("あなたの負けです")
そうでなければ:
 表示する("ちゃんとやってください")

上記のように記述し、「▶実行」ボタンをクリックすると以下のような入力フォームが表示されるので値を入力して「OK」をクリックすると結果が表示されます

条件分岐は何パターンの条件で分けるのかによって長さが違います
上は4パターンで分けましたがもし5パターン以上にしたい場合は以下の行を増やして途中に挟みます

を実行し、そうでなくもし条件Xならば:
 処理X

また、どの条件も満たさない場合の「そうでなければ:」は必要なければ省略可能です

6 比較演算

値が大きいか小さいか、等しいか等しくないかを比べることを比較演算と言います
比較演算には「 > 」「 >= 」「 < 」「 <= 」「 == 」「 != 」の6種類があり
変数Aの値と変数Bの値を比べる場合を例に見てみると以下のような使い方になります

変数Aが変数Bより大きい場合は「A > B」、変数Aが変数B以上の場合は「 A >= B」
変数Aが変数Bより小さい場合は「A < B」、変数Aが変数B以下の場合は「 A <= B」
変数Aが変数Bと等しい場合は「A == B」、変数Aが変数Bと等しくない場合は「 A != B」
比較演算は条件分岐の条件として使用され、比べた結果により処理を分けます
なお、「A == B」と「A != B」は記号と記号の間にスペースを空けるとエラーになります
( 「A = = B」や「A ! = B」はエラーになります)

!DNCL2
"Aに数字を入力してください"と尋ねてAに代入
"Bに数字を入力してください"と尋ねてBに代入
もし、A > Bならば:
 表示する("AはBより大きいです")
を実行し、そうでなくもしA < Bならば:
 表示する("AはBより小さいです")
そうでなければ:
 表示する("AはBと等しいです")

上記のように記述し、「▶実行」ボタンをクリックすると以下のような入力フォームが表示されるので値を入力して「OK」をクリックすると結果が表示されます

【A > B の場合】

【A < B の場合】

【どちらでもない場合(A == B の場合)】

比較演算は数字だけでなく文字に対しても使用できます

!DNCL2
"何か文字を入力してください"と尋ねてanswer1に代入
"もう一度、今と同じ文字を入力してください"と尋ねてanswer2に代入
もし、answer1 != answer2ならば:
 表示する("あなたは1回目と2回目で違う文字を入力しました")
を実行し、そうでなくもしanswer1 == answer2ならば:
 表示する("あなたは1回目と2回目で同じ文字を入力しました")

上記のように記述し、「▶実行」ボタンをクリックすると以下のような入力フォームが表示されるので値を入力して「OK」をクリックすると結果が表示されます

【answer1 == answer2 の場合】

【answer1 != answer2 の場合】

文字の大小を比較する場合は、五十音順の後の文字の方が大きいと判定されます

!DNCL2
"Aに何か1文字を入力してください"と尋ねてAに代入
"Bに何か1文字を入力してください"と尋ねてBに代入
もし、A > B ならば:
 表示する("Aの文字はBの文字より後です")
を実行し、そうでなくもし A < B ならば:
 表示する("Aの文字はBの文字より前です")
そうでなければ:
 表示する("AとBは同じ文字です")

上記のように記述し、「▶実行」ボタンをクリックすると以下のような入力フォームが表示されるので値を入力して「OK」をクリックすると結果が表示されます

【A < B の場合】

【A > B の場合】

【どちらでもない場合(A == B の場合)】

<<1つ前の記事  1つ後の記事>>

コメント

タイトルとURLをコピーしました