新しく発言する EXIT インデックスへ
プログラム

  プログラム けいた郎 2004/04/14 20:11:57 
  こんな感じでどうですか。 shino 2004/04/14 20:50:44 
   └少し改良しました shino 2004/04/14 23:17:32 
    └ありがとうございました。 けいた郎 2004/04/15 06:50:15 

  プログラム けいた郎 2004/04/14 20:11:57  ツリーへ

プログラム 返事を書く
けいた郎 2004/04/14 20:11:57
下記のプログラムを、どなたかご教示ください。

「5、7、9、の3個の数字の列があるとする。
9は何番目の数字か。」

9が3番目の数字であることは、わかりますが、
BASICのプログラムが、わかりません。
どなたか教えてください。

  こんな感じでどうですか。 shino 2004/04/14 20:50:44  ツリーへ

Re: プログラム 返事を書く
shino 2004/04/14 20:50:44
こんな感じでどうですか。

LET num$="579"
LET n=9

REM INPUT PROMPT "数字の列":k
REM LET num$=STR$(k)
REM INPUT PROMPT "目的の数字":n

LET strlen=LEN(num$)

FOR i=1 TO strlen
IF VAL(num$(i:i))=n THEN EXIT FOR
NEXT i

IF i>strlen THEN
PRINT "該当する数字はありません"
STOP
END IF

PRINT STR$(n) & "は" & STR$(i) & "番目です"

END

   └少し改良しました shino 2004/04/14 23:17:32  ツリーへ

Re: こんな感じでどうですか。 返事を書く
shino 2004/04/14 23:17:32
少し改良しました
少数と複数の該当に対応しています。

DO
INPUT PROMPT " 数字の列を入力して下さい(15文字まで)":k
LET num$=STR$(k)
LET strlen=LEN(num$)
IF strlen<16 THEN EXIT DO
PRINT "文字は15文字までです"
LOOP

DO
INPUT PROMPT " 目的の数字を入力して下さい":n
IF ABS(n-5)<=5 AND MOD(n,1)=0 THEN EXIT DO
PRINT "0から10までの整数を入力して下さい"
LOOP

DIM anum(strlen)
LET j=1
LET t=1
FOR i=1 TO strlen
IF num$(i:i)="." THEN LET i=i+1
IF VAL(num$(i:i))=n THEN
LET anum(j)=t
LET j=j+1
END IF
LET t=t+1
NEXT i

IF anum(1)=0 THEN
PRINT "該当する数字はありません"
STOP
END IF

FOR i=1 TO j-1
IF i>1 AND j>3 THEN
LET anums$=anums$ & ","
ELSEIF i>1 THEN
LET anums$=anums$ & "番目と"
END IF
LET anums$=anums$ & STR$(anum(i))
NEXT i

PRINT STR$(n) & "は" & anums$ & "番目です"

END

    └ありがとうございました。 けいた郎 2004/04/15 06:50:15  ツリーへ

Re: 少し改良しました 返事を書く
けいた郎 2004/04/15 06:50:15
ありがとうございました。

エンピツが少しも前に進まないので、
お願いしました。助かりました。
感謝しております。


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