この人頭いいなと思ったエピソード

array配列??か何だかもぅまったくわかんないんですが、1~10までの格納場所を作ってそこに数字を格納しておいて新たに入力した数字が1~10までのどこかに格納されていれば、「〇は●番目に格納されていました。」と表示され、どこにも格納されていなければ、「○はどこにも格納されていませんでした。」と表示されるようなプログラムです。

1、10件のデータを配列に格納する。
2、新たに入力したデータをaという記憶場所に格納する。
3、aとt[1]を比較し、同じ値が見つかるまで添え字の値を一つずつ増加させながら検索を行う。
配列の内に同じデータが見つかった場合は「○は●番目に格納されていました。」ない場合は「該当するデータはありません」と表示されるプログラム。
もー分かりません(涙)コピペを載せてください!!ごめんなさい(涙涙)

A 回答 (1件)

こんにちは、honiyonです。



 配列に格納されている数字は固定で良いのでしょうか?
 また、ユーザーインターフェースはどのようになりますか?
 それによって大きく異なります。
 ということで、一例という形で載せます。

☆条件☆
 TEdit型のEdit1に探したい数字を入力してもらう。
 TButton型のButton1がクリックされた時に処理開始。
 フォーム名は Form1とする。
 結果表示にはShowMessage使用。

procedure TForm1.Button1OnClick(Sender:TObject);
var
t : array[1..10] of integer = (1,2,3,4,5,6,7,8,9,10);
i : integer;
a : integer;
ans: integer;
begin
a := StrToIntDef(Edit1.Text,-1);
if (a = -1) then begin
ShowMessage('入力された数字が不正です');
exit;
end;
ans := -1;
for i := 1 to 10 do begin
if (a = t[i]) then begin
ans := i;
break;
end;
end;
if ans = -1 then begin
ShowMessage('該当するデータはありません。');
end else begin
ShowMessage(Format('%dは%d番目に格納されていました。',[a,ans]));
end;
end;

 これをコピペして動かすにも、ある程度の知識が必要です。
 楽しようとすると、逆に難しく感じる所かも知れません。
 こぴぺして終わり、じゃなくて、どうしてこのようになるのか考察してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!