X=5 で Y=2 の場合、 のようなものを出力する方法を考えています
Hello 2 World 5
。
Javaで私はするだろう
String a = "Hello " + Y + " World " + X;
System.out.println(a);
では、TI-BASIC でそれを行うにはどうすればよいでしょうか。
X=5 で Y=2 の場合、 のようなものを出力する方法を考えています
Hello 2 World 5
。
Javaで私はするだろう
String a = "Hello " + Y + " World " + X;
System.out.println(a);
では、TI-BASIC でそれを行うにはどうすればよいでしょうか。
文字列を連結し、整数を文字列表現に変換するという 2 つの問題を解決する必要があります。
文字列の連結は非常に簡単で、+
演算子を使用します。あなたの例では: "Hello " + "World" 文字列 "Hello World' が生成されます。
数値を文字列に変換するのは TI-BASIC ほど簡単ではありませんが、TI-83+/84+ シリーズと互換性のある変換方法がここにあります。次のコードと説明は、リンクされたページから引用されています。
:"?
:For(X,1,1+log(N
:sub("0123456789",ipart(10fpart(N10^(-X)))+1,1)+Ans
:End
:sub(Ans,1,length(Ans)-1?Str1
N に格納された数値を使用して、N の各桁をループし、部分文字列内の一致する位置にある文字列に数字を格納します。iPart(10fPart(A/10^(X) を使用して数字の個々の数字にアクセスし、文字列 "0123456789" 内の場所を特定します。1 を追加する必要がある理由は、数字 0 で機能するようにするためです。 .
数値のすべての桁を含む文字列を作成するために、最初にダミー文字列を作成します。これが "? の使用目的です。For( ループを実行するたびに、前の文字列 (まだ Ans 変数に格納されています) を N にある次の数字に連結します。Ans を使用すると、次のことが可能になります。 Ans は文字列のように動作し、それに応じて更新されるため、別の文字列変数を使用する必要はありません。また、Ans は文字列変数よりも高速です。
For( ループが終了するまでに、すべての数字が Ans にまとめられます。ただし、最初に文字列にダミー文字を格納したため、部分文字列を取得して削除する必要があります。文字列の最初の文字から最後から 2 番目の文字まで. 最後に、後で使用するために、文字列をより永続的な変数 (この場合は Str1) に格納します。
文字列に変換したら、+
演算子を使用して、文字列リテラルと変換された数値文字列を連結するだけです。
また、同様の問題に対処する同様のスタック オーバーフローの質問も確認する必要があります。
"Hello" と "World" の長さがわかっている場合は、Output()
Disp がすべてのステートメントの後に新しい行を作成するため、単純に使用できます。