ダウンロードしたのは、以下の3つ
Visual Basic
Visual C#
Visual C++
.NETの特徴としては、言語によらずオブジェクトが使用できるという
メリットがあったと思う。
Basic のプロジェクトでクラスを作成して、それをC# 側から
参照して使用するということをやってみた。
ただし、Basicのプロジェクトでは、Msgbox を出すように
プログラムしたつもりだったのに、実行してみるとMsgbox
を出すところでとまってしまった。つまりクラスの中から
Msgboxを出すことができなかったというわけ。コンソール
に出力することしかできなかった。
Basic で作ったクラスをC++ 側から参照して使用する
こともできた。
2011年9月2日金曜日
2011年9月1日木曜日
Java でExcel を操作する(POIを使用)
Java でExcel を操作することはできないかと探し
以下を参考にしました。
http://www.javadrive.jp/poi/
POIのバージョンは、この時点での最新バージョンで
ある、3.8-beta4を使用しました。
はじめLinuxのJavaの環境でやってみたのですが、
「許可がありません」というメッセージがでてコンパイル
できませんでした。
ただWindowsの環境で動作することが確認できました
ので、いいかなと思っています。
サンプルソース(testというシートを作成する)
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class sample{
public static void main(String[] args){
HSSFWorkbook workbook = new HSSFWorkbook();
workbook.createSheet("test");
FileOutputStream out = null;
try{
out = new FileOutputStream("sample.xls");
workbook.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
サンプル2(sample2_1.xlsというファイルを作成する。)
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.*;
public class Sample2_1{
public static void main(String[] args){
Workbook wb = new HSSFWorkbook();
FileOutputStream out = null;
try{
out = new FileOutputStream("sample2_1.xls");
wb.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
Excelファイルを編集するサンプル。sample2_2.xls を読み出して、左から6列について、2行めに値が入っていたら3行めにCHeck! と記入します。その後sample2_3.xls という名前で保存します。
//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;
public class Sample2_2{
public static void main(String[] args){
FileInputStream in = null;
Workbook wb = null;
try{
in = new FileInputStream("sample2_2.xls");
wb = WorkbookFactory.create(in);
}catch(IOException e){
System.out.println(e.toString());
}catch(InvalidFormatException e){
System.out.println(e.toString());
}finally{
try{
in.close();
}catch (IOException e){
System.out.println(e.toString());
}
}
Sheet sheet = wb.getSheetAt(0);
Row row1 = sheet.getRow(1);
Row row2 = sheet.createRow(2);
for (int i = 0 ; i < 6 ; i++){
Cell cell = row1.getCell(i);
if (cell != null){
row2.createCell(i).setCellValue("Check!");
System.out.println(cell);
}
}
FileOutputStream out = null;
try{
out = new FileOutputStream("sample2_3.xls");
wb.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
2011年7月6日水曜日
2011年6月16日木曜日
カオスとフラクタル
カオスはギリシア語の動詞“大きく裂ける”から来ているが、我々の社会ではカオスは無秩序を表す表現、または予測不可能で混沌とした状態を指しています。 天気を予測することが難しいのはカオス的だからです。(東京の蝶々の羽の動きがニューヨークの天気に影響を与えるなど)カオスでは初期条件のちょっとした 違いが、増幅されて、全然異なる結果を生み出す場合があります。「塞翁が馬」ということわざがあります。人生はなにがきっかけでどうころぶかわかりません。あの時、あの人にで会っていなかったら人生が変わっていただろうとか、一冊の本との出会いをきっかけにして当初は予想もしていなかった人生を歩むことになったというような有名人がいます。私たちが歩む人生にもカオス的なところがあるのかもしれません。
フラクタル
フラクタルでは全体が部分の相似形となっているという特徴があります。例えばマンデルブロー集合では全体の形状に似た形状が部分のあちこちに見られ、さら にどんなに拡大しても同じ形状が現れてきます。フラクタルは無限の自己相似性を持っているということもできます。自然界にはフラクタル的なものがたくさん あります。どんなに拡大しても複雑な形をしている海岸線や空の雲の形、雪の結晶、動物や植物、微生物の形などです。
マンデルブロー集合 雪の結晶に似た形状
マンデルブロー集合は簡単な次の数式から作成することができます。
f(z)=z* z + c
コンピュータ上で簡単な数式から作成された形状がなぜか植物や動物など自然界の生物の形に似ていることがあるという不思議な現象があります。たぶんこれ は、生物の形状を現す遺伝情報がコンピュータのプログラムに似た役割をしているからだと予想します。生物の形状が出来上がっていく過程で遺伝子に書き込ま れたある司令が、繰り返し各部分で適用され、単純な数式を繰り返し計算するコンピュータのプログラムと同じような動作をしているのではないかと予想されま す。近年、コンピュータの性能が非常に進歩し、同じ計算式を繰り返し実行する時間が短くなったことにより、このような現象が確認できるようになりました。
パソコン上で作成した植物の形状
コンピュータのプログラムと生物の遺伝子は良く似たところがあると言われます。コンピュータのプログラムは1と0の2値のからなる情報から構成されていま すが、遺伝子はこれに対して4文字の情報から構成されていると言われています。この4文字の遺伝情報ATCGは人間や植物、バクテリアなどすべての生物に 共通です。生物が多様なのはこの4文字で書かれている遺伝情報の内容が異なるからです。
コンピュータのプログラムを使って、フラクタルの画像をつくる場合に気がつくことですが、同じ数式から作成される画像でもパラメータを少し変化させるだけ で作成される画面上のイメージはずいぶん変わってしまいます。地球上には非常にたくさんの形態の生物がいて多様に見えますが、遺伝子レベルでみれば、パラ メータがちょっとずつ違うだけかもしれません。
リチャードドーキンズの利己的遺伝子の説によれば「遺伝子は自分の進化のために生物を乗りついでいく」と考えられています。生物としての固体は死んでも遺 伝子だけは、子孫に受け継がれて行きます。生命の主体は遺伝子であって、われわれ人間を含む生き物はすべて、遺伝子の乗り物(又はうつわ)に過ぎないとい う説です。生物の進化は遺伝子の進化ということができます。
微生物の形状に似たパターン
日常生活で見られるカオス的、フラクタル的な様相を呈するものの例
動物
非常にたくさんのイルカやアザラシなどが群れている様子はフラクタル的。
遺伝
アメーバなどの生物の細胞形状。充填ジュリア集合から発生させることができる。
天候(温度)
天候を正確に予測することは非常に難しい。ちょっとの初期変動が大きな変動のもとになっている可能性がありカオス的である。1年間の間で温度的には冬は寒 く、夏は暑くなり、これを毎年繰り返している。但し一日の単位で見ても、夜と昼で温度の変化があり、毎日の繰り返しとなっている。この点ではフラクタル的 である。
自然の光景
木、葉、花(しだの葉)
雲
岩
雪片
銀河
海岸線
人体
気管支の成長
ニューロンの成長
生理学的過程
心のカオス
人間の行動パターン
「一時が万事」といわれるように、その人のほんの小さなひとつの行動を見れば、その人の性格や大体の行動パターンがわかってしまう場合がある。例えば、会 社の机の上がちらかっているような人は、きっと自分の部屋もちらかっており仕事のやり方も、雑であり、頭の中も整理されていないと想像される。
人間が構成する組織の形態
例えば、会社の組織は通常は社長が最上位としたピラミッド型の階層構造だが、階層構造の下の方にある一つの部署を見ても、部長を最上位としたピラミッド型をしている。
フラクタル
フラクタルでは全体が部分の相似形となっているという特徴があります。例えばマンデルブロー集合では全体の形状に似た形状が部分のあちこちに見られ、さら にどんなに拡大しても同じ形状が現れてきます。フラクタルは無限の自己相似性を持っているということもできます。自然界にはフラクタル的なものがたくさん あります。どんなに拡大しても複雑な形をしている海岸線や空の雲の形、雪の結晶、動物や植物、微生物の形などです。
マンデルブロー集合 雪の結晶に似た形状
マンデルブロー集合は簡単な次の数式から作成することができます。
f(z)=z* z + c
コンピュータ上で簡単な数式から作成された形状がなぜか植物や動物など自然界の生物の形に似ていることがあるという不思議な現象があります。たぶんこれ は、生物の形状を現す遺伝情報がコンピュータのプログラムに似た役割をしているからだと予想します。生物の形状が出来上がっていく過程で遺伝子に書き込ま れたある司令が、繰り返し各部分で適用され、単純な数式を繰り返し計算するコンピュータのプログラムと同じような動作をしているのではないかと予想されま す。近年、コンピュータの性能が非常に進歩し、同じ計算式を繰り返し実行する時間が短くなったことにより、このような現象が確認できるようになりました。
パソコン上で作成した植物の形状
コンピュータのプログラムと生物の遺伝子は良く似たところがあると言われます。コンピュータのプログラムは1と0の2値のからなる情報から構成されていま すが、遺伝子はこれに対して4文字の情報から構成されていると言われています。この4文字の遺伝情報ATCGは人間や植物、バクテリアなどすべての生物に 共通です。生物が多様なのはこの4文字で書かれている遺伝情報の内容が異なるからです。
コンピュータのプログラムを使って、フラクタルの画像をつくる場合に気がつくことですが、同じ数式から作成される画像でもパラメータを少し変化させるだけ で作成される画面上のイメージはずいぶん変わってしまいます。地球上には非常にたくさんの形態の生物がいて多様に見えますが、遺伝子レベルでみれば、パラ メータがちょっとずつ違うだけかもしれません。
リチャードドーキンズの利己的遺伝子の説によれば「遺伝子は自分の進化のために生物を乗りついでいく」と考えられています。生物としての固体は死んでも遺 伝子だけは、子孫に受け継がれて行きます。生命の主体は遺伝子であって、われわれ人間を含む生き物はすべて、遺伝子の乗り物(又はうつわ)に過ぎないとい う説です。生物の進化は遺伝子の進化ということができます。
微生物の形状に似たパターン
日常生活で見られるカオス的、フラクタル的な様相を呈するものの例
動物
非常にたくさんのイルカやアザラシなどが群れている様子はフラクタル的。
遺伝
アメーバなどの生物の細胞形状。充填ジュリア集合から発生させることができる。
天候(温度)
天候を正確に予測することは非常に難しい。ちょっとの初期変動が大きな変動のもとになっている可能性がありカオス的である。1年間の間で温度的には冬は寒 く、夏は暑くなり、これを毎年繰り返している。但し一日の単位で見ても、夜と昼で温度の変化があり、毎日の繰り返しとなっている。この点ではフラクタル的 である。
自然の光景
木、葉、花(しだの葉)
雲
岩
雪片
銀河
海岸線
人体
気管支の成長
ニューロンの成長
生理学的過程
心のカオス
人間の行動パターン
「一時が万事」といわれるように、その人のほんの小さなひとつの行動を見れば、その人の性格や大体の行動パターンがわかってしまう場合がある。例えば、会 社の机の上がちらかっているような人は、きっと自分の部屋もちらかっており仕事のやり方も、雑であり、頭の中も整理されていないと想像される。
人間が構成する組織の形態
例えば、会社の組織は通常は社長が最上位としたピラミッド型の階層構造だが、階層構造の下の方にある一つの部署を見ても、部長を最上位としたピラミッド型をしている。
登録:
投稿 (Atom)