さあやってまいりました。
プログラムのノウハウをメモしていこうよ。
VB.NETだよ全員集合
就職できないよ
つっこみ歓迎!
ナレッジマネジメントしていこう。
【知識】俺のためのプログラム覚え書き【共有】
■ このスレッドは過去ログ倉庫に格納されています
2013/02/03(日) 21:15:45.06
65片山博文MZジェバンニ ◆T6xkBnTXz7B0
2014/04/07(月) 14:16:30.42ID:nfj7Xkns66デフォルトの名無しさん
2014/04/07(月) 21:17:19.08ID:cPHU7Y9F 【リポジトリをローカルにコピーする】
git clone https://...
【ファイルかフォルダを次のコミット対象にする】
git add ファイルかフォルダ
【ファイルかフォルダを削除する】
git rm ファイルかフォルダ
【コミットする】
git commit -m "短いメッセージ"
【ファイルかフォルダを直前のコミット状態に戻す】
git checkout ファイルかフォルダ
【コミット状態をアップロードする】
git push origin master
git clone https://...
【ファイルかフォルダを次のコミット対象にする】
git add ファイルかフォルダ
【ファイルかフォルダを削除する】
git rm ファイルかフォルダ
【コミットする】
git commit -m "短いメッセージ"
【ファイルかフォルダを直前のコミット状態に戻す】
git checkout ファイルかフォルダ
【コミット状態をアップロードする】
git push origin master
67デフォルトの名無しさん
2014/04/23(水) 02:20:25.73ID:Be8/NqvO 【ソフトウェア開発7つ道具】
1.IDE/デバッガ
2.リファレンス
3.エディタ
4.Git/SVN
5.Wiki
6.diff/patch
7.仮想マシン
1.IDE/デバッガ
2.リファレンス
3.エディタ
4.Git/SVN
5.Wiki
6.diff/patch
7.仮想マシン
2014/04/23(水) 02:23:51.82ID:Be8/NqvO
5.Wiki/データベース
2014/04/23(水) 02:26:16.11ID:Be8/NqvO
2.リファレンス/マニュアル
70デフォルトの名無しさん
2014/04/28(月) 22:04:58.58ID:nYC6TNjH 企業の事業計画には数学とプログラミングの知識が不可欠である。
71デフォルトの名無しさん
2014/05/01(木) 19:27:41.27ID:O61PxCRM 「インターネット(Amazon)で本を買う方法」
0.自分のメルアドがなければ取得する(Gmailがオススメ)。
1.コンビニで端末を操作してAmazonギフト券を買う。分からないときは店員に訊く。
2.インターネットでAmazonを開き、ほしい本を検索してその本のページを見つける。
3.必要事項を入力して購入手続きを行う。
0.自分のメルアドがなければ取得する(Gmailがオススメ)。
1.コンビニで端末を操作してAmazonギフト券を買う。分からないときは店員に訊く。
2.インターネットでAmazonを開き、ほしい本を検索してその本のページを見つける。
3.必要事項を入力して購入手続きを行う。
2014/05/01(木) 22:51:53.92ID:6V5avLId
オペレーションリサーチって数学に含まれるのか?
73デフォルトの名無しさん
2014/05/02(金) 00:47:14.57ID:NtSo2uBW ORと言えば鳩山由紀夫が
74デフォルトの名無しさん
2014/05/12(月) 23:39:52.21ID:hIlNhllH 【C/C++デバッグ&テストにassert文を使おう】
C言語では<assert.h>を、C++では<cassert>を#includeすればassert文が使えるようになる。
使い方:assert(条件式);
デバッグ版の場合、実行時に評価された条件式がゼロ(or false)ならば、assert失敗になり、
このときプログラム状態が異常と見なされて、位置情報を含むメッセージが出てプログラムが中断する。
この機能により、デバッグ版で実行するだけで多数のテストを一気に済ませることができる。
デバッガを使えば、assertが失敗したときに詳細なデバッギングを開始でき、原因を探ることができる。
C言語では<assert.h>を、C++では<cassert>を#includeすればassert文が使えるようになる。
使い方:assert(条件式);
デバッグ版の場合、実行時に評価された条件式がゼロ(or false)ならば、assert失敗になり、
このときプログラム状態が異常と見なされて、位置情報を含むメッセージが出てプログラムが中断する。
この機能により、デバッグ版で実行するだけで多数のテストを一気に済ませることができる。
デバッガを使えば、assertが失敗したときに詳細なデバッギングを開始でき、原因を探ることができる。
75デフォルトの名無しさん
2014/05/18(日) 18:40:20.49ID:wTsBQBni ブログ=blog≒Web log=Webの記録。
logは元々は丸太という意味で(ログハウスのログ)、航海記録に丸太を使ったのが起源とされる。
logは元々は丸太という意味で(ログハウスのログ)、航海記録に丸太を使ったのが起源とされる。
2014/06/12(木) 20:44:09.98ID:HVN4f7gN
【誰でもできるサイトの作り方】
1.ドメインかサブドメインを取得(レンタルサーバーも可)。
2.HTMLや画像ファイルなどのデータファイルをFTPソフト(FFFTPなど)でアップロード。
3.Googleなどの検索エンジンに登録。
1.ドメインかサブドメインを取得(レンタルサーバーも可)。
2.HTMLや画像ファイルなどのデータファイルをFTPソフト(FFFTPなど)でアップロード。
3.Googleなどの検索エンジンに登録。
77デフォルトの名無しさん
2014/09/07(日) 00:00:03.30ID:dQrAI00B 【PC基本操作】
Alt+Tab ウィンドウ切り替え
Ctrl+C コピー
Ctrl+V 貼り付け
Ctrl+X 切り取り
Del 削除
Esc キャンセル
Enter OK
Ctrl+S 上書き保存
Alt+F4 ウィンドウを閉じる
Win スタート
Win+L ロック
Win+D ウィンドウをすべて最小化してデスクトップ表示
Alt+Tab ウィンドウ切り替え
Ctrl+C コピー
Ctrl+V 貼り付け
Ctrl+X 切り取り
Del 削除
Esc キャンセル
Enter OK
Ctrl+S 上書き保存
Alt+F4 ウィンドウを閉じる
Win スタート
Win+L ロック
Win+D ウィンドウをすべて最小化してデスクトップ表示
78デフォルトの名無しさん
2014/09/28(日) 22:54:48.44ID:uLb79luw 【ネタをニュースに載せて話題にする方法】
1.ニュース記事をホームページに書く(※新規性が大事)。
2.ニュース速報板にスレ立て依頼をする。または、記事をVIP板で話題にする。
3.スレが立ったらあらかじめ用意したシナリオと人海戦術でなるべく場を盛り上げる。
4.そのスレをまとめサイトに掲載したり、はてなブックマークに記録したりする。
1.ニュース記事をホームページに書く(※新規性が大事)。
2.ニュース速報板にスレ立て依頼をする。または、記事をVIP板で話題にする。
3.スレが立ったらあらかじめ用意したシナリオと人海戦術でなるべく場を盛り上げる。
4.そのスレをまとめサイトに掲載したり、はてなブックマークに記録したりする。
2014/09/28(日) 23:09:27.74ID:uLb79luw
間違いがあったら指摘して下さい
2014/10/18(土) 20:42:12.96ID:dP8hne6b
>>79
板
板
81片山博文MZ ◆T6xkBnTXz7B0
2014/12/10(水) 00:27:59.54ID:X4ZXIzIa 【余りの計算を高速化する】
十進法において、偶数は下一桁が必ず偶数になる。
奇数は下一桁が必ず奇数になる。これは10 mod 2≡0という合同式の性質から導かれる。
10 mod 3≡1であるから、ある自然数Xを3で割ったときの余りは、
Xの各ケタを足しあわせたものを3で割ったときの余りに等しい。
このように余りの計算は合同式の性質により高速化が可能になることがある。
十進法において、偶数は下一桁が必ず偶数になる。
奇数は下一桁が必ず奇数になる。これは10 mod 2≡0という合同式の性質から導かれる。
10 mod 3≡1であるから、ある自然数Xを3で割ったときの余りは、
Xの各ケタを足しあわせたものを3で割ったときの余りに等しい。
このように余りの計算は合同式の性質により高速化が可能になることがある。
82片山博文MZ ◆T6xkBnTXz7B0
2014/12/10(水) 00:49:44.99ID:X4ZXIzIa mod 1, mod 2, mod 3, mod 5, mod 9, mod 10, mod 11のときは明らかに高速化できるね。mod (10の倍数)も自明。
mod 4, mod 8はケタを2で掛ける計算が必要。
mod 6は、4で。mod 7は、3で。
mod 4, mod 8はケタを2で掛ける計算が必要。
mod 6は、4で。mod 7は、3で。
2014/12/10(水) 00:53:36.42ID:X4ZXIzIa
×mod (10の倍数)も自明
2014/12/10(水) 21:19:23.96ID:+onBPWUl
85片山博文MZ ◆T6xkBnTXz7B0
2014/12/27(土) 19:47:43.18ID:Cc0RXd7d 【Makefileを書いてみよう】
makeコマンドは、Makefileというファイルに書かれたルールに従って、ファイル作成やビルドを支援する。詳しくは「man make」を参照。
ルールは次のように記述する。
変数1=値1
変数2=値2
...
# ルール1
ターゲットファイル: 作成に必要なファイル
<TAB>作成するためのコマンドライン1
<TAB>作成するためのコマンドライン2
<TAB>...
# ルール2
...
ここに、$(変数1)は「値1」に展開される。また、ある行においてシャープ(#)以降は一行コメントとなる。
ターゲットファイルを更新するかどうかは、必要なファイルの更新日時と比較して決定される。
Makefileは、IDEに頼らずにビルドを行う方法として覚えておきたい。
makeコマンドは、Makefileというファイルに書かれたルールに従って、ファイル作成やビルドを支援する。詳しくは「man make」を参照。
ルールは次のように記述する。
変数1=値1
変数2=値2
...
# ルール1
ターゲットファイル: 作成に必要なファイル
<TAB>作成するためのコマンドライン1
<TAB>作成するためのコマンドライン2
<TAB>...
# ルール2
...
ここに、$(変数1)は「値1」に展開される。また、ある行においてシャープ(#)以降は一行コメントとなる。
ターゲットファイルを更新するかどうかは、必要なファイルの更新日時と比較して決定される。
Makefileは、IDEに頼らずにビルドを行う方法として覚えておきたい。
86片山博文MZ ◆T6xkBnTXz7B0
2015/02/19(木) 20:58:29.89ID:XXveEoOV 【C/C++のコンパイル時間短縮】
結合度の高いモジュールは、仕様を早いうちに決めてなるべく変更しない。
中規模以上では、モジュールの仕様が定まったら、ヘッダーとソースに分け、分割コンパイルする。
ソースファイルが三つ以上なら、プリコンパイル済みヘッダーを使う。
同じような処理は関数やクラスにまとめて再利用する。
モジュール強度の高いモジュールをまとめる。
pImplイディオムを使う。
結合度の高いモジュールは、仕様を早いうちに決めてなるべく変更しない。
中規模以上では、モジュールの仕様が定まったら、ヘッダーとソースに分け、分割コンパイルする。
ソースファイルが三つ以上なら、プリコンパイル済みヘッダーを使う。
同じような処理は関数やクラスにまとめて再利用する。
モジュール強度の高いモジュールをまとめる。
pImplイディオムを使う。
87片山博文MZ ◆T6xkBnTXz7B0
2015/06/19(金) 23:51:33.10ID:0f7L9Mo9 【差分パッチを作る】
diff -Nru (古) (新) > my.patch
※最後に冗長な/などを付けないこと。
【パッチをあてる】
cd (新)
patch -p1 < my.patch
diff -Nru (古) (新) > my.patch
※最後に冗長な/などを付けないこと。
【パッチをあてる】
cd (新)
patch -p1 < my.patch
88片山博文MZ ◆T6xkBnTXz7B0
2015/06/27(土) 20:55:56.62ID:JmAIGVSo giflibの関数EGifSpewが、成功するとgifオブジェクトは閉じられているが、
失敗すると閉じたか閉じていないか、わからない。
処理が失敗したときもメモリーリークしないように作って欲しい。
失敗すると閉じたか閉じていないか、わからない。
処理が失敗したときもメモリーリークしないように作って欲しい。
89片山博文MZ ◆T6xkBnTXz7B0
2015/07/17(金) 20:25:57.34ID:Ifv8D+/7 【C/C++】
この構文、結構便利だ。gotoを使わずに済む。
do {
if (...) break;
if (...) break;
...
} while (0);
この構文、結構便利だ。gotoを使わずに済む。
do {
if (...) break;
if (...) break;
...
} while (0);
2015/07/21(火) 14:02:22.88ID:/4VVbVfg
【日本人にとって韓国のインターネットは危険】
あなたがK-POPファンであっても、韓国のインターネットを
見るのはやめた方がいい。韓国は、名前の知られた財閥企業の
ホームページにも堂々とウイルスが仕掛けられているほど、
ウイルスが蔓延している。韓国のウェブサイトは無法地帯だから、
日本人が閲覧していると判断すると、攻撃を仕掛けてくるかもしれない。
あなたがK-POPファンであっても、韓国のインターネットを
見るのはやめた方がいい。韓国は、名前の知られた財閥企業の
ホームページにも堂々とウイルスが仕掛けられているほど、
ウイルスが蔓延している。韓国のウェブサイトは無法地帯だから、
日本人が閲覧していると判断すると、攻撃を仕掛けてくるかもしれない。
91片山博文MZ ◆T6xkBnTXz7B0
2015/08/06(木) 16:22:03.56ID:4xD13DN7 【パッケージマネージャaptまとめ】
パッケージ検索:apt-cache search (文字列)
パッケージインストール(権限が必要):apt-get install (パッケージ名)
パッケージの削除:apt-get remove (パッケージ名)
ソース入手:apt-get source (パッケージ名)
パッケージ検索:apt-cache search (文字列)
パッケージインストール(権限が必要):apt-get install (パッケージ名)
パッケージの削除:apt-get remove (パッケージ名)
ソース入手:apt-get source (パッケージ名)
92片山博文MZ ◆T6xkBnTXz7B0
2015/10/23(金) 12:27:31.45ID:/zhY2mEN 不正なデータが含まれていない世界では、データ整合性チェックが省けて処理が早くできるはず。
93片山博文MZ ◆T6xkBnTXz7B0
2015/11/02(月) 19:09:42.10ID:N6XDKRqL 【パッケージ管理について】
最近のソフトウェア開発においては、パッケージ管理の標準化と省力化が重要になってきている。
Ubuntuではapt-getが使え、Visual StudioではNuGetが、MSYS2ではpacmanが
パッケージマネージャーとして採用されている。
いちいちライブラリーのソースをダウンロードしてコンパイルするのは、
時代遅れになるかも知れない。
最近のソフトウェア開発においては、パッケージ管理の標準化と省力化が重要になってきている。
Ubuntuではapt-getが使え、Visual StudioではNuGetが、MSYS2ではpacmanが
パッケージマネージャーとして採用されている。
いちいちライブラリーのソースをダウンロードしてコンパイルするのは、
時代遅れになるかも知れない。
94片山博文MZ ◆T6xkBnTXz7B0
2015/11/02(月) 19:55:39.16ID:N6XDKRqL 他のパッケージ管理システムとしては、RubyにはRubyGemsがあり、D言語にはdubが、
Mac OS XにはMacPortsやHomeBrewが、その他のLinuxにはyumがある。
Mac OS XにはMacPortsやHomeBrewが、その他のLinuxにはyumがある。
95片山博文MZ ◆T6xkBnTXz7B0
2015/11/02(月) 20:00:28.60ID:N6XDKRqL 自作のライブラリーのシェアを高めたいと考えているなら、
それをパッケージ化してこうしたパッケージ管理システムに登録するのも良いだろう。
それをパッケージ化してこうしたパッケージ管理システムに登録するのも良いだろう。
2015/11/03(火) 09:03:30.56ID:qMKmSapR
片山ウザい
97片山博文MZ ◆T6xkBnTXz7B0
2015/11/11(水) 20:12:09.25ID:Fj5jRqmp 複数のstd::mutexを使う場合、lockの後にunlockを呼ばないといけないのは
当たり前だが、lockの順序を間違うとデッドロックになることがある。
当たり前だが、lockの順序を間違うとデッドロックになることがある。
98片山博文MZ ◆T6xkBnTXz7B0
2015/11/25(水) 21:55:37.53ID:WGqqylpJ 64ビットUbuntuは開発環境としてはイケてない。パッケージマネージャがダメ。他探せ。
99片山博文MZ ◆T6xkBnTXz7B0
2015/11/28(土) 14:15:01.67ID:7rFxET1r GCCでデバッグ情報つきでコンパイルする (-gオプション)
$ gcc -g hoge.c -o hoge
コアダンプを出力する設定 (ulimitコマンド)
$ ulimit -c unlimited
GDBでコアダンプの解析
$ gdb hoge core
おもなGDBのコマンド
backtrace : 関数の呼び出し順表示 短縮形は bt
frame n : backtraceで表示された関数のn番目に移動
info locals : ローカル変数の一覧表示
info args : 引数の一覧表示
print var : 変数varの値表示
directory : ソースのディレクトリを指定
http://d.hatena.ne.jp/licheng/
$ gcc -g hoge.c -o hoge
コアダンプを出力する設定 (ulimitコマンド)
$ ulimit -c unlimited
GDBでコアダンプの解析
$ gdb hoge core
おもなGDBのコマンド
backtrace : 関数の呼び出し順表示 短縮形は bt
frame n : backtraceで表示された関数のn番目に移動
info locals : ローカル変数の一覧表示
info args : 引数の一覧表示
print var : 変数varの値表示
directory : ソースのディレクトリを指定
http://d.hatena.ne.jp/licheng/
100片山博文MZ ◆T6xkBnTXz7B0
2016/01/17(日) 20:22:46.64ID:uhuIV1e8 価値あるデータの自動生成は、無から価値を産み出す美味しいビジネスになる。
101片山博文MZ ◆T6xkBnTXz7B0
2016/01/17(日) 20:29:38.29ID:uhuIV1e8 >>98は撤回させて下さい。
apt-getでCPUを指定する方法をしらなかった。
apt-getでCPUを指定する方法をしらなかった。
102片山博文MZ ◆T6xkBnTXz7B0
2016/02/22(月) 01:57:34.60ID:C/gFN+RL 【プロジェクト作成にCMakeを使おう】
プロジェクトやMakefileを作成するための便利なツール、CMakeを使おう。
CMakeはさまざまな環境で動作するクロスプラットフォームなツールだ。
使い方はまず、プロジェクト設定のためのCMakeList.txtファイルを作成する。
「CMakeList.txt 書き方」で検索してみてくれ。
次にcmake . && makeだ。cmakeはプロジェクトファイルやMakefileを作成する。
cmakeの実行方法がわからないときはcmake-guiを代わりに使おう。
プロジェクトやMakefileを作成するための便利なツール、CMakeを使おう。
CMakeはさまざまな環境で動作するクロスプラットフォームなツールだ。
使い方はまず、プロジェクト設定のためのCMakeList.txtファイルを作成する。
「CMakeList.txt 書き方」で検索してみてくれ。
次にcmake . && makeだ。cmakeはプロジェクトファイルやMakefileを作成する。
cmakeの実行方法がわからないときはcmake-guiを代わりに使おう。
103デフォルトの名無しさん
2016/02/22(月) 01:59:35.23ID:C/gFN+RL104片山博文MZ ◆T6xkBnTXz7B0
2016/02/22(月) 02:27:22.49ID:C/gFN+RL 【CMakeのここがスゴい!】
☆最小限の記述でOK。いちいちMakefileを書く手間を省ける。
☆ビルドはマルチスレッド対応。
☆ヘッダーの依存関係を自動的に読み取る。
☆WindowsでもLinuxでもMacでも動作。
☆さまざまなバージョンのVisual Studio、Makefileなど、多数の開発環境に対応。
☆最小限の記述でOK。いちいちMakefileを書く手間を省ける。
☆ビルドはマルチスレッド対応。
☆ヘッダーの依存関係を自動的に読み取る。
☆WindowsでもLinuxでもMacでも動作。
☆さまざまなバージョンのVisual Studio、Makefileなど、多数の開発環境に対応。
105片山博文MZ ◆T6xkBnTXz7B0
2016/02/26(金) 14:47:20.21ID:5FBVx/js MSYS2における正しいパッケージの更新方法
http://qiita.com/k-takata/items/373ec7f23d5d7541f982
>MSYS2のpacmanを使ってパッケージを更新する場合、正しい手順を踏まないとパッケージが正常に更新できない場合があります。
http://qiita.com/k-takata/items/373ec7f23d5d7541f982
>MSYS2のpacmanを使ってパッケージを更新する場合、正しい手順を踏まないとパッケージが正常に更新できない場合があります。
106片山博文MZ ◆T6xkBnTXz7B0
2016/03/05(土) 23:54:19.25ID:niBmwPNn 【Gitで不要ファイル削除】
.gitignore で無視するように指定されているファイルを削除するコマンドは
「git clean -X -f」
である。
.gitignore で無視するように指定されているファイルを削除するコマンドは
「git clean -X -f」
である。
107片山博文MZ ◆T6xkBnTXz7B0
2016/03/08(火) 21:54:18.53ID:dCW2/Xzy コマンドプロンプトで「start .」を入力すると、
現在のフォルダが開かれる。
現在のフォルダが開かれる。
109片山博文MZ ◆T6xkBnTXz7B0
2016/03/13(日) 00:01:32.06ID:u6dP9Emt Linux MintのWebサイトが改ざんされ、ウイルスを配布していたという事件が
あったらしい。何者かがフリーソフトウェア、オープンソースに対する妨害活動を
行っているらしい。どこの企業とは言わないが。
あったらしい。何者かがフリーソフトウェア、オープンソースに対する妨害活動を
行っているらしい。どこの企業とは言わないが。
110片山博文MZ ◆T6xkBnTXz7B0
2016/04/01(金) 01:39:52.05ID:cbPhNKwQ ハンバーガーアイコンは、合同記号「≡」で表示できる。
111片山博文MZ ◆T6xkBnTXz7B0
2016/04/04(月) 20:53:35.14ID:IQfIiZrc 【clang-formatでC/C++ソースを整形しよう】
自分の好みではないコーディングスタイルのソースを
clang-formatというツール(Clangパッケージに含まれている)できれいに整形できる。
ソースをGoogleスタイルにしたい場合は、
$ clang-format -i --style=google *.cpp *.h
でOK。-iを付けると上書きされる。ただし
Googleスタイルの整形は#includeの順番を入れ替えるので注意が必要だ。
整形の前に必ずコピーバックアップしておこう。
自分の好みではないコーディングスタイルのソースを
clang-formatというツール(Clangパッケージに含まれている)できれいに整形できる。
ソースをGoogleスタイルにしたい場合は、
$ clang-format -i --style=google *.cpp *.h
でOK。-iを付けると上書きされる。ただし
Googleスタイルの整形は#includeの順番を入れ替えるので注意が必要だ。
整形の前に必ずコピーバックアップしておこう。
112デフォルトの名無しさん
2016/04/04(月) 21:02:52.57ID:n+E9DRML 良スレかと思ったが微妙なネタばかりだね
113片山博文MZ ◆T6xkBnTXz7B0
2016/04/25(月) 00:19:45.17ID:9Ydy9Lbh 【C++のライブラリをヘッダーだけにする】
もう.cppファイルの付いたライブラリは要らない?
定義を何もかもヘッダーに移して.cppファイルのコンパイルを減らそう。
やり方。
☆ 短い関数定義→インライン化。
☆ 長い関数定義→テンプレート関数にする。
☆ グローバル変数→インライン関数内のstatic変数への参照で代用。
☆ 定数→static const変数かマクロ定数かenumにする。
もう.cppファイルの付いたライブラリは要らない?
定義を何もかもヘッダーに移して.cppファイルのコンパイルを減らそう。
やり方。
☆ 短い関数定義→インライン化。
☆ 長い関数定義→テンプレート関数にする。
☆ グローバル変数→インライン関数内のstatic変数への参照で代用。
☆ 定数→static const変数かマクロ定数かenumにする。
114片山博文MZ ◆T6xkBnTXz7B0
2016/05/05(木) 00:33:28.45ID:Oq7RlKiI 【C/C++のスゴいライブラリー】
C/C++の役に立つ、実際に大いに役立っている素晴らしいライブラリーの
リストがここにある。
https://github.com/fffaraz/awesome-cpp
ソフトウェア開発の参考にしてね。
C/C++の役に立つ、実際に大いに役立っている素晴らしいライブラリーの
リストがここにある。
https://github.com/fffaraz/awesome-cpp
ソフトウェア開発の参考にしてね。
115デフォルトの名無しさん
2016/05/05(木) 04:15:50.22ID:4MuIXLBx116片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 06:33:01.30ID:Mz5tnssE 昔は……開発環境にお金を払わないとプログラマになれなかった。
今は……開発環境・マニュアルが無料でダウンロードできて誰でもプログラマになれるようになった。
ホントに恵まれてるね。
今は……開発環境・マニュアルが無料でダウンロードできて誰でもプログラマになれるようになった。
ホントに恵まれてるね。
117片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 20:51:20.86ID:Mz5tnssE 配列をインデックスで逆向きに処理する?
int a[9];
for (int i = 8; i >= 0; i--) a[i]...
それはstd::rbegin, std::rendでスマートに書き換えられるよ!
auto rend = std::rend(a);
for (auto it = std::rbegin(a); it != rend; ++it) *it...
int a[9];
for (int i = 8; i >= 0; i--) a[i]...
それはstd::rbegin, std::rendでスマートに書き換えられるよ!
auto rend = std::rend(a);
for (auto it = std::rbegin(a); it != rend; ++it) *it...
118デフォルトの名無しさん
2016/07/09(土) 20:58:56.18ID:KCNMgxTc i==0で i--はエラー
119片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 21:03:40.18ID:Mz5tnssE Boostはもっとスマートだよ。
#include <boost/range/adaptor/reversed.hpp>
for (auto i : boost::adaptors::reverse(a))
std::cout << i << std::endl;
#include <boost/range/adaptor/reversed.hpp>
for (auto i : boost::adaptors::reverse(a))
std::cout << i << std::endl;
120片山博文MZ ◆T6xkBnTXz7B0
2016/07/09(土) 21:07:41.44ID:Mz5tnssE >>118
int型なのでセーフ。このときC++では例外や実行時エラーは発生しない。
int型なのでセーフ。このときC++では例外や実行時エラーは発生しない。
121デフォルトの名無しさん
2016/07/09(土) 21:30:51.48ID:whD12s8T #define n (10)
int a[n];
for (size_t i=n; i>0; ) {
--i;
a[i] = ...;
}
逆順ならいつもこうしてるわ負の値などそもそも要らんのだよ
ループの終わりに固定されるforの第3項の存在は忘れたほうがいい
int a[n];
for (size_t i=n; i>0; ) {
--i;
a[i] = ...;
}
逆順ならいつもこうしてるわ負の値などそもそも要らんのだよ
ループの終わりに固定されるforの第3項の存在は忘れたほうがいい
123片山博文MZ ◆T6xkBnTXz7B0
2016/07/10(日) 22:32:22.78ID:5zTLoRwv124片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 22:46:50.42ID:ZZZ997rF Eigenは線形代数のC++用テンプレートライブラリです。
ベクトルや行列の計算が簡単にできちゃう!?
ベクトルや行列の計算が簡単にできちゃう!?
125片山博文MZ ◆T6xkBnTXz7B0
2016/10/18(火) 11:01:10.87ID:nS8R0gYs 【テストの自動化のやり方】
1.テストしやすいモジュール(部品)に分解する。例えば、電卓であれば、計算モジュールと表示モジュールに分ける。
2.テスト対象を構造体配列やテキストファイルなどを使ってデータ化する。
3.テストデータの各項目についてテストするテストプログラムを作る。
4.テストプログラムを実行する。
1.テストしやすいモジュール(部品)に分解する。例えば、電卓であれば、計算モジュールと表示モジュールに分ける。
2.テスト対象を構造体配列やテキストファイルなどを使ってデータ化する。
3.テストデータの各項目についてテストするテストプログラムを作る。
4.テストプログラムを実行する。
126片山博文MZ ◆T6xkBnTXz7B0
2016/11/03(木) 19:41:31.13ID:bkzCM1IA 【C++11】
可変長テンプレート引数に値をそのまま渡すと値渡しになってしまう。
参照を渡したいときはC++11のstd::ref, std::crefを使う。
可変長テンプレート引数に値をそのまま渡すと値渡しになってしまう。
参照を渡したいときはC++11のstd::ref, std::crefを使う。
127片山博文MZ ◆T6xkBnTXz7B0
2016/11/21(月) 02:32:53.38ID:bG1+lpHY effective c++入門
http://www002.upp.so-net.ne.jp/ys_oota/effec/
http://www002.upp.so-net.ne.jp/ys_oota/effec/
128片山博文MZ ◆T6xkBnTXz7B0
2016/11/21(月) 13:23:26.22ID:bG1+lpHY テスト用のWindowsの仮想マシンは無料で入手できる。
仮想マシンはVirtualBoxなどで動かせる。
仮想マシンはVirtualBoxなどで動かせる。
129片山博文MZ ◆T6xkBnTXz7B0
2016/11/30(水) 21:05:10.17ID:OQgCUTWg 【CとC++の両方でアクセスできるデータ構造】
typedef struct MY_DATA {
...
} MY_DATA;
#ifdef __cplusplus
class MyData : protected MY_DATA {
public:
...
};
#endif
これでC/C++でデータ構造を共通化できるぞ。
typedef struct MY_DATA {
...
} MY_DATA;
#ifdef __cplusplus
class MyData : protected MY_DATA {
public:
...
};
#endif
これでC/C++でデータ構造を共通化できるぞ。
130片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 17:38:47.69ID:7QWR4VpB 【gccのよく使うコマンドラインオプション】
-c
コンパイルのみでリンクはしない。
-o file.exe
-o file.o
出力ファイルを指定する。
-O0 (オーとゼロ)
最適化なし。
-O3
最適化する。
-g -ggdb
デバッグ情報を付加する。
-Idir
ディレクトリdirを#includeの検索パスに追加する。
-Ldir
ディレクトリdirをリンカの検索パスに追加する。
-c
コンパイルのみでリンクはしない。
-o file.exe
-o file.o
出力ファイルを指定する。
-O0 (オーとゼロ)
最適化なし。
-O3
最適化する。
-g -ggdb
デバッグ情報を付加する。
-Idir
ディレクトリdirを#includeの検索パスに追加する。
-Ldir
ディレクトリdirをリンカの検索パスに追加する。
131片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 17:47:14.03ID:7QWR4VpB 【gccの覚えておくと便利なコマンドラインオプション】
-lmylib
ライブラリlibmylib.aをリンクする。
-Wall -pedantic
初心者向けにていねいに警告をしてもらう。
-m32
32ビットプログラムとしてコンパイル・リンクする。
-m64
64ビットプログラムとしてコンパイル・リンクする。
-mwindows
ウィンドウズアプリとしてビルドする。
-lmylib
ライブラリlibmylib.aをリンクする。
-Wall -pedantic
初心者向けにていねいに警告をしてもらう。
-m32
32ビットプログラムとしてコンパイル・リンクする。
-m64
64ビットプログラムとしてコンパイル・リンクする。
-mwindows
ウィンドウズアプリとしてビルドする。
132片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 18:02:11.09ID:7QWR4VpB 【おまけ】
--version
バージョン情報を表示する。
-v --help
詳しいヘルプを表示する。
-std=c11
C11規格でビルドする。
--version
バージョン情報を表示する。
-v --help
詳しいヘルプを表示する。
-std=c11
C11規格でビルドする。
133片山博文MZ ◆T6xkBnTXz7B0
2016/12/16(金) 18:16:49.04ID:7QWR4VpB 【おまけ2】
-static
なるべくスタティックリンクとしてリンクする(依存するDLLファイルを少なくする)。
-shared
DLLファイルを作る。
※補足。ライブラリファイルを作成したいときはarというコマンドを使う。
-static
なるべくスタティックリンクとしてリンクする(依存するDLLファイルを少なくする)。
-shared
DLLファイルを作る。
※補足。ライブラリファイルを作成したいときはarというコマンドを使う。
134片山博文MZ ◆T6xkBnTXz7B0
2016/12/18(日) 16:18:29.48ID:hdD8XdI2 【三値論理】
論理学を勉強したなら、真(true)、偽(false)の意味は知ってるだろう。「三値論理」はその2つの値に加えて「未知(unknown)」という論理値を導入する。
なぜなら未知という値があると便利なことがあるからだ。例えば、あるブール値のテストにおいて「真の値ならテスト合格」、
「偽の値ならテスト合格」の他に「どちらの値でも合格」という意味の論理データを埋め込むことができる。C言語では次のように定義する。
typedef enum TRISTATE { TS_UNKNOWN, TS_TRUE, TS_FALSE };
ここでTS_UNKNOWNを先頭にしたのは、未知は既定値にする方が扱い易いからだ。
論理学を勉強したなら、真(true)、偽(false)の意味は知ってるだろう。「三値論理」はその2つの値に加えて「未知(unknown)」という論理値を導入する。
なぜなら未知という値があると便利なことがあるからだ。例えば、あるブール値のテストにおいて「真の値ならテスト合格」、
「偽の値ならテスト合格」の他に「どちらの値でも合格」という意味の論理データを埋め込むことができる。C言語では次のように定義する。
typedef enum TRISTATE { TS_UNKNOWN, TS_TRUE, TS_FALSE };
ここでTS_UNKNOWNを先頭にしたのは、未知は既定値にする方が扱い易いからだ。
135片山博文MZ ◆T6xkBnTXz7B0
2016/12/26(月) 20:50:03.00ID:+txY7xq1 【検索よけ】
君のホームページから検索エンジンのロボットを退散させる魔法のHTMLタグを伝授しよう。
これだ:
<meta name="robots" content="noindex,nofollow" />
君のホームページから検索エンジンのロボットを退散させる魔法のHTMLタグを伝授しよう。
これだ:
<meta name="robots" content="noindex,nofollow" />
136片山博文MZ ◆T6xkBnTXz7B0
2016/12/26(月) 20:53:07.17ID:+txY7xq1 【検索よけ補足】
このタグは<head> ... </head>の中に書かないと効果はない。
このタグは<head> ... </head>の中に書かないと効果はない。
137片山博文MZ ◆T6xkBnTXz7B0
2016/12/26(月) 21:08:02.83ID:+txY7xq1 noindex,nofollowのページを収集する凶悪なボットを思い付いた。
作っちゃダメだよ(たぶん違法)。
作っちゃダメだよ(たぶん違法)。
138片山博文MZ ◆T6xkBnTXz7B0
2017/01/04(水) 18:23:18.38ID:83LRywdJ 【C/C++制御】
gotoで地獄へ行くのをdo/break/whileに書き換えることができる。
...
goto hell;
...
goto hell;
...
hell: ...
return 0;
↓↓↓
do {
...
break;
...
break;
...
} while (0);
...
return 0;
gotoで地獄へ行くのをdo/break/whileに書き換えることができる。
...
goto hell;
...
goto hell;
...
hell: ...
return 0;
↓↓↓
do {
...
break;
...
break;
...
} while (0);
...
return 0;
139片山博文MZ ◆T6xkBnTXz7B0
2017/01/07(土) 23:50:41.70ID:ogQHxHuf 【世界で活躍する君達へ】
君達は素晴らしい可能性を秘めている。しかし、価値あるものは狙われ易い。
身の回りのセキュリティはしっかりしておこう。どんな天才でも薬物を盛られるとダメになる。
弁当箱と水筒には鍵を掛けておこう。
君達は素晴らしい可能性を秘めている。しかし、価値あるものは狙われ易い。
身の回りのセキュリティはしっかりしておこう。どんな天才でも薬物を盛られるとダメになる。
弁当箱と水筒には鍵を掛けておこう。
140片山博文MZ ◆T6xkBnTXz7B0
2017/02/24(金) 20:02:21.63ID:GmCeVF1B 開発者は太っていてもやせていてもdevと呼ばれる。
141片山博文MZ ◆T6xkBnTXz7B0
2017/03/24(金) 23:23:07.88ID:8fi/a9wO 【C++でstd::wcoutを使う前のおまじない】
#include <locale>
#include <clocale>
std::wcout.imbue(std::locale(""));
std::setlocale(LC_ALL, "");
#include <locale>
#include <clocale>
std::wcout.imbue(std::locale(""));
std::setlocale(LC_ALL, "");
142片山博文MZ ◆T6xkBnTXz7B0
2017/03/26(日) 19:19:48.46ID:YMOeuswC 【C++格言】
生ポインタをなるべく使うな。
生ポインタをなるべく使うな。
143片山博文MZ ◆T6xkBnTXz7B0
2017/03/29(水) 21:21:06.83ID:uG+6tdKu 【C++プログラミングを極めるには】
1. マニュアル(規格票)をよく読む。
2. C/C++ FAQをよく読む。
3. Effective C++をよく読む。
4. 実際にコードをよく書く。
1. マニュアル(規格票)をよく読む。
2. C/C++ FAQをよく読む。
3. Effective C++をよく読む。
4. 実際にコードをよく書く。
144片山博文MZ ◆T6xkBnTXz7B0
2017/03/29(水) 21:28:47.27ID:uG+6tdKu 5. デザインパターンを研究する。
6. IDEとデバッグ手法を極める。
6. IDEとデバッグ手法を極める。
145片山博文MZ ◆T6xkBnTXz7B0
2017/04/11(火) 01:19:00.42ID:Kut+59ha 【原因不明の障害は時刻を疑え!】
最近、ウィンドウズの内部時計が勝手に狂うという現象が多数確認されているらしい。
ビルドがおかしい、更新されない場合は、ウィンドウズやファイルの時刻を一度確認してはいかがだろうか。
最近、ウィンドウズの内部時計が勝手に狂うという現象が多数確認されているらしい。
ビルドがおかしい、更新されない場合は、ウィンドウズやファイルの時刻を一度確認してはいかがだろうか。
146片山博文MZ ◆T6xkBnTXz7B0
2017/04/11(火) 01:30:07.53ID:Kut+59ha (続き)ウィンドウズには、インターネット上の時計に常に同期するという機能があるが、
インターネット上の時計も狂うことがあるらしい。そうした場合は時計の同期を停止して、手動で時計合わせすると、
一時的に問題を避けられる。時計が狂った詳しい原因は不明。
インターネット上の時計も狂うことがあるらしい。そうした場合は時計の同期を停止して、手動で時計合わせすると、
一時的に問題を避けられる。時計が狂った詳しい原因は不明。
147片山博文MZ ◆T6xkBnTXz7B0
2017/04/17(月) 19:10:17.59ID:dVaQYL/0 小ネタ: Winでアウトラインフォントを列挙する時は
if (nFontType & TRUETYPE_FONTTYPE)
なんて判定の仕方はしてはダメ
PostScriptなotfは DEVICE_FONTTYPE 扱いされるのでこれもチェックする必要あり
if (nFontType & TRUETYPE_FONTTYPE)
なんて判定の仕方はしてはダメ
PostScriptなotfは DEVICE_FONTTYPE 扱いされるのでこれもチェックする必要あり
148片山博文MZ ◆T6xkBnTXz7B0
2017/04/22(土) 19:04:01.72ID:rLCodfG7 【MS-DOSの叡智】
MS-DOSの知識は決して無駄ではない。ウィンドウズが故障して、壊れていないファイルを取り出すときに、DOSのコマンドの知識が役立つ。DOSのコマンドを知っていれば、PCの修理屋さんになれるかも?
【ディレクトリの削除】
C:\> rd /s /q (削除したいディレクトリ)
【ディレクトリごとコピー】
C:\> xcopy /s (古いディレクトリ) (新しいディレクトリ)
【ディスク切り替え】
C:\> D:
【名前変更】
C:\> ren (古い名前) (新しい名前)
【ファイルコピー】
C:\> copy (古いファイル) (新しいファイル)
【現在のディレクトリ移動】
C:\> cd (ディレクトリパス)
MS-DOSの知識は決して無駄ではない。ウィンドウズが故障して、壊れていないファイルを取り出すときに、DOSのコマンドの知識が役立つ。DOSのコマンドを知っていれば、PCの修理屋さんになれるかも?
【ディレクトリの削除】
C:\> rd /s /q (削除したいディレクトリ)
【ディレクトリごとコピー】
C:\> xcopy /s (古いディレクトリ) (新しいディレクトリ)
【ディスク切り替え】
C:\> D:
【名前変更】
C:\> ren (古い名前) (新しい名前)
【ファイルコピー】
C:\> copy (古いファイル) (新しいファイル)
【現在のディレクトリ移動】
C:\> cd (ディレクトリパス)
149片山博文MZ ◆T6xkBnTXz7B0
2017/04/22(土) 19:25:44.07ID:rLCodfG7 【MS-DOS基礎知識】
あるコマンドの使い方がわからないときはコマンド名に/?をつけて実行しろ。
コマンドの名前自体がわからないときはHELPしろ。
ワイルドカード文字(*と?)を使えば、複数のファイルをいっぺんに処理できるかも。
ファイル名の一部を入力して、Tabキーを押せば、入力補完してくれるかも?
MS-DOSのファイルシステムFATは形を変えつつも現在でも広く使われている。
MS-DOSは起動が早いよね。
あるコマンドの使い方がわからないときはコマンド名に/?をつけて実行しろ。
コマンドの名前自体がわからないときはHELPしろ。
ワイルドカード文字(*と?)を使えば、複数のファイルをいっぺんに処理できるかも。
ファイル名の一部を入力して、Tabキーを押せば、入力補完してくれるかも?
MS-DOSのファイルシステムFATは形を変えつつも現在でも広く使われている。
MS-DOSは起動が早いよね。
150片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:13:04.73ID:tHau9+Vv WindowsとWin32は商標登録されている。
151片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:17:05.91ID:tHau9+Vv Microsoft、 MS、MS-DOSも商標登録されている。Win32のことをWin32APIと書いたり、MSをM$と書いたりするのも商標を避けるためだ。
152片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:17:48.97ID:tHau9+Vv あげ
153片山博文MZ ◆T6xkBnTXz7B0
2017/06/07(水) 18:32:24.94ID:tHau9+Vv つまり、競争相手はWindowsと書くのは商標に抵触する恐れがある。競争相手は商標を使えない。
「Windows 10」ではなく、スペースをつめて「Windows10」または「Win10」と書かないといけない。
これらはビジネスマナーに関わることだ。
「Windows 10」ではなく、スペースをつめて「Windows10」または「Win10」と書かないといけない。
これらはビジネスマナーに関わることだ。
154デフォルトの名無しさん
2017/06/07(水) 22:46:54.37ID:izePe9Zb >>150以下
ほぅほぅ
ちょっとこの質問は この板、このスレの本筋からは反れるだろうけど気になったんで聞いてみるが
逆に言うと
コレならオッケーと言う部分を敢えて「遊び」として設けてるって事?
素人感覚じゃ考えうる全パターン登録しちゃえばいいじゃん?になるけど
どうもそこまでガッツリでも無さげにも見える
スペース詰めて書けばいいよ=それは登録して無いからご自由に とか
(第三者が金もかからんので勝手に使ってくれる でも明らかにウチの名前よね→内容が賛否関わらず 宣伝ありがとう みたいなん前提?)
もしくはそこまでガッツリは他の要因で登録出来ないだけ?
ほぅほぅ
ちょっとこの質問は この板、このスレの本筋からは反れるだろうけど気になったんで聞いてみるが
逆に言うと
コレならオッケーと言う部分を敢えて「遊び」として設けてるって事?
素人感覚じゃ考えうる全パターン登録しちゃえばいいじゃん?になるけど
どうもそこまでガッツリでも無さげにも見える
スペース詰めて書けばいいよ=それは登録して無いからご自由に とか
(第三者が金もかからんので勝手に使ってくれる でも明らかにウチの名前よね→内容が賛否関わらず 宣伝ありがとう みたいなん前提?)
もしくはそこまでガッツリは他の要因で登録出来ないだけ?
155片山博文MZ ◆T6xkBnTXz7B0
2017/07/02(日) 00:52:24.05ID:zEgkUzwo コンピューターの進化により、マルチコア環境が当たり前になった。これは複数のCPUが同時に動くような効果がある。
そこで、時間のかかる重たい処理では、並列処理を前提にしたコードを書くとパフォーマンスの向上が望まれる。
普通のありふれた環境で、並列処理を行うには、マルチスレッドやOpenMPを使うのが一般的だ。
そこで、時間のかかる重たい処理では、並列処理を前提にしたコードを書くとパフォーマンスの向上が望まれる。
普通のありふれた環境で、並列処理を行うには、マルチスレッドやOpenMPを使うのが一般的だ。
156片山博文MZ ◆T6xkBnTXz7B0
2017/07/19(水) 23:12:27.01ID:MaD+cEa1 プログラマーたるもの、普通に技術文章を書くときでも、大文字小文字、全角半角の区別、機種依存文字の不使用に気をつけて書きなさい。
アメリカでは技術文書の書き方の手本がきちんと定義されている。
アメリカでは技術文書の書き方の手本がきちんと定義されている。
157片山博文MZ ◆T6xkBnTXz7B0
2017/08/07(月) 18:32:15.32ID:uTywTMsC LoadStringとTrackPopupMenuにはバグがある。
158片山博文MZ ◆T6xkBnTXz7B0
2017/08/23(水) 20:31:18.07ID:8VCPyRKy clang + MinGWで作ったexeはWin95でも動作可能かも?
159片山博文MZ ◆T6xkBnTXz7B0
2017/09/13(水) 17:35:20.37ID:L3vY8TY2 BlueToothにBlueBorneという脆弱性が発見されたらしい。対策ができていない機器ではBlueToothを有効にしてはならない。ネットワーク経由で狙われるぞ。
160片山博文MZ ◆T6xkBnTXz7B0
2017/09/28(木) 23:09:19.34ID:Msp1dHAD ソフトウェアを部品(モジュール)に分けて考えることは非常に重要だ。ソフトウェアは部品の
組み合わせで作成できる。大きな問題や課題を解決しやすい小さなタスクに分ければ、問題解決につながる。
組み合わせで作成できる。大きな問題や課題を解決しやすい小さなタスクに分ければ、問題解決につながる。
161片山博文MZ ◆T6xkBnTXz7B0
2017/10/12(木) 19:21:19.84ID:loBt1/dE Maxima(マキシマ)という無料の数式処理ソフトを使えば、パソコンで微積分を計算したり、方程式を解いたりすることができる。お試しあれ。
162片山博文MZ ◆T6xkBnTXz7B0
2017/10/23(月) 00:04:02.00ID:aoVPN+Cq 悪ぶってもモテない。ちょいワルオヤジがモテる、は嘘八百のデタラメ。
163片山博文MZ ◆T6xkBnTXz7B0
2017/11/23(木) 15:22:46.46ID:uCvKyUJ1 超デカいプロジェクトでスレッド無制限の「make -j」を実行するとOSが死ぬ。
164片山博文MZ ◆T6xkBnTXz7B0
2017/11/27(月) 13:11:21.47ID:5ZEOZsWh 木構造やリスト構造などを画像にしたい場合は、graphvizというツールを使うと自動で出来て簡単。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【給食無償化】国が全額負担 自維公3党、近く合意へ★2 [ぐれ★]
- 【サッカー】Jリーグ、43億円の赤字予算を承認 ★2 [鉄チーズ烏★]
- 40代教員、1億8600万円分の暗号資産だまし取られる 「警察手帳のような物」見せられ−滋賀県草津市 [蚤の市★]
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に ★4 [蚤の市★]
- 【ラブホ】小川晶前市長、出直し立候補意向 周囲に伝達 群馬・前橋市長選 [ぐれ★]
- なだぎ武、イベントチケットが売れず悲鳴「10枚しか売れておりません」 [muffin★]
- 吉野家のラーメン食べに来た
- かめはめ波打って仕事行く(成功率80%)
- 昨日ダイソー行ったら欲しかったものがなかったんやが🥺
- さわらないで小手指くんってアニメ見てるんだがふざけんな
- つなぎ着てるけどどんなイメージ?
- 生活保護で生活してるけど靴買ったらお金がなくなってごはんが食べれない
