【質問】C++でソフト開発したい!【初心者】
■ このスレッドは過去ログ倉庫に格納されています
C++を使って役立つツールやアプリケーションとその他(ゲームとか)をどうしても作りたい!
ちなみに今まではほとんど黒い画面に出力しかしてないぜ。
いい加減窓出してなんか作りたいのだよ( ´Д`;)
とりあえず最初の目標として[電卓](+-*/ だけの機能)を作ってみたい。
今後はそれから画像編集(加工)ツールとかエフェクトかけたりだとか
管理ツールみたいなとかまぁいろいろあるんだ。
何からすればいいんだ?おしえてくだちい。 >>1
>あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
まずはスレを立てる前に、板のルールぐらい確認出来る程度の、
ごく当たり前の知能を身につけろ。
お前はプログラムが云々以前に、あらゆる分野に向いていない。 wxWidgetsというソフトは一般的によく使われているものですか? まぁでも気持ちは分かる。
C++でウインドウを表示する敷居は結構高いもんね。
メッセージループ、イベントドリブンの知識も必要になるし。
ライブラリ使うより、この際Windows APIで1から作るのを
勉強してみた方が為になるよ。
この辺からスタートしてみたら?
http://www.kumei.ne.jp/c_lang/index_sdk.html
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。 アイは天才とはいえ所詮チンパンジーなので
注意書きを書き込むのが遅くなっても生暖かく見守っていてください。
ちなみに研究員の方はわたしたちチンパンジーの出世頭ボノボです。 ググればウインドウスケルトンプログラムなんていくらでも出てきそうな気がするが
ググるべき言葉がわからないか >>1がググって出てくるネット情報で理解できるとは思えない。
ステップ毎に解説してる初心者用参考書が沢山あるんだから
そういうの使った方がいいと思う。
>>1
>とりあえず最初の目標として[電卓](+-*/ だけの機能)を作ってみたい。
君にはその目標は最初の目標としては難しすぎるだろ、C++をなめるなよ
だから時計(窓に時刻表示するだけで毎秒更新したりしないやつ)にしときな それを続けて一年もすればポトペタの素晴らしさが骨身にしみて分かるのさ
カーンは天才だ!
大抵そこまで行くまでにプログラミング自体に飽きるんだけど 超初心者が作る窓アプリケーションの順番
1:静的時計(時刻手動更新型)
2:カレンダー
3:動的時計(時刻自動更新型)
4:電卓
5:画像表示ソフト
この順番で勉強しながらやれば挫折しなそうでいいんじゃない
C++でいきなり電卓なんて挫折率高そう、頭いい人ならすんなり出来るだろうけど >>17
カレンダーの表示はGDI?
ちょっと敷居高くない?
GDIなんざ使わんでも作れるぞ。初心者だったら、ラベルでも貼れば充分だ。 サンプル書き倒した後に作ろうと思ったのがレトロRPGゲームの戦闘プログラムだったな俺
CUIだけで作ったけどあれは面白かった もう10年ぐらい前か >>19
TextOutとか>>20さんの言うとおりラベル貼るとかして
文字並べるだけのやつでしょ カレンダーコントロール貼り付けてできあがりとかじゃ意味ないね。 >>23
景気づけにまずそれで感覚をつかんで、次にtextoutで作ってみて、
最後にラベル使って作るってのはどうかな。
GDI使って作るのはだいぶ先になりそうだね。 >>19
窓で表示する単純なカレンダーの事です、印刷は考慮してません
× 2:カレンダー
○ 2:カレンダー (印刷機能なし)
誤解を招いてすいません 俺はVB使ってきたけど、このスレ読んでC++使ってみたくなって
ぐぐりながら静的時計作ったよ(結構面白かった)
(クライアント領域の中央に時刻を表示して、クリックすると最新の時刻に更新するだけのやつ)
コンパイラに何度も怒られて大変だった・・・
結局10数時間かかったよ、VBの簡単さを改めて認識した
これで終わらせず暇見つけてバージョンアップしてみるよ >>26
お前C言語はじめてじゃないだろ
どの開発言語使って作ったんだ?
.NET使ったのか?
Win32API使ったのか? >>27-29
OS:ビスタSP1、言語:VC++2008 EE、Win32API使用
Win32プロジェクトのテンプレ選んで、Win32アプリウィザードが
吐き出したプログラムを変更したり追加したりして作成したよ
時刻表示にはTextOutじゃなくてDrawText使った
最近スペースキーをキーダウンしても時刻が更新されるようにバージョンアップした
それとBASIC系以外の言語使ったのは今回のC++が初めてです
C言語系は雑誌とか本屋での専門書の立ち読みで多少の知識はあった(脳内プログラムやってました)
けど、実際にプログラムしてみると基本的なことも分ってなくてエラー出しまくりました
まあ今回の経験でWin32APIプログラミングの楽しさがわかったよ
(静的時計という超簡単な課題だから楽しかったのかも・・・) いきなり超敷居がたけーしね
vs2008eeってリソースエディタねぇし
俺がvs2008eeダウンロードして第一声
→パネェw
んで後で調べたらすべての入門サイトが死んでるとか非常に愉快な状態になっててフイタw
ていうかここにいる奴等ってVC6の感覚で>>1のこと言ってねぇか?
マジでハンパねぇぞvs2008eeはvc6、.netの頃のスタンダード版が13000円で手に入った時代とは違うんだぜ
vs2008eeがタダで手に入る・・・それはフェイクw
実際にはアップグレード版のvs2008を購入してvs2008eeの上に詰んではじめて入門サイトと同じことができる
マジで初見殺し
>>1お前は頑張ったと思う
初めてにしたら頑張りすぎだ ちなみに>>31はMFCを使う場合
vs2008eeではプロジェクト作成時にCLR→Windowsフォームアプリケーション
で.netFrameworkのアプリケーションが作成できるが
それのボタンクリックの吐き出すコード
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
};
初心者にどうしろとw
とにかくどうやらキチガイが作ったツールぽく
入門書を1冊すべてを終わらせてもなんだか自動生成されるコードの意味がさっぱりよくわからない
超難問コースにいつの間にかなってしまっているわけだ
もうちょっとみんな暖かく迎えてやってくれと俺は思った >>30
ちなみに言っておくとはじめに進むべき道は多分
このツール的には.netの方が正解だと思う
道は>>27-28のいうように
@.net
Awin32API
BMFC
とあるがリソースエディタが無いので@Aは過酷を極める
つまりvs2008eeを起動したら
ファイル→新規作成→プロジェクト→VisualC++→Windowsフォームアプリケーション
を選ぶと幸せになれる
ただ、入門サイトが俺にはみあたらねぇ
あっても数が少なくて「それ、本当にいいのか?」って思ってしまうぐらい少ない
サイトじゃなくて入門書を買ったほうがいいかもしれない
っていうか買うべきだろ多分
って状況 ぎゃー間違った
Xとあるがリソースエディタが無いので@Aは過酷を極める
○とあるがリソースエディタが無いのでABは過酷を極める >>30
Win32API使ったのかよ…
しかもVC++2008EEでかよ…
APIがりがりやって本当に楽しかったのか?
だったらお前プログラマに向いてるな 仮によくある入門書と同じことしたい
つまりmfcやwin32で進めてみたいならvs2008のスタンダード版にアップしたほうがいいかもしんないけど
いまから始める場合.netとどっちがいいかは俺にはわからないや
ちなみに.netでも入門書はあると思うので両方とも読んでみて好きなほう選んだらいいと思う 下手に、MFCやATL/WTLからWindowsプログラムに入るより
Win32APIからやった方が簡単だろ
>>33
俺はクイックベーシック→VB→VB.NETというふうに経験してきたので
>>1のようにプログラミング経験少ないわけではないので.NETだと
>>17の課題は全部簡単に出来てしまうので、あえて昔リファレンス見ただけで
挫折したWIN32APIを選びました
(一応VB.NET、C#、C++.NETでも静的時計作ってみたけど簡単すぎ)
みんなリソースエディタがないと過酷とか言うけど何でですか?
俺は素人なので分りません・・・
静的時計作るときにリソースファイルのウィンドウタイトルの項目を直接”時計”に
変更したけど・・・、やっぱり本格的なソフト作るときはないと大変なんですかね
>>35
本当に楽しかったです、仕事でプログラミングした事ないので向いてるか分りませんが
楽しいのでまたバージョンアップしました
(ウィンドウ最小化した時にウィンドウタイトルを時刻に変更されるようにしたよ) リソースエディタの便利さの半分以上がマウスでウィンドウデザインができる
(VBには到底及ばないけど)というところ。
たしかに時計くらいだったらなくてもなんとかなる。 超初心者が作る窓アプリケーションの順番
1:静的デジタル時計(時刻手動更新型)
2:カレンダー(印刷機能なし)
3:動的デジタル時計(時刻自動更新型)
4:電卓
5:画像表示ソフト
>>39
じゃあそろそろ課題2(カレンダー(印刷機能なし))に挑戦しましょう ごめん、下げ忘れたorz
>>39
最近このスレ上がりすぎてると思うので君もしばらくsageにしないかい? そういえば>>1はどうなったんだろか…
最初の目標の電卓は無事作れたのかね
おーい>>1、どーなったか聞かせてくれよ
返事がない場合は挫折したとみなすぞい とりあえずリソースエディタ作ったら、
皆さん幸せになれるのか… いや、フリーでも存在するし。
VC++ Expressの場合は、Std以上と違ってIDEと一体になっていないというのが問題。
単に、それを前提とした解説が参考にならないよというだけのことだけど。 じゃあ日本語純正のリソースエディタ作ってくれ。
すべての部品が扱えて
rcファイルもバイナリも吐き出してくれるやつ。 >>46
わかってねぇな
これまで普通にある入門サイトどおりに実行できないってところが問題だろうがよ
初心者何をみればいいんだ(.netやればいいじゃないってことなんだろうけどw)
mfcのサンプルもコンパイルできないぞ(リソースのコンパイルもできない) >>31-32
>ていうかここにいる奴等ってVC6の感覚で>>1のこと言ってねぇか?
言ってるねえ、VC6でWin32APIゴリゴリやって・・・っていう流れだったね
CLRマネージで.NET使ってやるとしても確かに初心者には難しすぎるよな
黒画面に出力できる程度じゃ何がなんだかわからんだろうな >>45
Express、リソースエディタ付いて無いんだw
使えねーwww
>>38
おれは少しは楽になってると思うけどね、でもC#は結構ややこしい事が
たまにある、VB.NETでは簡単に出来るのにC#だと面倒な事が・・・
でもVB.NETのライブラリ使えばいいんだけどC#でVB.NETライブラリ使うのは
さすがにかなり抵抗感があるからなー >>47
へ?
リソースエディタが無いだけで、リソースのコンパイルは出来るぞ
>>40
それは便利ですね、VC++(CLRマネージとか言うやつ以外)での開発は
マウスでウィンドウデザインなんて出来ないと思ってました(スタンダードエディッションほしくなりました)
(時計開発ではCreateWindow関数の引数を変えてサイズを調整してました)
>>41
ちょっと待ってください、まだ静的時計のプログラムを合理的に整えてないので
それとダイアログ使ってフォントや前景色や背景色を変えられるようにもしてみたいし
一応カレンダーの日にち表示のアルゴリズム考えたりもしてみたので
(DrawText使ってポインタも使ってとかになりそう)
早くカレンダーも挑戦してみたいとは思ってるんだけどね >>52
駄目っぽい・・・と思ったら
リソースじゃなくて
afxwin.hがないからMFCがコンパイルできないってことだった
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1421072794
ということはMFCの道はハナからなかったんだ・・・嘘言ってました・・・スマンコ
MFCアプリをコンパイルするにはスタンダート版を購入する必要があるとのこと
なのでWin32+リソースはいけるのかな? ID 名前 性別
というフォーマットのファイルがあるとします。
これを、それぞれを文字列として、構造体に格納するとします。
構造体の例:
struct{
string a;
string b;
string c;
}_dataType;
各行には、上記の3つのレコードだけだとして、
区切り文字は、半角空白か、Tab('\t')
行末には空白文字は許容するけど、それは、構造体の「性別」を格納する変数には
含まない
てな条件で、データファイルを読み込む場合、
stringで、std::getline() を使う
char * で、fstream::getline()をつかう
char * で、fgets()を使う
その他
どれが一番楽なのか教えてほしいっす。できれば、切り分けするところのサンプルなんかも。。。 >>57
環境: gccでやりたいです。Win系ライブラリは使わない方向で。。。
ゆくゆくはLinuxでも使用する予定。 >>55
そんなに改良するんですか、じゃあカレンダーはまだまだ先の話だね >>57
どっちかと言うと、初心者スレ向きか。
stringと書いているのはstd::stringを想定しているのかな。
だとしたら、C++らしくstream系を使うのが常道かと。
固定長配列を使うのなら、fgets()+sscanf()でもいいと思うが。 まあ stream I/O はやめとけ。糞の塊だ。 >1
電卓よりもまずハロプロだ
VC++EE起動→新規で新しいプロジェクト→CLRでWindowsフォームアプリケーション
プロジェクト名には適当な名前をいれろ(今回はhalopro)
しばらくするとForm1が出てくるから、ツールボックスからボタンとラベルを貼る
ボタンをWクリックする
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
が出る
漏的には
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
}
改修してる、で{と}の間に行ないたいことを書く
今回はハロプロだ!つまりハロープロジェクトということは、だ、良くあるハローだ
言いたいことは分かるな
label1->Text = L"ハロー";
で後はF5を押せば起動するさ
初心者にはリソースエディタなんか無くても問題なっしんグゥ〜 WinampのPLAYLOGアップロードPluginを作りたいんですけれど、どなたか手伝ってくださる方いらっしゃいませんか?
C++まったくわからないもので… >>64 がC++を覚えたら
(まさかC++でソフト開発したくないわけじゃなかろう) だから分からないところを聞いてくれないと話が進まない 「まったくわからない」つってんだから、
「手伝って」=「ぜんぶやって」
なのは間違いの無いところ。 開発現場ではクラスはソースに置いていますか?
それともヘッダのような物に分離しておいていますか? >>75
あきらめたというより過疎すぎだしな
1月->4月じゃあいなくなるわ つーか、態々こんな終わったスレを選んで質問する奴の気が知れん。 まず「質問」「初心者」の文字で検索するからだろうなw VS2005EEから愛用してるが...VC++Toolkit2003よりも使いやすくて重宝してる
エディターが賢いし、NMAKEも付いてるし、VS2008EEにはSDKも付いてるし
リソースエディタが無いぐらいどうって事もないんだが http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/install_vc.aspx
マイクロソフトのフリー開発環境インストール紹介ページで
「時計を作ってみよう」というタイトルで作成方法が紹介されています。
この時計の作り方を見て、VisualC++6.0でも時計を作れますか?
Visual C++ 2008でないと出来ませんか?
class A{ public: struct B{ int dummy; }; };
この場合の A::B を前方定義する方法はありますか? 放り込んだファイルをただ単に繋げっていって1つのファイルにするプログラムを作りたい! 調べたら[COPY]でいけるんだね
>>89
きっかけをありがとー
visual C++ ってどれをダウンロードしたらいいの?
初歩すぎてすまなんだ >>92
Web インストール (ダウンロード)
クリックしてもダウンロードできないんですよ・・・ 本屋で買った入門書の、最初に載ってるコマンドプロンプトに文字を出力するソースコード書いて、
デバックだかビルドまではできた(エラーとかはない)っぽいんだが、肝心のコマンドプロンプトの出し方がよくわからない
ステップオーバーっていうのをやると、コマンドプロンプトは出てくるけど何も表示しないし、
「Debug」ってフォルダの中にexeがあるけど、実行してもコマンドプロンプトのウィンドウは一瞬で消える
ググったりしてみてもマイクロソフトのサイトは何が書いてあるかわからないし、
普通の人のサイトはバージョン(俺のは2010 Express)が違うせいか、そのメニューとかアイコンがない
デバックだかビルドはできたっぽいって言ったけど、文法的にミスがないだけで意味のないものを作ってしまったのかも…
だとしたら心当たりはこれ http://www.ced.is.utsunomiya-u.ac.jp/lecture/2006/common/vs2005/devstudio.php
入門書にはまずテキストエディタにソースコードを書いて、拡張子cppで保存しろって書いてあったけど、
それで作ったファイルを開いても ビルドとかデバックできなかった(アイコンがクリックできない)から
、リンクのサイト見ながらプロジェクトだのソリューションだのを作った へたくそな説明で申し訳ない
書く→コンパイル(VCではビルドだっけ)→実行 が出来ないとプログラムの勉強が先に進まない… 誰か教えて さっきその一瞬で見えたんだが、ちゃんと文字は表示されてたわ…
表示してから、待つようになってなかったみたい…
でも、何で一瞬で消えちゃうの?
入門書に書いてあった通りやったのに どうやったら一瞬で消えないで待ってくれるの? >>97
まずはコマンドプロンプトの使い方を覚えるべき。
Visual Studioメニューでも
ファイル名をしていて実行→「cmd」Enter
でコマンドプロンプトを出して
「cd "Debugのパス"」
で移動してexe名を入力
次は「ファイル名を指定して実行」がないと言い出すと思うw
Vista以降、デフォルトで表示されてねーからなw ZBrushとかSculptrisくらいのソフトを作ろうと思ったら
どれくらいのプログラム、数学的能力が必要なんですかね。 バイナリで0xFFFFFFFFって値はintでは-1ですか? 「 ̄ ̄|
|__ | /\ [[[[|
|カゴメ...| | ソ | _[---] .{三}
(・ω・´) < | | (・ω・`) _[---]
|ウスター| |ス | 「====| (・ω・`)
|〜^〜| | は | |キッコー| |___|
UVU |俺 | ゙|====」 |ミツカン|
∩∩∩ \/ 、Σ//R 、|⌒.⌒|
| | | | | | [:::::::::::] | ≡ .|
|>^^^く| [:::::::::::] | ○ .|
⊂ニニ⊃ ^ [:::::::::::] | ̄ ̄.|
^^^^^ ..⌒⌒ 転売用にAmazon自動予約スクリプト使いたいけど、パソコンの台数と、回線の数、どっちが大事? VS2010でC++選ぶと沢山出てくるけど、Windowsアプリ作るなら
Win32とMFCのどっちを選んだほうが楽なの?
CLRがダメなのだけはわかった MFC
ラッパーやフレームワークってのは基本を素で使うのが面倒で楽したいから作られる
ってか、C#の方がもっといいと思うよ いや、C#は使ってるんだけども、ライブラリの関係や速度が必要になって
C++もそろそろ覚えようかと
んで、とりあえず.NETがあるから楽かと思ってCLRで作ってみたら・・・完成したけども苦労したw
MFC勉強してみるよ、ありがとう MFCとかオワコン
てかC++で.net使ったらほとんどC++のうまみがないじゃない MFCが中途半端なのはわかっているつもりなのですが、
とりあえずライブラリがC++用なので・・・
ラッパー作ったほうが良いのかな >>112
ライブラリを呼ぶところや速度が必要なところだけC++で書けばいいと思うよ。 なんで.NETでC++を書くとうまもないの? だしでも出もないのかー? >>1とは無関係だけど。
EXPRESS入れてヘルプ読もうとしたら404返すし(-ε-;
まさか、登録しないとまともに機能しないとは。
そのヘルプライブラリのダウン、2MB程度のハズなのに激遅いネ・・・。
数値データのcsvを読み込んで、以後csvを読み込むと、
一度目に読み込んだデータを使って処理できるようなことをしたいのですが、
なにから勉強したらいいでしょうか。
csvを読み込んでごにょごにょはできそうですが、
ずっと値を記憶しておく部分がわかりません。 C言語の参考書を買って、変数とか関数とかの言葉が出て来たりするんですが…
C言語ができるようになれば、どんなものが作れる様になるんです?
箱に数字を入れる〜とか、その様な事でゲームは作れるんですか? >>118
「ゲーム」がどの程度を指すのかによって全然違う。
売られているようなゲームを指すなら、徒歩で日本一週できますか?みたいな話
インベーダーゲーム、くらいなら結構現実的。それなりにがんばれば誰もが可能。
つまり、千里の道も一歩から
本気のゲームを作りたいならば、併せてC++や3DCGやニュートン力学等について学べばいい。
楽しくゲームを作りたいなら、ツクール系やUnity3Dなんかをオススメする。
まあ、プログラミングの世界に入るなら教養としてでもCはとてもいいと思う >>119
マジですか…C言語頑張ってみます!
インベーダーゲーム作りたい(*゚▽゚*) Cでデスクトップに貼り付けるガジェットのようなものを作っているのですが、
ショートカットキーやクイック起動でデスクトップの表示を実行すると消えてしまいます。
これを常に表示させるようにできないでしょうか?
また、デスクトップの表示は処理的に言うとすべてのウインドウを最小化しているのでしょうか?
その辺もわかる方がいれば教えてください HSPから卒業してC初めて行こうと思うんだけど
フリーで始められるもので、他の人がつくったサンプル資源が多いものって
何があるかな?
言語の選択は何がやりたいかに依存するけど、cで、デバドラや組み込み開発でもしたいの?
でなけりゃ、pythonやrubyでGUIアプリでも作っとけって。
hspから入った趣味グラマが、今日日、c、c++を使う理由なんて何処にもないよ
hspと用途が似ているだろうからpythonのpygameがお勧め。
どうしてもcが良いならSDLでゲームでも作っとけ。
SDLでググれば、Lazy Fooって人のサイトが頭にくるから stringの比較の処理遅いので、数値に変換して比較したい。
簡単な方法ありますか?vc++2008です。 >>125
実際にどんなデータをどれだけの量どう比較したらどの程度遅かったんだ?
長くない文字列なら数値として比較する手もあるが、そうでないならヒープ値を使うとか。
かなり長い文字列を完全に一致しているか比較するなら、何をしても遅いと思うが。 void*やvoid**って多用して良いのかな?
個人的には何でも入る=何が入るかわからないから控えたほうが良い気がするんだけど、
サンプルプログラムで多用してたから、こーゆー物なのかと >>128
普通は避けられるなら避けるべき。
ちょっと間違えただけで簡単にアクセス違反が起きる、
という状態になるのはまずい。運が悪いとアクセス違反したことすら気づけない >>129
ありがとうございます、やっぱりそうですよね。
C#でC++のラッパー作っているのですが、C++のポインタがほとんどvoid*でさらにそれのポインタまで使ってて、
挙動があまりにも怪しいけど自分の知識不足かなと。
中身確認しながらやってみます。 WideStudio使っている人いますか?
windowsのGUI開発実態の生の声きかせてください。 初心者ですみません。
派生クラスで仮想関数func()が定義してあるか?ないか?
を基底クラスで判定することはできるでしょうか?
class Base
{
virtual void func(void) {}
void main(void) {
:
派生クラスでfunc()が定義してあれば、func()を呼び出す
定義してなければ、何もしない
:
}
};
func()を呼び出すのに若干のオーバーヘッドがかかるので、
必要がなければ呼びたしたくありません
ご教授いただければ幸いです >>132
こんなのとか
ttp://ideone.com/126aN Visual C++ 2010 Express を使ってるんだけど、リソースエディタが
無いよね。フリーのResEditみたいなのでも、十分やってける? >>134
どうだろ?
BCC5.5なら、リソースコンパイラも付いてたから、手書きでメニューやらダイアログボックスのリソーススクリプト書いてたけど・・・
VCexpressにリソースコンパイラ付いてれば行けると思うよ?
フリーのリソースコンパイラがあるかは知らない
BCC5.5のが使えたら御の字と言うことで
レスどうもです。
VC++Expressも、リソースのコンパイルはできるみたいです。
ただ手書きとなると、ちょっと知識いりますよね。
リソーススクリプトの仕様を解説した本なんてものは
あるんでしょうかね。 ResEditってたしかVS用のヘッダとかも作ってくれるよ
よく出来てる >>138
む、Windows を使いたくないけど、仕方なく使う時があった。
ResEdit、早く知っておきたかったなw
Emacs で直接 res をいじってたから。 >>137
ハーバートシルト先生のWindowsプログラミング本にはリソーススクリプトも書かれて棚
サイトなら、VCのバージョンがめっちゃ古いが猫でもわかるのサイトとかにもリソーススクリプト書かれてる
スクリプト自体はWin32APIと同じく昔から変わってないから、VC2010のリソーススクリプトの挿入方法さえ見つければ参考に出来ると思う
C++でプログラミングをする場合お勧めのエディタはどんなものがありますか?
今までは秀丸を使っていたんですけど
大学の課題でvisual studio C#のフォームアプリケーションを使用する機会がありまして
少しプログラミングしてみたところ、かなり使い勝手が良くGUIのアプリケーションが簡単に作れました
C++版もあることを知り早速使ってみたのですが
C#と比べるといまいち使い勝手が良くありませんでした
C#のエディタに秀丸の強調表示機能とアウトライン窓、検索機能があれば言うこと無し
なのですがこの理想に近いエディタがあれば是非教えてください。お願いします Visual C++ 2010 Expressで十分だと思うけどなぁ >>141
C#じゃなぜだめなの?
なんでC++にしたいの? C#だと必然的に、Windowsでの開発にしぼられるってのはあるかもな C#だとコンパイラが対応していないんだと思います
それに既にC++用のソースファイルを1.5MB分ほど書いてしまっているので
全部書き直すのはちょっと… エディタの話ではなく
IDEの話だったでござる、の巻。
つ[C++/CLI with Visual Studio] メモリの開放で困ってるのですが
Site* site[10];
この場合にdeleteで開放する時どのように記述すればよいのでしょうか >>151
newしたところを順にdeleteすればよろしかろ。 >>141
emacsかvim。emacsの方が文章書いたり、対話環境のelが豊富なので重宝する。
もっとも、世の中の流れがブラウザに移っているので、
ブラウザ上にjsマクロが組み込まれたemacsクローンが出来ても、もはや驚かん
muleと一緒に死ぬつもりでいた漢たちは、今は、どうしているんだろうか あるクラスが、データメンバに他のクラスのインスタンスを持つ場合、
内部クラスと言いますか? なんで reverse_iterator って i++ でデクリメントになんの? Cのプログラムのファイルの拡張子は、
.c
.h
C++の拡張子は、いろいろある。
.C
.c++
.cc
.cp
.cpp
.CPP
.cxx
.h
.h++
.hh
.hp
.hpp
.hxx typedef int (*fd_eos) (void);
これってどういう意味なんでしょうか?
何を定義してるのか分かりません intを返す引数voidの関数へのポインタfd_eos型
ちなみにその行のあとで
fd_eos hoge;
とすると
hogeがintを返す引数voidの関数へのポインタ
ということになります また
fd_eos *fuga;
とすると
fugaがintを返す引数voidの関数へのポインタへのポインタ
さらに
typedef int (*fd_eos_array[]) (void);
であれば
intを返す引数voidの関数へのポインタの配列fd_eos_array型
を定義していることです ついでに言うと
typedef int (*fd_eos) (void);
fd_eos *fuga;
と
typedef int (*fd_eos_array[]) (void);
fd_eos_array fuga;
は同じものを定義していることになります なるほど関数ポインタだったんですね
ありがとうございました プログラミングは、たのしい
実際、趣味のところに、プログラミングとかくしかかんがえられない _
|O\
| \ キリキリ
∧|∧ \ キリキリ
ググゥ>(;⌒ヽ \
∪ | (~)
∪∪ γ´⌒`ヽ
) ) {i:i:i:i:i:i:i:i:}
( ( ( ´・ω・)、
(O ⌒ )O
⊂_)∪ >>167
ずいぶん古いな。時代劇チャンネル観てるのか? VC++にてBluetooth通信するプログラムを作成しているのですが、
Bluetoothデバイスをサーチするときの
BLUETOOTH_DEVICE_SEARCH_PARAMSの設定を詳しく教えてください。
fReturnAuthenticated = 以前にペアリングしたことがある
fReturnRemembered = ペアリングしたことはないが、以前検索に引っかかったことがある?
fReturnConnected = 現在接続しているデバイス
fReturnUnknown = 一度もペアリングしたことのないデバイス
fIssueInquiry = ?
他のところも間違えていたら指摘お願いします 質問スレに書こうと思ったのに間違えました
>>169は気にしないで下さい お知らせ
市原警察署の生活安全課の帰化人創価警官の指導の元、
入学式から2週間ほど、在日の創価学会員を主体とした自称防犯パトロールが、
2週間ほど行われることになりました
生活安全課の指導であることと、パトロールであることは、
絶対に公言してはいけないとの指導も、帰化人創価警官より出ています
期間中は2人組の在日の創価学会員が、頻繁に創価批判者の自宅周辺を、
うろつき回ると思われます
日本人の方は、充分に注意してください static で作った変数に初期化以外で値を入れることって出来ませんか? 関数内で static 宣言して
見た目と振舞いが違うとかいって悩んでる
とエスパーしてみる 大文字、小文字の使い分けが分かりません……
今はとにかく
ファイル名、クラス、関数、変数
ひととおり頭を大文字にしてますが
合っていますか? 好きなようにすれば良い。
俺様コーディング規約が最強なのですよ。 ファイル名は、Windowsでは、大文字小文字が区別されないが、Unixでは区別されるから注意。
クラスは、小文字でも問題ないが(?)、Javaでは、たいてい大文字にする(注1)
関数は、接頭辞をつける場合もある。たとえば、C, C++で、isdigit(c)は、真偽値を返すと推測される(英語のbe動詞のisですから小文字ですね)
接頭辞は、ライブラリとみなすのかもしれない。SDL_Init ()
変数は、小文字がいいようなきがする。たとえば、Rubyでは、先頭を大文字にしたら定数になってしまう。
2語以上になる場合、下線(アンダーバー、アンダースコア)で区切る流儀と、小文字大文字で判別する流儀がある。
find_last_of()
findLastOf()
indexOf() 基底クラスでvirtualを使って派生クラスを生成した場合
基底クラスのデストラクタをvirtualして
他はいつも通りで良いですか? うるせぇぇぇぇぇぇぇぇぇぇぇ
教えてくれぇぇぇぇぇぇぇぇぇぇぇぇ >>179 が俺用語すぎて何を言ってるかわからん
多分大したことは言ってないんだろうけど 嘘だぁ
virtual使ったら基底クラスのデストラクタもvirtualにするってことであってる?
あと他にもvirtualにしなくちゃいけないところはある? >>187
うまいこと言ったつもりか!!!!
教えてくれぇぇぇぇぇぇ >virtual使ったら基底クラスのデストラクタもvirtualにするってことであってる?
肺 もしそうなら、勝手にデストラクタがvirtualになる仕様
にすればいいのに、そうなってないってことは、
デストラクタをvirtualにしないことがあるってことじゃね? ◇◆◇◆◇◆◇◆◇◆◇◆◇
カラオケ大会2013@2ch開催中
途中参加自由!
◇◆◇◆◇◆◇◆◇◆◇◆◇
http://toro.2ch.net/test/read.cgi/tech/1363042502/ /\___/\
/ ⌒ 俺 ⌒ ;\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| (●), 、(●)、 | | キンタマ中古C言語命!!”
⊂. | ,,ノ(、_, )ヽ、,, | < 今日もキンタマ中古C言語でソース乞食するゾォォオオ〜っ♪”
,r----、__|.Javaト‐=‐ァ' .::::| | 仕事レポート全部くれくれ乞食するぞォォォオオオオ〜っ!”
/Ruby \最強ニニ´ .:::/ \____________________
(ひま,/¬--v \____/⌒\
/⌒ ( ] |丶 ̄ ̄ /丿 丿 ─
(_ _丿 ,ノ--v_\ 糞 ノ ノ ─
 ̄ ノ宿敵 リ--─ーARM八
〔 マシン語 Python__,ノ′ヽ ギブ・ミー・レポート!!!! ギブ・ミー・ソース!!!!
,ノ'' ー--ー┘■■ ̄\ │
/ /  ̄■■■/ \ | #○&#$△#%&$▼&%#!!!!
ノ /]アンチ|■AMD命|\| \\ (↑意味不明w)
| / .| Intel | ) ノ
|/′ | .| |---く
| | \ ] ※)一部見苦しい部分がありますが御了承下さい。 >>189
ありがと
あとはデストラクタ以外にirtualにしなくちゃいけないのはないってことでOK? 基底クラスで仮想関数なら
継承しても勝手に仮想関数だが ・基底クラスのデストラクタは仮想にしておくこと
これと同じような隠れたお約束は他にないですか?
と聞きたいんだろ >>196
あるだろ。
でも、バージョンによって違うだろ。 class test{
int* num[100]
...
}
このnumポインタをデストラクタでdeleteで削除しようとしているのですが、うまくいかずに止まっています。
delete [] num; ←これに&つけたりして迷っているのですがうまくいかず・・・。
for文でdelete num[i];と1個1個削除するとうまく動作してくれます。これで合っていますか? >>198
> delete [] num;
これは不要
> for文でdelete num[i];と1個1個削除
それで良い。 ttp://ideone.com/7m4odb
みたいに使うんだろうから、num[ ] のdelete には [ ] をつけるべきだと思う
delete [ ] num [ i ]; >>196
ありがと
>>197
うるせぇぇぇぇぇぇぇ
それが何なのか聞いてンだよぉぉぉぉぉぉぉぉぉぉ struct ANAL{
ANAL* development();
} けち〜 ネットワークのプロトコルスタックあたりかなと いや、普通にGUIアプリ。QtだからMacOSでもWindowsでも動かす。 C++を使う案件なら、私のチームで今期だけでも3人月ほど足りない位あるぞ。 ヘッダファイルにifやforを書いて処理するのはアリなの?
良いことなの? >>224
ヘッダに書くとなると、テンプレートかインラインかマクロになるけど、
大規模開発では、ヘッダを頻繁に変えることは好ましくない。コンパイル時間が増えるから。 >>224
ヘッダにそういうのを書かないというルールを徹底した方がご利益が多い ありがとう
ヘッダファイルに処理を書いた場合
処理が実行されるタイミングは
インクルードでヘッダが呼ばれたタイミング?
何度も実行されることになる? >>228
置換を実行するの(置換するの)は、コンパイルするときだけです
あたりまえだけど、置換されたのを実行するのは、あとです >>228
マクロはプリプロセッサーで処理されます
gccなら
gcc -E
で処理結果がみれるよ コンパイル単位って概念がわかればいいかと。
とにかくコンパイルする場合はでっかい一つのソースになるわけやね。 >>224
ヘッダって単に#includeを使ってプリプロセッサにより別のソース中に挿入されるだけにすぎない。
ヘッダに書いてもソースに書いても、結局プリプロセスされたファイルの中にあるものとしてコンパイルされる。
ヘッダに〜を書くなとされるのは、a.cとb.cがc.hをインクルードしてる場合に、
a.cから作られたa.o(obj)とb.o(obj)の両方にc.h由来の〜が入ってa.o(obj)とb.o(obj)のリンク時に衝突するから。
衝突しないタイプのものや衝突しても適切に処理されるものならヘッダに書いても問題ない。 リンク時のシンボルの衝突がわかればおk
extern も中々楽しい
なんのスレだ 既存のやり方壊すのがとにかく新しいと思ってる馬鹿が多いからな。
そこに落ち着いてるという考えがない。 bestC じゃなくて betterC だからな
問題ない I like butter much better than margarine. マーガリンよりバターのほうがずっと好きです. ベター is the best
ttp://www.youtube.com/watch?v=xu9ba9xFry0 MFCが使いたいやつは中身同じなんだから中古やアカデミックパックの買えばいいのに
vistaにVC6インスコして使ってるけど軽過ぎワロタw >>245
そこまで行くと動作保証が怪しいけどな…
MSDNライブラリに関してはVC6付属の奴が情報古くとも使いやすくて手放したくない
コレ以後のやつは重いし遅いしネット連携うざいし使いにくいしで良い所がない >>247
ネット通販で買えるよ
学生かどうかなんて確認しないよw C++とか恐ろしく簡単な言語なんだが、これをクソ難しいとか表現する
無能者って多すぎる、
なんでできないの?アフォなんだろうか。
簡単なものにばかりに逃げているから難しいと表現するんだろうな。 >>251
基本は簡単だけど、テンプレートって相当深い気がするんだが・・・? 難しいんではなく落とし穴がぽこぽこあるんで、
鼻歌まじりにやるとぱっかるこーんとなるわけです。 >>251
それはc++でなくcの話のような。
cわかっててc++クソ難しいってひといるのかな? そりゃいるだろ
枠だけ借りてまったく別物に変わり果ててるんだから
組み込みとかで行間の隅々まで読むような連中には闇にしか見えんし >>251
最初はみんな、c++がすごく簡単に見えて、多態性とか使おうとするけど
純粋仮想関数を含んだ抽象クラスのコンストラクタから呼び出した仮想呼び出しが未定義
みたいな罠を踏むうちに触りたくなくなってくる
式テンプレートを使ったコードが何やってんのか触りたくなくなる
Boost Lambdaのアホさ加減をしり、ライブラリがバージョンが更新されるのを見て保守不可能だと悟り
あのときcだけ触ってカーネルのコードを読んでいたらと後悔する。これが人生 c++を扱うには、その強力な機能の大部分を敢えて使わない心の強さが必要 乱用されるとクソコードになる機能が山盛りだからねぇ・・・
その機能で何かの効率が明確に上がるかが一つの指標か? >>258
単に効率単独というか‥‥効率を落とさない記述力かね‥‥ むしろ利用可能な開発環境を狭く限定することによる弊害の方が MozillaやChromeのコーディングガイドラインを読むと、
どれほどクロスプラットフォームでの開発が大変か分かる 都市部に出て浮浪者を二束三文で雇って単純作業をやらす >>266
自動でゲームのキャラクターを動かして通貨やアイテムを回収するやつ
よく中華がやってる 独習C++を読み終わりました
本の内容はある程度わかっていると思います
そこで次はなんの書籍を当たるのが定石でしょうか?
STLを当たるべきなんでしょうか?
当方のレベルは
・C++の知識は”独習C++”がすべて
・プログラミング経験は無し
・GUI扱ったこと無し
・ライブラリはCの部分も含めて暗記はほぼしていない(解説を見れば理解はできる)
と言った感じです。
よろしくお願いします >>267
Ummm やぱよくわからん。オートコレクタみたいなもんか。
それすら良くわからんがw
>>268
何がしたいのですか。
シルト先生のSTL標準講座が定番かと。 >>268
独習だけでは足りないものが多い、とにもかくにも書き散らす量を増やしたいところ
http://toro.2ch.net/test/read.cgi/tech/1390525149/ には同じ目的の c++11-er が常駐しているようだし、ちょうどいいかも
c++11 に対応した本格教科書がいいと思うが、まだないみたいだ、ちょっと時期が悪い 今回紹介するのはDarkBASIC Professinalフリーバージョン。
商用利用をしないと言う条件ですべての機能が使える。
DarkBASIC本体をダウンロードしたら、メールアドレスを送信してアンロックキーをメール受信する。
次にメールアドレスとアンロックキーをアクティベーション(認証)すればDarkBASICが使えるようになる。
さらに、最新バージョンアップデートを適用すれば、実行速度が高速になる。
DarkBASICはVisualBasic以前の古いBASICの延長上の別系統の設計にある最新BASICで、記述
が簡単で本格的な構造化もサポートしている。
簡単なゲームから大規模プロジェクトまで作成可能だ。
また、外部モデリングフォーマットを通さずにプログラム中で3Dオブジェクトの定義も可能で、非常に自由度
の高いプログラミングができる。
英語版と言うことであるが、BASICと3Dの基礎知識があれば、誰でも使える。 C++の勉強を始めるのですが
書籍を購入しないと覚えられないですか? >>273
書籍、それも独習あたりから入ればそんなに時間がかからないし、コストパフォがいい
ネットの情報も悪くはないが、真贋を見抜く力を養うには書籍から入るのがいいかもしれない c++の勉強って、実際のところ何を勉強するの?
パーサーの書き方?マルチスレッド? >>275
できることは無限にある。何を作りたいかによって勉強すべきことは異なる。
ゲームにも色々ジャンルがあって細かく細分化している。
そもそもC++が必要なのか、スクリプトで充分なのでは? >>273
独習はおすすめだ,C を理解しておればすんなりすすむ,文字列クラスを自力で再構成するところが山場だから,そこは念力まで動員してがんばってほしい
ハーバード・シルト先生にはずれはない 標準C++もいいよ。
でもやぱ独習の方が改版されてるか 894 :uy:2012/09/10(月) 10:30:46.63
俺様が思うのは
「プログラムの言語仕様なんて少しわかってれば使える、わからない部分は触らなきゃ良い」
これが違ったんだよ
底辺PGや初心者を慰める言葉だこれ
中級者以上ならこの言葉に甘んじたらいけない
プログラム言語は言語仕様をすべて把握していなきゃ使えないし
自分の把握してない言語は積極的に使うべきじゃない
つまりC++を使うなら全部覚えてからだ
でも増え続ける仕様
これはあくまでC++は道具、手段としてのみみないと
足元救われるどころではなく人生を刈り取られる 基底クラスを型にして派生クラスを生成すると
派生クラスのデストラクタが実行されないから
基底クラスのデストラクタに virtual をつけるらしいけど
なんで基底クラスを型に派生クラスを生成するの?
派生クラスを型にして派生クラスを生成すればいいじゃん >>281
> 基底クラスを型にして派生クラスを生成する
この時点で絶望的なまでに話を読み違えてるというか、
読み違えすぎてて意味不明になってるのに気が付いて。
正しくは、生成した派生クラスのインスタンスを基底クラスの型にキャストした状態で破棄すると問題が起きる。 http://d.hatena.ne.jp/ajiyoshi/20080925/p1
このサイトに説明されている
BadBase* base = new BadSub(); //"リソース確保しますた"
delete base; //"リソースが開放されない!"
の部分で基底クラスに virtual をつけないといけないと説明があるけど
BadBase* base = new BadSub();
を使わないで
BadSub* sub = new BadSub();
で生成するようにすれば良いんじゃないの?
わざわざなんで virtual 使うの? オブジェクト指向の為の機能を使うんだから当然、多態性位は知ってるだろ?
多態性を実現するにあたって基底クラスのポインタを用いて書かれたコードを、
一々派生クラスの数だけコピペして派生クラスの型を使うように書き直すのか?
例えばの例だが、Log *log=CreateLogFile(argc,argv);とかなってて、
起動オプションに「-log ファイル名」がない場合はログをコンソールに吐く設計とか。
(Logクラスはコンソールにログを吐き、FileLogクラスはLogの派生でファイルに吐く)
FileLogはファイルを開くので、デストラクタを実行しないとファイルが閉じられない。 >>284
お前さんはキーワード「virtual」―ポリモフィズムを理解していない‥ staticおじさんは迷惑なことに学歴と役職だけはあるんだよなぁ… いまさらC++とか
今習得していないんだったら勉強するだけ無駄
C#でも使え >>287 >>288
でも,C++ の virtual にしても,実装に負担をかけてアルゴリズムの記述化を容易にする,という立場だよね,それに反感を感じるというには一定の理解がないわけでもない,linus とかがそういう立場だったね
いやストロヴストルップも極力実装に負担をかける方向を避けているのは理解できるのだが‥‥なんだかその苦労が理解されていないような気がする‥‥
ごめん何も考えていないLLは論外だと思っています >>290
お前は今、多態性とかポリモーフィズムと呼ばれる概念を否定したわけだが >>289
は?C#なんかウィンドウズでしかつかえないじゃん template って多態性とかポリモーフィズムと呼ばれる概念を否定してるよね >>294
明示的なインタフェイスを介してないってだけで、
テンプレートはまんま多態性の一例だと思うが。
静的なダックタイピング。
インタフェイスを介すコストは減るけど、
代わりにコード量コストが跳ね上がる、のが大抵。 今は組み込みでもWindowsが主流になって来ている
C、C++なんて今から勉強しても使い物になる5年後には無くなってるから意味ない
やめておけ
既に習得しているならまだ数年は使えるからいいけど >>296
Windowsが乗るほどのPCを使う用途は兎も角、そうでないケースでは
寧ろ、SBCの性能が上がってLinuxが乗るのが当たり前になってきている。 で、それらのOSは何で書かれてるのかと
つかC/C++を学ぶことは他の言語の理解の助けにこそなっても、
他の言語を習得する妨げになるわけじゃないんだけどな……
わざわざ学ぶことまで否定する奴ってなんなんだ
自分が理解できなかったから他人の足引っ張るための方便とか? #include <strstream.h>
using namespace std;
ostrstream oss;
oss << "test " << hex << setw(4) << setfill('0') << 1024 << endl;
cout << oss.str();
したときと
#include <sstream>
using namespace std;
ostringstream oss;
oss << "test " << hex << setw(4) << setfill('0') << 1024 << endl;
cout << oss.str();
したときと
同じに動いているように見えるおですが
何が違うんでしょう?
あとどういうときに使い分けるんでしょうか? >>298
linux の GPLライセンス(特に v3 )はすでに企業側では問題になっているかと
個人的には RMS の GPL はその体臭の強さで支持を失ってきているかと
はやく Hurd を完成させろ馬鹿 >>296
たしかに組み込みC#が浸透しつつあるし,あの意味不明な VM も見切りがつけられてネイティブが吐かれるようになるご時勢だ
しかし C# を C# で記述できるようになるまでは C/C++ の地位は不動だな >>300
前者がアナクロな書き方。コーディング規約などで制限されていなければ、
後者で書けばいい。 >>305
規格化されている。つーか、そのくらいの検索もできない?
まぁ、厳密なことが知りたいってことなら規格に五月蠅いスレにでも。 でも規格化されてる方を制限するってどういう理由があるんだろ 規格化される前の規格に準拠した環境との互換性を維持するため、
より新しい規格で追加された機能の仕様を禁止するとかあるんじゃね。
ヘッダファイルは標準ライブラリの物であっても.hのものしか使用禁止とか。
//コメント禁止ルールみたいなやつ。
いやそもそもそっちは非標準じゃねーか、より互換性低いほう選んでどうすんだとか、
既に環境依存しまくりなのに現行で使える機能制限しても意味ねぇだろとか、
そういうツッコミが通用しない糞な場所はまだ絶滅してないだろうからなぁ… GetActiveObject をC++で使う方法がわかりません。
基本的なことも調べても何が何だかわかりません。
一応、自分で作ったプロジェクトから、エクセルなどを動かすためのインターフェイスと理解しましたが、合っていますでしょうか。
このGetActiveObjectをどう使って、実現するのでしょうか。
http://hippos-lab.com/blog/node/103
を参照したのですが、理解できませんでした。
実現したいのは、
http://www.megasoft.co.jp/3d/sdk/#page_require
です。
ご教授お願いします。 そのマイホーム何とかを自作アプリから使えればいいんかいな
Excel+VBA で同じようにCOM経由で操作するのはできているとみていいのか
ならば VCの機能(無償版ではダメかも)で
C++/MFC用のヘッダ・ラッパーlibを生成させれば
普通のクラスライブラリと同じような感覚で使える
これが出来れば半分済んだようなもの
キーワードは「タイプライブラリ」
厄介なのは「どのファイルにタイプライブラリが格納されているか」が
標準化されてないので相手のソフトごとに探す必要がある
*.tlb, *.ocx, *.dll, *.exe などのどれか1つにまとまってることが多い
マニュアルかなにかで"regsvr32" の記述があればそこに書いてあるファイル名で明解 >>313
2つめのリンク先がそのアプリのSDKのマニュアルそのものだから、
マニュアルに必要なことはひと通り既に書かれてるんだよなぁ……
サンプルの入手方法は不明だけど、C++のサンプルもついてるし。
これとは関係ない「何らかのプログラム」を自動化したいって話なら、
先にそのプログラムがCOM提供してるかどうか確認しておかないと。
稀に http://toro.2ch.net/test/read.cgi/tech/1389873912/45,62
みたいになんでもCOMで操作できると誤解してる人が居るけど、
COMで自動化は相手がそれ前提の作りじゃないと普通は意味が無い。 それって、総当たりで試行錯誤なら作るのも簡単なら実行するのも速くて詰まらないような。
まじで人間が解くようにXWingとかSwordfishのアルゴリズムを導入すると、今度は難易度跳ね上がるし。 1)縦横のそれぞれの列に1〜6の数字が1つずつ入ります(ここは数独と同じ)
2)マス目にあらかじめ入っている(数字)は太線で囲まれたブロックに入る数字の合計を表しています
3)太線で囲まれたブロックの中には同じ数字が入ることもあります
┏━━┳━━┳━━┳━━┯━━┳━━┓
┃(3) ┃(4) ┃(13)┃(5) │ ┃(8) ┃
┠──┣━━┫──┣━━┳━━┫──┨
┃ ┃(7) ┃ ┃(1) ┃(7) ┃ ┃
┣━━┫──┃──┣━━┫──┣━━┫
┃(11)┃ ┃ ┃(7) ┃ ┃(6) ┃
┠──┣━━┻━━┫──┣━━┻━━┫
┃ ┃(6) │ ┃ ┃(6) │ ┃
┣━━┻━━┳━━┻━━╋━━┳━━┫
┃(9) │ ┃(6) │ ┃(4) ┃(3) ┃
┣━━┳━━┻━━┳━━┻━━┫──┨
┃(4) ┃(5) │ ┃(11)│ ┃ ┃
┗━━┻━━┷━━┻━━┷━━┻━━┛
これを解くプログラムをおながいします
(たぶんずれるので等幅フォントのエディタにコピペで見てください) >>316
普通にスラスラ解ける手法をロジックに起こすだけで大変でございますw
まずはその程度のプログラムをしこしこ作ってます。
XWingも知ってはいますが、使った事がありません。
単純にクラスを作って、その中で解法のメンバ関数をやってるだけで
全然C++じゃないなぁとw >>317
足し算を使うパズルなら、ニコリのカックロがある
漏れはたった今、本を買ってきたところ
>>318
数独の本を買うと、最初に解き方のコツが書いてあるので、
それをアルゴリズムにすればよい
他には、お絵かきロジック(パクロス)のアルゴリズムを作る本は、
図書館で読んだ >>318>>319
「矛盾をチェックするだけの深さ優先総当りで十分解けてしまうので
人が解くときのアルゴリズムを正直に実装するほうが手間かかるよ」
ってのが>>316の意見だと思うの。 例えば、確定している数字が多いものから、
試すだけでも、計算量が減る
1が3つ、2が4つ確定している際、2から試す
9マスのエリアでも、確定しているマスが多いエリアから試す
行や列でも、確定しているマスが多い、行・列から試す 簡単な数独ロジックでもいざコードでやろうとすると難しい。
これも実力だわなぁ >>321
総当たりにせよ思考アルゴリズムにせよ
実行CPU速度等の同一条件下で
最短時間で解けるものが一番優秀なら
コンテストでもやればいい どう考えても総当たりの圧勝。
最も難しいと言われた、純粋に論理の積み重ねだけだと数学者でも一週間掛かると言われた問題だって一瞬だ。 総あたりなら平均ほぼ一定時間で回答できそうだよな
逆に問題作るときに人間的思考だと時間が掛かってしまうような問題の作り方に興味あるわ >>329
それもだけど、「新聞なんかに載っているのよりは難しいけど、気違いじみた思考を使わなくても解ける」
辺りの難易度にコントロールできたら凄いと思う。
つーか、欲しい。 数独・カックロでも難易度が高いものは、
確定できるマスが盤面に、1つしかない場合がある
総当たりして、1つ確定
総当たりして、また1つ確定
総当たりして、また1つ確定
こうなると、大変
その際、確定したマスの、同じ(3*3の)エリア内、
同じ行・同じ列から調べると、速く解ける >>329
人間が解くときに意識的・無意識的に使う解法を全て実装して、
使用頻度の低い解法や意識的に適用しても時間の掛かる解法でしか
進行できない部分が沢山出るようにすれば回答時間は伸びると思うけど…
>>321>>331
その程度の事は分かってる上で、「機械に解かせるなら」
何も工夫しない総当りで十分って話だと思うんだけど…
計算量だけを最小化するなら各種解法も実装しなきゃ 結局 総当たりで解けるからあえてやるほどの事はないって事か。
ただプログラムの練習には最適かと。 人が解くと難しくないのに、プログラムで解こうとすると地味に面倒なところではピクロスとかどうよ。 MasterMindなんかも練習のテーマとしては良い >>317 解いてみた
http://ideone.com/dzcX1B
いきなりC++で書くのは個人的にもう無理だということがよく分かった ほんとはC++1zで書きたかったけど早々にあきらめマスタ
あと、結果出力が転置行列になってたのはごめんなさい ナンプレの方が実装の難易度は簡単だった
出題: 日本経済新聞2014年10月11日7面「ナンバープレース」欄より
http://ideone.com/GFENZj 人間にとって難しい問題にするには、アルゴリズムで解いた場合にバックトラックのコストが高くなる配置にすればいいんじゃないかな
ちなみに gnome_sudoku では100回ランダムに問題を作成して、都度難易度が期待値を上回るかどうか測定している。
↓の generate_puzzle_for_difficulty()@173行目
http://gnome-sudoku.cvs.sourceforge.net/viewvc/gnome-sudoku/gnome-sudoku/src/lib/sudoku_maker.py?view=markup
難易度の測定方法は、何も考えずに埋めれるマスの数、考えられる組み合わせの中から外れを引く割合などを重み付けして定量化。
(経験則っぽい...)
↓の DifficultyRating クラス@597行目
http://gnome-sudoku.cvs.sourceforge.net/viewvc/gnome-sudoku/gnome-sudoku/src/lib/sudoku.py?view=markup 今、ニコリのカックロの解法を考えている
2マスで合計4なら、1+3
3マスで7なら、1+2+4
1通りに決まる箇所から、解いていく
2マスで15なら、6+9, 7+8 の2通り考えられるから、
簡単には解けない midiのピアノロールを作りたいです。何から手をつけていいかアドバイスお願いします。 一般的なMIDIファイルを作りたいのですが、ある程度作成のパターンが決まっているので、必要な部分だけを自分で調整できるようにしたいのです。ソフト開発はやったことがないのですが、ウィンドウ作成とか基本はできると思います。 どんな材料からどんな手順で使うのかをまずイメージしないと
これ以上はレスないでしょう。
C++は単なる言語です。このスレも意味があるのかどうか。 >>355
ありがとうございます。
MIDIのファイル形式を操るGUIを作るとピアノロールになるってことですかね?
ピアノロールの表示部分とその場での再生の仕組みがわかればと思っています。 >>357
ピアノロールの表示はされますが動かないです。ソースコードとにらめっこします。 サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート ■ このスレッドは過去ログ倉庫に格納されています