2015/5/20 情報学 ~BASIC言語の基礎3~ 2015年5月19日 笠井俊信 処理手順の制御 • 基本手順 – 行番号の順番に実行 • 選択(2分岐) – ある条件を満たす or 満たさない で処理内容を選択 • 繰り返し – ある条件を満たす限り同じ処理を繰り返す 1 2015/5/20 BASICの処理手順の制御 • if文 – IF 比較式 THEN 行番号 ELSE 行番号 例:100 IF A<0 THEN 200 ELSE 300 ELSEを省略 → 次の行番号に 例:100 IF A>=0 THEN 300 110 “偽だったときの処理” • goto文 – GOTO 行番号 例題1のBASIC •変数Gに0を代入 •値を入力(N)する •変数Iに1を代入 •(条件分岐):IがNより大きい? •Yes なら終了 •No ならGにIを加える,Iを1増やす 4 行目に戻る •Gを出力する 100 110 120 130 140 150 160 170 180 190 REM Example 1 LET G=0 INPUT N LET I=1 IF I>N THEN 180 LET G=G+I LET I=I+1 GOTO 140 PRINT “合計=”;G END 2 2015/5/20 100 REM Problem 2 110 LET N=0 120 INPUT A 130 IF A<0 THEN 170 140 IF A<60 THEN 120 150 LET N=N+1 160 GOTO 120 170 PRINT “合計=”;N;“人” 180 END REM Problem 2 LET N=0 INPUT A IF A>=0 THEN 140 ELSE 170 IF A>=60 THEN 150 ELSE 120 LET N=N+1 GOTO 120 PRINT “合計=”;N;“人” END 演習問題2のBASIC •変数Nに0を代入 •点数を入力(A)する •(条件分岐):Aは0以上か? •Yesなら(条件分岐):Aは60以 上か? •YesならNを1増やす •Noなら何もしない •2行目に戻る •Noなら終了 •Nを出力する 100 110 120 130 140 150 160 170 180 演習問題1 問題: 2つの数X, Nを入力して,Xnを計算するプログラム。 Nは0以上の整数とする。 • • • • 変数Gに1を代入 2つの数を入力(X, N)する 変数Iに1を代入 (条件分岐):IはN以下か? – YesならGにGとXの積を代入,Iを1増やす,4行目に戻る – Noなら終了 • Gを出力する 3 2015/5/20 演習問題1のBASIC 100 REM Problem 1 •変数Gに1を代入 •2つの数を入力(X, N)する •変数Iに1を代入 •(条件分岐):IはN以下か? 110 120 130 140 150 160 170 180 190 •YesならGにGとXの積を代入, Iを1増やす,4行目に戻る •Noなら終了 •Gを出力する LET G=1 INPUT X, N LET I=1 IF I<=N THEN 150 ELSE 180 LET G=G*X LET I=I+1 GOTO 140 PRINT “X^N=”;G END 100 REM Problem 2 110 LET G=1 120 INPUT X, N 130 LET I=1 140 IF I>N THEN 180 150 LET G=G*X 160 LET I=I+1 170 GOTO 140 180 PRINT “X^N=”;G 190 END 演習問題2 問題: データを入力させ,その中の最大値とそのデータ番号 を出力するプログラム。データは0以上とする。 ※データ件数は最初に入力 • データ件数を入力(N) • カウンタ(I),最大値(G),データ番号(GN)を0に初期化 • (条件分岐):NはI以下か? – Yesなら出力して終了 – Noならデータを入力(X), Iを1増やす • (条件分岐):XはG以下か? – Yesなら3行目に戻る – NoならG=X, GN=I 4 2015/5/20 演習問題2のBASIC •データ件数を入力(N) •カウンタ(C),最大値(G), データ番号(GN)を0に初期化 •(条件分岐):NはI以下か? •Yesなら出力して終了 •Noならデータを入力(X), Iを1増やす •(条件分岐):XはG以下か? •Yesなら3行目に戻る •NoならG=X, GN=I 100 REM Problem 2 110 INPUT N 120 LET I=0 130 LET G=0 140 LET GN=0 150 IF N<=I THEN 220 160 INPUT X 170 LET I=I+1 180 IF X<=G THEN 150 190 LET G=X 200 LET GN=I 210 GOTO 150 220 PRINT G,GN 230 END 演習問題2' 問題: データを入力させ,その中の最大値とそのデータ番号, 最小値とそのデータ番号を出力するプログラム。 データは0以上100未満とする。 ※データ件数は最初に入力 • データ件数を入力(N) • カウンタ(I),最大値(G),データ番号(GN)を0に初期化 最小値(L=100),データ番号(LN) • (条件分岐):NはI以下か? – Yesなら出力して終了 – Noならデータを入力(X), Iを1増やす • (条件分岐):XはG以下か? • (条件分岐):XはL以上か? – Yesなら3行目に戻る 次の条件分岐へ – Yesなら3行目に戻る – NoならG=X, GN=I – NoならL=X, LN=I 5 2015/5/20 演習問題2'のBASIC 100 REM Problem 2 •データ件数を入力(N) 110 INPUT N 100 REM Problem 2’ •カウンタ(I),最大値(G), 200I=0 IF G>=X THEN 230 120 LET 110 INPUT N データ番号(GN),最小値(L), 210 LET G=X 130 LET G=0 120 LET I=0 データ番号(LN)を0に初期化 220GN=0 LET GN=I 140 LET 130 LET G=0 •(条件分岐):NはI以下か? 230 IFTHEN L<=X 220 THEN 260 150 IF N<=I •Yesなら出力して終了 140 LET GN=0 240 LET 160 INPUT X L=X •Noならデータを入力(X), Iを1 150 LET L=100 250I=I+1 LET LN=I 170 LET 増やす 160 LET LN=0 260 GOTO 170210 180 IF G>=X THEN •(条件分岐):XはG以下か? 170 IF N<=I THEN 270 270G=X PRINT G,GN •Yesなら次の条件分岐へ 190 LET 180 INPUT X •NoならG=X, GN=I 280 PRINT L,LN 200 LET GN=I 190 LET I=I+1 •(条件分岐):XはL以上か? 290 END 210 GOTO 150 •Yesなら3行目に戻る 220 PRINT G,GN •NoならL=X, LN=I 230 END 6
© Copyright 2024 ExpyDoc