a_kwn の回答履歴

全36件中21~36件表示
  • 至急!最先端の技術者になるには?

    IT,機械,電子どの職業の技術が自分に必要か? 高卒で大分から東京に仕事を探しにきたものです。将来、実用的かつエンターテイメント要素のある商品を開発してそれを使いながら人々を楽しませる仕事をしようと考えております。その商品には、最先端の誰もまだ見たことが無いような技術を取り入れながら開発していこうと思っております。例えば、電子ペーパーやiPhoneの腕時計版など。 そうなると、これからもっと発展する分野は電子やit関連ですよね。将来的には何か1つの技術を深く学び基盤にしながら、様々な広い知識を身につけ、色々な分野にアプローチして、基盤となる技術を驚くような形で組み合わせていこうと考えております。 雇うという形で各分野の専門家達と一緒に仕事をしながら細かい所は出来ると信頼し任せるつもりです。そして私は様々な分野を勉強した分、最終的には独創的なアイデアを続々と出し、優秀な人材達をうまく使い最高の物を作って行こうと考えております。 なので今、基盤となり自分の強みとなる組み合わせていける技術の仕事をどれにすればよいか大変悩んでいます。開発なら、と思いc言語やjavaを覚えたらよいか?と考えましたが、今ではたくさんのプログラマー達がいて雇えますし、何年か経つと技術の発達により使われなくなると思います。それにたくさんのアイデアに広げれる技術か?と考えます。それより設計や、電子ですか?いま17歳なので若いうちの方が確実に技術が身につけれるし、どの分野でもまだ今なら出来る自信があります。本当は最先端の技術開発を仕事にしたいのですが情報がありすぎてどれが良いのか分かりません。 商品のアイデアを考えるなら何の技術を今、身につけるのがよいですか?決まりしだい、未経験可の所を見つけだし即就職するつもりでおります。 回答お願いします。

  • MPEG2の勉強方法

    MPEG2の勉強をしています。 理解を深めるにはどうしたら良いでしょうか? 最新MPEG教科書を読んで勉強していますが、 イマイチわかったような、わからないような感じです。 最終的には、CODECのライブラリを利用して、 シンタックスの情報も理解した上で、 自分でSW制御できるようになれたらなと思っています。 ライブラリを実際に実装しながら、色々試して、 勉強していくのが良いでしょうか? もし、オススメの勉強方法などありましたら、教えていただけると助かります。 よろしくお願いいたします。

    • catsuya
    • 回答数1
  • C++でのクラスオブジェクトの破棄

    こんにちは。 C++では、プログラムの終了時に、全てのクラスオブジェクトは、デストラクタが呼び出されて破棄されますが、プログラムの途中で、クラスオブジェクトを明示的に破棄する方法はあるのでしょうか? 例えば、new演算子によってメモリを動的に割り当てたポインタなら、delete演算子で破棄できますが、 クラスオブジェクトにdelete演算子は使えないようです。 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。

  • C言語でmain関数でのreturnとexit

    C言語でmain関数でのreturnとexitは同等とされてますが、 それは『プログラムを呼び出した元の動作』も同じですか? 例えばshellやOSから見て、割り当てメモリ開放などの点で returnで終了したプログラムの後処理と exitで終了したプログラムの後処理は 全く同じになりますか?

  • 組み込みプログラマになるには

    現在大学生をやっているものです。 表題の通りなのですが、私は将来組み込み開発系のエンジニアに なりたいと考えています。 ただ、大学ではそれとは関係なく物理を専攻しており、 プログラミングもCやFortranを数値計算に使う程度で専門的な知識が無いのですが、 このような者でもいきなり組み込み系のプログラマの職につくことは 可能なのでしょうか? それとも、会社としてはやはり全く知識の無い学生ではなく 情報系などの少しでも早く使えるようになる学生しか必要ないのでしょうか? やる気だけなら十二分にあります。 もちろん個人の能力に依るといえばそうなのですが、 一般的に難しいかどうか教えていただけないでしょうか? 組み込み系にこだわっているのは、 なるべくハードウェアに近いところでソフトが 実際の物理現象となっていくのを体感していたいからです。 また、組み込み開発をやっているところでお薦めの会社などあれば それも教えてください。 よろしくお願い致します。

  • C言語のポインタ

    あまり意識せずにポインタを使っているせいか,次のプログラムではまってしまいました. #include<stdio.h> #include<stdlib.h> int main(void) {  int *p, q;  p = (int *)malloc(sizeof(int));  q = (int *)malloc(sizeof(int));  *p = 2;  printf("%d\n", *p);  return 0; } コンパイルエラーで実行ファイルが出力されません. このプログラムで変数qはなぜポインタじゃないのでしょうか? 次にtypedefでptr_intという型を定義したプログラムは, 上のようなエラーが出力されず,期待とおりの結果になりました. #include<stdio.h> #include<stdlib.h> typedef int* ptr_int; int main(void) {  ptr_int p, q;  p = (int *)malloc(sizeof(int));  q = (int *)malloc(sizeof(int));  *p = 2;  *q = 3;  printf("%d\n", *p);  printf("%d\n", *q); return 0; } typedefすることでなぜエラーを回避することができるのでしょうか? よろしくおねがいします.

    • Oforest
    • 回答数12
  • 静的でないメンバ関数の呼び出しが正しくありません

    コンパイル時に「静的でないメンバ関数の呼び出しが正しくありません」となってしまいます。 普通の関数からメンバー関数を呼び出すには、どう記述すればいいのでしょうか? void MyDataHandler(sFrameOfData* FrameOfData) { CFrrjiftestDlg::sndrobot();  ← ここがコンパイルエラー } void CFrrjiftestDlg::sndrobot() { いろいろ記述 } //*** 以下、ヘッダー class CFrrjiftestDlg : public CDialog { DECLARE_DYNAMIC(CFrrjiftestDlg); friend class CFrrjiftestDlgAutoProxy; // Construction public: CFrrjiftestDlg(CWnd* pParent = NULL); // standard constructor virtual ~CFrrjiftestDlg(); void msubInit(); void sndrobot();   ←ここで宣言 };

  • UTF8→ShiftJISに変換したいです!

    VC++2010, MFCです。 参考ページ(↓)でできそうだったのですが、 http://www.sutosoft.com/oldroom/devdiary/20020504.html UTF-8からShift_JISにしたいのは、メディアプレーヤーで作られた wpl ファイルも扱いたいからです。 具体的にいうと、ファイル一覧に プレイリストがあった場合、展開してメディアプレイヤーで開いて、再生後 【m3u ファイル】に(コーディングで)アウトプットするのが目的です。 ShiftJISに変換して、いったんファイルに出力してから、再度読込処理を行ってもかまいません。 BOOL C○○Dlg::UTF8ToShiftJIS(const CString& src, CString* dest) {  int sizeOfString = (src.GetLength() + 1);  LPWSTR lpsz = new WCHAR[sizeOfString];  //LPSTR lpsz = new char[ sizeOfString ];  _tcscpy_s(lpsz, sizeOfString, src);    //strcpy_s(lpsz,sizeOfString, src);  //delete[] lpsz //http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200612/06120010.txt //char* orig = "Hello, World"; char* nstring; nstring = new char[sizeOfString]; strcpy_s(nstring,sizeOfString, (LPCSTR)(lpsz)); // ●UTF8からUnicodeに変換した場合の長さを求める。●  //http://msdn.microsoft.com/ja-jp/library/cc448053.aspx  //const_cast<LPTSTR>(static_cast<LPCTSTR>(str)  int iWideLength = ::MultiByteToWideChar(CP_UTF8, 0,【1】nstring, src.GetLength(), NULL, 0);  if (iWideLength == 0)return FALSE;  LPWSTR lpWideString = new WCHAR[iWideLength];  int iLength;  if (    // ●UTF8からUnicodeに変換する。●    (::MultiByteToWideChar(CP_UTF8, 0, 【2】nstring, src.GetLength(), lpWideString, iWideLength) == 0)    // ●UnicodeからShift_JISに変換した場合の長さを求める。●    || ((iLength = ::WideCharToMultiByte(CP_ACP, 0, lpWideString, iWideLength, NULL, 0, NULL, NULL)) == 0)    // ●UnicodeからShift_JISに変換する。●        //http://msdn.microsoft.com/ja-jp/library/cc448089.aspx    || (::WideCharToMultiByte(CP_ACP, 0, lpWideString, iWideLength, 【3】(LPSTR)dest->GetBuffer(iLength), iLength, NULL, NULL) == 0)){    // ●変換に失敗●    delete lpWideString;    return FALSE;  }  // ●変換に成功●  delete lpWideString;  dest->ReleaseBuffer();  return TRUE; } ・・・という風に少し修正をして、次のソースで呼び出しています。  CString src;  CFile file;  if (file.Open(FilePath, CFile::modeRead)){   DWORD iLength = file.GetLength();   //CString src;   file.Read(src.GetBuffer(iLength), iLength);   file.Close();   src.ReleaseBuffer(iLength);   CString dest;   if (UTF8ToShiftJIS(src, &dest) ==TRUE){    MessageBox (dest);   }   // ●この時点で、destにShift_JISに変換された文字列が格納されている。  } 以下(↓)を参考に、【1】~【3】の部分で、他のパターンもキャストしてみたのですが・・・ /* http://d.hatena.ne.jp/shikaku/20090519/p3 ■[CPP][VC]LPCSTRなどのVC++の紛らわしい定義の意味 一見正体不明のVC++オリジナル定義。よーくみれば違いが分かる。名前 意味 LP *(ポインタ) C const TSTR TCHAR(char) STR char WSTR WCHAR(ユニコード用:2byte) ゆえに定義 正体 LPSTR char* LPCSTR const char* LPTSTR TCHAR* LPCTSTR const TCHAR* LPWSTR WCHAR* LPCWSTR const WCHAR* となる。+/ できるだけスマートに記述したいです。エクセル版を作っていたときは、CreateObject("ADODB.Stream")を使っていたみたいです。ただ、VC++でどう書けばいいか、分かりませんυ UTF8→UTF16→ShiftJIS ←これは、あまり、使いたくない 変換 です。 後は、これも参考になりそうですが、 http://www.softist.com/programming/sjis-utf8/sjis-utf8.htm bufUTF8を何型でどこで宣言すればいいのか?分かりません。 これも(↓)はてなです。 http://www.s-cradle.com/developer/sophiaframework/sf_reference/ref.SFXTextEncoding.html 何回も試しましたが、TRUEが返ってきても、変換前と変換後をMessageBoxで比べてみても、変わりがなく、漢字や記号の羅列でしかありません。どうか教えてください。

  • プログラミングの問題です。

    以下のプログラムを作成せよ はじめに人数を入力させる。 次にその人数分、交通費を入力、すると交通費を分配するためにはお金の種別ごと(一万円、五千円、千円、五百円、百円、五十円、十円、五円、一円)に何枚用意する必要があるか表示してくれるプログラムを作成せよ。 例:二人で530円と380円の場合 はじめに「人数を入力してください:」と表示する。そこで「2」と入力する。 次に「1人目の交通費は?」と表示されるので「530」と入力、次に「2人目の交通費は?」と表示されるので「380」と入力したら 五百円玉 1 枚 百円玉 3 枚 五十円玉 1 枚 十円玉 6 枚 と表示し終了する。 達成要件: ●人数として0もしくは負の数を入力された場合は、「正しい人数を入力してください」と、表示し終了する ●枚数が0枚の場合は硬貨の種類は表示しない ●正しい硬貨と枚数が表示される

    • xKeyx
    • 回答数7
  • 画像圧縮の離散コサイン変換,量子化について

    画像圧縮について勉強していてあやふやなところがあり教えて頂きたいです. 変換前 |126, 138, 135, 118, 118, 126, 126, 130| |150, 168, 161, 122, 105, 109, 100, 118| |150, 150, 126, 150, 142, 126, 126, 117| |150, 161, 168, 130, 134, 150, 138, 130| |130, 118, 134, 142, 157, 142, 117, 126| |115, 117, 108, 117, 101, 99, 117, 126| |122, 130, 130, 138, 117, 108, 108, 138| |142, 118, 134, 117, 109, 91, 126, 109| 変換後 |1029, 52, 10, -21, -1, -3, 2, 1| | 39, 21, 0, 6, -22, -17, 4, -7| | -40, 12, 24, -19, -2, 7, -4, 5| | -32, -34, -1, -7, 5, -8, 5, -7| | 22, -14, -10, 16, -12, 4, 12, 18| | 19, -17, 1, -3, -6, -3, -2, -8| | -24, -18, 3, 15, 9, 15, -20, 1| | 9, -16, -30, 14, 29, -2, -5, -5| URLから参考にしたものですが,変換すると右下から左上へと値が高くなっています. これは圧縮することで,左上の情報量が大きくなる方法ということはわかります. ですが,量子化する方法がよくわかりません. この値を使ってどうすればいいのでしょうか. 変換前は濃度あたりだと思うんですが,変換後はマイナスの値がついててさっぱりです. 検索していろいろでてきたのですが, 難しくてわからないところもあったので 一言“量子化する”とかじゃなくて “離散コサイン変換後の量子化方法はこうするものだ”という具体的なものができればききたいです. 最終的に画像圧縮プログラムを組もうと思っています. 圧縮までに必要な仮定を教えてください. あと,プログラムはVisualC++OpenCVで組もうと思うのですが,勉強ですので関数を使うつもりはありません. おまけですが,JPEGで離散コサイン変換するという方法があるみたいですが,IPLimageを使用するのは不可能ですか? 質問する場所がわからなかったのでここでさせて頂いたのですが,間違っていたら移動させますので教えて頂けるとありがたいです. よろしくお願いします. 参考URL:http://fussy.web.fc2.com/algo/algo8-6.htm

  • NULLポインタについて

    NULLポインタはどこのアドレスも指さないポインタのことですよね。 printf("%p\n",&NULL);とすると00000000が 表示されます これはアドレスの0番地を指しているということでしょうか? でもNULLのアドレスが0番地なら、NULLポインタはどこのアドレスも指さないポインタというのと矛盾しますよね? アドレスの0番地とNULLは関係ないのでしょうか? よくわからないので教えてください。

    • noname#132718
    • 回答数5
  • VC++/MFCで error LNK2001

    C++/MFCで以下のようなエラーが出て困っております。 だれか、原因の分かる方はいらっしゃいますでしょうか? 1>Test.obj : error LNK2001: 外部シンボル ""public: __thiscall CSampleApp::CSampleApp(void)" (??0CSampleApp@@QAE@XZ)" は未解決です。 1>C:Test\src\Test\Release\Test.exe : fatal error LNK1120: 外部参照 1 が未解決です。 エラーのあったソースコード --------------------------------------------------------- #include "../Sample/Sample.h" void Test::Onfile() { std::auto_ptr<CSampleApp> p( new CSampleApp() );//←このソースコードを追加するとエラーになります。 } --------------------------------------------------------- Sample.h --------------------------------------------------------- class CSampleApp : public CWinApp { public: CSampleApp(); }; extern CSampleApp atTheApp; ----------------------------------------------------------

    • funaltu
    • 回答数2
  • C言語の問題があと少しでわからないのですが

    学校の課題に取り組んで分からないことろが出てきました。問題は以下のものです。 問題13 任意の文字列を(str)を入力して、削除文字を入力させ、strから削除文字を削除して表示しなさい。 出力例:str = abcd 削除文字:c →結果:abd というものです。 途中まで自分で考え ------------------------------------------------------------------------------------------------------------------- #include <stdio.h> void rmv(char *str, char c); int main(void) { char str[80]; int c; printf("文字列入力 : "); fgets(str, 80, stdin); printf("削除文字入力 : "); c = getchar(); void rmv(str, (char)c); printf("削除後文字列 : %s", str); return 0; } void rmv(char *str, char c) { while(*str) { if(*str == c) { while(*str) { *str = *(str + 1); ++str; } } ++str; } *str = '\0'; } --------------------------------------------------------------------------------------------------------- としましたが削除文字判定と文字つめのループ用に同じポインタを使っているので文字が一文字しか消えないと言われました。 解決方法にrmv関数内で別のポインタを用意し、if文内でコピー(例 p =str;)し次のwhile文内でこのポインタを用いて判定するというヒントを貰いましたが。自分で組んでいて上手く動きません。 どのように処理をしていけばいいでしょうか。 超初心者なので説明も付けていただくと有難いです。

  • アドレス値はどの型にキャストすればよいでしょうか?

    環境はWindows32bitです。 できれば64bitにも対応した型が知りたいです。

  • コピーコンストラクタが呼び出されていない?

    コピーコンストラクタが呼び出されていない? class myclass { public: int x; myclass(const int& init_); //コンストラクタ myclass(const myclass& init_); //コピーコンストラクタ const myclass operator+(const myclass& rhs); //加算 const myclass& operator=(const myclass& rhs); //代入 }; と定義したクラスを使ってオブジェクトを生成するときに妙な挙動をしています。 myclass mc1(10); myclass mc2 = 20; myclass mc3(mc1 + mc2); //コピーコンストラクタが呼ばれるはず このコードを実行した結果は、mc3(mc1+mc2)では自分で定義したコピーコンストラクタは実行されませんでした。 mc3(mc1 = mc2)と実行すれば、コピーコンストラクタが実行されたのですが、この違いはどこにあるのでしょうか。 そもそも、myclassとmyclass&は全く別のものなのでしょうか?

    • sirn
    • 回答数2
  • まだまだCプログラマーの初心者です、よろしくお願いします。

    まだまだCプログラマーの初心者です、よろしくお願いします。 次のコードについての質問です。 void swap_str(char **s1, char **s2) { char *tmp; tmp = *s1; *s1 = *s2; *s2 = tmp; } int main(void) { char a1[15], a2[15]; puts("2つの文字列を入力"); printf("文字列a1: "); scanf("%s", a1); printf("文字列a2: "); scanf("%s", a2); swap_str(&a1, &a2); puts("【2つの文字列の交換完了】"); printf("文字列a1: %s\n", a1); printf("文字列a2: %s\n", a2); return 0; } このコードをコンパイルすると以下のwarningが出ました。 xxxxx.c:26: warning: passing arg 1 of `swap_str' from incompatible pointer type xxxxx.c:26: warning: passing arg 2 of `swap_str' from incompatible pointer type (26行目は "swap_str(&a1, &a2);" になります) 関数swap_strの仮引数部分でポインタの型が矛盾した型を受け取っているのが原因だと思うのですがどうなのでしょうか? 一応実行してみると、1byte分は交換されていましたが、それ以上の部分は交換されてませんでした。 正しく交換するためにはどのように修正すればよろしいでしょうか? 実行環境:WindowsVista(32)、コンパイラーはgccです。 以上です、よろしくお願いします。