2007/11/29

【TeX】 ソース文の書き方

【TeX : 基本構成】
*LaTeXのソース文はプリアンブルと本文に分かれる.
プリアンブル部分は文書全体の要素を記述するもの.本文は文書の内容を記述するものです.

例(LaTeXの必要最低限なソース文):


%プリアンブル <=== TeXのコメントは%ではじめる.

\documentclass{jarticle}

%本文

\begin{document}

本文を入力……

\end{document}



*このようにTeXではコマンドが存在し,"\"で始める.
*出力の流れは書いたソース文に.texという拡張子をつけてLaTeXで処理し,DVIファイルを作成する.その後DVIファイルをdvipdfmで処理するとPDFファイルに出力されてくる.


出力:

本文を入力・・・・・・

【Infomation】 TeXの連載はじめます

卒論で使うTeXの連載始めます.


参考になれば・・・

2007/11/22

【Java】 BigInteger 追記01

【大整数】
*多数桁処理のために「大整数(BigInteger)」のクラスを使う.

使用パッケージ宣言:
import java.math.BigInteger;


定義(BigInteger):
「大整数」はオブジェクトとして定義する必要があるので以下のように定義する.


BigInteger b = new BigInteger(String);


Stringには文字列を入れる.
*また,BigIntegerの配列は他の配列の宣言と同じである.

BigInteger [] b = new BigInteger[30];

*これでBigInteger型の配列,b[30]を宣言したことになる.


演算(BigInteger):
オブジェクトとして定義した「大整数」はオブジェクトの演算メソッドを用いて演算を行う.主な演算メソッドを次にあげる.

返り値型種類記述
BigInteger加法:a + ba.add(b);
BigInteger減法:a - ba.subtract(b);
BigInteger乗法:a * ba.multiply(b);
BigInteger除法:a / ba.divide(b);
BigInteger剰余:a % ba.remainder(b);
BigIntegerべき乗:a ^ ba.pow(int b);
BigInteger絶対値:aa.abs();
BigInteger符号反転:a = - aa.negate();
BigInteger最小値:min aa.min();
BigInteger最大値:max aa.max();
BigInteger合同:a ≡ c (mod b)c = a.mod(b);
BigIntegerべき乗の合同:a ^ m ≡ c (mod b)c = a.modPow(m, b);
BigInteger逆元(mod b):a ^ -1 (mod b)a.modInverse(b);
BigInteger最大公約数(gcd(a, b)):gcd(a, b)a.gcd(b);
boolean等号:a == ba.equals(b);
int大小比較:a <>a.compareTo(b);


*表中のa, b, cは特に断りがない限り,BigInteger型.
*「equals」はboolean型のメソッド.オブジェクトの同一性をチェック
*「compareTo」はint型のメソッドで,「a < a =" b」の場合0,「a"> b」の場合1となる.


出力(BigInteger):
*大整数はオブジェクト型のデータなので,出力の際はデータ変換で文字列型にしてから出力する.
System.out.println("BigInteger b = "+b.toString());

2007/11/16

【Java】 BigInteger

【大整数】
*多数桁処理のために「大整数(BigInteger)」のクラスを使う.


使用パッケージ宣言:
import java.math.BigInteger;


定義(BigInteger):
「大整数」はオブジェクトとして定義する必要があるので以下のように定義する.

BigInteger b = new BigInteger(String);

Stringには文字列型データを入れる.
*また,BigIntegerの配列は他の配列の宣言と同じである.

BigInteger [] b = new BigInteger[30];

*これでBigInteger型の配列,b[30]を宣言したことになる.



演算(BigInteger):
オブジェクトとして定義した「大整数」はオブジェクトの演算メソッドを用いて演算を行う.主な演算メソッドを次にあげる.

返り値種類記述
BigInteger加法:a + ba.add(b);
BigInteger減法:a - ba.subtract(b);
BigInteger乗法:a * ba.multiply(b);
BigInteger除法:a / ba.divide(b);
BigInteger剰余:a % ba.remainder(b);
BigIntegerべき乗:a ^ ba.pow(int b);
BigInteger絶対値:aa.abs();
BigInteger符号反転:a = - aa.negate();
BigInteger最小値:min aa.min();
BigInteger最大値:max aa.max();
BigInteger合同:a ≡ c (mod b)c = a.mod(b);
BigIntegerべき乗の合同:a ^ m ≡ c (mod b)c = a.modPow(m, b);
BigInteger逆元(mod b):a ^ -1 (mod b)a.modInverse(b);
BigInteger最大公約数(gcd(a, b)):gcd(a, b)a.gcd(b);


*表中のa, b, cは特に断りがない限り,BigInteger型.


出力(BigInteger):
*大整数はオブジェクト型のデータなので,出力の際はデータ変換で文字列型にしてから出力する.

System.out.println("BigInteger b = "+b.toString());

【Java】 Tokenizer

使用パッケージ(java.util.StringTokenizer)宣言:
import java.util.*;

*StringTokenizerを使うと文字列をトークンに分割する.(数字,識別子,引用文字は区別されない.)
*区切り文字はクラス作成時などに指定することができる.デフォルトはスペース.


使用例:


StringTokenizer st = new StringTokenizer("This is my Weblog for Java learning");
while (st.hasMoreTokens())
{
println(st.nextToken());
}

これを表示すると下記のようになる.

This
is
my
Weblog
for
Java
learning



クラスの定義:


public StringTokenizer(String str, String delim, boolean Tokens)
str - 分割する文字列
delim - 区切り文字の定義(省略可)
Tokens - 区切り文字をトークンに含めるかを示すフラグ(省略可,trueで区切り文字もトークンとして返される.)


主なメソッド:

返り値メソッド説明
booleanhasMoreTokens()分割したトークンがまだあるかを調べる
StringnextToken()次のトークン(文字列)を返す.
intcountTokens分割したトークンの数を返す.


*主にファイル入力で数値データを入力したいとき,いったんreadLine()で文字列として読み込んだデータをトークンに分割.その後にデータ変換で数値データに変換する.

2007/11/12

【C言語】 アドレス

【アドレス】

*コンピューターのメモリ上の位置を示す数値をアドレスという.
*アドレスは0から始まり,1ずつ増える.
*アドレスが示すメモリには1バイト(8バイト)のデータを格納できる.
アドレス100101102103
値1値2値3値4


*変数の宣言で,その変数の値を格納する領域がメモリに用意される.
*たとえばint型の変数を1つ宣言すると(int t;)
アドレス100101102103
int型の変数の値

char型は1バイト,int型は4バイト,double型は8バイトのメモリ領域が必要.

*配列の宣言で,その全要素を格納する領域がメモリに連続して用意される.

アドレス100101102103104105106107
int型の配列の最初の要素の値int型の配列の2番目の要素の値

int型で要素数が10個なら,40バイトのメモリ領域が必要.


*変数に値を代入すると,用意された領域に値が格納される.
*式などで変数が利用されると,この領域から値が取り出される.

*変数というのは,メモリに値を格納したり,メモリから値を取り出したりする操作を「アドレスを意識しないで」行える仕組みである.

【Java】 入力オブジェクト

例外処理:
throws Exception

*例外処理についてはまだ詳しく分かりません.


標準入出力宣言:
import java.io.*;


標準入力オブジェクト:
*「文字列」入力の際,以下のオブジェクトを生成する.


InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(in);

*System.inで入力ストリームが返され,InputStreamReaderで文字入力ストリームに変換し,BufferedReaderでラップすることで効率化したオブジェクト.

*実際に入力する時は


String s = br.readLine();

で1行文字列を読み込む.(数値を読み込む際も1度文字列で読み込む)


ファイル入力オブジェクト:

FileInputStream fi = new FileInputStream("infile.in");
InputStreamReader in = new InputStreamReader(fi);
BufferedReader br = new BufferedReader(in);

*System.inのかわりにFileInputStreamを使いinfile.inというファイルからのファイル入力ストリームを作成,InputStreamReaderで文字入力ストリームに変換し,BufferedReaderでラップすることで効率化したオブジェクト.

*実際にファイル入力する時は

String s = br.readLine();

で1行文字列を読み込む.(数値を読み込む際も1度文字列で読み込む)

2007/11/09

【Java】 データ変換

【型変換】
*Javaでは入出力の際に型を変換する必要がある.

string型「s」 → int型「i」に変換:
int i = Integer.valueOf(s).intValue();
int i = Integer.parseInt(s);

string型「s」 → long型(倍長整数型)「l」に変換:
long l = Long.valueOf(s).intValue();
long l = Long.parseInt(s);

string型「s」 → float型(単精度実数型)「f」に変換:
float f = Float.valueOf(s).floatValue();
float f = Float.parseFloat(s);

string型「s」 → double型(倍精度実数型)「d」に変換:
double d = Double.valueOf(s).doubleValue();
double d = Double.parseDouble(s);


*出力の際
println(****)の****には
println(boolean b) boolean 値を出力
println(char c) 文字を出力
println(double d) 倍精度浮動小数点数を出力
println(float f) 浮動小数点数を出力
println(int i) 整数を出力
println(long l) long 整数を出力
println(String s)文字列を出力
println()行区切り文字列を書き込むことによって、現在の行を終了する


ほとんどが出力できるが,
データ型(オブジェクト)は文字列に変換する必要がある.

Object(データ型) → string型(文字列型)「s」に変換:
s = Objet.toString();

2007/11/08

【Java】 配列01

【配列】

「1次元配列」の宣言:
  int [] a;
  int a [];
*配列aを宣言する.

初期化:
① a = new int[30];
*aという配列に30個の要素数を用意する.(C言語ではa[30])

② a = {1, 1, 2, 3, 5, 8, 13};
*配列の内容を具体的に与える

*参照はa[12]とする.これは配列の12番目を参照している.


「多次元配列」の宣言:
int [][] a;
int a [][];

*2次元の配列aを宣言する.(行列aの宣言)

初期化:
① a = new int [30][30];
*30×30の行列を用意する.
*a[(行数)][(列数)]をあらわす.

② a = {{1, 2, 4, 5, 2},{0, 4, 6, 3, 2}};
*内容を具体的に与えるこの場合,
    1 2 4 5 2
    0 4 6 3 2
 という行列を表す.

*参照はa[3][2]とする.これは配列の3行2列の値を参照している.

2007/11/05

【C言語】 標準出力

たくさんあります.
全部はまとめていません.
あくまでメモです.

【標準出力】

<puts>
例)
puts("おはようございます");
==>出力:おはようございます

strcpy(str,"おはようございます");//こいつはまた後ほど紹介
puts(str);
==>出力:おはようございます

*どちらも「おはようございます」を出力.
*出力の最後は必ず改行する.


<printf>
例)
printf("おはようございます");
==>出力:おはようございます*改行はしない.

*改行するためには\nを入れる.
printf("おはようございます\n");
==>出力:おはようございます
*改行しました

strcpy(str,"おはようございます");
printf("%s\n",str);
==>出力:おはようございます
*改行しました.

【C言語】 基本的な書き方

<超キホン:C言語の書き方>
//ヘッダファイルのインクルード
#include

//メイン関数の記述
int main()
{



return 0;

}

*ここではstdio.hというヘッダファイルをインクルードして,
int型の関数mainを記述する.必ずmain関数が必要.
関数の内部には戻り値0を返すように指定している.