第10回|人数が変わっても使える、ミックスジュースの作り方

当サイトでは、コンテンツの一部に広告を掲載しています。
第10回|人数が変わっても使える、ミックスジュースの作り方

はじめてのC言語| 第10回

目次

はじめに|レシピを、何度も書き直さないために

カフェが少し落ち着いてきました。
ミナちゃんは、ミキサーの前でメモを見ています。

「2人前のレシピは書けたけど、
 3人前にしたいとき、また全部書き直すのかな……?」

そんなときに役立つのが、
人数で材料を計算するレシピです。

今回は、
ミックスジュースのレシピを例にして、
C言語で“人数対応レシピカード”を書く方法を見ていきます。

今日のメニューは、ミックスジュース

使う材料は、シンプルです。

  • バナナ
  • みかんの缶詰
  • 桃の缶詰
  • ミルク

この材料を、
配列を使ってまとめて管理します。

考え方|材料を「並べて」持つ

このレシピでは、材料ごとに

  • 材料の名前
  • 基本の量
  • 単位

を、それぞれ配列にして並べます。

「同じ仲間のものを、同じ順番で並べる」
これが、配列の基本的な使い方です。

レシピカード|配列で書くC言語コード

このコードが、カフェで共有する、ミックスジュースのレシピカードです。
基本は2人前、そこから人数に応じて材料を計算することができます。

#include <stdio.h>

int main(void) {
    // 基本人数と作りたい人数
    int base_people = 2;
    int target_people = 3;

    // 材料の名前
    const char *names[] = {
        "バナナ",
        "みかんの缶詰",
        "桃の缶詰",
        "ミルク",
        ""
    };

    // 単位
    const char *units[] = {
        "",
        "g",
        "g",
        "ml",
        "g"
    };

    // 基本2人前の材料量
    double base_amounts[] = {
        1.0,    // バナナ
        150.0,  // みかんの缶詰
        120.0,  // 桃の缶詰
        300.0,  // ミルク
        100.0   // 氷
    };

    int item_count = 5;

    // 倍率を計算
    double factor = (double)target_people / base_people;

    // 表示
    printf("=== ミックスジュース レシピカード ===\n");
    printf("%d人前の材料\n", target_people);
    printf("----------------------------------\n");

    for (int i = 0; i < item_count; i++) {
        double amount = base_amounts[i] * factor;
        printf("%s%.1f %s\n", names[i], amount, units[i]);
    }

    printf("----------------------------------\n");
    printf("1) すべての材料をミキサーに入れる\n");
    printf("2) なめらかになるまで回す\n");
    printf("3) グラスに注いで完成\n");

    return 0;
}

人数が変わっても、
同じ計算を、同じ形で使えるようになります。

毎回ちがう式を書く必要はありません。
人数を入れ替えるだけで、レシピはそのまま使えます。

コードをやさしく読み解く

材料は、同じ番号どうしがセット

たとえば、

  • names[0] → バナナ
  • base_amounts[0] → バナナの量
  • units[0] → バナナの単位

このように、
同じ番号が、同じ材料を表しています

for文で、材料を順番に処理する

for (int i = 0; i < item_count; i++) {
    ...
}

この1つのループで、

  • 材料名を取り出し
  • 人数分に計算し
  • 画面に表示する

という流れを、まとめて行っています。

材料が増えても、
配列に1行追加するだけで対応できます。

なぜ、配列レシピが便利なのか

配列を使うと、

  • 材料が増えても、コードが増えにくい
  • 同じ処理を、何度も書かなくていい
  • コード全体の見通しがよくなる

という良さがあります。

これは料理でいうと、
きれいに整理されたレシピ帳を作った感覚です。

今回のまとめ

  • 人数で変わるレシピは、計算に向いている
  • 配列を使うと、材料をまとめて扱える
  • C言語でも、レシピカードのように書ける

関数や配列は、
難しい道具ではありません。

いつもの手順を、整えて並べるための箱です。

次の回では、
このレシピカードを
関数として呼び出す形に整理してみましょう。

レシピが増えても、
迷わないカフェになっていきます。

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次