サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
www.rsch.tuis.ac.jp/~ohmi
オブジェクト指向の定義は、専門家の間でも微妙に食い違っているが、 「ソフトウェアで扱う事柄について、データと操作(メソッド)をまとめて1つのオブジェクトとして捉える」 ということは共通している。オブジェクト指向ではオブジェクトを基本単位として考え、 1つのオブジェクトの中には、データとメソッドが備わっているとする。 なお、データとメソッドの個数はそれぞれ自由であり、 データのないオブジェクトやメソッドのないオブジェクト(C言語でいう構造体、Pascalでいうレコード型)を作ることが可能である。 しかし、これらはオブジェクト指向らしくない使い方であり、あまり使うことはない。 図: オブジェクトはフィールド(データ)とメソッドを一つにまとめたもの データとは データはプログラム中で扱う値であり、いわゆる変数である。 Javaではオブジェクトが持つデータのことをフィールド(field)と呼ぶ。
データを検索する場合に、通常は線形探索や二分探索を行なう。 これらはデータ数が増えれば増えるほど検索時間がかかるようになる。 ところがハッシュという仕組みを使えば、 (理想的な場合)データ数に関係なく同じ時間で検索できるようになる。 この利点からハッシュは多くの実用的なプログラムで使用されている。 ハッシュの前に まず一番簡単な検索時間一定の方法を考えてみよう。 検索時間を一定にするには、 データが存在するかどうかを格納する配列を用意すれば良い。 例えば、a[i]が1ならiというデータが存在、0なら存在しないものとする。 以下のプログラムはこれを実現したものである。 public class SimpleArray { int a[] = new int[1000]; public static void main(String args[]) { // SimpleArrayオブジェクト
今までの解説では、データをバラバラに扱ってきました。 たとえば、3つの整数型のデータを扱う場合、変数a,b,cといった具合に3つの変数を使いました。多くのプログラミング言語では、これを1つにまとめて扱うことができます。このような仕組みの1つが配列です。 配列を使ってみよう 以下のプログラムを見てください。 a = [90, 55, 26, 100] print a[0], "\n" print a[1], "\n" print a[2], "\n" print a[3], "\n" このプログラムでは、90,55,26,100という4つのデータを配列aに入れています。 このように複数のデータをaという配列としてまとめて扱うことができます。 この場合、以下のように4つの箱があるようなイメージです。 +-----+-----+-----+-----+ 配列a | 90 | 55 | 26 |
grepで正規表現を利用する grepの利用の真骨頂は正規表現をパターンとして指定するときである. 以下,grepで使える正規表現パターンを説明する. 注意: 正規表現にはいくつかの派生版があり,コマンド grep, sed, awk, perl, ruby, emacs などによって使える正規表現は同じではない. たとえば,Emacsで使える正規表現は grep で使える正規表現よりも表現が豊かである. 理解しながら読み進むことが大切. (簡単なgrepの使い方も参考にせよ). 以下の説明で,半角空白文字を' 'で表すことがある. grepで使えるメタ文字は次の7つである. \ ^ $ . [ ] * grepでメタ文字を含む文字列をパターン(正規表現)として使うときにはパターン文字列を引用符記号『 ' 』で囲む. 英数字およびメタ文字以外の記号はそれ自身正規表現で,それ自身とマッチする
mizutani@edu.tuis.ac.jp 目次 Emacsのインターフェイス キー入力によるEmacsの基本操作 ファイル編集の基本コマンド 目次 Emacsのインターフェイス X Window Systemが動いているワークステーションをローカルマシンとして Emacsを使用しているときには,右の図のように,グラフィカルインターフェースを利用して,マウスと矢印キーでEmacsの操作することができる. しかし,Telnetやsshによってリモートマシンにログインする(自宅からパソコンで使うなど)場合では,グラフィカルインターフェイスを使うことはできない. Telnetやsshから % emacs などと(&記号を入力していないことに注意する)Emacsを起動したときには,『メニューバー』 は現れず,マウスを使うことができない. その結果,キー入力だけによってEmacsを操作しなければ
Emacsを起動したとき,エディタ・ウィンドウ下段のモード行は のようになっている. これを英数字モードという. この状態でキーボードから入力すると半角英数字などが入力される. 目次 ローマ字仮名モード 英数字モードになっているとき,モード行を見ながら,C-\を入力すると,モード行は に変化する. この状態をローマ字仮名モードという. 目次 漢字入力 本学ではWnn(うんぬと読む)といわれる日本語変換サーバーシステムを使っている. 漢字に変換するときには,ローマ字仮名モードになっていることを確認して,次のようにする. 適当な文節になるまでローマ字入力して スペースキーを押して漢字に変換し スペースを押しながら変換候補を見つけて, ENTERを押して確定する 初心者にとっては,「いきなり長いひらがなを入力してから,変換対象の文節を選びなおし,漢字へ変換していく」というワザはかえって効率の低下
コンピュータの得意とする、繰り返しをプログラミングしてみましょう。 もしあなたが足し算を10回しろと言われれば、ちょっといやかもしれませんが、 できるでしょう。でも、1000回しろとか10000回しろと言われれば、まず断る でしょう。人間にとっては同じことを繰り返すのがとても苦痛です。 しかし、コンピュータなどの機械は文句も言わず同じことを繰り返すことができます。 むしろ、その場の状況に応じて臨機応変に対応するといったことのほうが、 コンピュータにとっては大変です。 n回繰り返してみよう 例えば、print "Hello!\n" を5回繰り返してみましょう。 5.times do print "Hello\n" end こんどは繰り返しを10回にしてみましょう。 10.times do print "Hello\n" end このように 回数.times という風に書けば、 do から e
今まで作ったプログラムは、プログラムをテキストエディタで保存したら、 何度実行しても結果は同じでした。これではおもしろくありません。 多くのプログラミング言語では、実行する時にキーボードなどからデータを入力することができます。 もちろんRubyも可能です。 数値を入力しよう Rubyでキーボードで打った数値を変数に読み込むには以下のようにします。 1: print "数値を入力してください:" 2: a = gets.to_i 3: print a+10, "\n" このプログラムを実行すると、今までとは違って、すぐにプログラムは終了しません。 1行目の"数値を入力してください:" を表示した後に、2行目で利用者がキーボードから 文字列を打ち込むのを待っているからです(getsがこれに相当します)。 利用者が文字列を打ち終わったら、.to_iで打ち込んだ文字列を数値(整数値)に変換します。
ファイル名の展開--More About Unixシェル シェルにはワイルドカードと呼ぶ,ファイル名を補完する機能がある. ワイルドカードを使ってパターンを指定し,長いファイル名を短いタイプでマッチさせたり,複数のファイル群にマッチさせたりすることができる. これをシェルのファイル名展開またはファイル名置換という. 一般に,こうした文字列のパターンマッチ指定のための表現を正規表現と呼ぶ. 正規表現の習得は,コンピュータ利用の基本中の基本で,効率的情報処理には欠かせない. UNIXでは,ファイル名として事実上いくらでも長い名前を付けることができる. ファイルには,ファイルの性質を表わす拡張子を含めて,ファイルとファイル内容ができるだけ対応しているように適切なファイル名をつける必要がある. この考えを徹底するとファイル名が長くなってキーボード入力がわずらわしくなったり,同様なファイル名を持つ関
Rubyは、スクリプト言語と呼ばれる、手軽にプログラムを作ることができるプログラミング言語です。 また、手軽さを持っていながら本格的なオブジェクト指向言語であり、 プログラミングの初歩から本格的なプログラミングまで幅広く使える柔軟な言語です。 このためプログラミング教育にも適しています。 ここでは、はじめてプログラミングを行なう方を想定して、Rubyを使った 初歩のプログラミングについて解説します。また、所々で他の言語に触れ、 プログラミング全般の事柄も紹介します。 注意: この文書の主旨は、Rubyの説明ではありません。この文書は、初歩のプログラミングの解説であり、その解説のために使う言語がRubyである、ということです。 したがって、Rubyの言語仕様のごく一部しか紹介していません。 Rubyには、この解説に書かれていない便利な機能、強力な機能がたくさんあります。 Rubyについてさら
Emacsでは編集作業を効率よく行うために,次の2つの一括削除の方法が与えられている. カーソル位置から行末まで削除 指定した領域を削除 大切なことは,こうして一括削除された内容は完全に放棄されるのではなく,メモリに蓄積されており,これをカーソル位置に張り戻る(貼り付ける)ことが可能である. これをペースト(paste, 張り付け)と呼ぶ. 目次 行末 行末とは改行キー(Enterキー)を押す--厳密には改行文字を入力--ことによって,「次の行」が始まる直前の位置である. つまり,Emacsにおける論理的一行とは行頭から行末までの文字列のことである. 論理的一行が長くなって,Emacsウィンドウの幅を超えた場合にEmacsは自動的に文字列を折り返して結果的に複数行に表示するが,それでもその行は論理的には一行である(折り返しであることがわかるようにEmacsは記号『//』をウィンドウの右端に
Emacsではバッファごとに文字コードの取り扱いを変えることができる. 変更できる文字コードには,主に次の3つがある: ◇ファイル文字コード バッファの内容をファイルに書き込むときの文字コード ◇キーボード文字コード Emacsにキーボードから入力されるコードで,端末が送り出す文字コードとキーボード文字コードを一致させておかねばならない ◇ディスプレイ文字コード Emacsから端末表示用に送り出される文字コードで,端末の表示に用いられるコードとディスプレイコードを一致させておかねばならない 他に,外部プロセスと通信するときに用いられるプロセス文字コード,コピー&ペースト などに使うセレクション転送時の文字コードなども変更できる. 編集中のバッファの文字コード・改行コードの判定 今,使っている編集バッファではどんな文字コードや改行コードを使っているかはEmacsウィンドウ下部にある黒ライン行
Javaによるクライアント作成(2) Webサーバへのアクセス telnetを使ったWebサーバへのアクセスと同様に、 httpポートに接続したら、httpリクエストをサーバに送り、 サーバからhttpレスポンスを受け取れば良い。 以下は、Webサーバにアクセスする例である。 import java.net.*; import java.io.*; public class HttpClient1 { public static void main(String[] args) { try { String host = "www.rsch.tuis.ac.jp"; String path = "/~ohmi/software-basic/network-test.html"; int port = 80; // httpサーバに接続 Socket sock = new Socket(ho
はじめに プログラムとは何か? 画面に表示する 変数を使う エラーとその対処 条件判断 - ある場合のみ行う 見やすいプログラムにしよう キーボードからデータを入力しよう 同じことを繰り返してみよう 配列 - データをまとめて扱ってみよう 乱数 - でたらめな数 CGIプログラミング ● Rubyの参考文献 東京情報大学情報システム学科 大見 嘉弘(Yoshihiro OHMI) <ohmi@rsch.tuis.ac.jp>
アルゴリズムとは、プログラムで特定の問題を解くための方法である。 例えば、いくつかのデータをある順番(大きい順、小さい順)に並べるソートには、 バブルソートや基本挿入法、ヒープソート、クイックソートなど数多くのアルゴリズムが考案されている。 プログラムを作成する場合に、このような既に考案されたアルゴリズムが使える場合が多く、 アルゴリズムを学ぶことは、プログラミングにおいて非常に重要であると言える。 アルゴリズムで特に特徴的なことは、一般にアルゴリズムはプログラミング言語に依存しないということである。一度あるアルゴリズムを理解すれば、将来他のプログラミング言語を勉強する際にも、 そのアルゴリズムが使える。アルゴリズムを知っておくと、「単にプログラムが書ける人」に 対して大きく優位にたつことができる。ぜひマスターして欲しい。 またデータに特定の構造を持たせることが多い。よく使われるデータ構造
mizutani@edu.tuis.ac.jp UNIXはテキスト指向である. コンピュータの環境設定などすべてテキストとして与えられねばならない. テキストを作成・編集するソフトウエアがエディタである. ここではUNIXで標準的に使われているエディタEmacsの簡単な使い方を紹介する. Emacsは、初心者にとっても使いやすいだけでなく,Emacs LIPSを駆使する達人まで幅広い利用者を想定して設計された世界でもっとも優れたエディタである(最近ではWindows版のEmacsである,Meadowもあり、情報教育システムのWindows上でも使用できる). EmacsはほとんどすべてのUNIXにインストールされており,Emacsが使えることはどこにいようとも即その日からUNIXを利用できることが保証される. Emacsの基本操作(早見表) エディタの基本概念 Emacsの起動 Emacs
教育サーバーのページ オンラインテキスト目次 コンピュータリテラシー演習 2002年度ソフトウエア入門・演習 担当:朴、マッキン、海老原、大見 教科書:『Javaによるプログラミング入門』(権藤克彦、サイエンス社) マッキン先生のページ (第1講目) お約束、JavaでHelloWorldを表示する (第2講目) Javaの変数 (第3講目) 標準入出力を使う (第4講目) コメントとインデント (第5講目) 演算子 (第5+講目) 数のビット表現 (第6講目) 制御構造、流れ図 (第7講目) if文、if-else文 (第8講目) 繰り返し(while文 do-while文)と制御式の論理演算 (第9講目) 繰り返しその2(for文)とジャンプ(break文 continue文) (第10講目) 参照と配列 (第11講目) メソッド (第11+講目) 再帰プログラミング (第12講目)
コンピュータリテラシー演習へ Emacsの主要操作(早見表) ohmi@rsch.tuis.ac.jp 表の見方 C-x はControlキー(Ctrlと書いてある)を押しながらxを打つことを意味する. 同様にC-a はControlキーを押しながらaを打つ. M-x はESCキーを打って離してからxを打つことを意味する. 同様にM-v はESCを打って離してからvを打つ. なぜM-x? MはMetaを意味する.Emacsが登場した1970年代,Lispマシンと呼ばれるコンピュータの キーボードにはMetaキーが付いており,Controlキーと同様 M-xなどはMetaキーを押しながら xを打つことで入力していた.現代のほとんどキーボードには,Metaキーがなく, ESCキーを押してから次のキーを打つという方法で代用している. 現代のEmacs使いには,Altキーや◇キーをMetaキーとし
このページを最初にブックマークしてみませんか?
『www.rsch.tuis.ac.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く