約 7,945 件
https://w.atwiki.jp/fmemo/pages/50.html
tv 画像を表示する。 IDL tv, image image は2次元配列 tvscl 画像を表示する。tvとの違いは規格化がおこなわれること。特に凝ったことをするのでなければこちらが無難 IDL tvscl, image Map_Set 地図を定義する。 IDl Map_set,limit=[lat_min,lon_min,lat_max,lon_max] ; Map_Patch 2次元配列データセットを現在の地図投影法に従って再投影する。 地図投影法はMap_Set関数であらかじめ指定されている必要がある。 IDL map_data=Map_patch(data, xstart=x0, ystart=y0) ; dataは2次元配列 IDL tvscl, map_dat, x0, y0 ; x0, y0を書かないとずれる Map_Grid 地図上に緯線罫線を引く Map_Continents 地図上に大陸を描く。
https://w.atwiki.jp/bousoku/pages/348.html
ローナは、配列の一種。 この配列を扱うタイパー 外部リンク 一打鍵ローマ字入力 ローナ
https://w.atwiki.jp/kanelab/pages/17.html
ブレークポイントがヒットしない VS2008で引数の追加が反映されない VS2008でメンバ関数追加ウィザードが使えない ファイル保存用フラグが定義できない 並べ替えプログラムが動作しない 配列の重複部分削除について 処理結果を配列に格納しようとしたら配列数がとんでもないことになった ハンドルされていない例外7 ハンドルされていない例外6 ハンドルされていない例外5 sqrtについて CStringについて if文の条件文部分の書き方が安全ではない Debugフォルダ内のexeファイルが起動しない ブレークポイントがヒットしない 1.現象 必ず通る箇所にブレークポイントを置き、プログラムを実行させた途端に、ブレークポイントの赤く塗られた●マークが、 ただの赤線の○マークになり、○の中に「!」が表示されるようになった。 同じような現象がたくさんあるらしい 最悪MS側のバグの可能性もある 2.解決方法 ツール→オプション→→デバッグ で「元のバージョンと完全に一致するソースファイルを必要とする」のチェックボックスをオフにする。 3.Link まったく同じ解決方法 MSのバグ情報 掲示板1 掲示板2 掲示板3 VS2008で引数の追加が反映されない 1.現象 ある関数を作成後に新たに引数を追加したが Visual Studio 内のクラスビューには反映されない。 2.解決方法 下の「VS2008でメンバ関数追加ウィザードが使えない」と同様にncbファイルを削除する。 VS2008でメンバ関数追加ウィザードが使えない 1.ErrorMessageDialog Microsoft Visual Studio 新しいコード要素を返すのに失敗しました。構文エラーが考えられます。新しい要素名は aaa です。 OK 2.現象 Visual Studio 2008 でメンバ関数追加ウィザードを使用してメンバ関数を追加しようとすると上記のエラーメッセージダイアログが表示されて追加ができない。 3.原因 不明 4.解決方法 Visual Studio 2008を閉じてからプロジェクトフォルダ内にある「プロジェクト名.ncb」ファイルを削除する。Visual Studio 2008を再起動すれば.ncbファイルは再生成されるので削除しても問題はない。 5.Link まったく同じ説明 ファイル保存用フラグが定義できない 0.Error Message エラー1 error LNK2005 "bool AnchorDataSaveFlag" (?AnchorDataSaveFlag@@3_NA) は既に CalculateTask.obj で定義されています。 1.現象 MFC設定のプログラムでC C++/テンプレのヘッダーファイルを利用すると上記のエラーメッセージが出る。 2.原因 変数の定義の仕方がグローバル変数の定義のやり方のままであったためMFCでは使用できなかった。MFCはグローバル変数禁止! 3.解決方法 新しくクラスを作る。 並べ替えプログラムが動作しない 1.現象 並べ替えプログラムを使用するとプログラム自体が落ちる。デバッグで調べると特定の部分で動作がループしている。ループの時点では並び替えも完了していない。クイックソートアルゴリズムを使用。 2.原因 (遠因)今回は配列値を直接比較するのではなく二次配列を変換してから比較、値の入れ替えを行った。 クイックソートアルゴリズムの肝である軸要素以上の値が見つかるまで検索する部分で // 枢軸以上の値が見つかるまで右方向へ進めていく while( IDist PivDist ) { ++i; IDist = // 二次配列の変換[i]; } とする部分を // 枢軸以上の値が見つかるまで右方向へ進めていく while( IDist PivDist ) { IDist = // 二次配列の変換[i]; ++i; } と順番を逆にしてしまった。これによって配列値の変更が一歩分遅れ、while文を抜ける値が得られた場合でも指定子iが余計に増加してしまう結果となった。 3.教訓 実は最初にコーティングした際おかしくなるかもしれないと思っていたがwhileループ内ので完結する話だと考えてしまいスルーしてしまった。こんなに重大なミスにつながるとは思えなかった。 変数iが頻繁に変更されることに心理的抵抗を覚えたのも事実。こういったミスの原因になりかねないのであくまでもアルゴリズム通りに動作するようにコードは作成するべきだと思った。 配列の重複部分削除について 1.教訓 配列を繰り返し検索し、一致したものがなければ改めて新しい配列に格納するわけだが、その際繰り返し条件と格納条件が異なることに注意。 例えば7番目の配列の内容を0~6番目まで検索するが検索の繰り返しの段階で格納まで行うと Arr[7] != Arr[0] で即格納になってしまう。実はArr[7] == Arr[2]であったとしても! そこでArr[7] == Arr[0~6]ならtrueを返すなどの繰り返し処理をあらかじめ作り、そのあとに返り値の値によって格納を決める処理を作る。検索はあくまでも最後まで(または一致する値が見つかるまで)行ってから判断する。 処理結果を配列に格納しようとしたら配列数がとんでもないことになった 1.現象 上記のとおり。100個程度を予想したら1500個ほど出てきた。 2.原因 (1)While文の中のfor文の使い方ミス While文である条件を指定し、その中にfor文入れて配列に格納した。その際 for( int i = 0; i exNum ; i++ ){ exArray[ i ] = 100;// 障害物の属性 } の様に配列指定にiを用いてしまった。これによってWhileの繰り返しごとに配列exArrayの同じ場所に格納してしまっていた。 (2)ファイルへの保存の際の繰り返し回数指定ミス 最終的に値を格納された配列の数を指定する変数とは異なる変数でfor文を回して保存を行ってしまった。あり得ない値(0とか)が格納されていたらこの原因かも。 ハンドルされていない例外7 1.ErrorMessageDialog ~~.exe の 0x7861d9fe (mfc90d.dll) でハンドルされていない例外が発生しました 0xC0000005 場所 0xfffffffc を読み込み中にアクセス違反が発生しました。 2.現象 複数宣言されていたオブジェクトの数をさらに増やしたくてコーディング中発生。初期化のfor( int i = 0; i NUM; i++ ) のNUMを増やしたら発生。 3.原因 オブジェクトの宣言部分の数と初期化のNUMがあっていなかった。 4.解決方法 宣言数を増やした。 5.教訓 やはり「ハンドルされていない例外」のエラーは 存在しない変数、配列、オブジェクトにアクセスが起こった場合 変数に定義以上の値が入っている場合 MFCにおいて設定した画面以上に画像がはみ出てしまった場合 などに起きている。 ハンドルされていない例外6 1.ErrorMessageDialog ~~.exe の 0x0041d0cf でハンドルされていない例外が発生しました 0xC0000005 場所 0x8000061a に書き込み中にアクセス違反が発生しました。 2.現象 MFCのプログラムにおいて連続処理を数回行った後ある特定の地点で起きる。 3.原因 直接の原因はあるクラスのメンバ変数( m_pt )の値が-214783100などのありえない値をとったため。 m_ptの値を変更する過程でエラーが発生した。 4.原因候補 メンバ変数を使用するクラスは複数宣言されているので複数のm_ptが存在しアクセスにミスる。⇒まちがい メンバ変数m_ptへの値格納にミスが発生している。⇒十分接近してからも最後に一回分の移動を行っている。dHogeの値が怪しい。⇒正解 (上のミスと似ているが)本来必要のない時点でm_ptの値を変化させているのでおかしな値が格納される。⇒まちがい 5.原因(確定版) m_ptの値を変化させる変数dHogeは dHoge = MoveSpeed * ( dRadius_x / dRadius_Range ); と式内に割り算を含んでいた。処理の過程において割り算の分母である dRadius_Range の値が=0になることがあった。 そのときdHogeは1.#IND000000000000とありえない値をとっていた。これがさらにm_ptに m_pt = m_pt + dHoge; とされてしまい上記の-214783100という値をとってしまった。 6.解決方法(試行錯誤版) 【失敗】 m_ptがおかしな値を得たら排除する。⇒おかしな値は頻繁に発生する模様。プログラムが起動しなくなった。 エラー周辺でデバッグステップ実行⇒ソースコードを表示できないエリアに突入しわけわかめ。 m_ptの値の変化をすべてチェック⇒171箇所もあり眠くなったw 【成功】 必要のないm_ptの変更を行わないよう適当な部分でbreakを入れる。⇒同じような処理の部分でこれがそもそも必要ない例がある。なぜ? リビルド⇒あるとき突然これで解決した。なぜ? 7.解決方法(確定版) 分母dRadius_Rangeの値によって場合わけ。 8.教訓 今回のバグはかなり厳しかった。延べ13時間以上かかったと思う。 m_ptがおかしいと気づくまで5h。dHogeが怪しいと気づくまでさらに8h。 変数の値がおかしい場合はその変数を変更する場所がもっとも怪しい場所というのは理論的に当然わかること。 今回自分はm_ptの値の変化をすべてチェック⇒171箇所もあり眠くなったwなどという態度でありこれでは13時間以上かかるのも無理ない。 もっと自分の理論を信じて調査していれば早く解決できると思った(精神論ぽいけど)。 ハンドルされていない例外5 1.ErrorMessage ~~.exe の 0x004146e7 でハンドルされていない例外が発生しました 0xC0000005 場所 0x00001f38 を読み込み中にアクセス違反が発生しました。 2.原因 オブジェクトをポインタとして宣言したが、肝心のクラス型のオブジェクトの宣言、ポインタの格納を行っていなかった。 3.解決方法(例文) CJusho cj; CJusho *pcj; pcj = cj; 以上の操作を行って初めてポインタを使用できる。 4.教訓 “ハンドルされていない例外”は存在しない配列、変数などに参照が行われた場合発生すると思われる。デバッガで指定された変数がプログラム上存在するのか確かめる必要がある。 クラスをポインタとして使用するのはメモリの確保、解放を自分で管理しなければいけないのでリスクが発生する。ポインタを使用する明確な理由がない限り使わない方が良いかも。 sqrtについて 1.ErrorMessage error C2668 sqrt オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照) 2.原因 sqrtは整数値を引数にできない。 3.解決方法 引数に1.0でもかけておく。 4.Link クリティカルに説明したページ CStringについて 1.現象 オブジェクト化されたプログラムを再利用するため他のプログラムでとあるクラスを読み込んだところ、CString関係でエラーメッセージが沢山発生。 2.ErrorMessage error C2065 CString 定義されていない識別子です。 error C2061 構文エラー 識別子 CString error C4430 型指定子がありません - int と仮定しました。 3.原因 CStringはMFCと共に使用することを前提に作られているので通常のコンソールアプリケーションの設定では使えないらしい。 4.解決方法 始めからMFCプログラムとして作成しないと使用できない模様。CStirng.hが読み込めない 5.Link 掲示板1 掲示板2 if文の条件文部分の書き方が安全ではない 1.ErrorMessage warning C4804 演算中の bool 型の使用方法が安全ではありません 2.現象 if文の条件文部分で 演算子を多用したところ上記の警告が出た。 3.原因 if( 190 x 610) のような書き方をしてしまった。 4.解決方法 if( ( 190 x ) ( x 610 ) ) と書きなおすべし。 5.Link ほぼ同じ警告例 Debugフォルダ内のexeファイルが起動しない 1.現象 デベロッパースタジオの「デバッグなしで開始」からは実行できるがDebugフォルダ内のexeファイルからでは実行できない。 2.ErrorMessageDialog OpenCV GUI Error Handler Bad argument (Array should be CvMat or IplImage) in function cvGetSize, C \User\VP\opencv\cxcore\src\cxarray.cpp(1453) Press "Abort" to terminate application. Press "Retry" to debug (if the app is running under debugger). Press "Ignore" to continue (this is not safe). 中止(A) 再試行(R) 無視(I) 3.原因 プログラム内で使用する画像がDebugフォルダになかった。デベロッパースタジオからの起動とDebugフォルダからの起動では画像フォルダのパスがそれぞれ異なっていた。 4.解決方法 Debugフォルダ内に必要な画像を用意する。 5.教訓 そもそもBad argumentのエラーダイアログでは原因がわからないので画像がない場合のエラー処理を考えておくべきだった。
https://w.atwiki.jp/btrsgk/pages/38.html
サンプル集です。 簡単なプログラムを紹介しています。 画面制御系 文字列表示 mes "HSP" 指定位置文字列表示 pos 100,100//カレントポジションを100,100)に変更 mes "HSP" 線分表示 line 100,200,300,400 描画色設定 color 0,255,0 mes "HSP" 文字フォント変更 font "MS ゴシック",20 mes "HSP" オブジェクト制御系 ボタン設置 button "ボタン",*hata stop *hata mes "ボタンが押されました" 文字列操作系 文字から一部を取り出す。 mozi="abcdefgh" mes strmid(mozi,2,4) 配列変数系 数値型配列変数を使う(整数型) dim num,3 num(0)=5 num(1)=8 num(2)=2 mes num(0)+num(1)+num(2) 数値型配列変数を使う(小数型) ddim num,3 num(0)=5.9 num(1)=8.7 num(2)=2.9 mes num(0)+num(1)+num(2) 文字列型配列変数を使う dim num,3 num(0)="P" num(1)="H" num(2)="S" mes num(1)+num(0)+num(2)
https://w.atwiki.jp/guru/pages/11.html
環境に非依存なTips 環境依存Tips STL リンク 環境に非依存なTips 円周率π(pi)の定義の仕方 2次元配列へのラスタ捜査 関数に配列をリファレンスで渡す 実行時間を計測する 直交座標から角度を求める 環境依存Tips ただし、今のところはVisual Studio 2005の環境のみ。 特定の警告 (warning) を抑制する リンクするライブラリをコードに埋め込む Visual Studio 2005のIntelliSenseに関するTips STL STL (Standard Template Library)とは STLでファイルコピー 内積を求める 関数オブジェクト雛型 コマンドライン引数(配列)をダンプ リンク シリアルポート (COM、RS232C) のオープンとクローズ トップメニューから、WIN - シリアルポートのオープンとクローズ を選択する。
https://w.atwiki.jp/eveechoesakatsuki/pages/41.html
一つ戻る 必要技術レベル1 惑星開発に関する基礎知識。マスターすると惑星開発効率が向上する。 スキルレベルによる補正値について スキル(基本,上級,最上級) 000 500 550 555 惑星産物発射速度 0.4m3/s 0.6m3/s 0.72m3/s 0.84m3/s 最大惑星開発数 1 2 4 6 最大採掘配列数 2 6 10 14 惑星産物カーゴ容量 100m3 300m3 600m3 1000m3 惑星学 レベル 惑星産物発射速度 最大惑星開発数 最大採掘配列数 惑星産物カーゴ容量 1 +10% +20% 2 +20% +1 +50% 3 +30% +2 +100% 4 +40% +1 +3 +150% 5 +50% +1 +4 +200% 上級惑星学(Ω制限、取得には惑星学Lv4が必要) レベル 惑星産物発射速度 最大惑星開発数 最大採掘配列数 惑星産物カーゴ容量 1 +5% +60% 2 +10% +1 +120% 3 +15% +1 +2 +180% 4 +20% +2 +2 +240% 5 +30% +2 +4 +300% 最上級惑星学(Ω制限、取得には上級惑星学Lv5が必要) レベル 惑星産物発射速度 最大惑星開発数 最大採掘配列数 惑星産物カーゴ容量 1 +5% +80% 2 +10% +1 +160% 3 +15% +1 +2 +240% 4 +20% +2 +2 +320% 5 +30% +2 +4 +400%
https://w.atwiki.jp/japanese_keyboard_layout/pages/3.html
更新履歴 取得中です。
https://w.atwiki.jp/rpg2kpsp/pages/38.html
システム情報 配列番号:0x65(101) 形式 一次元配列 配列番号リスト 配列番号 内容 形式 省略時の初期値 備考 1 BER圧縮整数 11 BER圧縮整数 21 システムグラフィック シフトJIS文字列 既定の設定 31 スイッチのデータ数 BER圧縮整数 0 32 スイッチのデータ bool[] 存在しない部分は全て false 33 変数のデータ数 BER圧縮整数 0 34 変数のデータ int32_t[] 存在しない部分は全て 0 41 42 43 51 52 53 54 55 71 音の再生情報 72 音の再生情報 73 音の再生情報 74 音の再生情報 75 音の再生情報 76 音の再生情報 77 音の再生情報 78 音の再生情報 79 音の再生情報 80 音の再生情報 81 音の再生情報 82 音の再生情報 91 音の再生情報 92 音の再生情報 93 音の再生情報 94 音の再生情報 95 音の再生情報 96 音の再生情報 97 音の再生情報 98 音の再生情報 99 音の再生情報 100 音の再生情報 101 音の再生情報 102 音の再生情報 111 0xffが入っている 112 0xffが入っている 113 0xffが入っている 114 0xffが入っている 115 0xffが入っている 116 0xffが入っている 121 テレポート可能か フラグ 既定の設定 122 エスケープ可能か フラグ 既定の設定 123 セーブ可能か フラグ 既定の設定 124 メニューの呼び出し可能か フラグ 既定の設定 125 戦闘背景 シフトJIS文字列 131 セーブ回数 BER圧縮整数 コメントフォーム 名前 コメント
https://w.atwiki.jp/bioeos/pages/107.html
降水量データをステーションごとのファイルに分ける作業(2) 先週の続きをやりましょう まず、buchashuju.rbを立ち上げます 中身は以下のように入力してください file = "o /学生個人用フォルダ/you/研究データ/buchashuju.txt" #配列データをファイルにして出力する def output_data(data) station_number = data[0][0] #[0][0]最初の列はまた配列で、その中の最初の列 Dir.mkdir("EachStation") unless File.exist?("EachStation")#EachStationフォルダを作る,Dir はディレクトリとはファイルを分類・整理するための保管場所 out = open("EachStation/" + station_number + ".prc","w") #out = openなら必ずout.closeする,open(file)なら大丈夫 #"EachStation/"というフォルダを作り,ファイル名はstation_number, "prc"という拡張子をファイルをつけ る, "w"は書きこみ #データの全要素に対して以下のことをする data.each do |station_number,year,month,day,precipitation| out.printf "%s%5s%3d%6.1f\n", station_number,year,month,day,precipitation #printは書 式付の関数 #%s文字列,%5s 5桁を指定する_先頭は空白(空白は後ろにする場合は%-5s),%3d 3桁の整数,%6.1fは小数点付き6ケタ、小数点後1ケタ end out.close end n_line = 0; rec_number = 0; number_before = 0; total_station = 0 #初期化 data = [] #各観測点全データの格納用配列 #ファイルをオーペンして、以下のことを実行 open(file).each do |line| # puts line # n_line = n_line + 1 v = line.chop.split station_number = v[0] if station_number != number_before total_station += 1 if rec_number 0 output_data(data) p [station_number,rec_number] rec_number = 0; data = [] #配列データをファイルにして出力する end end number_before = station_number n_line += 1 ; rec_number += 1 data v #配列データに1レコードを書く vという配列をdataに入れる end #最終データ観測点の配列データをファイルを出力 output_data(data) puts n_line; puts total_station では、コマンドプロンプトを立ち上げて下さい。 cd というコマンドで、「buchashuju.rb」が存在するディレクトリまで移動します。 ここで、 ruby buchashuju.rb と打つと加工データを"station名.prc"という名前で「EachStation」というフォルダに保存してくれます。 コマンドは以下のようになります 降水量データをステーションごとのファイルに分ける作業はこれで終了です 次は各観測点のつき降水量と年降水量を求める 来週のメインですが、少しずつ進めていきましょう まず、コマンドで cat get_month_anual.rb と打つと新しいファイルをできました。 そこファイルで以下のように入力します #各観測点のつき降水量と年降水量を求める dir = "EachStation/" Dir.foreach(dir) do |file| if /prc$/ =~ file puts file end end 今回はここまでになります。 お疲れ様でした。
https://w.atwiki.jp/perlrefs/pages/2.html
メニュー スカラー変数の宣言 変数の使用 演算子 配列を使う 連想配列? サブルーチンの宣言と定義 参照の使用