新しく発言する EXIT インデックスへ
机いすの移動(改訂)

  机いすの移動(改訂) 山中和義 2004/02/16 15:55:50 
  その1 山中和義 2004/02/16 15:56:51 
  その2 山中和義 2004/02/16 15:58:43 
  │├6学年4クラス、倉庫2 山中和義 2004/02/17 11:16:27 
  │└6学年4クラス、倉庫2(続き) 山中和義 2004/02/17 11:17:23 
  その3 山中和義 2004/02/16 15:59:11 
  │├6学年4クラス、倉庫2 山中和義 2004/02/17 11:20:54 
  │├6学年4クラス、倉庫2(続き) 山中和義 2004/02/17 11:23:15 
  │└6学年4クラス、倉庫2(続き) 山中和義 2004/02/17 11:24:01 
  その4 山中和義 2004/02/16 15:59:39 
  その5 山中和義 2004/02/16 16:00:07 
  │└目盛り付き 山中和義 2004/02/17 10:15:20 
  使い方 山中和義 2004/02/16 16:06:33 
  │├配る?集める?どっちに! 山中和義 2004/02/17 10:00:48 
  │└倉庫について 山中和義 2004/02/18 09:53:56 
  改良ありがとうございます もりの 2004/02/16 20:48:57 
  動きました もりの 2004/02/16 21:07:54 
  │└よかったですね。 山中和義 2004/02/17 11:37:36 
  │ └配るタイプです もりの 2004/02/17 19:14:26 
  1年〜6年まで4クラス もりの 2004/02/16 21:12:31 

  机いすの移動(改訂) 山中和義 2004/02/16 15:55:50  ツリーへ

机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 15:55:50
データの設定がわかりやすくなるよう修正しました。

  その1 山中和義 2004/02/16 15:56:51  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 15:56:51
その1
!机・いすの移動調整プログラム ver 0.1 by K.Yamanaka
100 !モノの数、モノの名称を設定する

LET NUM_OBJ = 18 !モノの数
200 DATA "1号机","2号机","3号机","4号机","5号机"
DATA "6号机","7号机","8号机","9号机"
DATA "1号いす","2号いす","3号いす","4号いす","5号いす"
DATA "6号いす","7号いす","8号いす","9号いす"

dim obj_name$(50) !※最大数(50種類)
restore 200
for i=1 to NUM_OBJ
read obj_name$(i) !モノの名称を読込む
next i


  その2 山中和義 2004/02/16 15:58:43  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 15:58:43
その2
!---------------------------------------------------------------
!教室の数、教室名称を設定する
!※教室には連番(1〜)が付き、この番号は「最寄の教室」で使う。
!※各教室の今のモノの数(上段)、変更後(希望)の数(下段)を設定する。
!※上記の場合、左から順に机1〜9号、いす1〜9号です。
!例. 1年1組は
!   現在、8号机が15、9号机が20である
!   変更後、8号机が17、9号机が20にしたい場合
!  (8号机を2つ増やし、9号机はそのままにしたい)
! DATA "1年1組"
!   DATA 0,0,0,0,0,0,0,15,20, 0,0,0,0,0,0,0,0,0
!   DATA 0,0,0,0,0,0,0,17,20, 0,0,0,0,0,0,0,0,0
!
!一覧表 平成 y年 m月 d日 現在

LET NUM_ROOM = 16 !教室の数
300 DATA "1年1組" !1番目
DATA 0,0,0,0,0,0,0,15,20, 0,0,0,0,0,0,0,0,0 !今
DATA 0,0,0,0,0,0,0,17,20, 0,0,0,0,0,0,0,0,0 !変更後(希望)
DATA "1年2組" !2番目、以降同様
DATA 0,0,0,0,0,0,0,16,20, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,14,21, 0,0,0,0,0,0,0,0,0
DATA "2年1組"
DATA 0,0,0,0,0,0,0,2,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "2年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "2年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "3年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "3年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "4年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "4年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "4年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "5年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年4組"
DATA 30,5,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 29,5,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "倉庫"
DATA 10,10,10,10,10,10,10,10,10, 0,0,0,0,0,0,0,0,0
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0,0,0,0

  │├6学年4クラス、倉庫2 山中和義 2004/02/17 11:16:27  ツリーへ

Re: その2 返事を書く
山中和義 2004/02/17 11:16:27
6学年4クラス、倉庫2
!---------------------------------------------------------------
!教室の数、教室名称を設定する
!※教室には連番(1〜)が付き、この番号は「最寄の教室」で使う。
!※各教室の今のモノの数(上段)、変更後(希望)の数(下段)を設定する。
!※上記の場合、左から順に机1〜9号、いす1〜9号です。
!例. 1年1組は
!   現在、8号机が15、9号机が20である
!   変更後、8号机が17、9号机が20にしたい場合
!  (8号机を2つ増やし、9号机はそのままにしたい)
! DATA "1年1組"
!   DATA 0,0,0,0,0,0,0,15,20, 0,0,0,0,0,0,0,0,0
!   DATA 0,0,0,0,0,0,0,17,20, 0,0,0,0,0,0,0,0,0
!
!一覧表 平成 y年 m月 d日 現在

LET NUM_ROOM = 26 !教室の数
300 DATA "1年1組" !1番目
DATA 0,0,0,0,0,0,0,15,20, 0,0,0,0,0,0,0,0,0 !今
DATA 0,0,0,0,0,0,0,17,20, 0,0,0,0,0,0,0,0,0 !変更後(希望)
DATA "1年2組" !2番目、以降同様
DATA 0,0,0,0,0,0,0,16,20, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,14,21, 0,0,0,0,0,0,0,0,0
DATA "1年3組"
DATA 0,0,0,0,0,0,0,2,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "1年4組"
DATA 0,0,0,0,0,0,0,2,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "2年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "2年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "2年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "2年4組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "3年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "3年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "3年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "3年4組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0

  │└6学年4クラス、倉庫2(続き) 山中和義 2004/02/17 11:17:23  ツリーへ

Re: その2 返事を書く
山中和義 2004/02/17 11:17:23
6学年4クラス、倉庫2(続き)
DATA "4年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "4年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "4年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "4年4組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "5年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "5年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "5年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "5年4組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年1組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年2組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年3組"
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "6年4組"
DATA 30,5,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA 29,5,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0
DATA "倉庫1"
DATA 10,10,10,10,10,10,10,10,10, 0,0,0,0,0,0,0,0,0
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0,0,0,0
DATA "倉庫2"
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,10,10,10,10,10,10,10,10
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

  その3 山中和義 2004/02/16 15:59:11  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 15:59:11
その3
dim room_name$(200) !※最大数(200教室)
dim obj_now(200,50),obj_update(200,50) !※最大数(200教室、50種類)
restore 300
for i=1 to NUM_ROOM
read room_name$(i) !教室名称を読込む
for j=1 to NUM_OBJ
read obj_now(i,j) !今の教室iのモノjの数を読込む
next j
for j=1 to NUM_OBJ
read obj_update(i,j) !変更後(希望)の教室iのモノjの数を読込む
next j
next i


!---------------------------------------------------------------
!移動する際、「最寄の教室」になる教室を設定する
!※上記の連番を使う。
!※教室の数だけ記述する。上記の場合、16教室×16教室のテーブルです。
!※階数、棟などを考慮して、移動距離が短くなるように登録する。
!※登録しなかった教室は、たとえ移動可能でもそこからは移動しない。
!※0、自教室は検索対象外になる。
!例. 1年2組,2年1組、4年3組の順に検索して、他は考慮しない場合
!   DATA 2,3,10,0,0, 0,0,0,0,0, 0,0,0,0,0

400 DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室1
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室2
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室3
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室4
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室5
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室6
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室7
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室8
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室9
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室10
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室11
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室12
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室13
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室14
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室15
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16 !教室16

dim room_from(200,200) !※最大数(200教室)
restore 400
for i=1 to NUM_ROOM
for j=1 to NUM_ROOM
read IF MISSING THEN 940: room_from(i,j) !各教室の「最寄」を読込む
next j
next i


  │├6学年4クラス、倉庫2 山中和義 2004/02/17 11:20:54  ツリーへ

Re: その3 返事を書く
山中和義 2004/02/17 11:20:54
6学年4クラス、倉庫2
dim room_name$(200) !※最大数(200教室)
dim obj_now(200,50),obj_update(200,50) !※最大数(200教室、50種類)
restore 300
for i=1 to NUM_ROOM
read room_name$(i) !教室名称を読込む
for j=1 to NUM_OBJ
read obj_now(i,j) !今の教室iのモノjの数を読込む
next j
for j=1 to NUM_OBJ
read obj_update(i,j) !変更後(希望)の教室iのモノjの数を読込む
next j
next i

  │├6学年4クラス、倉庫2(続き) 山中和義 2004/02/17 11:23:15  ツリーへ

Re: その3 返事を書く
山中和義 2004/02/17 11:23:15
6学年4クラス、倉庫2(続き)
!---------------------------------------------------------------
!移動する際、「最寄の教室」になる教室を設定する
!※上記の連番を使う。
!※教室の数だけ記述する。上記の場合、26教室×26教室のテーブルです。
!※階数、棟などを考慮して、移動距離が短くなるように登録する。
!※登録しなかった教室は、たとえ移動可能でもそこからは移動しない。
!※0、自教室は検索対象外になる。
!例. 1年2組,2年1組、4年3組の順に検索して、他は考慮しない場合
!   DATA 2,3,10,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0

400 DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室1
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室2
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室3
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室4
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室5
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室6
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室7
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室8
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室9
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室10
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室11
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室12
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室13
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室14
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室15
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室16

  │└6学年4クラス、倉庫2(続き) 山中和義 2004/02/17 11:24:01  ツリーへ

Re: その3 返事を書く
山中和義 2004/02/17 11:24:01
6学年4クラス、倉庫2(続き)
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室17
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室18
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室19
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室20
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室21
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室22
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室23
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室24
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室25
DATA 1,2,3,4,5, 6,7,8,9,10, 11,12,13,14,15, 16,17,18,19,20, 21,22,23,24,25, 26 !教室26

dim room_from(200,200) !※最大数(200教室)
restore 400
for i=1 to NUM_ROOM
for j=1 to NUM_ROOM
read IF MISSING THEN 940: room_from(i,j) !各教室の「最寄」を読込む
next j
next i

  その4 山中和義 2004/02/16 15:59:39  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 15:59:39
その4
!---------------------------------------------------------------
!各教室のモノの移動できる数を算出する
dim obj_move(200,50) !※最大数(200教室、50種類)
for i=1 to NUM_ROOM
for j=1 to NUM_OBJ
LET obj_move(i,j) = obj_now(i,j) - obj_update(i,j) !負は不足分。他の教室からもってくる
next j
next i


!---------------------------------------------------------------
!モノの移動を考える
print "--- 移動明細 ---"
for i=1 to NUM_ROOM !各教室に対して
print "●";room_name$(i)
for j=1 to NUM_OBJ !各物に対して
if obj_move(i,j)<0 then !不足していたら、他からもってくる
print obj_name$(j)
LET flag = 0 !まずは移動していません

for k=1 to NUM_ROOM !最寄の教室から順に捜す
LET rm = room_from(i,k) !最寄の教室番号を得る
if rm>0 and rm<=NUM_ROOM then !ちゃんと設定されていたら
if obj_move(rm,j)>0 then !その教室の物が移動可能なら
LET flag = -1 !移動したことを記録しておく

LET a = obj_move(rm,j) - (-obj_move(i,j)) !移動できる数を算出する

if a>0 then !移動元に十分あれば
print " ";room_name$(rm);"から";-obj_move(i,j);"移動させる"
call maketanpyou(-obj_move(i,j)) !単票を作成する
LET obj_move(i,j) = 0 !過不足なし
LET obj_move(rm,j) = a !移動元は移動した数だけ減らす
else !なければ、その数だけ
print " ";room_name$(rm);"から";obj_move(rm,j);"移動させる"
call maketanpyou(obj_move(rm,j)) !単票を作成する
LET obj_move(i,j) = obj_move(i,j) + obj_move(rm,j) !移動した数だけ増やす
LET obj_move(rm,j) = 0 !移動元は0になりました
end if
end if
if obj_move(i,j)=0 then !過不足がなくなれば、次の教室へ
exit for
end if
end if
next k

if flag=0 then print " どこからも移動できません。" !移動した形跡がないので、、、
end if
next j
next i

  その5 山中和義 2004/02/16 16:00:07  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 16:00:07
その5
!---------------------------------------------------------------
print
print "--- 移動結果 ---"

print "※数値は、左から順に"
for i=1 to NUM_OBJ
print "  ";obj_name$(i)
next i

print
for i=1 to NUM_ROOM
print "●";room_name$(i)
print using "<##############": "今";
for j=1 to NUM_OBJ
print using "###":obj_now(i,j);
next j
print
print using "<##############": "変更希望";
for j=1 to NUM_OBJ
print using "###": obj_update(i,j);
next j
print
print using "<##############": "余り(負:不足)"; !移動可能で移動されないモノの数を表示する
for j=1 to NUM_OBJ
print using "###": obj_move(i,j);
next j
print
print using "<##############":"変更後";
for j=1 to NUM_OBJ
print using "###": obj_update(i,j)+obj_move(i,j);
next j
print
next i

STOP


!単票を作成する
sub maketanpyou(N)
for m=1 to N
print using " ## <######################## >###":"┌",room_name$(rm),"の┐"
print using " ## <######################## >###":"│",obj_name$(j),"を│"
print using " ## <######################## >###":"└",room_name$(i),"へ┘"
next m
end sub


!エラーメッセージ
920 print "モノの数、モノの名称を設定が違います。"
930 print "教室の数、教室名称の設定が違います。"
932 print "教室の数の設定が違います。"
934 print "教室名称の設定が違います。"
936 print "教室内のモノの数の設定が違います。"
940 print "「最寄の教室」になる教室の設定が違います。"

END

  │└目盛り付き 山中和義 2004/02/17 10:15:20  ツリーへ

Re: その5 返事を書く
山中和義 2004/02/17 10:15:20
目盛り付き
!---------------------------------------------------------------
print
print "--- 移動結果 ---"

print "※数値は、左から順に"
for i=1 to NUM_OBJ
print using " ##:<##############":i,obj_name$(i)
next i

print "        "; !目盛りを表示する
for i=1 to NUM_OBJ
print using "###":i;
next i
print
print "        ";
for i=1 to NUM_OBJ
print "---";
next i


print
for i=1 to NUM_ROOM
print "●";room_name$(i)
print using "<##############": "今";
for j=1 to NUM_OBJ
print using "###":obj_now(i,j);
next j
print
print using "<##############": "変更希望";
for j=1 to NUM_OBJ
print using "###": obj_update(i,j);
next j
print
print using "<##############": "余り(負:不足)"; !移動可能で移動されないモノの数を表示する
for j=1 to NUM_OBJ
print using "###": obj_move(i,j);
next j
print
print using "<##############":"変更後";
for j=1 to NUM_OBJ
print using "###": obj_update(i,j)+obj_move(i,j);
next j
print
next i

STOP


!単票を作成する
sub maketanpyou(N)
for m=1 to N
print using " ## <######################## >###":"┌",room_name$(rm),"の┐"
print using " ## <######################## >###":"│",obj_name$(j),"を│"
print using " ## <######################## >###":"└",room_name$(i),"へ┘"
next m
end sub


!エラーメッセージ
920 print "モノの数、モノの名称を設定が違います。"
930 print "教室の数、教室名称の設定が違います。"
932 print "教室の数の設定が違います。"
934 print "教室名称の設定が違います。"
936 print "教室内のモノの数の設定が違います。"
940 print "「最寄の教室」になる教室の設定が違います。"

END

  使い方 山中和義 2004/02/16 16:06:33  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
山中和義 2004/02/16 16:06:33
使い方
・十進BASICを起動します。
・「ファイル」メニューから「開く」を選び、本プログラムを
 読み込みます。
・「実行」ボタンでプログラムを実行します。
・別ウインドウの実行結果がでますので、そちらで印刷、編集などは
 行ってください。(メモ帳などに転記してもいいです)
・その1〜3までのDATA文を修正して現場に対応します。

  │├配る?集める?どっちに! 山中和義 2004/02/17 10:00:48  ツリーへ

Re: 使い方 返事を書く
山中和義 2004/02/17 10:00:48
配る?集める?どっちに!
実際の作業で考えると、2つのやり方があると思います。
●配る
宅配便と同じく、モノをもって最寄の教室からすべての教室へ、
該当教室があれば、配って次の教室へ、と順にモノを減らしながら
巡回します。
この場合、最初捜して、予約して、モノを取りに教室に戻って
あらためてモノを運ぶ、という手もあります。
●集める
御用聞きと同じく、モノがあるか教室を巡回します。
あれば、そこからモノをもってきます。なければ、次の教室へ、と
順にモノを捜しながら巡回します。

このプログラムでは、後者の「集める」で解決しています。

ロボットとか荷台とか工場などのプログラムではどちらを
選択するか、燃費(人件費)、危険性、品質などを考慮しないと
いけませんね。

問題の教室をどこから解決していくか、現状は1番から順に行って
いますが、優先順位をつけることもできます。
「最寄の教室」の応用です。

!---------------------------------------------------------------
!モノの移動を考える
print "--- 移動明細 ---"

!変更 for i=1 to NUM_ROOM !各教室に対して
500 data 4,1,3,2,5,6,7,8,9,10, 11,12,13,14,15,16 !問題のある教室(連番)の優先順位 ←←←修正
restore 500 !←←←修正
for h=1 to NUM_ROOM !各教室に対して ←←←修正
read i !'優先の問題教室から ←←←修正

print "●";room_name$(i)
for j=1 to NUM_OBJ !各物に対して

  中略

if flag=0 then print " どこからも移動できません。" !移動した形跡がないので、、、
end if
next j

!変更 next i
next h !←←←修正


参考にしてください。

  │└倉庫について 山中和義 2004/02/18 09:53:56  ツリーへ

Re: 使い方 返事を書く
山中和義 2004/02/18 09:53:56
倉庫について
教室は「そのまま」、「増やす」、「減らす」のいずれか1つを指定しますが、
倉庫は結果的には上記になりますが、作業の過程では「増やす」、「減らす」の
2つが要求されます。
当プログラムでは、論理的に2つに分けて扱います。
たとえば、配送用と集荷用のように物理的な部屋を機能単位で
分割することで実現しています。

したがって、教室の内訳を定義するところで

DATA "倉庫(配送)"
DATA 10,10,10,10,10,10,10,10,10, 0,0,0,0,0,0,0,0,0 !在庫数
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0,0,0,0 !すべて処分する
DATA "倉庫(集荷)"
DATA 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0,0,0,0,0,0,0,0 !
DATA 40,15,10,10,10,10,10,45,50, 0,0,0,0,0,0,0,0,0 !合計

とします。

結果は

●倉庫(配送)
今 10 10 10 10 10 10 10 10 10 0 0 0 0 0 0 0 0 0
変更希望 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
余り(負:不足) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
変更後 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
●倉庫(集荷)
今 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
変更希望 40 15 10 10 10 10 10 45 50 0 0 0 0 0 0 0 0 0
余り(負:不足) -29 -5 0 0 0 0 0-31-41 0 0 0 0 0 0 0 0 0
変更後 11 10 10 10 10 10 10 14 9 0 0 0 0 0 0 0 0 0

と表示されます。最後の値の

 余り(負:不足) -29 -5 0 0 0 0 0-31-41 0 0 0 0 0 0 0 0 0

は、この数はどこかの教室にあり、

 変更後 11 10 10 10 10 10 10 14 9 0 0 0 0 0 0 0 0 0

は、倉庫の在庫数になります。

  改良ありがとうございます もりの 2004/02/16 20:48:57  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
もりの 2004/02/16 20:48:57
改良ありがとうございます
やってみます
疑問点がでたら
また質問させてください

  動きました もりの 2004/02/16 21:07:54  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
もりの 2004/02/16 21:07:54
動きました
倉庫は倉庫1に机がおいてあります
倉庫2に椅子がおいてあります
数字の一覧表の上に
号数をそれぞれつけてもらえますか
机だけの移動先一覧表
椅子だけの移動先一覧表がほしいですね
エクセルでは表の中央に教室名
左右に号数両サイドに移動先と数が
表示されています改良できれば
してみてください

  │└よかったですね。 山中和義 2004/02/17 11:37:36  ツリーへ

Re: 動きました 返事を書く
山中和義 2004/02/17 11:37:36
よかったですね。
教室の数とその内訳を既存のプログラムの記述を参考に修正してください。
例は上記にあります。

>机だけの移動先一覧表 椅子だけの移動先一覧表がほしいですね
>エクセルでは表の中央に教室名左右に号数両サイドに移動先と
>数が表示されています

詳しい書式を記述してもらわないとどう変更してよいか
わかりません。

  │ └配るタイプです もりの 2004/02/17 19:14:26  ツリーへ

Re: よかったですね。 返事を書く
もりの 2004/02/17 19:14:26
配るタイプです

今日エクセルで旧クラスの机・椅子一覧表を
つくりました

いよいよ

移動先一覧表を明日から
つくります

新クラスのそれぞれの
机と椅子の数
を決めて
それからプログラムを
動かしてみますね
その結果をもとに
エクセルで移動先
一覧表をつくってみます

移動先一覧表は
いままでの担当は

真中にたてにクラス名

両サイドに各号数の
机椅子一覧をかいていたが

机移動先一覧表と
椅子移動先一覧表は
別々にしたいと
思いますが?
どうおもわれますか?

  1年〜6年まで4クラス もりの 2004/02/16 21:12:31  ツリーへ

Re: 机いすの移動(改訂) 返事を書く
もりの 2004/02/16 21:12:31
1年〜6年まで4クラス
場合によっては
場合によってはどこかの学年がヒトクラス
ふえます


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