管理人

SEとして働く管理人「まつ」がつぶやく個人運営サイトになります。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。

2022/6/1

【基本情報技術者試験】整列アルゴリズム

基本情報技術者試験や応用情報技術者試験で出題される整列アルゴリズムの問題。各整列アルゴリズムの動きを理解していれば、そこまで難しい問題ではありませんが、理解してないと問題を解くのは困難です。 整列アルゴリズムには基本的な整列アルゴリズム(基本交換法、基本選択法、基本挿入法)と高速な整列アルゴリズム(シェルソート、クイックソート、マージソート、ヒープソート)があります。 本記事では、整列アルゴリズムについて図解で分かりやすく解説しています。 基本的な整列アルゴリズム 基本的な整列アルゴリズムには次の手法があ ...

2024/5/27

【基本情報技術者試験】2分探索木

基本情報技術者試験や応用情報技術者試験で出題される2分探索木の問題、聞きなれない言葉なので難しく感じます。ただし、2分探索木を理解していれば簡単に解くことができます。 本記事では、2分探索木について図解で分かりやすく解説していきます。 木構造 木構造(きこうぞう)とは、データ構造(※配列のように複数のデータを格納できる入れ物)の1つで木のような階層構造でデータを管理するものです。 木構造は、ハードディスクのファイルシステム(フォルダの下にフォルダやファイルがぶら下がっている)やインターネットのドメイン名な ...

2024/5/23

二分探索木とは

二分探索木(にぶんたんさくぎ) 木構造とは 木構造(きこうぞう)とは、データ構造の1つで木のような階層構造でデータを管理するものです。 木構造の要素部分を節(ノード)といい、親のない最上位のノードを根(ルート)、子のないノードを葉(リーフ)、そして ノードとノードを繋ぐ線のことを枝(ブランチ)といいます。 木構造は、ハードディスクのファイルシステムやインターネットのドメイン名などの管理で使用されています。 二分探索木とは 二分探索木(英:binary search tree)とは、木構造の左部分と右部分の ...

2021/9/22

ゼロパディングとは

ゼロパディング ゼロパディング(英:zero padding)とは、文字で数値を表す際に書式で指定された桁数に満たない場合、桁数をそろえるため「0」を付加することです。「ゼロ埋め」や「ゼロサプライ」とも呼ばれています。 ゼロパディングの例は次のとおりです。 例えば、日付の書式を「2021/3/1」から「2021/03/01」に変換(月と日を2桁表記にする)したいときなどにゼロパディングを利用します。(月の3を03、日の1を01に変換する) また、ゼロパディングとは逆で「001」→「1」のように先頭あるいは ...

2021/9/21

二分木とは

二分木 木構造とは 木構造とは、データ構造の1つで木のような階層構造でデータを管理するものです。 木構造の要素部分を節(ノード)といい、親のない最上位の節を根(ルート)、子のない節を葉(リーフ)、そして 節と節を繋ぐ線のことを枝(ブランチ)といいます。 ハードディスクのファイルシステム(フォルダの下にフォルダやファイルがぶら下がっている)やインターネットのドメイン名などは、いずれも木構造を用いて管理されています。 二分木とは 二分木(英: binary tree)とは、どの親ノードも2つ以下の子ノードで構 ...

2021/9/22

ゼロサプレスとは

ゼロサプレス ゼロサプレス(英:zero suppress)とは、数値の文字列から先頭あるいは末尾の余計な「0」を取り除く作業のことです。 ゼロサプレスの例は次のとおりです。 コンピュータのプログラムでは、月や日の前にある0を削除して「01月03日」ではなく「1月3日」のように表記(01月→1月、03日→3日)する際にゼロサプレスを利用することがあります。 また、ゼロサプレスの逆で「1」を「001」のように必要な桁数に達するまで先頭あるいは末尾に0を付け加える処理のことをゼロパディング(英:zero pa ...

2021/12/9

【基本情報技術者試験】探索アルゴリズム

基本情報技術者試験や応用情報技術者試験で出題される探索アルゴリズムの問題、探索アルゴリズムには「線形探索」「2分探索」「ハッシュ法」などがあり、過去問では「線形探索」「2分探索」「ハッシュ法」がどのような動きをするか問われる問題が出題されています。 本記事では、探索アルゴリズムについて図解で分かりやすく解説しています。 探索アルゴリズム 探索アルゴリズムとは、配列のような複数のデータが格納されている箱の中から目的のデータを探しだすアルゴリズムのことです。 基本情報技術者試験で主に出題される探索アルゴリズム ...

2024/5/23

ハッシュ法とは

ハッシュ法 ハッシュ法とは、探索アルゴリズムの1つです。 配列やリストのように複数のデータが格納されている入れ物の中から目的のデータを探し出すのが探索であり、このデータを探索する代表的なアルゴリズムの1つが「ハッシュ法」です。 ハッシュ法の探索例 ハッシュ法とは、ハッシュ関数と呼ばれる「一定の計算式」を用いて、データの格納位置(格納アドレス)を特定する方法です。 例えば、mod(x, 10) というハッシュ関数を用いて「12」というデータを配列に格納すると、次のように位置2の場所に値が格納されます。 mo ...

2024/5/27

【基本情報技術者試験】スタックとキュー

データ構造の1つであるスタックとキュー、その仕組みはシンプルで簡単です。ただし 基本情報技術者試験では、スタックとキューを応用した問題で出題されることが多く難しく感じます。 本記事では、スタックとキューについて図解で分かりやすく解説していきます。 スタック(Stack) スタック(英:stack)とは、データ構造(※配列のように複数のデータを格納できる入れ物)の1つで、入ってきたデータを順番に格納し、取り出す時は最後に格納したデータから取り出す後入れ先出し(LIFO:Last-In First-Out)方 ...

2024/5/23

【基本情報技術者試験】ハフマン符号化

基本情報技術者試験や応用情報技術者試験で出題される問題である ハフマン符号化、過去問だけをみると難しく感じる問題です。 ただ、ハフマン符号化の動きを理解してしまえば、そこまで難しい問題ではありません。 本記事では、ハフマン符号化について図解で分かりやすく解説しています。 符号化とは 符号化とは、データを"0"と"1"の2進数に置き換えることです。 コンピュータは"0"と"1"の集まりしか理解できません。そのため、コンピュータに処理をさせるにはデータを2進数に変換する必要があります。この作業が符号化です。 ...

2024/5/13

【Spring Boot】Thymeleafでプルダウンを作成する方法

はじめに Javaのフレームワーク「Spring Boot」とテンプレートエンジン「Thymeleaf」を使用してプルダウンを簡単に作成する方法を紹介します。 本記事で作成するプルダウンのサンプルは次のとおりです。 テーブル定義 本画面で使用するテーブルのテーブル定義は次のとおりです。 物理名論理名データ型NOT NULL説明code都道府県コードCHAR(2)〇主キーname都道府県名VARCHAR(45)〇都道府県の名称 [CREATE文] CREATE TABLE `sampledb`.`prefe ...

2024/5/23

ハフマン符号化とは

ハフマン符号化 ハフマン符号化とは、1952年にデビッド・ハフマン(David Albert Huffman)氏によって開発された符号で、データの可逆圧縮などに使用されるものです。 符号化とは 符号化とは、データを「0」と「1」の2進数に置き換えることです。 コンピュータが扱う最小単位のことをビット(bit)といい、1ビットで表現できる数字は「0」と「1」の2つだけです。この「0」と「1」という2個の数字で数をあらわすのが2進数です。 そのため、コンピュータに処理をさせるにはデータを2進数に変換する必要が ...

2021/9/6

真理値表とは

真理値表 真理値表とは、論理回路や論理式において、入力のすべての組み合わせとそれに対応する出力を1つ表にまとめたものです。 例えば、次の例は否定の真理値表です。※否定は1つの条件に対して真偽値の値を反転させる演算 A (A) 0 1 1 0 真理値表では、上記のとおり左側の列に入力(Aの入力値)、右側の列に出力(Aの否定をとった出力地)を記入し、入力と出力には「1」(あるいは「真」「T」)もしくは「0」(あるいは「偽」「F」)のどちらかを記入します。 「真」「偽」で表記する場合 A (A) 偽 真 真 偽 ...

2024/8/31

【基本情報技術者試験】BNF(バッカス・ナウア記法)

基本情報技術者試験や応用情報技術者試験で出題される問題であるバッカス・ナウア記法。基本情報技術者試験の過去問をみると難しく感じる問題です。 ただ、バッカス・ナウア記法の文法を覚えればそこまで難しい問題ではありません。 本記事では、バッカス・ナウア記法について図解で分かりやすく解説していきます。 BNF(バッカス・ナウア記法) BNFとは、Backus-Naur form(バッカス・ナウア記法)を略した言葉であり、文脈自由文法を定義するのに用いられるメタ言語(言語を記述するための言語)のことです。 BNF( ...

2024/8/31

BNF(バッカス・ナウア記法)とは

BNF(バッカス・ナウア記法) バッカス・ナウア記法(英:Backus-Naur form)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、BNFやBN記法と略されて使用されています。 文脈自由文法やメタ言語っと聞きなれない言葉で難しく感じますが、ある一定のルールによって作られた文法のことであり、代表的なメタ言語にはXMLがあります。 バッカス・ナウア記法では、次の記号を用いて文法の定義を行います。 記号意味::=「左辺は右辺である」という意味をあらわす|「または」という意味をあらわす< ...

2024/6/3

【基本情報技術者試験】オートマトン

聞きなれない言葉である「オートマトン」、基本情報技術者試験の過去問を見ると難しく感じる問題ですが、「オートマトン」の動きを理解してしまえば、簡単に解くことができます。 本記事では「オートマトン」について図解で分かりやすく解説しています。 オートマトン オートマトン(英:automaton)とは、自動人形という意味を持つ言葉であり、コンピュータの状態、遷移をモデル化したものです。 オートマトンの説明でよく使われるのが自動販売機です。自動販売機は次のように何かしらの操作(入力)をすると状態が遷移します。 「お ...

2023/2/13

【体験談】仕事がしんどい、憂鬱な気持ちが続くときに実施したいこと

はじめに こんにちは、ITを分かりやすく解説 管理人の「まつ」です。 IT業界で長いこと働いていると、いろいろな案件、いろいろな現場、そして いろいろな人と関わります。 長時間残業の案件や環境が悪い現場、厳しい上司やお客様がいる現場など、IT業界で仕事をしていると「しんどい・憂鬱」「疲れが取れない」「仕事を辞めたい」と1度はそんな悩みを抱えたことがある人も多いのではないでしょうか。 本記事では、管理人「まつ」の経験から感じたことを記事にしています。 【体験談1】長時間労働の現場(ブラック案件) 働き方改革 ...

2024/5/27

【基本情報技術者試験】論理演算

真(true:条件が成立)と偽(false:条件が成立しない)という2つの値を用いて行う演算である論理演算は、基本情報技術者試験や応用情報技術者試験で出題される問題です。 論理演算には「論理積」(AND)、「論理和」(OR)、「否定」(NOT)、排他的論理和(XOR)などがあります。 本記事では、論理演算について図解で分かりやすく解説しています。 論理積(AND) 論理積(AND)とは、2つある条件がともに"真"(true:条件が成り立つ)のときのみ"真"(true)を出力する演算です。 「AかつB」と表 ...

2024/5/27

Spring Boot + ThymeleafでList<Object>をPOSTする方法

はじめに Javaのフレームワーク「Spring Boot」とテンプレートエンジン「Thymeleaf」を使用して、List<Object>をPOSTする方法を紹介します。 本記事で作成する画面は次のとおりです。 [ユーザー情報一覧] ユーザー情報一覧画面では一覧に表示されている「名前」「住所」「電話番号」を一括で更新できるようにしています。 また、入力チェックも実装しているため「更新」ボタン押下時に入力チェックエラーが発生した場合は、画面上部にエラーメッセージが表示されます。 テーブル定義 ...

2024/5/27

【基本情報技術者試験】コンピュータの誤差

コンピュータで発生する誤差には「丸め誤差」「打切り誤差」「桁落ち」「情報落ち」などがあります。 本記事では「丸め誤差」「打切り誤差」「桁落ち」「情報落ち」について図解で分かりやすく解説していきます。 コンピュータの誤差 コンピュータで小数を扱う方法の1つに「浮動小数点数」があります。浮動小数点数では、小数で表現できる数の範囲が決まっています。 例えば、32ビット形式の浮動小数点数では、仮数部は24ビットです。 このように、浮動小数点数で小数を表現する場合、表現できる数の範囲が決まっており、限られたビット数 ...