Калькулятор витрат на автомобільну поїздку

Практичне застосування мови C для автоматизації розрахунків

Ми вже навчилися виводити інформацію на екран за допомогою printf() і отримувати дані від користувача за допомогою scanf(). Настав час застосувати ці знання на практиці та створити свою першу корисну програму.

У цій статті ми розробимо простий калькулятор витрат на автомобільну поїздку. Програма попросить користувача ввести довжину маршруту, середню витрату пального автомобіля та ціну одного літра пального. Після цього вона обчислить, скільки літрів пального знадобиться для поїздки і яку суму доведеться витратити.

Під час виконання цього проєкту ми закріпимо роботу зі змінними, числовими типами даних, функціями printf() і scanf(), а також навчимося використовувати арифметичні операції для розв'язання реальної задачі.

Перш ніж писати код, варто визначити, який результат має розраховувати програма і які дані для цього необхідні. По-перше, наш калькулятор буде розраховувати кількість літрів палива, яке буде витрачене на поїздку. Для цього потрібно знати відстань поїздки та середню витрату пального на 100 км. Тоді ми зможемо дізнатися відповідь за такою формулою:

необхідна кількість палива = відстань * середнє споживання / 100

Також застосунок має обчислювати загальну вартість поїздки за формулою:

загальна вартість = необхідна кількість палива * ціна за 1 літр палива

Таким чином щоб виконати всі розрахунки, програмі потрібно отримати від користувача три значення:

  1. відстань поїздки (в кілометрах
  2. середнє споживання палива транспортом на сто кілометрів
  3. ціну одного літру палива.

Почнемо написання коду програми. Для початку створимо новий проєкт Visual Studio (як це робити розписано тут) і в основному файлі програми напишемо код "каркаса" нашої майбутньої програми:

#pragma warning(disable : 4996)
#include <stdio.h>

int main() {
    system("chcp 65001 > nul");

    return 0;
}

Просто нагадаю, що рядок #pragma warning... необхідний тільки якщо ви працюєте в Visual Studio, детальніше про це тут. Крім того, рядок system("chcp... необхідний щоб виводити український текст в консоль.

Усередині тіла програми (main() { ... }) додаємо код для виводу в консоль тексту-привітання, весь код має виглядати так:

#pragma warning(disable : 4996)
#include <stdio.h>

int main() {
    system("chcp 65001 > nul");

    printf("-- КАЛЬКУЛЯТОР ВИТРАТ НА АВТОМОБІЛЬНУ ПОЇЗДКУ -- \n\n");
    printf("Для розрахунку введіть необхідні дані:\n");

    return 0;
}

Введені дані користувача необхідно записати в змінні, а отже створимо їх (можна після виведення привітання):

int distance;                      // ціле число для зберігання відстані в кілометрах
float fuelConsumption;      // споживання палива на 100 км, дріб
float fuelPrice;                   // ціна одного літра пального

Тепер, коли ми маємо змінні для запису даних, отримаємо їх від користувача. Для цього спершу виводимо текст-підказку, щоб було зрозуміло що саме треба вводити в даний момент. І одразу ж зчитуємо дані командою scanf(), і так для кожного значення. Після цього весь код програми має виглядати так:

#pragma warning(disable : 4996)
#include <stdio.h>

int main() {
    system("chcp 65001 > nul");

    printf("-- КАЛЬКУЛЯТОР ВИТРАТ НА АВТОМОБІЛЬНУ ПОЇЗДКУ -- \n\n");
    printf("Для розрахунку введіть необхідні дані:\n");

    int distance;
    float fuelConsumption;
    float fuelPrice;

    printf("Вкажіть відстань в кілометрах: ");
    scanf("%d", &distance);

    printf("Вкажіть витрати пального на 100 км (л): ");
    scanf("%f", &fuelConsumption);

    printf("Вкажіть ціну пального за літр (грн): ");
    scanf("%f", &fuelPrice);

    printf("Ви вказали: %d км, %.2f л/100км, %.2f грн/л\n", distance, fuelConsumption, fuelPrice);

    return 0;
}

Якщо запустити код в такому вигляді, то вже можна вводити дані і бачити, наприклад, такий результат:

Введення данних користувачем в консоль C (приклад)

Тепер, коли програма отримала всі необхідні дані, ми реалізуємо в коді розрахунок витрат на основі наведених вище формул:

float totalFuelConsumption = (distance / 100.0) * fuelConsumption;  // загальна кількість палива (л)
float totalCost = totalFuelConsumption * fuelPrice; // загальна вартість поїздки (грн)

Зверніть увагу, що в діленні distance використовується число 100.0, а не 100. Завдяки цьому ділення виконується як над дробовими числами, і результат не втрачає дробову частину.

Тепер залишилося лише вивести результати на екран. Весь код нашої програми буде таким:

#pragma warning(disable : 4996)
#include <stdio.h>

int main() {
    system("chcp 65001 > nul");

    printf("-- КАЛЬКУЛЯТОР ВИТРАТ НА АВТОМОБІЛЬНУ ПОЇЗДКУ -- \n\n");
    printf("Для розрахунку введіть необхідні дані:\n");

    int distance;
    float fuelConsumption;
    float fuelPrice;

    printf("Вкажіть відстань в кілометрах: ");
    scanf("%d", &distance);

    printf("Вкажіть витрати пального на 100 км (л): ");
    scanf("%f", &fuelConsumption);

    printf("Вкажіть ціну пального за літр (грн): ");
    scanf("%f", &fuelPrice);

    printf("Ви вказали: %d км, %.2f л/100км, %.2f грн/л\n", distance, fuelConsumption, fuelPrice);

    float totalFuelConsumption = (distance / 100.0) * fuelConsumption;
    float totalCost = totalFuelConsumption * fuelPrice;

    printf("\nЗагальні витрати пального: %.2f л на %d км\n", totalFuelConsumption, distance);
    printf("Загальна вартість поїздки: %.2f грн\n", totalCost);

    return 0;
}

Компілюємо програму, запускаємо її, вводимо необхідні дані та отримуємо результат:

Приклад вводу даних в консоль C і виводу результатів

Вітаємо! Ви щойно створили програму, яка розв'язує реальну практичну задачу. Хоча вона ще не перевіряє правильність введених даних і має лише базові можливості, у ній вже присутні всі основні етапи роботи будь-якої програми: отримання даних від користувача, їх обробка та виведення результату.

Звичайно, наш калькулятор можна зробити значно цікавішим. Наприклад, можна додати можливість вибирати марку автомобіля зі списку, щоб програма автоматично підставляла середню витрату пального. Або дозволити користувачеві вказати початковий і кінцевий населені пункти, після чого програма самостійно визначатиме відстань між ними та виконуватиме всі необхідні розрахунки.

Для реалізації таких можливостей знадобляться нові знання: умовні конструкції, цикли, масиви, функції, робота з файлами, базами даних, мережевими сервісами та багато іншого. Але не хвилюйтеся — усе це ви будете опановувати поступово, крок за кроком.

Кожна велика програма починається з кількох простих рядків коду. Сьогодні ви створили свій перший корисний застосунок, а вже завтра зможете писати значно складніші програми, ігри, мобільні застосунки або навіть програмне забезпечення для роботів чи дронів.

Не зупиняйтеся на досягнутому, продовжуйте навчатися, експериментуйте, створюйте власні проєкти — і з часом ви зможете створювати справді неймовірні речі!

 

Просто декорація