ギークな話題とコンピュータの知識を届ける愛犬家ブログ。

C言語の復習

C言語の復習

スクールの教科書でC言語について復習したのでメモしておきます。 EclipseでのC言語のプログラムの作成方法 こちらからC/C++用のEclipseをダウンロードします。 Eclipseを起動後、パースペクティブがC/C++になっていることを確認します。 ファイルタブから新規->Cプロジェクトを選択し、プロジェクトを作成します。プロジェクト名は「Sample」とします。 プロジェクトを右クリック->新規->ソースファイルを選択し、ソースファイルを作成します。ソースファイル名は「Sample.c」とします。 ソースファイルに以下のソースコードを記述します。 #include <stdio.

JavaのmainメソッドのString[] argsに引数を渡す

JavaのmainメソッドのString[] argsに引数を渡す

エディタはEclipseを使用します。mainメソッドのString[] argsに対して、Eclipseの設定で引数を渡す方法と、コマンドラインから引数を渡す方法があるので、それぞれ説明します。 String[] argsで引数を受け取るプログラム Eclipseで適当にプロジェクトとパッケージとクラスを作り、クラスのmainメソッドを以下のように記述します。 public static void main(String[] args) { for (int i = 0; i < args.length; i++) { System.out.println(args[i]

Linuxにおけるパイプとリダイレクトの使い方

Linuxにおけるパイプとリダイレクトの使い方

スクールのLinux講座を受講しています。パイプとリダイレクトの使い方を勉強したのでメモしておきます。 パイプ Linuxの大きな特徴の一つに、コマンドやプログラムが出力したものを、他のコマンドやプログラムの入力に引き渡してしまうことができる、というものがあります。この際に使われる機能がパイプ(パイプライン)で、「|」の記号で表されます。 それでは、パイプの例を見てみましょう。 wcコマンドという、ファイル内の行数、単語数、文字数を数えるコマンドを例にとって見てみます。 以下のコマンドを実行しましょう。 ls | wc -l すると、lsコマンドの実行結果であるカレントディレクトリ内のファイル、ディレクトリ一覧がwcコマンドにパイプを通じて引き渡され、wcコマンドが渡されたファイル、ディレクトリ一覧の行数を数えることで最終的にファイル、ディレクトリ数が標準出力に出力されます。 実行結果 11 ※カレントディレクトリにファイルとディレクトリが合計11個ある場合に11と出力されます。

Java JSPの構成要素と基本

Java JSPの構成要素と基本

前回の入門記事に引き続き、今回はJava JSPの構成要素について見ていきます。 前回はServletの使い方に主軸を置いて説明しましたが、今回はJSP側の基礎知識やJSPの使い方を説明していきます。 JSPの構成要素 JSPは、記述したまま出力されるテンプレートテキスト要素と、Webコンテナによって処理し出力されるJSP要素の2つで構成されます。 テンプレートテキスト要素は、html要素やbody要素、もしくはp要素など、書いたままにブラウザが出力する要素のことです。対して、JSP要素はWebコンテナ(サーバ側)で処理し、出力する要素です。 JSP要素には以下の5種類があります。 コメント <%-- コメント --%>という書式で記述することで、コメントの扱いになります。非常に使い方が簡単なので、本記事ではこれ以上の解説は行いません。 ディレクティングタグ

Java Servret/JSPの基礎知識

Java Servret/JSPの基礎知識

Java Servletとは、JavaでWebアプリケーションを構築するためのソフトウェアや仕様を一纏めにして呼んだものです。本記事ではServletについて、基本用語の解説や、Eclipseを利用した基本操作の解説を行います。 Webアプリケーションとは Webブラウザ上で動作するアプリケーションをWebアプリケーションと呼びますが、単にWebアプリケーションを作るだけであれば、Java Servletの他にもたくさんの方法があります。 CGI(Perl, Python, Ruby) 現在稼動されているほとんどのWebサーバにはCGIという仕組みが実装されています。 CGIはブラウザからのリクエストに従い、Webサーバ上でプログラムを実行して、その結果生成されたHTMLをブラウザに送信する仕組みです。 どんなプログラムでもその実行環境がWebサーバにあれば実行することができます。 開発言語としてよく使われるものとしては、Perl(パール)、Python(パイソン)、Ruby(ルビー)などがあり、古くからPerlが最も多く使用されています。 Perlはオブジェクト指向のプログラミング言語ではありません。

基本情報技術者試験(午前問題)の要点を学習した

基本情報技術者試験(午前問題)の要点を学習した

四則演算 四則演算の答えを日本語で言うときの単語を確認しておきましょう。 和は足し算の答え。 差は引き算の答え。 積はかけ算の答え。 商は割り算の答えです。 次に社会人が意外と忘れがちなのが手計算のやり方です。 試験会場への電卓の持ち込みは禁止なので小数の計算などは手計算で解けるようにしておきましょう。 試しに以下の問題を手計算で解いてみてください。 ① 0.25 * 0.09 ② 0.9 / 1.25 基数変換(2進法、16進法) 長くなるので、以下の記事にまとめました。最近は2進数・16進数の小数を扱う問題が出る傾向が強いので、しっかりとおさえておいてください。 基数変換のメモ 試しに以下の問題を解いてみましょう。 10進数 1450 を2進数に変換するといくらか。

PostgreSQLの使い方

PostgreSQLの使い方

データベース知識の復習ついでにPostgreSQLに触っています。基礎知識と基本操作をメモしておきます。なお、操作説明に焦点を当てているため、正規化などの前提知識については解説を行いません。 PostgreSQLをインストールする CentOSにPostgreSQLのインストールを行います。yumを使用します。 rootユーザーに変更します。 su - PostgreSQLをインストールします。 yum install postgresql-server インストールが終わったら、PostgreSQLが使用するファイル(データベースの本体)を作成します。 postgresql-setup initdb 問題なく初期化が行えたらPostgreSQLサーバを有効にします。 systemctl enable postgresql 最後にPostgreSQLサーバを起動します。 systemctl start postgresql PostgreSQLの基本操作

Javaでデータの整列を実装する

Javaでデータの整列を実装する

基本情報技術者試験に向けてアルゴリズムを勉強しています。今回はデータの整列を代表する5つのアルゴリズムについてまとめます。 標準ライブラリでのソート 自分でソートのアルゴリズムを実装する前に、標準ライブラリで用意されているソートを利用してみましょう。標準ライブラリでは、java.utilパッケージに含まれるArraysクラスを用いて配列のソートを行うことができます。 static void sort(int[] a) 指定された配列を数値の昇順でソート 実際に利用してみましょう。クラスを作成し、以下のプログラムを記述、実行してください。 import java.util.Arrays; public class Sample { public static void main(String[

Javaでデータの探索を実装する

Javaでデータの探索を実装する

基本情報技術者試験に向けて勉強しています。今回はJavaでデータの探索を行う方法についてまとめます。 Arrays.binarySearchによる二分探索 標準ライブラリでは、java.utilパッケージに含まれるArraysクラスを用いることで配列からの探索を行うことができます。 static int binarySearch(int[] a, int key) バイナリサーチアルゴリズム(二分探索法)を使用して、指定されたint値の配列から指定された値を検索します。 動作確認 確認用のクラスを作成し、mainメソッドに以下を記述してください。 public static void main(String[] args) { int[] array = {1,

Javaで二分探索木(木構造)を実装する

Javaで二分探索木(木構造)を実装する

基本情報技術者試験に向けてアルゴリズムを勉強しています。今回は木構造(二分探索木)についてまとめます。 木構造とは 木構造は以下のようにデータを格納したデータ構造です。 木構造の用語 上記の図を参照しながら木構造の用語について説明します。 ノード(node、節):⑤などの○で囲まれた数字のことです。 親ノード:②と④から見た③が親ノードです。 子ノード:③から見た②と④が子ノードです。 兄弟ノード:同じ親ノードを持つ②と④が兄弟ノードです。 先祖ノード:②から見た③と⑤が先祖ノードです。 子孫ノード:

Javaでハッシュテーブルを実装する

Javaでハッシュテーブルを実装する

基本情報技術者試験に向けてアルゴリズムを勉強しています。今回はハッシュテーブルについてまとめます。 ハッシュテーブルとは ハッシュテーブルはキーと値の組を記録したテーブル(表)です。以下のような表を想像してください。 Index キー 値 0 1 456 def 2 3 123 abc 4 789 ghi ハッシュテーブルはキーに対する値の格納位置(Index)を工夫することにより、高速に検索が行えるようになっています。キー「123」であれば、Index3にあるとすぐに判断でき、値の取得が行えます。

Javaでキューを実装する

Javaでキューを実装する

基本情報技術者試験に向けてアルゴリズムを勉強しています。今回はJavaでキューを実装してみます。 キューとは キューでは最初に格納した要素が最初に取り出されます。このような仕組みをFIFO(First In First Out、先入れ先出し)と言います。 キューにデータを格納することをエンキュー(enqueue)と言います。エンキューしたデータは列の一番後ろに追加されます。 キューからデータを取り出すことをデキュー(dequeue)と言います。データを取り出す際には先頭から取り出されます。 実装する 今回はjava.utilパッケージのArrayDequeクラスを参考にして実装します。 まずは、キューのデータ構造を作ります。以下の内容を記述したQueueクラスを作成しましょう。 public class Queue { private Object[

Javaでスタックを実装する

Javaでスタックを実装する

基本情報技術者試験に向けて、アルゴリズムを勉強しています。今回はスタックとキューをJavaで実装してみました。 スタックとは スタックでは最後に格納した要素が最初に取り出されます。このような仕組みをLIFO(Last In First Out、後入れ先出し)と言います。 まずは以下の用語について確認してください。 プッシュ(push):スタックにデータを積むこと ポップ(pop):スタックからデータを取り出すこと スタックにプッシュが行われることにより、データが積まれていきます。その際、「ひとつ前にプッシュしたデータ」は「今プッシュしたデータ」の下に置かれます。 スタックからポップを行うと、スタックの一番上にあるデータが取り出されます。一番上にあるデータ以外は取り出せません。 実装する

Javaで標準入力

Javaで標準入力

AtCoderの問題をJavaで解いてみようとしたところ、標準入力の使い方が分からなかったので調べました。 標準入力 Javaでは入力を受け取る際にはScannerにSystem.inを渡して使います。また、受け取るデータの型によっていくつかのメソッドを使い分けます。 単語の場合はnext() 整数の場合はnextInt() 文字列(1行)の場合はnextLine() 使用例1 以下は、標準入力から2つの数を与え、2つの数の積(掛け算)した結果が偶数(Even)か奇数(Odd)かを判定するプログラムです。 ABC086 A. Product public class ABC086_A_Product

Javaでリストを実装する

Javaでリストを実装する

基本情報記述者試験に向けて、Javaで基本的なアルゴリズムを再勉強しています。この記事ではリストを実装していきながらデータ構造とアルゴリズムについてまとめます。 連結リスト Javaのリストといえば、ArrayListが有名ですが、今回はリストとしてのシンプルな機能を持つLinkedListクラスを参考にして実装してみます。 連結リストは、ノード(オブジェクト)を連結させることでリストとしての機能を提供します。 ノードは以下の2つのフィールドを持ちます。 データフィールド:データそのものを持ちます。 リンクフィールド:次のノードへの参照を持ちます。 また、リストの先頭にノードを追加するためには、ノードの先頭を管理するためのフィールドが必要です。 実際にコードを書くと以下のようになります。 class SNode { Object data; SNode next; } public class SLinkedList { private