• 締切済み

Delphi6のプログラミング

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

みんなの回答

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.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;  これをコピペして動かすにも、ある程度の知識が必要です。  楽しようとすると、逆に難しく感じる所かも知れません。  こぴぺして終わり、じゃなくて、どうしてこのようになるのか考察してみてください。

関連するQ&A

  • javascriptの配列について

    配列Tabに次のデータを初期値として与えてから、添え字の奇数番目の値を表示するとともに、積を求めて表示せよ データ:7,5,1,6,8,9,4,3,7,2 最終的に7,5,1,9,3,7だけ表示しその積を出せばよいという問題が出されたんですが 自分では全くできなかったのでどなたか教えてもらえませんか・・・ そもそもnew Arrayの使い方そのものが理解できていないためそこもある程度噛み砕いて教えていただけるとありがたいです

  • 通常の添字か連想添字かの判別

    $hoge = array('a', 'b'); の場合、 array([0] => 'a', [1] => 'b') となり、 $hoge = array('abc' => 'a', 'def' => 'b') の場合、 array(['abc'] => 'a', ['def'] => 'b') という格納結果になると思いますが、 ここでその格納されている配列の添字がインデックスなのか 連想添字なのかの判別をしたいです。 添字をis_numeric()で判別しようかと思いましたが、 $hoge = array('456' => 'a', '789' => 'b') などと指定されていた時、それは連想添字でないという 判別になってしまい、それはそれで困ります。 (今作っている機能の性質上、そんな事をする人は滅多にいないとは 思いますが) これをどうにか綺麗に判別する方法などありますでしょうか? それともそういうデータの受け渡しを許可している作りを 見直す、という方向になってしまうのでしょうか?

    • ベストアンサー
    • PHP
  • Eclipse による Java プログラミングの配列について質問です

    Eclipse による Java プログラミングの配列について質問です。 下の二つの問題に対して、それぞれのソースコードを教えてください。よろしくお願いします。 1. int型配列aの要素の中で,正の値だけを順に配列bの要素に 代入して,その結果を表示するプログラムを作成しなさい. ※配列aの要素と配列bの要素をそれぞれ表示すること. (実行例) 配列a={5 -1 3 4 -2 7} 配列b={5 3 4 7} 2. int型配列dataの要素の中で,最大値と何番目の配列の要素が 最大値か表示するプログラムを作成しなさい. ※配列dataの要素も表示すること. (実行例) 配列data={31 41 59 26 53 58 37 97 93 23 84} 最大値は97です 最大値は7番目の配列の要素です

    • ベストアンサー
    • Java
  • プログラミング分かりませんJAVA

    キーボードから数値をにゅうりょくし配列変数のじを指定することで、配列要素の値を標示するプログラムを作成する問題です 配列は次のように初期化 int data[]={1,2,3,4,16,32,64,128,256,512} 実行結果 字>0 0番目の値は1 字>9 9番目の値は512 字>5 5番目の値は32

  • [PHP]配列におけるインデックスの考え方

    $scores = [10, 50, 30, 20]と言った配列があるとします。 配列内の10の値を取りだそうとすれば print $scores[0]; とすればブラウザに10の値が表示されます。 というか、配列というのは、[0][1][2][3]…と数えるものだと思っていました。 今、array_fill()関数について学習しています。 $prices = array_fill(0, 5, 10); としてprint_rで出力すると Array ( [0] => 10 [1] => 10 [2] => 10 [3] => 10 [4] => 10 ) と自分で理解できる範囲の結果が表示されます。 ところが、 $prices = array_fill(-2, 5, 10); をprint_rで出力すると以下のように返ってきます。 Array ( [-2] => 10 [0] => 10 [1] => 10 [2] => 10 [3] => 10 ) 単純に考えると、以下のように返ってこないのはなぜなのでしょうか? Array ( [-2] => 10 [-1] => 10 [0] => 10 [1] => 10 [2] => 10 ) また $prices = array_fill(5, 5, 10); と記述すると、 Array ( [5] => 10 [6] => 10 [7] => 10 [8] => 10 [9] => 10 ) と返ってきます。 配列のインデックス、添字を名前や商品名にして連想配列が出来るのはわかります。 (1)マイナス値からはじめた場合、なぜ[-2][-1][0]…のように返ってこないのはなぜでしょうか? (2)配列の添え字、インデックスが、[5]ではじまり[6][7][9][10]…とすることに 何か意味があるのでしょうか? $prices = [10, 10, 10, 10, 10]のような記述があった場合、初学者には[0]からはじまっているからこそ array_spliceなどでキー名がわからずとも、配列を操作を容易にできるのではないかと思ってしまいます。 上記2点、配列内でのマイナス値の扱い方、配列の添字が[0]以外からはじまる理由がよくわかりません。 分かる方いらっしゃいましたら教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ぞろ目???

    ぞろ目が出たら "ぞろ目です。"と表示させる プログラムは どの様にすればかけるのでしょうか? 方針: (1)適当な乱数(1~9)を発生させる。 (2)その乱数を配列(例えば、配列3とする)に格納する。 (3)もしすべての要素が同じ数字ならば、”ぞろ目”と表示させる。 (4)ぞろ目でなければ、”ぞろ目ではない”と表示させる。 実際に 配列が3つだけならば、 if( array[0] == array[1] && array[1] == array[2] ) { System.out.println("ぞろ目です。"); } else{・・・} というように出来るのですが、 配列の個数を【入力】させるようになると 上記のように if(~&&~&&~&&・・・) では出来なくなってしまいます。 上手く if(~&&~&&~&&・・・) をまとめる方法(コレクション)等は無いでしょうか? あるいは他の有効な方法はありますでしょうか? ご存知の方いらっしゃいましたらご回答下さいませ。

    • ベストアンサー
    • Java
  • プログラミングについて

    課題1: キーボードから整数a, b の値を入力し, を計算して表示するプログラムを作成せよ.ただし,べき乗を計算するユーザ関数 int power(int a,int b) を定義し,関数の再帰的呼び出しを使用すること.なお,b >= 0 とみなし,bが負の値のときは「ここでは扱いません」と表示するようにすること.関数 power() の中で途中の計算も表示するようにすること.  作成したプログラムを以下の[プログラム]の次に貼り付けなさい.また,aの値として「学生番号下1桁 + 3 」 の値を入力し,bの値として「(学生番号下2桁を5で割った余り) + 1」の値を入力したときの結果を[実行結果]の次に貼り付けなさい. 実行結果例 :   (学生番号 0234789 の場合) ( aは a= 9+3= 12 , b は b 整数aを入力して下さい:12 整数bを入力して下さい:5 power(12,0)= 1 power(12,1)= 12 power(12,2)= 144 power(12,3)= 1728 power(12,4)= 20736 power(12,5)= 248832 12の5乗は 248832 です 課題2: キーボードから英字の氏名を「名前_苗字」の順でアンダーバー( 「_ 」の文字) で区切って入力し,その文字列を文字コード順に並び替え,さらにそれについてバイナリサーチを実行して「i」の文字を探すプログラムを作成しなさい.並び替えた文字列およびその中の何番目に「i」が見つかったのかを表示するようにせよ.見つからなかった場合は「見つかりませんでした」と表示するようにせよ.実行結果例を参考にすること. プログラムを作成したら,入力値を色々変えて何回か実行し,プログラムが正しく動作することを確認しなさい.確認が済み次第,作成したプログラムを以下の[プログラム]の次に貼り付けなさい.また,各自の名前と苗字を入力したときの実行結果を[実行結果]の次に貼り付けなさい 実行結果例 :   (氏名: 工大 太郎 の場合) 名前と苗字をアンダーバーで区切って入力してください(各先頭文字は大文字) Kodai_Taro 並び替え後 KT_aadioor i を探します lo=0 x[4]=a hi=9 lo=5 x[7]=o hi=9 lo=5 x[5]=d hi=6 lo=6 x[6]=i hi=6 i は 6番目にありました 課題3: 5桁の正の整数をキーボードより入力し、その各桁の値を降順(大→小の順)に並び換えてそれらを順番に表示するプログラムを作成しなさい.以下の手順に従うこと. (1) int 型のサイズ5の配列 A を用意する. (2) 5桁の正の整数をキーボードより入力し,その各桁の値が一桁目から順番に A の各要素に入るようにする (例:値が12345 のとき, A[0]=5, A[1]=4, A[2]=3, A[3]=2, A[4]=1 となるようにする) (3) Aのデータを選択ソートにより降順に並び替える (2)では繰り返し処理を行なうこととし,for 文を用いること. (ヒント: たとえば 12345 の3桁目を取り出したいとき,まずその数を100 で割る.int 型同士の割り算の場合,小数点以下が切り捨てられるので 123 となる.それを10で割った余りを求めれば 3 が得られる.同様に,4桁目を取り出したいときは,1000 で割った整数値の10で割った余りを求めればよい) (3)は演習(3) で作成したプログラムを参考にすること プログラムを作成したら,入力値を色々変えて何回か実行し,プログラムが正しく動作することを確認しなさい.それが済み次第,完成したプログラムを以下の[プログラム]の次に貼り付けなさい.また,各自の学生番号下5桁の値を入力したときの実行結果を[実行結果]の次に貼り付けなさい. 実行結果例 学生番号0114583の場合  5桁の正の整数値を入力してください 14583 ソート前 3 8 5 4 1 i=0 8 3 5 4 1 i=1 8 5 3 4 1 i=2 8 5 4 3 1 i=3 8 5 4 3 1 ソート後 8 5 4 3 1 課題4: 以下の内容を実行するプログラムを作成しなさい.ただしMには「(各自の学生番号下3桁を5で割った余り)+5」を用いよ.また,Nには「(各自の学生番号下2桁を3で割った余り)+2」 を用いよ.作成したプログラムを以下の [プログラム] の次の行に貼り付けること.また実行結果を[実行結果]の次の行に貼り付けなさい.入力値は,学生番号の一桁目から順に入力し,さらに必要ならば「9,8,7」の順に入力せよ.以下の実行の概念図も参考にすること 実行内容 int 型のサイズ M の一次元配列 x があり,キーボードから値を入力してその配列の各要素に代入する.それらの値を N 個ずつ右にずらしてローテーションする 実行結果例 (学生番号 0123457 の場合) M= (457 を 5で割った余り)+ 5 = 2+5 = 7 N= ( 57 を 3で割った余り)+ 2 = 0+2 = 2      よって,サイズ7の配列のデータを      右に2個ずつローテーション (0) 整数を入力してください 7 (1) 整数を入力してください 5 (2) 整数を入力してください 4 (3) 整数を入力してください 3 (4) 整数を入力してください 2 (5) 整数を入力してください 1 (6) 整数を入力してください 0 ローテーション前 7 5 4 3 2 1 0 ローテーション後 1 0 7 5 4 3 2 課題5: キーボードから文字列を入力し,その文字列の2番目の空白の次の文字以降を表示するプログラムを作成しなさい.ただし,文字列の入力には関数 gets を用いること. また,文字列のアクセスにはポインタを用い,関数 putchar を用いて一文字づつ表示させるようにすること. 実行結果は,学生番号,名前(英語),苗字(英語) をそれぞれスペースで区切って入力したときの結果を表示すること 実行結果例 : 学生番号0112345 氏名 田中健 の場合 文字列を入力してください。 0112345 Ken Tanaka 2番目の空白以降を出力します Tanaka windows vista visual studioでのプログマミングの作成を多いと思いますがとても困っていますのでなにとぞお願いします。

  • 配列の簡易な記載法ついて

    JavaScript初心者です。 20の要素を持つ配列があるとします。 そのうちの複数個に同一の値を入れるには下記のような冗長な書き方以外にどのようなものがあるのでしょうか? 例: 配列arrayの1,5,9,13,17番目にabcという値を格納する (※値を入れて宣言する以外の方法で) array[0] = array[4] = array[8] = array[12] = array[16] = "abc";   検索の仕方が悪いのか簡易な書き方が見つからなかったので、教えていただけると助かります!  

  • プログラミング関係で

    プログラミングで次の問題をどうすればいいのかわかりません。 教えてください 1.配列に次のデータが格納されており、 2,-8,5,-4,6,5,7,-3,-9,-1 奇数、偶数、負の数がそれぞれいくつあるかを数え、表示するプログラムを作成してください。 2.任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。

  • 配列の挿入方法

    $a = array('1','2','3'); の配列に、 指定した配列の要素の場所に値を挿入するには PHPの場合どうするのが一般的でしょうか? 期待する事は、 例えば2番目に値77を挿入したいときに、 array_insert(2,77); のようにユーザ関数を指定し、 1,2,77,3のような配列になることです。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう