Cプログラミング

 Computer >> コンピューター >  >> プログラミング >> Cプログラミング
  1. C言語で前の要素による除算後の配列の合計を求める方法

    配列とは、同じデータ型の要素が順番に並んだデータ構造です。この記事では、整数型の配列を扱い、「各要素をその直前の要素で除算した商の合計」を求める方法を解説します。まず、具体例を見ながら問題の内容を理解しましょう。例1配列 : 3 , 5 , 98, 345 合計 : 26解説 − 3 + 5/3 + 98/5 + 345/98 = 3 + 1 + 19 + 3 = 26各要素をその直前の要素で除算し、商の整数部分のみを使用して合計を求めています。例2配列 : 2, 5 , 8, 11, 43 , 78 , 234 合計 : 13解説 − 2 + 2 + 1 + 1 + 3 + 1 + 3 =

  2. C言語のプリプロセッサとは?主要ディレクティブの一覧と使い方

    CプリプロセッサとはC言語には、プログラムを効率的に開発するための仕組みとして「プリプロセッサ」が用意されています。Cプリプロセッサは、C言語向けのマクロプロセッサであり、コンパイルの前段階でソースコードに対して様々な処理を実行します。これにより、ヘッダファイルの取り込み、マクロ展開、条件付きコンパイル、行制御などを明示的にコンパイラへ指示することが可能になります。#記号とディレクティブの基本ルールプリプロセッサの命令は#(ハッシュ)記号を使って定義します。すべてのプリプロセッサディレクティブは「#」で始まり、その直後にスペースを空けずにディレクティブ名を続けるのがルールです。以下のコード例の

  3. C言語で配列内に複数回出現する重複要素を検出する方法

    はじめに:配列とは 配列(Array)とは、同じデータ型の要素を格納するコンテナであり、使用する前にその長さ(サイズ)を定義しておく必要があります。また、同じ値は配列内のどの位置にでも、何度でも出現できます。この記事では、その性質を利用したプログラムとして、「配列の中で 2 回以上出現する要素を見つけ出して表示する」方法を解説します。 問題の定義 ある配列 arr[] が与えられたとき、その中で繰り返し出現している要素をすべて見つけ出し、画面に出力するプログラムを作成します。まず、具体例でイメージをつかみましょう。 実行例 入力: arr[] = {5, 11, 11, 2, 1, 4, 2}

  4. C言語で婚約数を判定する方法をわかりやすく解説

    婚約数(Betrothed Numbers)とは? 婚約数(betrothed numbers)とは、2つの整数のペアのうち、一方の数の約数の総和(その数自身を除く)に1を加えると、もう一方の数と等しくなるような関係を持つ数のペアのことです。 具体的には、(a, b) が婚約数のペアであるためには、s(a) = b + 1 かつ s(b) = a + 1 が成り立つ必要があります。ここで s(n) は、n 自身を除く約数の総和(アリコット和)を表します。この条件は、約数関数 σ を使って「σ(a) = σ(b) = a + b + 1」という形でも表現できます。 婚約数として知られている最初の

  5. C言語で解く:半円に内接する正方形の中に収まる最大のルーロー三角形の面積

    ルーロー三角形(Reuleaux triangle)は、3つの円の共通部分として形成される図形です。それぞれの円の中心が、他の2つの円の境界上に位置するように描きます。その境界は定幅曲線(constant width curve)と呼ばれ、円を除けば最も単純でよく知られた定幅曲線です。 ここでいう「定幅」とは、図形を挟む2本の平行な支持線の間隔が、どの向きで測っても常に一定であることを意味します。言い換えれば、あらゆる方向の幅(直径)が等しいということです。 ルーロー三角形の境界は、正三角形をもとにした定幅曲線になっています。一辺上のすべての点は、対向する頂点から等距離にあります。 ルーロ

  6. C言語で求める六角形に内接する正方形に内接する最大のルーロー三角形の面積

    ルーロー三角形とは?ルーロー三角形(Reuleaux triangle)は、3つの円盤の共通部分として形成される図形です。それぞれの円の中心は、他の2つの円の境界上に配置されています。この境界線は定幅曲線と呼ばれ、円を除けば最も単純でよく知られた定幅曲線です。「定幅」とは、図形を挟む任意の2本の平行な支持線の間隔が、線の向きに関係なく常に一定であることを意味します。どの方向から測っても幅が同じになるため、ルーロー三角形は回転しても一定の幅を保つことができます。ルーロー三角形の境界は、正三角形を基礎とする定幅曲線です。一辺上のすべての点は、対向する頂点から等しい距離にあります。ルーロー三角形の作

  7. C言語:楕円内に内接する正方形に内接する最大のルーロー三角形の求め方

    ルーロー三角形(Reuleaux triangle)とは、3つの円の共通部分から形成される図形です。各円の中心は、他の2つの円の境界上に位置しています。その境界は定幅曲線と呼ばれ、円以外では最も単純でよく知られている定幅曲線です。定幅とは、平行な2つの支持線の間隔が、その向きにかかわらず常に一定であることを意味します。ルーロー三角形の境界は、正三角形に基づく定幅曲線です。一辺上のすべての点は、対向する頂点から等距離にあります。ルーロー三角形の作図方法正三角形の各頂点を中心として、他の2頂点を通る円弧を描くことで、ルーロー三角形を作図できます。ルーロー三角形の面積公式正三角形に基づく曲線で、三角

  8. 直角三角形に内接する正方形の中に描ける最大のルーロー三角形をC言語で求める方法

    ルーロー三角形とはルーロー三角形(Reuleaux triangle)は、3つの円盤の重なり(共通部分)によって形成される図形です。それぞれの円の中心は、他の2つの円の周上に位置しています。この図形の輪郭は「定幅曲線」と呼ばれるもので、円を除けば最も単純でよく知られた定幅曲線です。定幅とは、平行な2本の支持線の間隔(幅)が、向きに関係なく常に同じであることを意味します。ルーロー三角形の輪郭は、正三角形をベースにした定幅曲線です。一つの辺上の任意の点は、対向する頂点から常に等しい距離にあります。ルーロー三角形の構成と面積の公式ルーロー三角形は、正三角形の各頂点を中心として、他の頂点を通る円弧を3

  9. C言語で解く:円に内接する正方形の中に描ける最大のルーロー三角形

    ルーロー三角形とは、3つの円盤の共通部分として得られる図形です。それぞれの円の中心は、他の2つの円の境界上に配置されています。この図形の境界は定幅曲線と呼ばれ、円を除けば最も単純で有名な定幅曲線です。 「定幅」とは、図形を挟む2本の平行な支持線の間隔が、支持線の向きに関わらず常に一定であることを意味します。これは、図形のあらゆる方向の直径が等しいことと同じです。 ルーロー三角形の性質 ルーロー三角形の境界は、正三角形を基礎とした定幅曲線になっています。一辺上のすべての点は、対向する頂点から等距離に位置します。 ルーロー三角形の作り方 1つの頂点を中心として、正三角形の一辺を半径とする円弧を描き

  10. C言語で解く!正方形内に収まる最大のルーロー三角形の面積

    ルーロー三角形とは、3つの円の共通部分によって形成される図形です。それぞれの円の中心は、他の2つの円の境界上に位置します。この図形の境界は「定幅曲線」と呼ばれ、円を除けば最も単純で有名な定幅曲線です。 「定幅」とは、どのような向きであっても、図形を挟む2本の平行な支持線の間隔が常に一定であることを意味します。これは、あらゆる方向の幅(直径)が等しいことに起因します。 ルーロー三角形の構成 ルーロー三角形の境界は、正三角形を基礎とした定幅曲線です。一辺上のすべての点は、対向する頂点から等距離にあります。 作図するには、正三角形の各頂点を中心として、頂点間の距離を半径とする円弧を描き、それらを

  11. C言語で求める!正三角形に内接する最大の正方形の一辺の長さ

    ある図形が別の図形や立体の中に内接するとは、その図形が相手の内部に隙間なくすっぽりと収まっている状態を指します。つまり、「正方形が三角形に内接する」という表現は、「三角形が正方形に外接する」という表現と完全に同じ意味になります。 本記事では、一辺 a の正三角形に内接できる最大の正方形の一辺の長さを、C言語で求める方法を解説します。 まずは具体例から見てみましょう。 入力: 5 出力: 2.32 頂点 A を上、底辺 BC を下にとった正三角形 ABC を考えます。内接する最大の正方形では、その上辺 DE(D は AB 上、E は AC 上)が底辺 BC と平行になります。 数学的な導出手順

  12. C言語で級数 1.2.3 + 2.3.4 + … + n(n+1)(n+2) の和を求める方法

    この記事では、級数 1.2.3 + 2.3.4 + … + n(n+1)(n+2) の最初の n 項までの和を求める方法を解説します。ここで、1.2.3 が第1項、2.3.4 が第2項を表します。まず、具体例を使って概念を確認しましょう。入力: n = 5 出力: 420計算の流れ1.2.3 + 2.3.4 + 3.4.5 + 4.5.6 + 5.6.7 = 6 + 24 + 60 + 120 + 210 = 420この級数の第 n 項は n(n+1)(n+2) で表されます(n = 1, 2, 3, …)。= n(n² + 3n + 2) = n³ + 3n² + 2n既知の和の公式第 n

  13. 指定した文字列がキーワード(予約語)かどうかを判定するC言語プログラム

    キーワード(Keyword)とは、あらかじめ言語仕様によって定義された予約語のことです。固定された意味を持っており、コンパイラが内部的な処理を行うために使用します。プログラマーはキーワードを変数名や識別子として使用することができません。C言語の32個のキーワード一覧C言語には以下の32個のキーワードが存在し、これらはすべて小文字で表記されます(auto、break、case、const、continue、int など)。なお、この32個のキーワードはC++言語でもそのまま使用できます。autodoubleintstructbreakelselongswitchcaseenumregistert

  14. C言語でファイルの内容を別のファイルにコピーする方法|サンプルコード付きで解説

    C言語のファイル入出力:作成・オープン・読み書き・クローズファイルは、大量のデータを永続的に保存するために使われます。他の多くのプログラミング言語と同様に、C言語でも以下のようなファイル管理機能が提供されています。ファイルの作成ファイルのオープン(開く)ファイルの読み込みファイルへの書き込みファイルのクローズ(閉じる)主なファイル管理関数の一覧C言語で利用できる代表的なファイル管理関数は以下のとおりです。関数用途fopen()新しいファイルを作成する、または既存のファイルを開くfclose()ファイルを閉じるfprintf()ファイルにデータブロックを書き込むfscanf()ファイルからデータ

  15. C/C++の関数呼び出しパズル?同じコードで結果が異なる理由を解説

    このC/C++関数呼び出しパズルは、C言語とC++における関数(メソッド)呼び出しの挙動の違いを探るための問題です。CとC++では、一見まったく同じ関数定義と呼び出しを行っても、出力結果が異なることがあります。本記事では、具体的なサンプルコードをもとに、その違いを分かりやすく解説します。まず、次のコードをCとC++のそれぞれでコンパイル・実行してみてください。どのような結果になるか、予想できますか?サンプルコードvoid method() {     // 出力処理 } int main() {     metho

  16. C/C++ポインタパズル:ポインタのサイズはいくつ?

    ポインタとは?ポインタとは、別の変数のアドレス(メモリ上の場所)を格納するための変数です。ポインタのデータ型は、指し示す対象となる変数のデータ型と一致させる必要があります。このパズルでは、「使用しているポインタそのもののサイズ」について理解しているかが問われます。変数のサイズを予想することで、ポインタに対する理解度をチェックする仕組みになっています。ここでの重要なポイントは、int型のサイズは4バイトである一方、int型へのポインタのサイズは8バイト(64ビット環境の場合)という点です。それでは、以下のC++プログラムであなたのスキルを試してみましょう。サンプルコード#include <

  17. Windowsの匿名パイプ(無名パイプ)とは?CreatePipe()による親子プロセス間通信の実装例

    Windowsの匿名パイプ(anonymous pipe)は、一般的なパイプと同じものであり、UNIX系OSにおけるパイプと非常によく似た挙動を示します。大きな特徴として、通信は一方向(半二重)であること、そしてパイプで通信するプロセス間に親子関係が必要である点が挙げられます。また、パイプへの読み書きには、通常のReadFile()およびWriteFile()関数がそのまま利用できます。 匿名パイプの作成方法 Windows APIでは、CreatePipe()関数を使ってパイプを生成します。この関数には以下の4つの引数を渡します。 パイプの読み取り側ハンドル パイプの書き込み側ハンドル ハ

  18. OpenMPとは?並列プログラミングの基本と仕組みをわかりやすく解説

    OpenMP(オープンエムピー)は、C、C++、Fortranで記述されたプログラム向けに提供されるコンパイラ指示子(ディレクティブ)とAPIの集合体であり、共有メモリ環境における並列プログラミングをサポートします。 OpenMPでは、並列実行が可能なコードのブロックを「並列領域(パラレルリージョン)」として識別します。開発者はプログラム中の並列化したい箇所にコンパイラ指示子を挿入するだけでよく、その指示子を受け取ったOpenMPランタイムライブラリが該当領域を並列に実行します。 基本的なコード例 以下のC言語のサンプルでは、printf()文を含む並列領域の直前にコンパイラ指示子を記述してい

  19. 分割統治法の高度なマスター定理とは?再帰アルゴリズムの計算量解析を徹底解説

    分割統治法(Divide and Conquer)とは分割統治法とは、元の問題を同種のより小さな部分問題へ再帰的に分割し、それぞれを個別に解決することで全体の解を導くアルゴリズムのパラダイムです。具体例分割統治法の仕組みを理解するために、以下の疑似コードを見てみましょう。function recursive(input x size n) if(n < k) 入力をサイズ n/p の m 個の部分問題に分割し、 各部分問題に対して f を再帰的に呼び出す else x を解いて返すすべての部分問題の結果を統合し、元の問題の解

  20. C言語のarc()関数とは?円弧を描く方法を初心者向けに解説

    C言語では、指定した中心座標・半径・角度をもとに、円の一部(円弧)を描画することができます。このとき使用するのがarc()関数です。arc()関数は、C言語のグラフィック描画用ライブラリであるgraphics.hに含まれています。graphics.hには、出力画面上に図形を描くためのさまざまなメソッドが用意されており、arc()関数はその中でも円弧の描画を担当します。arc()関数の構文void arc(int x, int y, int startangle, int endangle, int radius);それでは、各引数がどのような役割を持つのか、また関数からどのような結果が得られる

Total 1445 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:38/73  20-コンピューター/Page Goto:1 32 33 34 35 36 37 38 39 40 41 42 43 44