Розробка програми обчислення виразу, що реалізований окремою функцією. Елемент управління PictureBox

Розробка програми обчислення виразу,
що реалізований окремою функцією. Елемент управління PictureBox


Зміст


Умова задачі

Розрахувати значення x, визначивши і використавши відповідну функцію:

Міркування

Якщо уважно поглянути на вираз, то можна помітити схожість між кожним доданком у виразі. У загальному випадку кожен доданок можна представити виразом

де a – деяке число. У нашому випадку a = 6, 13, 22.
Тому, доцільно реалізувати функцію, що отримує вхідним параметром змінну a і обчислює даний вираз.

 

Виконання

1. Завантажити MS Visual Studio. Створити проект за шаблоном Windows Forms Application.

Після завантаження MS Visual Studio потрібно створити проект за шаблоном Windows Forms Application. Детальний приклад створення проекту за шаблоном Windows Forms Application описується в темі:

Варто нагадати, що проект створюється командою

File->New Project... 

У результаті відкриється вікно “New Project”, зображене на рисунку 1. У цьому вікні задається вкладка “Visual C++” та вибирається шаблон “Windows Forms Application”. У полі Name задається ім‘я проекту, наприклад MyApp01. У полі “Location:” задається папка, в якій будуть розміщуватись робочі файли проекту (у нашому випадку це папка D:\Programs\CPP).

Рис. 1. Вікно створення нового проекту

Після вибору OK система створить нову форму, як показано на рисунку 2.

Рис. 2. Новостворена форма додатку

 

2. Проектування основної форми

2.1. Розміщення елементів управління на формі

Згідно з умовою задачі, у програмі нічого не вводиться, тільки проводиться розрахунок на основі відомих значень. З врахуванням цього, на формі розміщуються наступні елементи управління:

  • один елемент управління типу Label. Автоматично створюється об‘єкт (змінна) класу Label з іменем label1. З допомогою цього імені можна мати доступ до результату;
  • один елемент управління типу Button. Автоматично створюється об‘єкт з іменем button1. Цей елемент управління буде виводити текст умови задачі;
  • один елемент управління типу PictureBox (див. рис. 3). Цей елемент управління використовується для візуалізації складної формули. Формула представляється у вигляді файлу з розширенням *.jpg. У результаті створюється об‘єкт з іменем pictureBox1;
  • один елемент управління типу Label у нижній частині форми. Цей елемент управління буде виводити результат.
    Після розміщення елементів управління Label, Button, PictureBox форма програми матиме вигляд, як показано на рисунку 3.

Рис. 3. Форма додатку після розміщення елементів управління

 

2.2. Налаштування елементів управління Form, Label, Button

Потрібно налаштувати такі властивості елементів управління:

  • в елементі управління label1 властивість Text = “Розрахувати значення x”;
  • в елементі управління button1 властивість Text = “Обчислити”;
  • в елементі управління label2 властивість Text = “Результат”;
  • у формі Form1 властивість Text = “Програма обчислення виразу”.

Додатково можна налаштувати інші властивості на власний розсуд.

 

2.3. Налаштування елементу управління PictureBox

Оскільки елемент управління PictureBox призначений для відображення рисунку на формі, то спочатку потрібно вибрати цей рисунок. Це здійснюється кліком мишкою на стрілці вправо у верхньому правому куті PictureBox як показано на рисунку 4.

Рис. 4. Вибір меню задач PictureBox

У меню задач PictureBox вибирається команда “Choose Image…”. У результаті відкриється стандартне вікно Windows “Open”, в якому потрібно задати файл рисунку, що містить формулу.
У нашому випадку потрібно посилання на файл з формулою можна взяти тут. Цей файл був підготовлений раніше з допомогою графічного редактора.
Після вибору файлу рисунку форма додатку матиме вигляд, як показано на рисунку 5.

Рис. 5. Форма додатку після завантаження файлу рисунку

Як видно з рисунку 5 відображається тільки частина формули.

Щоб поправити ситуацію потрібно виконати такі дії:

  • активувати (виділити) елемент управління PictureBox;
  • з допомогою мишки збільшити ширину вікна PictureBox;
  • властивість SizeMode встановити у значення StretchImage (масштабування) як показано на рисунку 6.
    Можливий й інший варіант налаштування відображення формули з допомогою властивості SizeMode.

Рис. 6. Форма додатку після налаштування та властивість SizeMode

 

3. Додавання тексту функції до програмного коду

3.1. Додавання тексту функції у модуль Form1.h

Функція обчислення виразу має розміщуватись у модулі “Form1.h” (не обов‘язково). Нехай ця функція називається Calc. Згідно з умовою задачі та міркувань, функція повинна отримувати один параметр цілого типу. Результат роботи функції є дійсне число. Тому, функція буде повертати значення типу double.
Оскільки, вся робота виконується в одній формі, то і реалізація тіла функції буде всередині коду класу Form1.
Таким чином, у нижню частину тіла класу Form1 потрібно додати такий програмний код

// реалізація функції Calc
double Calc(int a)
{
    double res, t;
    t = (double)a;
    res = (Math::Sqrt(t)+t)/2.0;
    return res;
}

У тілі функції використовується функція Sqrt(), яка обчислює корінь квадратний.

 

3.2. Текст модуля “Form1.h” головної форми програми

На даний момент текст класу Form1 у скороченому вигляді наступний:

#pragma once

namespace MyApp01 {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    /// <summary>
    /// Summary for Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
        public:
        Form1(void)
        {
            ...
        }

        protected:
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        ~Form1()
        {
            ...
        }

        private: System::Windows::Forms::Button^ button1;
        protected:
        private: System::Windows::Forms::Label^ label1;
        private: System::Windows::Forms::PictureBox^ pictureBox1;
        private: System::Windows::Forms::Label^ label2;

        private:
        /// <summary>
        /// Required designer variable.
        /// </summary>
        System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        void InitializeComponent(void)
        {
            ...
        }
#pragma endregion

        // реалізація функції Calc
        double Calc(int a)
        {
            double res, t;
            t = (double)a;
            res = (Math::Sqrt(t)+t)/2.0;
            return res;
        }
    };
}

 

4. Програмування обробника події кліку на кнопці “Обчислити”

Останній етап розробки програми, це програмування події Click кліку на кнопці “Обчислити”. Приклад програмування події кліку на кнопці детально описується в темі:

У нашому випадку, обробник події буде мати такий вигляд:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
    // обчислення
    double x;

    x = Calc(6) + Calc(13) + Calc(22); // виклик функції

    label2->Text = "Результат = " + x.ToString();
}

 

5. Запуск програми

Тепер можна запускати програму на виконання. На рисунку 7 зображено результат виконання програми

Рис. 7. Виконання програми

 


Зв’язані теми