作者: Yさ
日時: 2002/4/21(02:24)
こんばんは。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)\ばき