2010年3月アーカイブ

C言語:forでコサインカーブ

| トラックバック(0)
※C言語初心者の為、内容に不備がある可能性があります。

C言語の練習続き

forを使ってコサインカーブを出してみる。

/* cos01.c*/

#include <stdio.h> 
#include <math.h> 

int main() {
  int i, j, genbun = 5;
  double rad, cosvalue, pai = 3.14;

  printf( "角度\tcos値\tイメージ\n" );

  for( i = 0; i < 60; i++ ) {
    printf( "-" );
  }

  for( i = 90; i >= 0; i -= genbun ) {
    rad = (pai * i) / 180;
    cosvalue = cos(rad);
    printf( "\n%2d\t%f ", i, cosvalue );
    for( j = 1; j <= (int)(cosvalue * 40); j++ ) {
      printf( "*" );
    }
  }

  printf( "\n" );
  return 0;
}


普通にコンパイルしたらエラーが出た。。。
$ gcc cos01.c 
/tmp/ccwmJ23Q.o: In function `main':
cos01.c:(.text+0x70): undefined reference to `cos'
collect2: ld はステータス 1 で終了しました

何だこれ?
とりあえずググる。
gcc のエラーメッセージの読み方

ここに書いてあった。

数学関数を使う場合には、コンパイルするときに -lm という
オプションを付ける必要があります。
だそうです。。

$ gcc cos01.c -lm

コンパイルできた。
んで実行結果。


角度    cos値   イメージ
------------------------------------------------------------
90      0.000796 
85      0.087905 ***
80      0.174345 ******
75      0.259460 **********
70      0.342602 *************
65      0.423139 ****************
60      0.500460 ********************
55      0.573975 **********************
50      0.643126 *************************
45      0.707388 ****************************
40      0.766272 ******************************
35      0.819330 ********************************
30      0.866158 **********************************
25      0.906401 ************************************
20      0.939753 *************************************
15      0.965960 **************************************
10      0.984823 ***************************************
 5      0.996199 ***************************************
 0      1.000000 ****************************************


コンパイルエラーに慣れない。
今度はLinuxに入れてみようと。

Common Lispはただの仕様らしく、Perlのように実装がひとつということでは
ないらしい・・・。

実装の種類がこんなにある!

で、まぁとりあえずCentOS5.4 でyumで探してみる。
なにか引っかからないかなとか思いつつ・・・

yum search lisp

しかしlispの処理系は引っかからない・・・。

基本リポジトリには無いのか。

じゃあ「RPMForge」ならあるのかな?

[root@localhost ~]# yum --enablerepo=rpmforge search lisp
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * rpmforge: fr2.rpmfind.net
 * updates: rsync.atworks.co.jp
=============================================== Matched: lisp ===============================================
anthy-el.i386 : Emacs Lisp files to use Anthy on Emacs
clisp.i386 : ANSI Common Lisp implementation
emacs.i386 : GNU Emacs テキストエディタ
emacs-common.i386 : Emacs 一般ファイル
emacs-el.i386 : Emacs に含まれる Emacs Lisp ソースファイル。
emacs-leim.i386 : 各国の文字用のインプットメソッド用の Emacs Lisp ファイル。
emacs-nox.i386 : X のサポートを伴わない GNU Emacs テキストエディタ
ruby-mode.i386 : スクリプト言語 Ruby用のEmacs Lisp rubyモード
swig.i386 : Simplified Wrapper and Interface Generator

clispあった!!!

clispとは?
ポール・グレアムも使ったくらいだから間違いないだろう。
ということでインストール

[root@localhost ~]# yum --enablerepo=rpmforge install clisp
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * rpmforge: ftp-stud.fht-esslingen.de
 * updates: rsync.atworks.co.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package clisp.i386 0:2.42-1.el5.rf set to be updated
--> Processing Dependency: libsigsegv.so.0 for package: clisp
--> Running transaction check
---> Package libsigsegv.i386 0:2.4-1.el5.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================
 Package                   Arch                Version                         Repository               Size
=============================================================================================================
Installing:
 clisp                     i386                2.42-1.el5.rf                   rpmforge                6.6 M
Installing for dependencies:
 libsigsegv                i386                2.4-1.el5.rf                    rpmforge                 34 k

Transaction Summary
=============================================================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 6.6 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): libsigsegv-2.4-1.el5.rf.i386.rpm                                               |  34 kB     00:01
(2/2): clisp-2.42-1.el5.rf.i386.rpm                                                   | 6.6 MB     01:02
-------------------------------------------------------------------------------------------------------------
Total                                                                        104 kB/s | 6.6 MB     01:05
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libsigsegv                                                                            1/2
  Installing     : clisp                                                                                 2/2

Installed:
  clisp.i386 0:2.42-1.el5.rf

Dependency Installed:
  libsigsegv.i386 0:2.4-1.el5.rf

Complete!


出来たっぽい!
ちなみにRPMForgeの設定方法はgitインストールメモを参照。
↓は起動してみたところwww

[root@localhost ~]# clisp
  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Welcome to GNU CLISP 2.41.1 (2007-10-12) 

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2007

Type :h and hit Enter for context help.

[1]> (+ 10 20)
30

初めての人のためのLISP[増補改訂版]
竹内 郁雄
翔泳社 (2010-03-10)
売り上げランキング: 503
おすすめ度の平均: 5.0
5 この本を読まずしてなんとする!
5 Lispのおすすめテキストです
今日はやむなくpostgresで正規表現を使わないといけない場面に遭遇しました。

どういう場面かと言うと。。

スパム消してって言われたのです。

で、いちいち目で見て消すのはナンセンスなので一気に胡散臭いタイトルを見つけたい。

とあるDBに入っているスパムには規則性がありタイトルが全部英字だけだったから。

でもpostgresで正規表現での検索ってどうやるんだっけ?となったのでググるとすぐに発見。



上記ページにならって

 select * from table where title ~ '[a-zA-Z]';

ってやったら出来た。
絶対に忘れるのでメモ。

Firefox3.6にしたら・・・。

| トラックバック(0)
Firefox3.6にしたらVMware ServerのRemote Consoleが起動しなくなった・・・。

調べてみたら同じ症状の人が沢山見つかったけど、まだ解決してる人はいなさそう。

Firefox 3.6 で VMware Server 2 のリモートコンソールプラグインが動かなくて困った

とりあえずの回避策としてIEで動かすというのがあったので自分もそれにしてみた。

しかし、IEでRemote Consoleで動かそうとしたらこっちでもエラーがでる・・・。

どうもIEが「保護モード」で動いてるのがいけないらしい。

保護モードの解除方法がわからずしばらくググり続けると以下のページを発見。

Vistaのインターネットエクスプローラ(IE7.0)では保護モード(Protected Mode)というのが・・・

なんだ、右下のところからやればいいのか。。

IEとか普段使わないから面倒だな?。

C言語やってみる

| コメント(16) | トラックバック(0)
C言語をやってみる。
はるか昔に購入した以下の本の中で書いてみたくなったことや
気になったところを書いていく予定。

猫でもわかるC言語プログラミング (猫でもわかるプログラミングシリーズ)
粂井 康孝
ソフトバンククリエイティブ
売り上げランキング: 96052
おすすめ度の平均: 4.0
3 悪いわけではありませんが
5 猫の好きな私に向いた入門書
5 困ったもんだ
3 手前のレビュアー達の書く通り
4 猫でもわかるかな?
Lispの本を買ったはいいが試す環境が無いので入れることに。
本文中にCommon Lispとか書いてあったので、じゃあそれで。 

初めての人のためのLISP[増補改訂版]
竹内 郁雄
翔泳社 (2010-03-10)
売り上げランキング: 369
おすすめ度の平均: 5.0
5 Lispのおすすめテキストです



上記URLにアクセスして「gcl_2.6.7.mingw32_ansi_japi_20080106.exe」をダウンロード。

そのままクリックしてインストール開始。途中何かコマンドプロンプトが出てきて何か押せ
みたいなのがでるのでとりあえずおす。
するとインストール環境。
デスクトップにできたアイコンをクリックするとコマンドプロンプトが出るので試しに以下を入力。

lisp.jpg
とりあえず動いたみたい。次はLinuxにも入れてみよう。

MySQL設定の確認方法

| トラックバック(0)
何度も何度も忘れるので。

まずは言語の確認方法

mysql>  show variables like 'character_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

クライアントとの接続状況の確認

mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i686) using readline 5.0

Connection id:          12
Current database:       lock_test
Current user:           xxxxxxxx@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.45-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 6 hours 13 min 12 sec

Threads: 22  Questions: 840896  Slow queries: 0  Opens: 232  Flush tables: 1  Open tables: 162  Queries per second avg: 37.553
--------------

MySQLサーバー統計情報

mysql> show status;
+-----------------------------------+-----------+
| Variable_name                     | Value     |
+-----------------------------------+-----------+
・・・いっぱい出るので省略


MySQLサーバーの全設定情報
mysql>show variables;
+---------------------------------+---------------------------------------------------------+
| Variable_name                   | Value                                                   |
+---------------------------------+---------------------------------------------------------+
・・・いっぱい出るので省略


サーバー起動時の設定確認

MySQLサーバーの起動時設定を確認するには,mysqldのパラメータに--helpを追加して実行する。

とりあえずこれだけ確認できればどうにかなるでしょう・・・。

いつもアテにしているサイトは以下

C言語でFizzBuzz

| トラックバック(0)
C言語の勉強の続き。

Software Design 総集編 【2000~2009】(DVD付)

技術評論社
売り上げランキング: 83


「LLプログラミングことはじめ」に乗ってたので試しにやってみた。

/* fizzbuzz */
#include 

int main( void ) {
  int i;
  for( i = 0; i <= 100; i++ ) {
    if( i % 3 == 0 ) {
      if( i % 5 == 0 ) {
        printf( "FizzBuzz \n" );
      } else{
        printf( "Fizz \n" );
      }
    } else {
      if( i % 5 == 0 ) {
        printf( "Buzz \n" );
      } else{
        printf( "%d \n", i );
      }
    }
  }
  return 0;
}

そのまんま書いただけ。。
 
PerlのFIzzBuzzの所を読むとあーこんな書き方出来たねと思い出させてくれる。

#!/usr/bin/perl
for(1..100){print(($_%15)?($_%5)?($_%3)?$_:"Fizz":"Buzz":"FizzBuzz","\n");}
Perlの方が楽しいな・・・。
それにしてもプログラムは書かないと忘れちゃいますな。。
最近あんまり書けない。。
本屋に行ったらたまたま見つけたので。

まだ中身少ししか見れてないけど色々あって面白そう!


Software Design 総集編 【2000~2009】(DVD付)

技術評論社
売り上げランキング: 83

2012年1月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

ウェブページ

このアーカイブについて

このページには、2010年3月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2010年2月です。

次のアーカイブは2010年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.01