240 likes | 364 Views
小テスト解説. 問1 次の中置記法で書かれた数式を、前置記法、後置記法に直せ。 12 × 23 +(34 + 45)×(56 + 67)× 78 + 89 前置記法 12 x 23 + (+ 34 45) x (+56 67) x 78 + 89 =(x 12 23)+(x(+34 45) (+56 67)) x 78 + 89 =(x 12 23)+(x(x(+34 45) (+56 67)) 78)+ 89 =(+(x 12 23) (x(x(+34 45) (+56 67)) 78))+89
E N D
小テスト解説 問1 次の中置記法で書かれた数式を、前置記法、後置記法に直せ。 12 × 23 +(34 + 45)×(56 + 67)× 78 + 89 • 前置記法 12 x 23 + (+ 34 45) x (+56 67) x 78 + 89 =(x 12 23)+(x(+34 45) (+56 67)) x 78 + 89 =(x 12 23)+(x(x(+34 45) (+56 67)) 78)+ 89 =(+(x 12 23) (x(x(+34 45) (+56 67)) 78))+89 =+(+(x 12 23) (x(x(+34 45) (+56 67)) 78)) 89 =+ + x 12 23 x x +34 45 + 56 67 78 89
小テスト解説 12 × 23 +(34 + 45)×(56 + 67)× 78 + 89 • 後置記法 12 x 23 + (34 45 +) x (56 67 +) x 78 + 89 =(12 23 x)+((34 45 +) (56 67 +)x) x 78 + 89 =(12 23 x)+(((34 45 +) (56 67 +)x) 78 x)+ 89 =((12 23 x)(((34 45 +)(56 67 +)x)78 x)+) +89 =((12 23 x)(((34 45 +)(56 67 +)x)78 x)+)89+ =12 23 x 34 45 + 56 67 + x 78 x + 89 +
小テスト解説 問2 次の後置記法の数式を計算せよ。 (1)123456× + 78× = 12 1904 + 78 x = 1916 78 x = 149448 (2)1 2 3 × 4 5 6 7 x 89 x + x + 10 + x + = 1 6 4 5 6 7 x 8 9 x + x + 10 + x + = 1 6 4 5 42 8 9 x + x + 10 + x + = 1 6 4 5 42 72 + x + 10 + x + = 1 6 4 5 114 x + 10 + x + = 1 6 4 570 + 10 + x + = 1 6 574 10 + x + = 1 6 584 x + = 1 3504 + = 3505
小テスト解説 問3 二律背反的命題をP、Q、Rとして、三段論法の推論形式を書け。 前提1 PならばQである。 前提2 QならばRである。 結論 よってPならばRである。
小テスト解説 入力テープ • 問4 有限オートマトンは 3つの部位から構成される。 図示せよ。 • 問5 有限オートマトンとプッシュダウンオートマトンの違いを簡潔に説明せよ。 有限オートマトンにプッシュダウンテープという外部記憶装置をつけたものをプッシュダウンオートマトンという。 a b a b b 読み取りヘッド 有限状態部
授業展開#13 BASICによるアルゴリズム
マックでも動くBASIC • Chipmunk Basic http://www.nicholson.com/rhn/basic/ 十進BASIC http://hp.vector.co.jp/authors/VA008683/
Chipmunk Basic の基本操作 • >からプログラムを1行ずつ入力 • List でプログラム表示 • Run でプログラム実行 • Save As…で プログラムの新規保存 • New でメモリー上のプログラムを消去 • Open で プログラムの読み込み • プログラムファイルはテキストエディタで作成できる。
基本命令 A=2 :変数Aに2を代入 B=3 :変数Bに3を代入 C=A+B :変数CにAとBの和を代入 PRINT C :変数Cの中身を表示 END :プログラムの終了 PRINT “C” :これでは「C」が表示される
数学的取り扱い • 和:「A+B」 A+B • 差:「A-B」 A-B • 積:「A*B」 A×B • 商:「A/B」 A÷B • n乗:「A^n」 An • 平方根「SQR(A)」 √A • 大小関係 A>B
関数、命令 • N MOD x :Nをxで割った時の余り • INT(X) :少数をカットして整数化 • SQR(A) :Aの平方根 • INPUT A :Aに数値を入力 • DIM A(100) :関数Aを100個用意 A(1), A(2),・・・,A(100) • GOTO XX :行番号XXにジャンプ
ユーザー関数の定義 10 deffnplus(x,y)=x+y 20 deffnsqare(x)=x^2 30 input x,y 40 print fnplus(x,y), fnsqare(x) 50 end fnの後は任意の英数字
判断 • IF ~ THEN ~ ELSE ~ 10 A=2 20 B=3 30 IF A>B THEN C=A ELSE C=B 40 PRINT C 50 END
繰り返し • FOR ~ NEXT 10 FOR I=1 TO 5 20 PRINT I 30 NEXT I 40 END
1から10までの和を求める 10 S=0 20 FOR I=1 TO 10 30 S=S+I 40 NEXT I 50 PRINT S 60 END
10!を求める 10 K=1 20 FOR I=1 TO 10 30 K=K*I 40 NEXT I 50 PRINT K 60 END
A,Bを入力して積を計算 10 INPUT A,B 20 C=A*B 30 PRINT C 40 END
演習 三角形の面積計算 10 INPUT A,B 20 S=A*B/2 30 PRINT S 40 END
ランダム関数 10 DIM N(5) 20 FOR I=1 TO 5 30 N(I)=INT(RND(1)*6)+1 40 PRINT N(I) 50 NEXT I 60 END RND(1):0 以上、1 未満の範囲の値を乱数で返す。 INT() : 指定した数値の整数部分を返す。
サイコロ目の確認 10 DIM N(1000),A(6) 20 FOR I=1 TO 1000 30 LET N(I)=0 40 NEXT I 50 FOR I=1 TO 6 60 LET A(I)=0 70 NEXT I 80 FOR I=1 TO 1000 90 LET N(I)=INT(RND(1)*6)+1 100 LET A(N(I))=A(N(I))+1 110 NEXT I 120 FOR K=1 TO 6 130 PRINT K,A(K),1000/6 140 NEXT K 150 END
関数の置き換え • 「N MOD X」をMODを用いないで記述せよ。 • MOD:2つの数値の除算を行い、その剰余を返す。 A=5 B=3 C=A MOD B PRINT C A=N/X B=INT(A) C=N-B*X
nの約数を全て求める 10 input n 20 print “The factors of “n;” are” 30 for i=1 to n/2 40 if n mod I=0 then print i 50 next i 60 print n 70 END
nの素数判定 10 input n 20 for i=2 to sqr(n) 30 if n mod i=0 then 70 40 next i 50 print n;“is a prime number" 60 goto 90 70 print n;“is not a prime number" 80 print i;“is the smallest factor" 90 end
課題例 • 台形の面積を求めるプログラム • サイコロの結果を予想し、当たりを判定するプログラム • 2行2列の行列の和・差・積を求めるプログラム • 2行2列の行列の逆行列を求めるプログラム