MacでPerlを使っていて非常に疑問だったのが何故か正規表現が正しく動作しない問題だったのですがWindowsと違ってMacでは¥マークが実はバックスラッシュと扱いが同じではなく¥を記述しても正常に動作しません。
バックスラッシュを実際に記述したい場合は下記のような入力を行う必要があります。
optionキー(alt) +
まだ試していませんがCやJavaなどの他の言語にも影響があるかもしれません。
MacでPerlを使っていて非常に疑問だったのが何故か正規表現が正しく動作しない問題だったのですがWindowsと違ってMacでは¥マークが実はバックスラッシュと扱いが同じではなく¥を記述しても正常に動作しません。
バックスラッシュを実際に記述したい場合は下記のような入力を行う必要があります。
optionキー(alt) +
まだ試していませんがCやJavaなどの他の言語にも影響があるかもしれません。
入力した個数分のランダムな9以下の数字を表示する
#include <stdio.h> int main(void){ int i,x; scanf("%d",&x); for(i = 1;i <= x;i++){ printf("%d ",rand()%9); } printf("n"); return 0; }
サブマシンがMacBookになって「www」やShftを押して一文字大文字を作って英数入力を行うときなどで「っっっw」とか意思通り動かず地味にキレそうになってたのですが解決する方法を発見したのでメモしておきます。
Google 日本語入力 for Mac
これをダウンロードしてインストール後「システム環境設定」の「言語とテキスト」で上を使うようにすると「www」が普通に入力できるようになります。
ターミナルの文字が小さすぎて読みにくいとかいろいろ自分に合わせて調整中・・・
EclipseでPerlの開発環境を整えたところcpanで追加したモジュールを読み込まなかったので対策した。
MacOSXではcpanのインストールディレクトリとPerlのモジュールへのパスが異なるようなのでシンボリックでつないだ。
ディレクトリをバックアップ
$ mv /Library/Perl/Updates/5.10.0 /Library/Perl/Updates/5.10.0_dir
シンボリックでつなげる
$ ln -s /opt/local/lib/perl5/site_perl/5.8.9/ /Library/Perl/Updates/5.10.0
バージョンが違うのが気になるがほかにいいアイディアが浮かばなかったので気にしないことにする。。。
PHPのバージョンを上げた時にアンインストールされてしまっていたので再インストールしました。
32bit版
# yum install php-xml php-xmlrpc php-soap
64bit版
# yum install php-xml.x86_64 php-xmlrpc.x86_64 php-soap.x86_64
JavaをMacで使う為に中古のMacBookを買ったが、いざJavacを使ってみたところ激しく文字化けしたので文字化けを直す方法をメモしておく。
ユーザディレクトリ直下.bash_profileに# vim .bash_profile 等で上記の内容を書き込むことで文字化けを解消することが出来る。
alias javac=”javac -J-Dfile.encoding=UTF8″
どうしてもMac OS Xが使いたく色々迷いながら結局Windowsと仲良く出来るらしいintel CPUの搭載された旧MacBookを中古で購入してみた。
そこで実際にWIndows 7をインストールしてみたが何かSelect CD-ROM Boot Type: とか出て止まる・・・ あれ?っとか思い調べてみたところなんと購入した機種は64bit版に対応していないじゃないか!という事が判明。。。
じょ・・・冗談でしょ?とか思いながら色々調べてみたところなんとかWindows 7をインストール出来るようなのでインストールしてみた。
先ず、Windows AIKを使いインストールDVDを作り替える(Windowsでの作業です)
この先行き止まり Select CD-ROM Boot Type:
こちらの方がとてもわかりやすく解説していらっしゃいましたので参考にどうぞ。
ディスクが出来てインストールしWIndows 7を起動することができたのですが何故かトラックパッドで右クリック出来ない。 嘘!?とか思い、英数・カナのキーを押すと案の定入力切り替えも出来ない。。。
色々調べてみるとBootCampがインストールされていないみたいなのでSnow Leopardのインストールディスクを入れてBootCampのインストーラを実行してみるも非対応であると出てインストール出来ない。 ここまで来てそれは無いだろ!!と思いながら色々探してみると無理やりBootCampをインストールする方法があるようでインストールしてみた。
人柱しないヒトバシラー MacBook(late2006)をBootCampでWindows7(x64)
こちらの方がとてもわかりやすく解説していらっしゃいましたので参考にどうぞ。
D:BootCampDriverApple
のAppleフォルダをCドライブ直下にコピーしコマンドプロンプトを開く。
> cd Apple
> msiexec /i BootCamp64.msi
でBootCampのインストーラを実行でき問題なくBootCampをWindows 7にインストールできた。
C,Javaときたら普段から慣れ親しんでるPerlを出さない訳にはいかない為書いてみた。
書いて思う事は、やはり素晴らしい言語であるということ。
最も必要最低限で意志を伝えやすい。
#!/usr/bin/perl # 初期値を設定 $x = "0"; $y = "1"; # 値の入力を求める $input = <STDIN>; for($i = $input;$i > 0;$i--){ $z = $x + $y; # 今の値を出す $y = $x; # 前の値を代入→次のループで2回前の値になる $x = $z; # 今の値を代入→次のループで1回前の値になる } print $z; # 最後の値を表示
バカの一つ覚えとしてこの際、Javaでも同じ事が出来るかを試してみた。入力を受け付ける時にint型を直接指定出来ないようなのでString型で指定しその後、型の変換を行う。IOエラーについての記述やパッケージのインポート等あるが対してC言語との変化は無く同じ動作を行える。
// パッケージをまとめてロード import java.io.*; public class fibonacci { public static void main(String args[]) { int x=0,y=1,z=0,i,input; // 入力データ読み込み用オブジェクトの作成 BufferedReader myReader = new BufferedReader(new InputStreamReader(System.in),1); try{ System.out.println ("値を入力してください:"); String myString = myReader.readLine(); input = Integer.parseInt(myString); for(i = input;i > 0;i--){ z = x + y; /*今の値を出す*/ y = x; /*前の値を代入→次のループで2回前の値になる*/ x = z; /*今の値を代入→次のループで1回前の値になる*/ } System.out.println (input + "の値は" + z + "です。"); /*最後の値を表示*/ // エラー処理ブロック }catch (IOException e) {} } }
Javaを使って四則演算をしてみたいと思う。 Math.javaというファイルを作成し下記のソースコードを書いき保存する。
# javac Math.java
# javac Math
実行すると次のように表示されると思う。
——文字として出力—–
5 + 5
5 – 5
5 * 5
5 / 5
——数式として演算—–
10
0
25
1
ここで気づくのだがPerlやCやPHPとは異なりprintf(“%d”,数式)というような整形型の記述ではないこと。何が言いたいかというとJavaには標準でprintfのような機能が備わっていないようである。仮に、 System.out.println(“%d”,5 + 5)とし実行してみると激しくエラーが表示される。
public class Math { public static void main(String args[]) { System.out.println("n------文字として出力-----n"); System.out.println("5 + 5"); System.out.println("5 - 5"); System.out.println("5 * 5"); System.out.println("5 / 5"); System.out.println("n------数式として演算-----n"); System.out.println(5 + 5); System.out.println(5 - 5); System.out.println(5 * 5); System.out.println(5 / 5); } }
最近のコメント