こんばんは。Yさと申します。
機械伯爵 writes:
> というわけで、初心者、プログラミング入門者がすぐ使えそうな実例、他に
> ありますでしょうか?
↓初心者向けなら練習用にこんなんどうでそ?
----- [drills.awk] -----
BEGIN{ srand(); #乱数の初期化
#入力文字の正当性判定用テーブル
mark["+"]=0; mark["-"]=1; mark["*"]=2; mark["/"]=3;
print "\n##### 四則演算(+,-,*,/)ドリル #####\n";
LIMIT=10;
cnt=1;
hit=0;
#問題です
x=makeQuestion(cnt);
}
{ if( ! ($1 in mark)){ printf(" >> "); next; }
if(mark[$1]==x){
print "ピンポ〜ン正解!"; ++hit;
}else{
print "...ブ〜はずれ";
}
if(++cnt>LIMIT) exit;
#次の問題です
x=makeQuestion(cnt);
}
END{ printf("\n\nあなたは %d問中 %d問正解しました。\n", LIMIT, hit); }
#0〜n未満の乱数生成
function rnd(n){ return int(n*rand()); }
#問題作成&表示
function makeQuestion(cnt, a,b,x,v,tmp)
{ a=rnd(100)+1;
b=rnd(100)+1;
x=rnd(4);
if(x == 0) v=a+b;
if(x == 2) v=a*b;
if((x == 1) || (x == 3)){
if(a < b){ tmp=a; a=b; b=tmp; }
if(x == 1) v=a-b;
if(x == 3){ b=int(b/2); v=int(a/b); a=v*b; }
}
printf("\n[%d問目] %d ? %d = %d\n >> ", cnt, a, b, v);
return x;
}
-----
...しまった、これは算数の初心者向けだった(x_x)\ばき