奇数・偶数の処理方法

このQ&Aのポイント
  • フレーム1に下記のソースを入れる。data変数に代入された文字列をカンマで区切って配列に格納し、奇数と偶数の要素を分けて出力する方法を説明します。
  • data変数に代入された文字列をカンマで区切って配列に格納し、奇数と偶数の要素を分ける方法を説明します。偶数の場合はYの値を、奇数の場合はXの値を別の配列に格納します。
  • 奇数・偶数の判定を行い、それぞれXとYの値を別の配列に格納する方法を説明します。フレーム1にソースコードを追加し、data変数に代入された文字列をカンマで区切って配列に格納します。その後、配列の要素が奇数か偶数か判定し、偶数の場合はYの値を、奇数の場合はXの値を別の配列に格納します。
回答を見る
  • ベストアンサー

【奇数・偶数のときの処理】

フレーム1に下記のソースを入れる。 //data受け取り data = "X11112222, Y99999999, X255555, Y123456789"; data_array = new Array (); //↓カンマで区切った数だけ順番にdata_arrayに代入。 data_array = data.split (","); trace ("$data_array=" + data_array); //data_arrayの中身をXとYに分ける。 for (i = 0; i < data_array.length; i++) { ans = i + 1; //0から割ろうとすると違うデータができあがる trace ("$ans=" + ans); //2で割って、余りをansに代入。 ans %= 2; trace ("$ans=%" + ans); //ifで使う変数 ctr_x = 1; ctr_y = 0; if (ans == 0) { data_array_xy = new Array (); data_array_xy[ctr_x] = new Array (); //割り切れるなら偶数Yに(値を代入) trace ("*偶数"); data_array_xy[ctr_x][0] = data_array[i]; trace ("$data_array[" + ctr_x + "]" + data_array[i]); trace ("$data_array_xy[" + ctr_x + "][1] =" + data_array_xy[ctr_x][0]); //CountUP ctr_x = ctr_x + 1; } else { //割り切れないなら奇数Xに(値を代入) data_array_xy = new Array (); data_array_xy[ctr_y] = new Array (); trace ("*奇数"); data_array_xy[ctr_y][1] = data_array[i]; trace ("$data_array[" + ctr_y + "]" + data_array[i]); trace ("$data_array_xy[" + ctr_y + "][1] =" + data_array_xy[ctr_y][1]); //CountUP ctr_y = ctr_y + 1; } } 最終的に・・・ data_array_xy[0][0]の中身が"X11112222" data_array_xy[0][1]の中身が"Y99999999" data_array_xy[1][0]の中身が"X255555" data_array_xy[1][1]の中身が"Y123456789" という風に中をに値を代入していくには どうすればよいでしょうか?

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

ちょっとタイトルと内容から解釈が難しいのですが 配列 A,B,C,D,E,F とあったら data_array_xy[0][0] -> A data_array_xy[0][1] -> B data_array_xy[1][0] -> C data_array_xy[1][1] -> D data_array_xy[2][0] -> E data_array_xy[2][1] -> F という風に奇数と偶数の処理というか、2個単位で新しい2次元配列に追加していきたいということですかね? そうだったら単純に下記のような感じでOKです data = "X11112222,Y99999999,X255555,Y123456789"; data_array = new Array(); data_array = data.split(","); data_array_xy = new Array(); for (var i = 0; i<data_array.length; i+=2) {//i+=2がポイント var ArNum = i/2; data_array_xy[ArNum] = new Array(); data_array_xy[ArNum].push(data_array[i]); data_array_xy[ArNum].push(data_array[i+1]); //Array.push(hoge) = Arrayの末尾にhogeを追加する } trace("data_array_xy[0][0]="+data_array_xy[0][0]); trace("data_array_xy[0][1]="+data_array_xy[0][1]); trace("data_array_xy[1][0]="+data_array_xy[1][0]); trace("data_array_xy[1][1]="+data_array_xy[1][1]);

dizzdive
質問者

お礼

確認致しました。 求めていた結果になっていまして 大変、new Araay を仕掛けるタイミングなど 理解を深めることができました。 ありがとうございました!

関連するQ&A

  • 偶数、奇数の判定について

    こんばんは 以下のマクロにて、最初はx=1なので「奇数」、次はx=x+1で2になっているので「偶数」と表示されるように作ったつもりなのですが、何故か全部「奇数」の表示になってしまいます。 どこがおかしいのか分からないので、教えて頂きたいです。 Sub macro() Dim x, y As Integer x = 1 Do y = x Mod 2 Select Case y Case y = 0 MsgBox "偶数" Case y = 1 MsgBox "奇数" End Select x = x + 1 Loop Until x = 10 End Sub

  • 素数、偶数、奇数、倍数を求める。

    整数n1と整数n2に適当な値を代入して、n1からn2までの整数を発生し、発生した個々の整数について調べたいのです。 結果は 10 は偶数で 5 の倍数です。 11 は素数です。 12 は偶数で 6 の倍数です。 13 は素数です。 14 は偶数で 7 の倍数です。 15 は奇数で 5 の倍数です。 16 は偶数で 8 の倍数です。 17 は素数です。 18 は偶数で 9 の倍数です。 19 は素数です。 20 は偶数で 10 の倍数です。 となりたいのです。 教えてくださいお願いします。

  • ΣXY

    ΣXYの解き方が分かりません。 下記のようにXが奇数郡でYが偶数郡だった場合はどう解くのでしょうか?   X  Y   1  2   3  4   5  6

  • 式の証明

    x,y,z∈Nがx^(2)+y^(2)=Z^2をみたすとき (1)x,y.zの内少なくとも1つは偶数である。 (2)x,y,zの内少なくとも1つは5の倍数である。 (1)は、x,y,zすべてが奇数と仮定すると 奇数+奇数=偶数・・・・ で解いたのですが、 (2)においては、何個か数字を代入して規則性が (3n)^(2)+(4n)^(2)=(5n)^2 になるのは、分かりました。こんなやり方で解いて良いのでしょうか? 正式な解き方を教えてもらえないでしょうか? よろしくお願い致します。

  • 代入の問題について

    数学1の代入問題で分からないことがあります。 x^3+y^3の値を求めるために代入をするんですが、 解説には『(x+y)^3=x^3+3x^2y+3xy^2+y^3 -3xy(x+y)に代入する』となっています。 ですが、x^3+y^3は(x+y)(x^2-xy+y^2)で求められるはずですよね? なのになぜ前者の方法で解くんでしょうか?さっぱりわかりません!

  • プログラムの処理について

    主クラスから別のクラスに送るときに 値一個ずつ6回送って処理した値を返すのと 値二個ずつ3回送って処理した値を返すのと どちらが早いのですか? 例1) main(){ int i,ans = 0; int num1[] = new int[6]; for(i=0;i<6;i++){ num1[i] = i+1; ans += ***.keisan(num[i]); } } class ***{ static int keisan(int num){ int x; x = num * 2; return x; } } 例2) main(){ int i,j,ans = 0; ***[] dt = new ***[3]; for(i=0,j=1;i<3;i++){ *** dt[i] = new ***(); dt[i].num1 = dt[i].num2 = 0; dt[i].num1 = j++; dt[i].num2 = j++; ans += ***.keisan(dt[i].num1,dt[i].num2); } } class ***{ public int num1; public int num2; static int keisan(int num1,int num2){ int x; x = (num1 + num2) * 2; return x; } } 上記の構文みたいな感じの状況です 構文が間違ってても気にしないでいただけるとありがたいです

    • ベストアンサー
    • Java
  • エラーを解決したいんですが。

    // Genericsを用いたArrayListを使用し // ループ処理にはiteratorを使用しない。 // for文を使ってリスト中身が奇数の場合はそのまま画面表示。 // 偶数の場合は-1をかけてから画面表示。 import java.util.ArrayList; class Test{ public static void main(String[] args) { //GenericsのInteger型でArrayListのインスタンスを生成 ArrayList<Integer> array = new ArrayList<Integer>(); array.add(1); array.add(2); array.add(3); array.add(4); array.add(5); for(int i=0; i<array.size(); i++) { Integer integer = array.get( i ); //もし値が偶数だったら if(integer % 2 == 0){ integer *= -1; System.out.println( integer ); } //(それ以外)もし値が奇数だったら else{ System.out.println( integer ); } } } } 上記のプログラムで、 >Integer integer = array.get( i ); の場所が、「交換性がない型」と言われ、エラーになってしまうんですが どうしたらいいですか?

    • ベストアンサー
    • Java
  • 二回目です。すみません

    二回目です。すみません X≧0、Y≧0のとき2X+Y=8が成り立つとする。 XYの最大値と、その時のX,Yの値を求めなさい。 答えを見ると X≧0・・・1 Y≧0・・・2 2X+Y=8・・・3 3より Y=-2X+8・・・3´ 3´を代入すると XY=X(-2X+8)←ここがわからない。何に代入したのですか?突然「代入すると」って、何を言            ってるのだか…分かりません。   =-2X+8X   =-2{X?-4X}   =-2{(X-2)-4}   =-2(X-2)?+8  一つ一つの工程について教えてほしいです

  • IEEE規格で「いちばん近い偶数に丸める」根拠は?

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=88809 の質問に関連して、質問します。 arataさんの回答にありました参考URL http://www.microsoft.com/mscorp/worldwide/japan/support/kb/articles/j029/9/74.htm を見ました。 そこにあった記述でわからないことがありました。「数値の丸め」の項に 「Visual Basic 4.0 で数値の丸めが発生するケースは、主に代入と Format 関数があります。 代入する値が代入先のデータ型の有効けたを超える場合に丸めが行われます。 ここでの丸めは IEEE (米国電気電子技術者協会) 規格のうちでもっとも 一般的である "いちばん近い偶数に丸める" という方法をとっています。 例えば整数型への代入では、1.5 は 2、2.5 も 2、3.5 は 4 に変換されます。 これは四捨五入より結果に片寄りが少なく、誤差の累積が最も少ない方法の ひとつです。」 この「いちばん近い偶数」を選ぶ理由は何でしょうか? なぜ奇数はダメなのか?ご存知の方、教えてください。

  • STL関数listの中に作ったclassへのアクセス方法

    c++でSTLのlistを使いクラスをリスト化しようと考えて以下のようなプログラムを作りました.以下のプログラムはビルドは出来、実行できたため値は代入出来てると思うのですが, coutによって"zzの任意の番号(例えば3)の値を調べようと思ったとき,どのように書いていいのか,色々調べたり,実行したりしても分からなかったので,教えて下さい. ちなみに、このプログラムは数学での(x,y)座標の値を代入していくプログラムをイメージして作っています. #include <list> #include <iostream> using namespace std; class Coordinates { public: double x; double y; }; int main() { list<Coordinates> zz; Coordinates xy; for(int i=0; i<5; i++) { xy.x = i; xy.y = i; zz.push_back(xy); } }

専門家に質問してみよう