小テスト解説 問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)12 34 56 × + 78 × = 12 1904 + 78 x = 1916 78 x = 149448 (2)1 2 3 × 4 5 6 7 x 8 9 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つの部位から構成される。 図示せよ。 a b a b b 読み取りヘッド 有限状態部 問5 有限オートマトンとプッシュダウンオートマトン の違いを簡潔に説明せよ。 有限オートマトンにプッシュダウンテープという外部 記憶装置をつけたものをプッシュダウンオートマトン という。 授業展開#13 BASICによるアルゴリズム マックでも動くBASIC Chipmunk Basic http://www.nicholson.com/rhn/basic/ 十進BASIC http://hp.vector.co.jp/authors/VA0086 83/ Chipmunk Basic の基本操作 >からプログラムを1行ずつ入力 List でプログラム表示 Run でプログラム実行 Save As… で プログラムの新規保存 New でメモリー上のプログラムを消去 Open で プログラムの読み込み プログラムファイルはテキストエディタで作成で きる。 基本命令 A=2 B=3 C=A+B PRINT C END :変数Aに2を代入 :変数Bに3を代入 :変数CにAとBの和を代入 :変数Cの中身を表示 :プログラムの終了 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 関数、命令 MOD x INT(X) SQR(A) INPUT A DIM A(100) N GOTO XX :Nをxで割った時の余り :少数をカットして整数化 :Aの平方根 :Aに数値を入力 :関数Aを100個用意 A(1), A(2),・・・,A(100) :行番号XXにジャンプ ユーザー関数の定義 10 20 30 40 50 def fnplus(x,y)=x+y def fnsqare(x)=x^2 input x,y print fnplus(x,y), fnsqare(x) end fnの後は任意の英数字 判断 IF 10 20 30 40 50 ~ THEN ~ ELSE ~ A=2 B=3 IF A>B THEN C=A ELSE C=B PRINT C END 繰り返し FOR ~ NEXT 10 FOR I=1 TO 5 20 PRINT I 30 NEXT I 40 END 1から10までの和を求める 10 20 30 40 50 60 S=0 FOR I=1 TO 10 S=S+I NEXT I PRINT S END 10!を求める 10 20 30 40 50 60 K=1 FOR I=1 TO 10 K=K*I NEXT I PRINT K END A,Bを入力して積を計算 10 20 30 40 INPUT A,B C=A*B PRINT C END 演習 三角形の面積計算 10 20 30 40 INPUT A,B S=A*B/2 PRINT S END ランダム関数 10 20 30 40 50 60 DIM N(5) FOR I=1 TO 5 N(I)=INT(RND(1)*6)+1 PRINT N(I) NEXT I 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 20 30 40 50 60 70 input n print “The factors of “n;” are” for i=1 to n/2 if n mod I=0 then print i next i print n END nの素数判定 10 20 30 40 50 60 70 80 90 input n for i=2 to sqr(n) if n mod i=0 then 70 next i print n;“is a prime number" goto 90 print n;“is not a prime number" print i;“is the smallest factor" end 課題例 台形の面積を求めるプログラム サイコロの結果を予想し、当たりを判定する プログラム 2行2列の行列の和・差・積を求めるプログラ ム 2行2列の行列の逆行列を求めるプログラム
© Copyright 2024 ExpyDoc