新しく発言する EXIT インデックスへ
虫食い算のエラー

  虫食い算のエラー 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




インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。