虫食い算のエラー Done 2005/12/29 16:56:57 └10OPTIONBASE1 白石 和夫 2005/12/29 17:37:55 └Doneです。 Done 2005/12/30 16:10:46
虫食い算のエラー Done 2005/12/29 16:56:57 ツリーへ
虫食い算のエラー |
返事を書く |
Done 2005/12/29 16:56:57 | |
下記の虫食い算のコードで、 配列Uにて、360行のdataを 一部読み込んだところでエラーで停止します。 左の桁かに-1,-1までは読み込むのですが 次の4でデータフロー?のようなエラーなのです。 さっぱり原因が分かりません。 お力を貸してください。 10 OPTION BASE 1 20 30 DIM x(10),y(10),z(10,11),u(20) 40 DEF fna(w1)=w1-INT(w1/10)*10 50 DEF fnk(w,k)=fna(INT(w/10^(k-1))) 60 READ m,n 70 80 FOR m1=0 TO m 90 READ x(m+1-m1) 100 NEXT m1 110 120 FOR n1=0 TO n 130 READ y(n+1-n1) 140 NEXT n1 150 160 FOR n1=1 TO n 170 FOR m1=1 TO m+1 180 READ z(n1,m+2-m1) 190 NEXT m1 200 NEXT n1 210 220 FOR L=1 TO m+n 230 READ u(m+n+1-L) 240 NEXT L 250 DATA 2,2 270 DATA -1,-1 280 DATA -1,-1 290 REM ============== 300 DATA 0,-1, 1 310 DATA -1,-1, 2 350 REM ================ 360 DATA -1, 4,-1,-1 |
└10OPTIONBASE1 白石 和夫 2005/12/29 17:37:55 ツリーへ
Re: 虫食い算のエラー |
返事を書く |
白石 和夫 2005/12/29 17:37:55 | |
10 OPTION BASE 1 20 30 DIM x(10),y(10),z(10,11),u(20) 40 DEF fna(w1)=w1-INT(w1/10)*10 50 DEF fnk(w,k)=fna(INT(w/10^(k-1))) 60 READ m,n 70 80 FOR m1=0 TO m 90 READ x(m+1-m1) 100 NEXT m1 110 MAT PRINT x; 120 FOR n1=0 TO n 130 READ y(n+1-n1) 140 NEXT n1 150 MAT PRINT y; 160 FOR n1=1 TO n 170 FOR m1=1 TO m+1 180 READ z(n1,m+2-m1) 190 NEXT m1 200 NEXT n1 210 MAT PRINT z; 220 FOR L=1 TO m+n 230 READ u(m+n+1-L) 240 NEXT L 250 MAT PRINT u; 260 DATA 2,2 270 DATA -1,-1 280 DATA -1,-1 290 REM ============== 300 DATA 0,-1, 1 310 DATA -1,-1, 2 350 REM ================ 360 DATA -1, 4,-1,-1,360,361 370 END を実行して,意図した通りに動いているか確かめてください。 |
└Doneです。 Done 2005/12/30 16:10:46 ツリーへ
Re: 10OPTIONBASE1 |
返事を書く |
Done 2005/12/30 16:10:46 | |
Doneです。 80 FOR m1=1 TO m 120 FOR n1=1 TO n が間違っていました。 それぞれ3ヶ?のdataを読み込んでいました。 一応動くようになったのを示しておきます。 結果は表示されますが、最後に別のエラーが出る不具合が ありますが・・ 10 OPTION BASE 1 20 30 DIM x(10),y(10),z(10,11),u(20) 40 DEF fna(w1)=w1-INT(w1/10)*10 50 DEF fnk(w,k)=fna(INT(w/10^(k-1))) 60 READ m,n 70 80 FOR m1=1 TO m 90 READ x(m+1-m1) 100 NEXT m1 110 120 FOR n1=1 TO n 130 READ y(n+1-n1) 140 NEXT n1 150 160 FOR n1=1 TO n 170 FOR m1=1 TO m+1 180 READ z(n1,m+2-m1) 190 NEXT m1 200 NEXT n1 210 220 FOR L=1 TO m+n 230 READ u(m+n+1-L) 240 NEXT L 250 DATA 2,2 270 DATA -1,-1 280 DATA -1,-1 290 REM ============== 300 DATA 0,-1, 1 310 DATA -1,-1, 2 350 REM ================ 360 DATA -1, 4,-1,-1 370 380 REM "計算する" 390 FOR x9=10^(m-1) TO 10^m-1 400 FOR m1=1 TO m 410 IF x(m1)=-1 THEN GOTO 430 420 IF fnk(x9,m1) <> x(m1) THEN GOTO 710 430 NEXT m1 440 450 FOR y9=10^(n-1) TO 10^n-1 460 FOR n1=1 TO n 470 IF y(n1)=-1 THEN GOTO 490 480 IF fnk(y9,n1) <> y(n1) THEN GOTO 700 490 LET z9=fnk(y9,n1)*x9 500 FOR m1=1 TO m+1 510 IF z(n1,m1)=-1 THEN GOTO 530 520 IF fnk(z9,m1) <> z(n1,m1) THEN GOTO 700 530 NEXT m1 540 550 IF z(n1,m+1) <> -1 THEN 570 560 IF fnk(z9,m+1)=0 THEN 700 570 NEXT n1 580 590 LET u9=x9*y9 600 FOR l=1 TO m+n 610 IF u(l)=-1 THEN GOTO 630 620 IF fnk(u9,l) <> u(l) THEN GOTO 700 630 NEXT l 640 650 IF u(m+n) <> -1 THEN 680 660 IF fnk(u9,m+n)=0 THEN 700 670 680 REM 690 PRINT "答え ";x9;" * ";y9; " = ";u9 700 NEXT y9 710 NEXT x9 720 730 GOTO 60 740 750 END |