タグ

プログラミング基礎に関するnextbigthingのブックマーク (16)

  • O/Rマッピングとは?

    皆さん、はじめまして。連載を担当するビーブレイクシステムズの山之内と申します。連載ではO/Rマッピングについて検討していきます。 O/Rマッピング機能を提供してくれるフレームワーク(O/Rマッピングツール)はデータベースと連携するJavaアプリケーション開発において、既に必須となりつつありますが、O/Rマッピングツールはたくさん存在します。 しかし、各O/Rマッピングツールには特徴やクセがあり、実際の開発現場においてどのO/Rマッピングツールを導入すべきか迷っている人も多くいることでしょう。目的にあわせて適切なツールを選択しないと、思ったような効果が得られなかったり、かえって工数が増えたりする状況にもなりかねません。 そこで連載では、代表的な3つのO/Rマッピングツール(iBATIS、Torque、Hibernate)を取り上げて、実際に各O/Rマッピングツールを利用したサンプルを作

  • C言語では signed と unsigned の違いで挙動がこんなにも変わる! | 株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報

    C言語では signed と unsigned の違いで挙動がこんなにも変わる!|株式会社シンメトリック公式ブログ - 携帯開発から生まれる技術情報| 携帯サイト開発から生まれる技術情報ブログ 通常の業務とは別にC言語を少しずつ勉強しています。C言語の鬼門と言われるポインタの動きもある程度理解し、構造体、線形リストやハッシュなどを使った簡単なプログラムを書けるようになりました。しかし、C言語としてかなり初歩的なことにも関わらず、今まであんまり意識せずにいたために致命的な思い違いをしたままだった事が幾つかあります。今回はその中でもかなり初歩的で、C言語を勉強した人の多くは同じような疑問を抱いたのではないかと思うことについて書きます。 皆さんは知ってましたか?C言語では必ずしも 100+100=200にならないって。 C言語では必ずしも 100+100 = 200ではない!? まず初めに10

  • アルゴリズムとデータ構造

    書はコンピュータ サイエンスにおけるアルゴリズムとデータ構造を解説します。「プログラム書けるよ」と言う人達でも意外とアルゴリズムやデータ構造に関する知識を持っていません。 自身のプログラミング スキルを向上させたり隣のプログラマとちょっと差をつけるために是非とも身に着けておきたい知識です。 アルゴリズムとデータ構造は世の中にたくさんあります。書では適当な書籍で学べる基的なものを紹介します。データ構造の章では主に線形のデータ構造とグラフデータ構造を解説します。アルゴリズムの章では主に探索アルゴリズムと整列アルゴリズムを解説します。

  • 連結リストとは (linked list) れんけつリスト: - IT用語辞典バイナリ

    連結リスト 読み方: れんけつリスト 【英】 linked list 連結リストとは、データ構造の一種であるリストの中で、自分の次、および、前の要素を示す情報(リンク情報)を持つことで、要素を連結(リンク)させたリストのことである。 リストは、データの要素を順番に並べて扱うデータ構造のことである。 次の要素へのリンクしか持たない連結リストのことを単方向(一方向)リスト、次と前への要素へのリンクを持つものを双方向リストと言うこともある。 連結リストは配列とは違い、リンクを辿らないと各々の要素にアクセスができず、また、リンクのためのメモリを余分に持つ必要があるなど不利な点がある。しかし、データの個数が前もってわからないような場合や、データの追加や削除が頻繁に発生するような場合などの扱いには適している。

  • 木構造 (データ構造) - Wikipedia

    この記事には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。 適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2023年1月) 木構造は、一般のグラフ構造と同様の、ノード(節点、頂点)とノード間を結ぶエッジ(枝、辺)あるいはリンクで表すこともできるが、木構造専用の、特に有向の根付き木となるような表現が使われることも多い。 データ構造として使われる木は、ほとんどの場合、根となるノードが決められた根付き木である。さらに、有向木であることも多い。[注 1] ノード間の関係は家系図に見立てた用語で表現される。木構造内の各ノードは、0個以上の子ノード (英: child node) を持ち、子ノードは木構造内では下方に存在する(木構造の成長方向は下とするのが一般的である)。子ノードを持つノードは、子ノードから見れば親ノード (英

    木構造 (データ構造) - Wikipedia
  • グラフ理論 - Wikipedia

    グラフ理論(グラフりろん、英: Graph theory)は、ノード(節点・頂点、点)の集合とエッジ(枝・辺、線)の集合で構成されるグラフに関する数学の理論である。 グラフ(データ構造)などの応用がある。 グラフによって、様々なものの関連を表すことができる。 6つの節点と7つの辺から成るグラフの一例 例えば、鉄道や路線バス等の路線図を考える際には、駅(節点)がどのように路線(辺)で結ばれているかが問題となる一方、線路が具体的にどのような曲線を描いているかは質的な問題とならないことが多い。 したがって、路線図では駅間の距離や微妙な配置、路線の形状などがしばしば地理上の実際とは異なって描かれている。つまり、路線図の利用者にとっては、駅と駅の「つながり方」が主に重要な情報なのである。 このように、「つながり方」に着目して抽象化された「点とそれらをむすぶ線」の概念がグラフであり[1]、グラフがも

  • 連結リスト - Wikipedia

    連結リスト(れんけつリスト、(英語: Linked list)は、最も基的なデータ構造の1つであり、他のデータ構造の実装に使われる。リンクリスト、リンクトリストとも表記される。 一連のノードが、任意のデータフィールド群を持ち、1つか2つの参照(リンク)により次(および前)のノードを指している。連結リストの主な利点は、リスト上のノードを様々な順番で検索可能な点である。連結リストは自己参照型のデータ型であり、同じデータ型の別のノードへのリンク(またはポインタ)を含んでいる。連結リストは場所が分かっていれば、ノードの挿入や削除を定数時間で行うことができる(場所を探すのにかかる時間はリスト上の順番の条件などにも依存するし、後述する片方向リストなのか双方向リストなのかにも依存する)。連結リストにはいくつかの種類があり、片方向リスト、双方向リスト、線形リスト、循環リストなどがある。 連結リストは多く

  • 配列 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "配列" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2017年9月) この記事は中立的な観点に基づく疑問が提出されているか、議論中です。 そのため、中立的でない偏った観点から記事が構成されているおそれがあり、場合によっては記事の修正が必要です。議論はノートを参照してください。 (2018年11月) この項目では、コンピュータ・プログラムにおける配列について説明しています。DNAの配列については「塩基配列」を、タンパク質の配列については「アミノ酸配列」を、コンピュータのキーボードにおける配列については「キー配列」をご覧ください。また「

  • steve yegge - five-essential-phone-screen-questions

    The Five Essential Phone-Screen Questions Stevey's Drunken Blog Rants™ I've been on a lot of SDE interview loops lately where the candidate failed miserably: not-inclined votes all around, even from the phone screeners who brought the person in initially. It's usually pretty obvious when the candidate should have been eliminated during the phone screens. Well, it's obvious in retrospect, anyway: d

  • is-a関係とhas-a関係: 継承と包含

    分割による分析 has-aというのは、以下のような関係を表しています。 A has a B. 日とで言うと、AはBを含んでいる(has a)ということですね。 これは、分割法によって物事捉えようとすることを示唆しています。 「has-a関係 = 包含」と言われることがありますが、これも違います。 例えば 人間は頭、腕、脚、胴体を含んでいる。 腕は上腕、下腕、手を含んでいる。 手は手の甲、手のひら、指を含んでいる。トランペットはマウスピース、パイプ、トリガー、バルブ、ベルを含んでいる。 パイプはマウスパイプ、第一抜き差し管、主抜き差し管を含んでいる。のようなカンジです。 このように、分割法は、より小さく物事を分割していくことで、その物事の質を掴もうとする分析方法です。 物事というのは、そのままでは複雑なので、適切に切り分けることで単純化し、より明確にしよう。 そうすることで、質が見えて

    is-a関係とhas-a関係: 継承と包含
  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。

  • 抽象メソッド、抽象クラス(C# によるプログラミング入門)

    概要 抽象メソッドとは、実装を持たず、メソッドの意味(規約)だけを定義したメソッドです。 抽象メソッドの実装は基底クラスでは行わず、派生クラスで行います。 また、抽象クラスとは、 インスタンスを生成出来ないクラスのことで、 継承して使うことを前提としたクラスのことです。 ポイント 抽象メソッド: 基底クラスでは実装せず、メソッドの意味(規約)だけを定義して、派生クラスで具体的な実装を行うようなメソッド。 (C++ では純粋仮想関数と呼ばれていたものです。) 抽象メソッドを1個でも持つクラス(抽象クラス)は、インスタンスを生成することができません。 クラスやメソッドの前に abstract キーワードを付ける。 抽象化 「多態性」で、 仮想メソッドの利用例として Person クラスを挙げました。 この Person 基底クラスには、 Age というプロパティがありますが、 このプロパティ自

    抽象メソッド、抽象クラス(C# によるプログラミング入門)
  • メソッド (計算機科学) - Wikipedia

    メソッド (method) あるいは メンバー関数 (-かんすう, member function) とはオブジェクト指向プログラミング言語において、あるクラスまたはオブジェクトに所属するサブルーチンを指す。 オブジェクト指向プログラミングにおけるメソッドという用語は元々SmalltalkによってSimulaのメンバープロシージャー (member procedure) をメッセージとメソッドに分けるために導入された。C++ ではメンバー関数と呼ばれるが、これはSimulaのメンバープロシージャーをC言語に流用したことに由来している。Javaのような言語やマイクロソフト[1]などの企業がメソッドという用語を使っているのは、元々C++よりもSmalltalkの影響を受けていたためである[要出典]。近年[いつ?]では言語設計やOS開発等で直接Smalltalkの影響を受けていない場合でも、Ja

  • クラスメソッド

    クラスに直結したメソッド インスタンス変数やインスタンスメソッドは、インスタンスが存在しなければ呼び出すことはできませんでした。 これらは、インスタンスに関連付けられてメモリが個別に割り当てられるため当然のことです。 クラスメソッドは、逆にインスタンスには関係なく、クラスそのものに直結しているメソッドです。 メソッドはインスタンスと関連していないため、事実上グローバル関数と変わりません。 違うのは、呼び出すときにメッセージ式を使ってメッセージを介して呼び出す必要があるというところです。 クラスメソッドを宣言するのは、メソッドの宣言時に指定していたマイナス記号 - をプラス記号 + に置き換えるだけで、後はインスタンスメソッドと同じです。 ただし、クラスメソッドにはインスタンスが存在しないため、暗黙の self オブジェクトを使うことはできません。 メッセージ式からクラスメソッドを呼び出すに

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • データ構造 - Wikipedia

    二分木のデータ構造 ハッシュテーブルのデータ構造 データ構造(データこうぞう、英: data structure)とは、コンピュータプログラミングでの、データの集まりの形式化された構成である。格納された各データの参照や修正といった管理を容易にするための構成である[1][2][3][4] 。一定の関係性を持たせたデータ型のコレクションであり、データ値に適用するための関数や手続きも格納されることがある[5]。データの代数的構造とも言われる。 ソフトウェア開発において、データ構造についてどのような設計を行うかは、プログラム(アルゴリズム)の効率に大きく影響する。そのため、さまざまなデータ構造が考え出されている。多くのプログラムの設計において、データ構造の選択は主要な問題である。これは大規模システムの構築において、実装の困難さや質、最終的なパフォーマンスはベストのデータ構造を選択したかどうかに大き

    データ構造 - Wikipedia
  • 1