- 締切済み
配列の中の行移動方法
画面上に下記の表があります。 項目番号 項目A 配列番号 項目B 1 AA1 1 BB1 2 BB2 3 BB3 4 BB4 2 AA2 1 BC1 2 BC2 3 BC3 項目番号1の配列番号4(BB4)を配列番号2(BB2)の上に移動させるロジックを考えています。 移動は同じ項目番号の中だけで行うようにします。 できるだけシンプルに作りたいのですが、 参考になるコーディング例がありましたら教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- askaaska
- ベストアンサー率35% (1455/4149)
関連するQ&A
- 配列の数を途中で増やすには?
はじめまして。 この度、以下のようなプログラムを作りました。 が、途中で配列の数を増やすことになってしまいました。 ------------------------------------------------ struct a{ int int_a; long int_b; }; struct b{ a *aa; }; void main(void){ b *bb; bb = new b[3]; bb[0].aa = new a[5]; bb[1].aa = new a[4]; . . . } ------------------------------------------------ 具体的には、'bb'の配列を3から5に増やすようなやり方を探しています。 元の配列より大きい配列をつくり、そこにコピーすればいいと考えたのですが、 'bb'内の'aa'の配列も動的に作成しているため、それも出来ない状況です。 どなたかやり方を知っている方がいましたら、教えていただきたいです。 下手な説明ですいません。
- ベストアンサー
- C・C++・C#
- 3つの連想配列を交互に代入して、新しい連想配列を作りたい
PHP Version 5.1.6を使っています。 それぞれの連想配列を先頭から順番に交互に代入したいのですが、 どのようなプログラムでできるのでしょうか? $arr1 = array(a1=>"aa1", a2=>"aa2", a3=>"aa3"); $arr2 = array(b1=>"bb1", b2=>"bb2", b3=>"bb3"); $arr3 = array(c1=>"cc1", c2=>"cc2", c3=>"cc3"); 代入後 $new_arr = array( a1=>"aa1", b1=>"bb1", c1=>"cc1", a2=>"aa2", b2=>"bb2", c2=>"cc2", a3=>"aa3", b3=>"bb3", c3=>"cc3", );
- ベストアンサー
- PHP
- 各配列の要素番号で、別の配列に移動する変換?
おはようございます。 たとえば、DBからの検索結果でStringの配列が80個 返ってきたとします。各配列は30個くらいです。 ■イメージの例(検索結果の代わりの配列) 1) String[] 結果1 = new Stirng[30]; 2) String[] 結果2 = new Stirng[30]; ・ ・ 3) String[] 結果80 = new Stirng[30]; この検索結果を別のStringの配列に移動したいのです。 その際に、検索結果のStringの配列が80個あるのですが 結果1 ~~結果40までの40個をまず別のStringの 配列に移動します。残りの結果41~~結果80までを別の配列に移動します。 さらに、40個の配列を移動する際には、各配列の[0]を1つの 配列に、[1]を1つの配列に・・と言う具合に移動したいのです。 ■イメージ //移動開始 移動先1[0] = 結果1[0] 移動先1[1] = 結果2[0] 移動先1[2] = 結果3[0] ・ ・ 移動先1[39] = 結果40[0] 移動先2[0] = 結果41[0] 移動先2[1] = 結果42[0] ・ ・ 移動先2[40] = 結果80[0] ・ ・ 移動先29[39] = 結果40[0] ・ ・ 移動先30[79] = 結果80[30] //移動終了 返ってきた検索結果セットの各配列の[0]や[1]の単位で 別の配列に移動したいのです。 どのようにすれば、うまくロジックが書けますでしょうか? アドバイス、よろしくお願い致します。
- ベストアンサー
- Java
- コンパイラの授業課題で分からない問題があります。教えてください
「簡単な例」の仕様を各自で拡張し(少なくとも2項目)、それが処理できるようにスキャナソース、パーザソースを作成せよ。 仕様の拡張の例としては、例えば次のようなものがある(が、これらの例以外を行うこと)。 変数に、さらに"PP", "QQ"が使えるようにする。プログラム例は下記の通り。 A=3*4-4; PP=A*A; QQ=PP+A; print PP; print QQ; print文の文法に、複数(任意個)の変数が使えるような拡張する。プログラム例は下記の通り。 A=3*4-4; B=A*A; print A, B; 冪乗計算(**)が使えるようにする。 A=10; B=3; C=A**B; print C; いくつかの初等関数(sqrtなど)が使えるようにする。 A=10*10; B=sqrt(A); print B; 「簡単な例」を参考に、 1次元配列を使えるようにするにはどのようにソースを変更すれば良いか考えよ。なお、配列は"dimension"を使って宣言する。配列名は"AA","BB","CC","DD"に限定する。 dimension AA[3]; A=9; B=2; AA[0]=2; AA[1]=A*A; AA[B]=A*A*A; print AA[0]; print AA[1]; print AA[2]; お願いします。
- 締切済み
- その他(学問・教育)
- 行を列に
項目A 項目B 項目C 項目D 項目E 項目F 1000 AA ああ ABC 1001 BB いい XXX YYY ZZZ ↓↓↓ 項目A 項目B 項目C 項目Z 1000 AA ああ ABC 1001 BB いい XXX 1001 BB いい YYY 1001 BB いい ZZZ という形に出力したいのですが、いい方法はありますでしょうか。 クロス集計だと一つの列に対して複数行は出せたのですが 複数列を複数行にすることができませんでした。 UNIONと直積を使用せずにAccessで実現することは可能でしょうか。
- ベストアンサー
- その他(データベース)
- bashで配列の個数部分を変数で指定するとエラーに
bashで配列の個数部分を変数で指定するとエラーになってしまいます。 #!/bin/bash aa[0]="a0" aa[1]="a1" aa[2]="a2" bb[0]="b0" bb[1]="b1" bb[2]="b2" bb[3]="b3" cc[0]="c0" cc[1]="c1" cc[2]="c2" cc[3]="c3" cc[4]="c4" list=(aa bb cc) for i in ${list[@]} do eval echo "$i=\${#$i[*]}" n="\${#$i[*]}" mes="\${$i[$(( ${RANDOM} * 3 / 32768 ))]}" eval echo "$mes \${$i[$(( ${RANDOM} * 3 / 32768 ))]}" done $ . list-test.sh aa=3 a1 a2 bb=4 b2 b2 cc=5 c0 c2 上記の下記箇所の「各配列の個数部分の3」をイメージ的には変数で指定したいです。 mes="\${$i[$(( ${RANDOM} * 3 / 32768 ))]}" ↓ mes="\${$i[$(( ${RANDOM} * $n / 32768 ))]}" $nのように指定すると、下記のエラーになってしまいます。 >bash: 29205 * ${#aa[*]} / 32768 : 構文エラー: オペランドが予期されます (エラーのあるトークンは "${#aa[*]} / 32768 ") ${n}や\$nや($n)など色々試してみたのですが、解決できませんでした。 恥ずかしながら、どなた様かご教授ねがえませんでしょうか
- ベストアンサー
- その他(プログラミング・開発)
- responseTextから連想配列へ
ajaxによってサーブレットから以下のresponseTextを取得したとします。 ~ A ~ a : aa b : bb c : cc ~ B ~ d : dd このようなレスポンスから var array; array["a"] = 'aa'; array["b"] = 'bb'; というように連想配列を取得したいのですが、どのようにすれば良いかわかりません。 どなたか力を貸していただけませんか?
- 締切済み
- JavaScript
- 構造体の配列とメンバの配列
typedef struct _ex_table1 { int x[10]; int y[10]; }ETable1; ETable1 et1; int ans1; for( int a = 0; a < 10; a++ ){ et1.x[a] = a+10; et1.y[a] = a*2; } for( int b = 0; b < 10; b++ ){ if( et1.x[b] == 15 ){ ans1 = et1.y[b]; break; } else{ ans1 = 0; } } printf( "%d", ans1 ); ///////////////////////////////// typedef struct _ex_table2 { int xx; int yy; }ETable2; ETable2 et2[10]; int ans2; for( int aa = 0; aa < 10; aa++ ){ et2[aa].xx = aa+10; et2[aa].yy = aa*2; } for( int bb = 0; bb < 10; bb++){ if( et2[bb].xx == 15 ){ ans2 = et2[bb].yy; break; } else { ans2 = 0; } } printf("%d", ans2 ); と言う感じに、微妙にソースを書いてみたのですが、 上のメンバ(x,xx)の値が正しいものがあったら、 対応する下のメンバ(y,yy)を出力したいと思っていますが、 構造体を配列にした場合と、構造体メンバを配列にした場合は どのように違うのでしょうか? 私には、同じように思えてしまいます。 どなたか、利点・欠点など教えていただけませんか? よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- エクセルマクロのサブルーチン引数で配列を使用したい
VBA初心者です。 エクセルのマクロを組んでいるですが、サブルーチンの引数を配列にしたいのですが、どうすればよろしいでしょうか? 下記に例を示します。 呼び出し(Call)とサブルーチンの配列変数の記載方法がわかりません。 特に気になるのは、サブルーチンの配列に配列数(下記であれば10)を記入する必要があるのか? 必要な場合、元の配列数を変更した場合、どうすればミスなく、漏れなく修正できるか、良い方法はありまんせんか? (例) (呼び出し側) Dim AA(10) As Integer Call Test(AA) ← 引数はAAでよい?それともAA() Sub Test(ByRef AA As Integer) ← AA or AA() or AA(10) ? AA(3) = AA(2) + AA(1) 以上、お手数をおかけしますが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- なければInsert、あればUpdate …ってできますか?
MySQL 3.23.49-nt を使用中です。 とあるテーブルを、3つのサーバで使用中で、このテーブルを一つのサーバで更新して、他のサーバへ レコードをコピーしたいのですが、「他のサーバ」に既に同じキーの レコードが存在する可能性があります。 こちらで更新したいサーバ(A)のテーブルの内容をこんな感じだとします。 キー番号 | SEQ | 項目A | 項目B ---------+-----+-------+------ 1001 | 1 | 11-AA | 11-BB 1001 | 2 | 12-AA | 12-BB 1002 | 1 | 21-AA | 21-BB 1002 | 2 | 22-AA | そして、コピー先のサーバ(B)のテーブルの内容をこんな感じだとします。 キー番号 | SEQ | 項目A | 項目B ---------+-----+-------+------ 1001 | 1 | 11-BA | 11-XX 1002 | 1 | 21-BA | 21-YY 1002 | 2 | | 22-YY 「キー番号」「SEQ」「項目A」だけを、サーバAと同一にしたいと考えています。 キー番号とSEQが同一のレコードが存在する場合、サーバBの「項目B」は変えたく ありません。 すなわち、サーバ(B)が キー番号 | SEQ | 項目A | 項目B ---------+-----+-------+------ 1001 | 1 | 11-AA | 11-XX ---- 項目Aを更新 1001 | 2 | 12-AA | ---- レコードをINSERT 1002 | 1 | 21-AA | 21-YY ---- 項目Aを更新 1002 | 2 | 22-AA | 22-YY ---- 項目Aを更新 のようになって欲しいのです。 そこで、 「キー番号="1001"、SEQ = "1" のレコードがあれば、そのレコードの項目Aに'11-AA'をセットしてUPDATE。 レコードがなければ、キー番号="1001"、SEQ = "1"、項目A='11-AA'のレコードをINSERT。」 というようなMySQLの命令文(?)を書けないかなぁ?と、一生懸命参考書をひっくり返してもがいています。 できるようなできないような... 無理でしょうか?
- ベストアンサー
- MySQL
お礼
お礼が遅くなりました。 ご回答ありがとうございました。 おかげさまで何とか解決できました。