No.3ベストアンサー
- 回答日時:
10 INPUT "SEI? ",A$
20 INPUT "MEI? ",B$
30 INPUT "HYOJI TYPE?(1=ROMA,2=KANA) ",A
40 IF A=2 THEN GOSUB 100
50 PRINT B$+" "+A$
60 GOTO 990
100 文字列変換サブルーチン
A$をカナ変換し、B$へ格納
B$をカナ変換し、A$へ格納
890 RETURN
990 END
手抜きなので、表示タイプの入力に2以外を入れたら強制的にローマ字で出します。
この100から890行の中身が重要なのでしょうね。
しかし、ローマ字からカナへ変換する機能はBASICにはありませんから自分で作ることになります。ローマ字には1,2,3文字表示で1,2文字のカナになりますね。また、違う書き方で同じカナになったりします。
A ア
SI シ
SHI シ
KYA キャ
さらに「ッ」が入るパターンで
北別府=KITABEPPU(PPが連なる)
など、大変複雑でここには書ききれる物ではないと思います。
最もわかりやすい考え方としては、以下のとおり(行番号は省略します)
C$="" 文字列Cをクリア
IF LEFT$(A$,1)="A" THEN C$=C$+"ア" GOTO !!! 先頭1文字を比較
IF LEFT$(A$,2)="SI" THEN C$=C$+"シ" GOTO ### 先頭2文字を比較
IF LEFT$(A$,3)="SHI" THEN C$=C$+"シ" GOTO %%% 先頭3文字を比較
IF LEFT$(A$,3)="KYA" THEN C$=C$+"キャ" GOTO %%% 先頭3文字を比較
!!!
A$=RIGHT$(A$,文字列長-1) 文字列から先頭1文字を削除
###
A$=RIGHT$(A$,文字列長-2) 文字列から先頭2文字を削除
%%%
A$=RIGHT$(A$,文字列長-3) 文字列から先頭3文字を削除
この比較をすべてのローマ字で文字列長0まで繰り返します。(エレガントな方法ではありませんが)
関数の説明は省きましたが参考になりますかね?
No.2
- 回答日時:
10 DIM HAIRETU$(9)文字列の格納場所を10個(0~9)確保する
20 FOR I=0 TO 9
30 INPUT A$
40 HAIRETU$(I)=A$入力した文字列を格納
50 NEXT I10回繰り返し
60 FOR I=0 TO 9 STEP 2ひとつおきに表示
70 PRINT AAA$(I);セミコロンをはずせば文字列ごとに改行する
80 PRINT" ";連続で表示する場合は間にスペースを挿入。いらなければこの行削除
90 NEXT I
100 END
(2)の質問はタイプミスされているので意味がわかりませんでした。
この回答への補足
(2) 自分の姓と名前をローマ字読みで入れ、表示は、1を入力したら、ローマ字で名前、姓の順に表示、2を入力したら、カナ字で名前、姓の順に表示させるプログラム。
文字変数の扱い方がよくわかりません。その点も教えてください。
No.1
- 回答日時:
(1)
10 INPUT A$
20 For I=1 to 5
30 Print MiD$(a$,2*I,1)
40 next I
文字列の入力は続けて”ABCDEFGHIJ"と入力すると仮定しました。
表示はA,C,E...と1行づつに表示されます。
(2)
10 input "Last Name";a$
20 Input "First Name";b$
30 Input c
40 if C=1 then print a$;b$ else print b$;a$
文字変数の扱い方がよくわかりませんとのことですが、どのようなことが判らないのでしょうか?
この回答への補足
なんだか難しい構文(関数?)ですね。
文字関数に当たっては、下記ぐらい簡単にならないですかねぇ?
10:A$="Play"
20:B$="Station"
30:C$=A$+B$
40:PRINT C$
50:END
これでPlay Stationと表示できる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの問題です。写真のプログラムの1から10を下のように入力しましたがプログラムが上手くい 3 2022/07/01 23:31
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C#の問題です。 文字列型の配列 s[100] にキーボードから入力された100文字以内の文字列(単 2 2022/06/22 15:18
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
エクセルで文字列をtxtファイル...
-
VBの「As String * 128」とは?
-
MS SQLServer のSQLで文字列の...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
エクセル 数値データを桁をそ...
-
ACCESSのSQLでのカンマ’認識に...
-
Left関数とRight関数を合わせた...
-
エクセルでセル内の文字列の最...
-
sedなどで、特定の文字列の後の...
-
変数内に入った文字列の結合 UWSC
-
同一セル内に関数と文字列を同...
-
vbsからバッチファイル実行時の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
sedなどで、特定の文字列の後の...
-
エクセルで文字列をtxtファイル...
-
VBA2005 16進を2桁で表示したい。
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
“丸(〇/○/◯)”に似た文字…
-
VBの「As String * 128」とは?
-
【Excel VBA】複数ある特定の文...
-
【excel】複数のセルを対象に特...
-
ORCLEでの小数の表示方法の変更...
-
aaa.bbb.ccc という、「ドット...
おすすめ情報