C 言語で基本演算子を使用する

CCBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、C プログラミングにおける算術演算子、比較演算子、論理演算子などの基本演算子の使い方を学びます。まず、演算子の種類を紹介し、次に加算、減算、乗算、除算などの算術演算を示すサンプルコードを書きます。次に、比較用の比較演算子を調べ、AND、OR、NOT などの論理演算子を実装します。最後に、これらの概念を実践するための簡単な電卓プログラムを作成します。

この実験は、C における基本演算子を理解するための堅牢な基礎を提供します。これらの演算子は、計算を行い、判断を下し、より複雑なプログラムを構築するために不可欠です。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/data_types("Data Types") c/BasicsGroup -.-> c/operators("Operators") c/ControlFlowGroup -.-> c/if_else("If...Else") c/ControlFlowGroup -.-> c/switch("Switch") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/data_types -.-> lab-438288{{"C 言語で基本演算子を使用する"}} c/operators -.-> lab-438288{{"C 言語で基本演算子を使用する"}} c/if_else -.-> lab-438288{{"C 言語で基本演算子を使用する"}} c/switch -.-> lab-438288{{"C 言語で基本演算子を使用する"}} c/math_functions -.-> lab-438288{{"C 言語で基本演算子を使用する"}} c/user_input -.-> lab-438288{{"C 言語で基本演算子を使用する"}} c/output -.-> lab-438288{{"C 言語で基本演算子を使用する"}} end

C 演算子を紹介する

C プログラミングの世界では、演算子はデータに対して様々な操作を行うための基本的な構成要素です。日常生活で数学の記号が値の計算や比較を助けるのと同じように、C 演算子はプログラマーがコード内で変数を操作し、計算を行い、論理的な判断を下すことを可能にします。

初心者にとっては、演算子をプログラマーのツールキットにある特別な道具と考えてください。各演算子には特定の目的があり、データを意味のある方法で変換、比較、または結合するのに役立ちます。これらの演算子を理解することは、C プログラミング言語の基本文法を学ぶことに似ています。

1.1 算術演算子

算術演算子は C プログラミングの数学的な主力です。これらは学校の数学で既にお馴染みの基本的な数学演算を行うことができます。これらの演算子は整数や浮動小数点数などの数値型と共に機能し、コード内で直接計算を行うことができます。

  • +: 加算 - 2 つの数を結合する
  • -: 減算 - 数の差を求める
  • *: 乗算 - 2 つの数を乗算する
  • /: 除算 - 1 つの数を別の数で割る
  • %: 剰余 - 除算後の剰余を求める

これらの演算子を使用すると、C は計算を行い、結果を返します。これは電卓のように、プログラム内の数学的な計算を簡単で直感的に行うことができます。

1.2 比較演算子

比較演算子は、値間の関係を評価するための比較ツールです。常にブール型の結果(真 (1) または偽 (0))を返します。これらの演算子は、コード内で判断を行う際に重要です。たとえば、1 つの値が別の値より大きいか、2 つの値が等しいかどうかをチェックする場合です。

  • >: より大きい - 左辺の値が大きいかどうかをチェックする
  • <: より小さい - 左辺の値が小さいかどうかをチェックする
  • ==: 等しい - 2 つの値がまったく同じかどうかをチェックする
  • >=: 以上 - 左辺の値が大きいかまたは等しいかどうかをチェックする
  • <=: 以下 - 左辺の値が小さいかまたは等しいかどうかをチェックする
  • !=: 異なる - 2 つの値が異なるかどうかをチェックする

比較演算子は、C プログラミングにおける条件文や制御構造の基盤を形成し、値の比較に基づいてコードが賢明な判断を行うことを可能にします。

1.3 論理演算子

論理演算子は、複数の条件を結合して複雑な判断ロジックを作成するための強力なツールです。ブール型の値と共に機能し、プログラムのフローを制御できる洗練された条件を作成するのに役立ちます。

  • &&: 論理 AND - すべての条件が真の場合のみ真を返す
  • ||: 論理 OR - 少なくとも 1 つの条件が真の場合に真を返す
  • !: 論理 NOT - 条件のブール型の値を反転させる

これらの演算子を使用すると、複雑な判断プロセスを作成でき、複数の条件を組み合わせることでプログラムがさまざまなシナリオに賢明に対応できるようになります。

これらの演算子は、C プログラムで計算を行い、比較を行い、複雑な判断ロジックを作成するための基礎です。それらの使い方を理解することは、効果的で効率的な C コードを書くために不可欠です。

次の手順では、サンプルコードを使ってこれらの演算子の使い方を示し、実際のプログラミングシナリオでどのように機能するかを理解する手助けをします。

算術演算(加算、減算、乗算、除算)のサンプルを書く

C における算術演算をさらに深く掘り下げるために、様々な数学的計算を示すプログラムを作成します。異なる種類の数値を使った加算、減算、乗算、除算を示す包括的な例を書きます。

プロジェクトディレクトリに移動し、新しいファイルを作成します。

cd ~/project
touch arithmetic_operations.c

WebIDE でファイルを開き、次のコードを追加します。

#include <stdio.h>

int main() {
    // 整数の算術演算
    int a = 20, b = 5;

    // 加算
    int sum = a + b;
    printf("加算: %d + %d = %d\n", a, b, sum);

    // 減算
    int difference = a - b;
    printf("減算: %d - %d = %d\n", a, b, difference);

    // 乗算
    int product = a * b;
    printf("乗算: %d * %d = %d\n", a, b, product);

    // 除算
    int quotient = a / b;
    printf("除算: %d / %d = %d\n", a, b, quotient);

    // 剰余
    int remainder = a % b;
    printf("剰余: %d %% %d = %d\n", a, b, remainder);

    // 浮動小数点数の算術演算
    float x = 10.5, y = 3.2;
    float float_sum = x + y;
    float float_difference = x - y;
    float float_product = x * y;
    float float_quotient = x / y;

    printf("\n浮動小数点数の算術演算:\n");
    printf("加算: %.2f + %.2f = %.2f\n", x, y, float_sum);
    printf("減算: %.2f - %.2f = %.2f\n", x, y, float_difference);
    printf("乗算: %.2f * %.2f = %.2f\n", x, y, float_product);
    printf("除算: %.2f / %.2f = %.2f\n", x, y, float_quotient);

    return 0;
}

プログラミングを学ぶ際には、異なるデータ型が数学的演算にどのように影響するかを理解することが不可欠です。この例は、C における算術演算の微妙な振る舞いを示し、整数と浮動小数点数の計算の違いを明らかにします。

プログラムをコンパイルして実行します。

gcc arithmetic_operations.c -o arithmetic_operations
./arithmetic_operations

例の出力:

加算: 20 + 5 = 25
減算: 20 - 5 = 15
乗算: 20 * 5 = 100
除算: 20 / 5 = 4
剰余: 20 % 5 = 0

浮動小数点数の算術演算:
加算: 10.50 + 3.20 = 13.70
減算: 10.50 - 3.20 = 7.30
乗算: 10.50 * 3.20 = 33.60
除算: 10.50 / 3.20 = 3.28

プログラミングの旅を進めるにつれて、これらの基本的な算術演算を理解することで、より複雑なアルゴリズムを構築し、現実世界の計算問題を解くことができます。各演算子には独自の特性と使用例があり、これらは実践と探索を通じて発見するでしょう。

注目すべきポイント:

  • 整数の除算は小数部分を切り捨てます
  • 剰余演算子 (%) は整数のみで機能します
  • 浮動小数点数の算術演算は小数の計算を可能にします
  • 2 桁の小数を持つ浮動小数点数を表示するには %.2f フォーマット指定子を使用します

これらの基本的な算術演算をマスターすることで、プログラミング技術の強固な基礎を築き、より高度な計算技術に備えることができます。

比較用の比較演算子(>, <, ==)

C における比較演算子は、異なる値を比較する強力な方法を提供し、プログラマーが判断を下し、プログラムのフローを制御することを可能にします。これらの演算子は数学的な比較ツールのように機能し、数値間の関係をチェックし、論理的な条件を判断することができます。

プロジェクトディレクトリに移動し、新しいファイルを作成します。

cd ~/project
touch relational_operators.c

比較演算子を使用する際には、異なる値がどのように関係しているかを調べます。次のコードは、C プログラミングで使用される核心となる比較技術を示しています。

#include <stdio.h>

int main() {
    int a = 10, b = 20, c = 10;

    // より大きい (>)
    printf("より大きい比較:\n");
    printf("%d > %d は %d\n", a, b, a > b);
    printf("%d > %d は %d\n", b, a, b > a);

    // より小さい (<)
    printf("\nより小さい比較:\n");
    printf("%d < %d は %d\n", a, b, a < b);
    printf("%d < %d は %d\n", b, a, b < a);

    // 等しい (==)
    printf("\n等しい比較:\n");
    printf("%d == %d は %d\n", a, b, a == b);
    printf("%d == %d は %d\n", a, c, a == c);

    // その他の比較演算子
    printf("\nその他の比較:\n");
    printf("%d >= %d は %d\n", a, c, a >= c);  // 以上
    printf("%d <= %d は %d\n", a, b, a <= b);  // 以下
    printf("%d!= %d は %d\n", a, b, a!= b);  // 異なる

    return 0;
}

これらの比較が実際にどのように機能するかを見るために、プログラムをコンパイルして実行します。

gcc relational_operators.c -o relational_operators
./relational_operators

このプログラムを実行すると、さまざまな比較シナリオの詳細な分析が表示されます。各比較は 1(真)または 0(偽)のいずれかで結果となり、これが C が論理的な条件を表現する方法です。

例の出力:

より大きい比較:
10 > 20 は 0
20 > 10 は 1

より小さい比較:
10 < 20 は 1
20 < 10 は 0

等しい比較:
10 == 20 は 0
10 == 10 は 1

その他の比較:
10 >= 10 は 1
10 <= 20 は 1
10!= 20 は 1

比較演算子に関する重要なポイント:

  • 比較演算子は 1(真)または 0(偽)を返します
  • > は左辺の値が右辺の値より大きいかどうかをチェックします
  • < は左辺の値が右辺の値より小さいかどうかをチェックします
  • == は 2 つの値がまったく等しいかどうかをチェックします
  • >= は左辺の値が右辺の値以上であるかどうかをチェックします
  • <= は左辺の値が右辺の値以下であるかどうかをチェックします
  • != は 2 つの値が異なるかどうかをチェックします

これらの演算子は、プログラミングにおける判断の基盤です。複雑な論理的条件を作成し、プログラムのフローを制御し、賢明なアルゴリズムを構築することができます。これらの演算子をマスターすることで、異なる入力条件に基づいて判断を行うことができる、よりダイナミックで応答性の高い C プログラムを書くことができるようになります。

論理演算子(And、Or、Not)を実装する

このステップでは、C における論理演算子を調べます。これらは、複雑な条件文を作成し、プログラム内で判断を下す際に不可欠です。論理演算子を、コード内の判断の言語と考えてください。これにより、複雑な推論経路を構築することができます。

プロジェクトディレクトリに移動し、新しいファイルを作成します。

cd ~/project
touch logical_operators.c

WebIDE でファイルを開き、次のコードを追加します。

#include <stdio.h>

int main() {
    int x = 5, y = 10, z = 15;

    // 論理 AND (&&)
    printf("論理 AND (&&) のデモ:\n");
    printf("(x < y) && (y < z) は %d\n", (x < y) && (y < z));
    printf("(x > y) && (y < z) は %d\n", (x > y) && (y < z));

    // 論理 OR (||)
    printf("\n論理 OR (||) のデモ:\n");
    printf("(x > y) || (y < z) は %d\n", (x > y) || (y < z));
    printf("(x > y) || (y > z) は %d\n", (x > y) || (y > z));

    // 論理 NOT (!)
    printf("\n論理 NOT (!) のデモ:\n");
    printf("!(x < y) は %d\n",!(x < y));
    printf("!(x > y) は %d\n",!(x > y));

    // 複雑な論理式
    printf("\n複雑な論理式:\n");
    int a = 20, b = 30, c = 40;
    printf("((a < b) && (b < c)) は %d\n", ((a < b) && (b < c)));
    printf("((a > b) || (b < c)) は %d\n", ((a > b) || (b < c)));

    return 0;
}

論理演算子を使用する際には、それがブール型の条件をどのように変換するかを理解することが重要です。各演算子には特定の動作があり、微妙な論理評価を作成することができます。

プログラムをコンパイルして実行します。

gcc logical_operators.c -o logical_operators
./logical_operators

例の出力:

論理 AND (&&) のデモ:
(x < y) && (y < z) は 1
(x > y) && (y < z) は 0

論理 OR (||) のデモ:
(x > y) || (y < z) は 1
(x > y) || (y > z) は 0

論理 NOT (!) のデモ:
!(x < y) は 0
!(x > y) は 1

複雑な論理式:
((a < b) && (b < c)) は 1
((a > b) || (b < c)) は 1

論理演算子に関する重要なポイント:

  • && (AND): 両方の条件が真の場合のみ真を返す
  • || (OR): 少なくとも 1 つの条件が真の場合に真を返す
  • ! (NOT): 条件のブール型の値を反転させる
  • 論理演算子はしばしば条件文で使用される
  • より複雑な判断ロジックを作成するのに役立つ

これらの演算子は、C プログラムで洗練された条件論理を作成するための基礎です。これらの演算子をマスターすることで、精度と明確さで複雑なシナリオを処理できる、より賢明で応答性の高いコードを書く能力を身につけることができます。

論理演算子の美しさは、その単純さと力にあります。単純なブール型の条件を複雑な判断木に変換し、プログラマーが現実世界のプログラミングの課題を解くことができる複雑な論理フローを作成できるようにします。

簡単な電卓プログラムを作成する

初心者のプログラマーとして、数学的演算をコードに変換し、さまざまなユーザーインタラクションのシナリオを処理する方法を学びます。作成する簡単な電卓は、現実世界の問題を解決する際の基本的なプログラミング構文の力を示します。

プロジェクトディレクトリに移動し、新しいファイルを作成します。

cd ~/project
touch simple_calculator.c

WebIDE でファイルを開き、次のコードを追加します。

#include <stdio.h>

int main() {
    char operator;
    double num1, num2, result;

    // ユーザーに入力を促す
    printf("簡単な電卓\n");
    printf("演算子 (+, -, *, /) を入力してください: ");
    scanf(" %c", &operator);

    printf("2 つの数を入力してください: ");
    scanf("%lf %lf", &num1, &num2);

    // 演算子に基づいて計算を行う
    switch(operator) {
        case '+':
            result = num1 + num2;
            printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
            break;
        case '-':
            result = num1 - num2;
            printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
            break;
        case '*':
            result = num1 * num2;
            printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
            break;
        case '/':
            // ゼロ割りをチェックする
            if (num2!= 0) {
                result = num1 / num2;
                printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
            } else {
                printf("エラー!ゼロ割りは許可されていません。\n");
            }
            break;
        default:
            printf("エラー!演算子が正しくありません\n");
    }

    return 0;
}

このコードは、いくつかの重要なプログラミング概念の包括的な紹介を表しています。switch 文を使用することで、複数の演算シナリオを効率的に処理できます。また、scanf() 関数を使用してユーザーからの動的な入力を可能にしています。また、ゼロ割りなどの一般的な数学的な落とし穴を防ぐために、必須のエラーハンドリングも組み込んでいます。

プログラムをコンパイルします。

gcc simple_calculator.c -o simple_calculator

電卓を実行して、さまざまな演算を試してみましょう。

./simple_calculator

例のインタラクション:

簡単な電卓
演算子 (+, -, *, /) を入力してください: +
2 つの数を入力してください: 10 5
10.00 + 5.00 = 15.00

簡単な電卓
演算子 (+, -, *, /) を入力してください: *
2 つの数を入力してください: 4 6
4.00 * 6.00 = 24.00

簡単な電卓
演算子 (+, -, *, /) を入力してください: /
2 つの数を入力してください: 20 4
20.00 / 4.00 = 5.00

電卓の主な機能:

  • 異なる演算を処理するために switch 文を使用する
  • 4 つの基本的な算術演算を処理する
  • ゼロ割りのエラーチェックを含む
  • ユーザー入力に scanf() を使用する
  • 前のステップで学んだ演算子の使用を示す

このプログラムは、いくつかの C プログラミング概念を組み合わせています。

  • scanf() によるユーザー入力
  • 算術および比較演算子
  • 条件文
  • 基本的なエラーハンドリング

この例を通じて、プログラミングが実際の問題を解決するためにどのように使用できるかを理解する上で重要なステップを踏み出しました。コードの各行は、数学的論理を機能するコンピュータープログラムに変換する小さなが重要な判断を表しています。

まとめ

この実験では、C プログラミングにおける基本的な演算子、すなわち算術演算子、比較演算子、論理演算子を調べました。まず、演算子の種類を紹介し、加算、減算、乗算、除算などの基本的な算術演算を示しました。次に、値同士の論理的な比較を行うための比較演算子について掘り下げました。さらに、AND、OR、NOT を含む論理演算子を実装しました。これらは、条件文を構築し、プログラム内で判断を下す際に不可欠です。最後に、これらの概念を組み合わせて、簡単な電卓プログラムを作成し、C における演算子の実際の応用例を示しました。