<紙>さんLOG

「パソコンヲタクの雑記帳」
 PC/Linux系/物理・化学で遊んでいます。
思いついたことを綴っています。

C(gcc) 入門(2)

2010年03月17日 | PCクリニック
ご訪問ありがとうございます。


MSYS から Relo に乗り換えまして、
C(gcc) 入門(1)」の続きです。


gcc で行くと決めたときに参照した、
gccとVC」にある「整数型」に依ると、

(符号付き)整数は、
1バイト・・・・・char
2バイト・・・・・short
4バイト・・・・・int
8バイト・・・・・int64_t
で行けるみたいです。
(int は、2バイトと云う世界もある?)

他にも、いろいろと
「short int」「long」「long int」「long long」「long long int」
なんかが有るみたいですが、
(<紙>は長いのはきらいなので)、・・・

また、符号無しでは「unsigned」を付けるのかナ。

これも長ったらしくなるので、

「typedef unsigned int DWord;」
などと、
「Byte」「Word」「DWord」「QWord」とします。


それから、
  定数の場合は、数値の末尾にLL(符号つき)かULL(符号なし)をつける。
   printfなどで表示する場合は"%lld"などを使います。
とあるので、
実験してみました。



ダメですね!
「int64_t」は8バイトだと云っているが?
11桁の数字が???
「10」を32ビット左シフトしたら消えて無くなった?
つまり、4バイト???

これは、一体どういう事???

数日間悩みました。

これと一緒:「gcc: problem with scanf/printf with 64 bit integers on mingw
です。

で、解決しました!!!
  As a first step, is your question answered here?
  http://search.gmane.org/?query=long+long+ll&group=gmane.comp.gnu.mingw.user
とあります。
見に行きました。
(何故か 6番目を見ました。4番目でも同じ?)
6. Re: long long int printf query (89%)

つまり、
「printf」では「ll」(エルエル)じゃなくて「I64」だそうです。

確認・・・・・



OKですね。

これで、「整数型」は何とか行ける。


そうだ、
「Relo」で気をつけること!
名前を付けて保存する時
「拡張子」は自動で付加してくれない!!!

下図の赤ワクは要注意
緑ワクの様に!!!

クリックで拡大(別窓)

と云うことで、gcc(C)言語仕様の勉強中です。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン

酸化物?(3)

2010年03月16日 | 理科部 部活
ご訪問ありがとうございます。


酸化物?(2)」の続きです。

今回は窒素(N)酸化物3種類について調べ/計算しました。

  N2O3:三酸化二窒素・・・・・不安定な無色の気体
  N2O4:四酸化二窒素・・・・・無色・気体
  N2O5:五酸化二窒素・・・・・白色・固体


例に依って(?)、先ずは「Wikipedia」(英語版)で調べました。


N2O3=Dinitrogen trioxideの、に、
N-N 間=186.4pm(1.864オングストローム)とあります。


N2O4=Dinitrogen tetroxideに、
N-N 間=1.78オングストローム、 N-O 間=1.19オングストロームとあります。


N2O5=Dinitrogen pentoxideに、
114度と、133度と云う2つの角度だけ出ています。



それでは、
また、「WinMostar」+「MOPAC2009」で構造最適化計算を行います。

結果は、・・・・・
何れも、計算後の状態です。
各分子は平面状になっています。


N2O3:
クリックで拡大(別窓)
N-N 間=1.54オングストロームと、短めです。


N2O4:
クリックで拡大(別窓)
N-N 間=1.63オングストロームとやはり短めですが、
N-O 間=1.195オングストロームと同じ(?)です。


N2O5:
クリックで拡大(別窓)
124.6度、135.4度と大きめに出ています???
(上図のZ-Matrix では分からないけど)



と云うことで、今日の 部活動(化学) は終了です。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン

MSYS ? Relo !

2010年03月14日 | PCクリニック
ご訪問ありがとうございます。


windows で C(続)」では、
「MinGW」対応で、Linux 風インタフェース(CUI)の「MSYS」を導入しました。
でも、リンク時に追加ライブラリをいちいち指定するのは億劫ダ!

そこで、
タダで始めるC/C++プログラミング for Windows」の、
統合開発環境 (IDE) Relo」や、
初心者による初心者のためのGCCマニュアル」にある、
Relo
を導入することにしました。

「Relo」とは?
「統合開発環境 (IDE)」ですネ。(GUI)
サイトの説明には、
  Relo is an open source C/C++ Integrated Development Environment
  for Windows, for MingW32 and Borland C++ compilers,
  designed to be highly customizable and user friendly.
とあります。


「MingW/GCC Compiler」の他にも、
「Borland C++ Free Compiler」「Digital Mars Compiler」そして、「VC++」
に対応しています。

SCREENSHOTS
を眺めれば、イメージが掴めますね?


早速「RELO v2.0 INSTALLER (1.3 MB)」をダウンロードしました。
「relosetup20.exe」です。

Tue 3.Jul.2007 と古い(?)ですが。十分です。

インストールは、デフォルト設定で行いました。
「MinGW(gcc)」インストール済みであることを検出し、
設定してくれました。


MSYS」で試したソースコードで試運転です。


先ず、適当にプロジェクトを作り、
デフォルトのメインプログラム(.cppですが?)に、
前回のソースを切り貼りして、
コンパイル・実行・・・・・

クリックで拡大(別窓)

見事成功。
(なお、即時の実行では、窓が一瞬で閉じるので、
 一文「int a=getchar();」挿入しました。なので、
 “a”は参照していないと云うワーニングが出ています。)


使いやすそう。
「MSYS」は一旦(永久?)凍結です。

なお、
「Tools」-「Options」メニューの
「style」タブにある「Font」欄では、「MS ゴシック」に変えています。
日本語に対応!

それから、必要なプロジェクトに対しては、
「Project」-「Project Options」メニューの
「Linker」タブにある「Libraries」欄にライブラリを追加する?

と云うことで、gcc(C)言語仕様の勉強再開です。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン

酸化物?(2)

2010年03月13日 | 理科部 部活
ご訪問ありがとうございます。


酸化物?(1)」の続きです。

以下の3種類について調べ/計算しました。

  CO:一酸化炭素・・・・・・・気体
  NO:一酸化窒素・・・・・・・無色透明・気体
  SO3:三酸化硫黄、無水硫酸・・超原子価分子

これらの構造は、先ずは「Wikipedia」(英語版)で調べました。


CO と NO は2原子ですから、構造イメージは自明ですね?

原子間距離については、

CO=Carbon monoxideに、
112.8pm(1.128オングストローム)とあります。

NO=Nitric oxideに、
115pm(1.15オングストローム)とあります。


SO3 は?・・・・・
Sulfiteに、
S-O間は、151pm(1.51オングストローム)とあります。
そして、角度は106度、電荷は-2ですね。


それでは、
例によって「WinMostar」+「MOPAC2009」で構造最適化計算を行います。
(この位なら、「WinMOPAC 3.0.3 BB」でもできますが)

結果は、
CO では、距離は1.14
NO では、1.135
と、1%程度でした。

SO3 では?
距離=1.57(4%の違い)
角度=107.77度(1%程度)


クリックで拡大(別窓)

計算前=>後です。
赤丸部分が注目点。


と云うことで、今日の 部活動(化学) は終了です。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン

C(gcc) 入門(1)

2010年03月12日 | PCクリニック
ご訪問ありがとうございます。


C言語については、
本家からダウンロードしたソースを改竄して遊んでいた
PIC(7) USB・HID/CDC」やら、
実用の(?)「78K0マイコン」で、
訳も分からずに弄ってはいました。


今回の「windows で C・・・」は、
Active Basic ・・・」から脱却する為?


本格的に“C”の勉強を始めました。

あちこち探して(と云っても、C に付いては多いですね)、
取り敢えずのものを整理してみました。

(1)「1.C言語入門-1
   は、手頃な「ハンドブック」になります。
   早速印刷して手元に置いておきます。
   (一箇所「long」が「log」となっている誤植がある)

(2)「C言語入門
   は、基本として、一通り勉強してみます。
   (切り貼りして、コンパイル/実行で確認しながら・・・)

(3)「ライブラリ関数一覧
   は、当面の参考資料とします。
   (基本的関数は参考になる。もっと有りますよネ)



(1)の「サンプルコード1

(2)にあるソースコードを読むのが一番の近道ですネ。

自分にとって新しい言語の勉強は、読むことから始めるものですネ。


そして、今さらながら、Cにもチャント「goto」文がありますね。
((1)に載っている。使い方(構文)は、別途調べた。)
「goto」文は“使ってはダメ”とか云う人がいますが、・・・・・
何故?・・・が明確では無いのでは?

<紙>は、キッチリ使います。
使わずに「if・・・else・・・」のお化けにするよりは、
遙かに、ソースコードが見やすくなりますから。

「goto」を使うなと云うことは、
「return」は関数の最後以外で使うな。
と云うことと一緒ですネ。
どうです?
「return」は使いたいところで使える方が良いのでは?
「goto」も一緒???

と云うことで、頑張って、ActiveBASICからの卒業を目指します。     



見ていただきありがとうございました。
お帰りに投票して頂けると嬉しいです。 ⇒ 日記@BlogRanking

人気BlogRanking ⇒ 

blogram ⇒ blogram投票ボタン