Как написать формулу в visual studio
Рассмотрим основные методы класса Math:
Abs(double value) : возвращает абсолютное значение для аргумента value
Acos(double value) : возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1
Asin(double value) : возвращает арксинус value. Параметр value должен иметь значение от -1 до 1
Atan(double value) : возвращает арктангенс value
BigMul(int x, int y) : возвращает произведение x * y в виде объекта long
Ceiling(double value) : возвращает наименьшее целое число с плавающей точкой, которое не меньше value
Cos(double d) : возвращает косинус угла d
Cosh(double d) : возвращает гиперболический косинус угла d
DivRem(int a, int b, out int result) : возвращает результат от деления a/b, а остаток помещается в параметр result
Exp(double d) : возвращает основание натурального логарифма, возведенное в степень d
Floor(decimal d) : возвращает наибольшее целое число, которое не больше d
IEEERemainder(double a, double b) : возвращает остаток от деления a на b
Log(double d) : возвращает натуральный логарифм числа d
Log(double a, double newBase) : возвращает логарифм числа a по основанию newBase
Log10(double d) : возвращает десятичный логарифм числа d
Max(double a, double b) : возвращает максимальное число из a и b
Min(double a, double b) : возвращает минимальное число из a и b
Pow(double a, double b) : возвращает число a, возведенное в степень b
Round(double d) : возвращает число d, округленное до ближайшего целого числа
Round(double a, int b) : возвращает число a, округленное до определенного количества знаков после запятой, представленного параметром b
Sign(double value) : возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0
Sin(double value) : возвращает синус угла value
Sinh(double value) : возвращает гиперболический синус угла value
Sqrt(double value) : возвращает квадратный корень числа value
Tan(double value) : возвращает тангенс угла value
Tanh(double value) : возвращает гиперболический тангенс угла value
Truncate(double value) : отбрасывает дробную часть числа value, возвращаяя лишь целое значние
Также класс Math определяет две константы: Math.E и Math.PI . Например, вычислим площадь круга:
In this series of four tutorials, you'll build a math quiz. The quiz contains four random math problems that a quiz taker tries to answer within a specified time.
In this second tutorial, you learn how to:
- Write code to create Random objects to use in math problems.
- Add an event handler for the start button.
- Write code to start the quiz.
Prerequisites
This tutorial builds on a previous tutorial, Create a math quiz WinForms app. If you haven't completed that tutorial, go through it first.
Create a random addition problem
In your Visual Studio project, select Windows Forms Designer.
Select the form, Form1.
On the menu bar, select View > Code. Form1.cs or Form1.vb appears, depending on the programming language that you're using, so that you can view the code behind the form.
Create a Random object by adding a new statement near the top of the code.
You can use new statements like this one to create buttons, labels, panels, OpenFileDialogs, ColorDialogs, SoundPlayers, Randoms, and even forms. These items are called objects.
When you run your program, the form is started. The code behind it creates a Random object and names it randomizer.
Your quiz needs variables to store the random numbers that it creates for each problem. Before using variables, you declare them, which means listing their names and data types.
Add two integer variables to the form, and name them addend1 and addend2.
You use similar syntax to add an integer variable as you did to add the Random object, as the following code shows.
Add a method that's named StartTheQuiz() . This method uses the Random object's Next() method to generate random numbers for the labels. StartTheQuiz() will eventually fill in all the problems and then start the timer, so add this information to the summary comment. The function should look like the following code.
When you use the Next() method with a Random object, such as when you call randomizer.Next(51) , you get a random number that's less than 51, or between 0 and 50. This code calls randomizer.Next(51) so that the two random numbers add up to an answer that's between 0 and 100.
Take a closer look at these statements.
These statements set the Text properties of plusLeftLabel and plusRightLabel so that they display the two random numbers. Label controls display values in text format, and in programming, strings hold text. Each integer's ToString() method converts the integer into text that a label can display.
Create random subtraction, multiplication, and division problems
The next step is to declare variables and provide random values for the other math problems.
Add integer variables for the remaining math problems to your form, after the addition problem variables. The code should look like the following sample.
Modify the StartTheQuiz() method by adding the following code, starting with the "Fill in the subtraction problem" comment.
This code uses the Next() method of the Random class a little differently from how the addition problem does. When you give the Next() method two values, it picks a random number that's greater than or equal to the first value and less than the second one.
By using the Next() method with two arguments, you can ensure the subtraction problem has a positive answer, the multiplication answer is at most 100, and the division answer isn't a fraction.
Add an event handler to the start button
In this section, you add code to start the quiz when the start button is selected. Code that runs in reaction to an event like a button selection is called an event handler.
In Windows Forms Designer, either double-click the Start the quiz button, or select it and then select Enter. The form's code appears, and a new method is visible.
These actions add a Click event handler to the start button. When a quiz taker selects this button, the app runs the code that you'll add to this new method.
Add the following two statements so that the event handler starts the quiz.
The first statement calls the new StartTheQuiz() method. The second statement sets the Enabled property of the startButton control to false so that the quiz taker can't select the button during a quiz.
Run your app
Run your app, and then select Start the quiz. Random math problems appear, as the following screenshot shows.
Next steps
Advance to the next tutorial to add a timer to your math quiz and check user answers.
Рассчитать значения x , определив и использовав соответствующую функцию:
Соображения
Если внимательно посмотреть на выражение, то можно заметить схожесть между каждым его слагаемым. В общем случае каждое слагаемое можно представить выражением
где a – некоторое число. В нашем случае a = 6, 13, 22.
Поэтому, целесообразно реализовать функцию, которая получает входным параметром переменную a и вычисляет данное выражение.
Выполнение
1. Запустить MS Visual Studio . Создать проект по шаблону Windows Forms Application
После загрузки MS Visual Studio нужно создать проект по шаблону Windows Forms Application . Подробный пример создания проекта по шаблону Windows Forms Application описывается в теме:
Следует напомнить, что проект создается командой
В результате откроется окно «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. Форма приложения после загрузки файла рисунка
- активировать (выделить) элемент управления PictureBox ;
- с помощью мышки увеличить ширину окна PictureBox ;
- свойство SizeMode установить в значение StretchImage (масштабирование) как показано на рисунке 6.
Возможен и другой вариант настройки отображения формулы с помощью свойства SizeMode .
Рис. 6. Форма приложения после настройки и свойство SizeMode
3. Добавление текста функции к программному коду
3.1. Добавление текста функции в модуль Form1.h
Функция вычисления выражения может размещаться в модуле «Form1.h» (не обязательно). Пусть эта функция называется Calc . В соответствии с условием задачи и соображений, функция должна получать один параметр целого типа. Результат работы функции есть вещественное число. Поэтому, функция будет возвращать значение типа double .
Поскольку, вся работа выполняется в одной форме, то и реализация тела функции будет внутри кода класса Form1 .
Таким образом, в нижнюю часть тела класса Form1 нужно добавить следующий программный код
В теле функции используется функция Sqrt() , которая вычисляет корень квадратный.
3.2. Текст модуля «Form1.h» главной формы программы
На данный момент текст класса Form1 в сокращенном виде следующий:
4. Программирование обработчика события клика на кнопке «Вычислить»
Последний этап разработки программы, это программирование события Click клика на кнопке «Вычислить» . Пример программирования события клика на кнопке подробно описывается в теме:
В нашем случае, обработчик события будет иметь следующий вид:
private : System::Void button1_Click(System::Object sender, System::EventArgs e) < // вычисление double x; x = Calc(6) + Calc(13) + Calc(22); // вызов функции label2->Text = "Результат p05">5. Запуск программы
Теперь можно запускать программу на выполнение. На рисунке 7 изображен результат выполнения программы
В данной теме рассмотрен пример создания приложения расчета площади треугольника по формуле Герона. Приложение реализовано в системе Microsoft Visual Studio как Windows Forms Application .
В работе описывается программирование события клика на кнопке. Также рассматриваются особенности взаимодействия программного кода с компонентами Label (метка), Button (кнопка), Edit (строка ввода).
Содержание
- Математическая постановка задачи
- Выполнение
- 1. Создать проект как Windows Forms Application .
- 2. Размещение компонент на форме.
- 3. Настройка свойств компонент.
- 4. Программирование события клика на кнопке button1 .
- 5. Запуск проекта на выполнение
Поиск на других ресурсах:
Математическая постановка задачи
Заданы длины сторон треугольника a , b , c . Используя средства системы Microsoft Visual Studio разработать приложение, которое вычисляет площадь треугольника по формуле Герона. Приложение реализовать на языке C++ как Windows Forms Application .
Формула Герона для расчета площади треугольника:
где a , b , c – стороны треугольника; p – полупериметр, рассчитывается по формуле:
⇑
Выполнение
1. Запустить Microsoft Visual Studio . Создать проект.
Запустить MS Visual Studio . Создать проект как Windows Forms Application на базе шаблона Visual C++ . Пример создания проекта типа Windows Forms Application в C++ и типы создаваемых файлов приведен здесь.
Сохранить файл, задать ему произвольное имя (например « MyApp01 «).
В результате, будет создана главная форма приложения как изображено на рисунке 1.
По умолчанию, создается класс формы с именем Form1 . Ему отвечает файл с именем « Form1.h » (рисунок 1). Для того, чтобы перейти в режим просмотра кода файла « Form1.h » существует три способа:
– команда View -> Code (рисунок 2);
– команда « View Code » из контекстного меню, которое вызывается кликом на названии файла Form1.h в утилите Solution Explorer (рисунок 3);
– клик на соответствующей кнопке ( View Code или View Designer ) в Solution Explorer (рисунок 4).Рис. 1. Главная форма приложения
Рис. 2. Команда Code с меню View
Рис 3. Вызов режима просмотра кода из контекстного меню
Рис 4. Вызов режима просмотра кода из Solution Explorer
В результате перехода в режим просмотра, откроется окно с текстом файла « Form1.h «.
Рисунок 5. Исходный код модуля формы « Form1.h «
Таким образом можно переходить между режимами проектирования ( Design ) и редактирования исходного кода ( Code ) проекта.
Класс формы содержит:
– конструктор Form1() ;
– деструктор ~Form1() ;
– метод InitializeComponent() , в котором можно реализовать начальную инициализацию внутренних переменных.2. Размещение компонент на форме.
Для работы программы нужно разместить соответствующие компоненты на форме. Чтобы размещать компоненты, нужно перейти в режим проектирования ( Design ) одним из вышеописанных способов.
Компоненты находятся на панели инструментов Toolbox (рисунок 6).
Рис. 6. Палитра инструментов Toolbox
После размещения компонент форма будет иметь вид как показано на рисунке 10.
Рисунок 7. Компонент Label
Рисунок 8. Компонент TexbBox
Рисунок 9. Компонент Button
Рисунок 10. Компонент Label
3. Настройка свойств компонент.
Чтобы форма имела более наглядный для решения задачи вид, нужно настроить ее свойства а также свойства компонент размещенных на ней.
Для настройки свойств формы и компонент используется окно « Properties » (рисунок 11). Это окно вызывается командойили клавишей F4.
Рис. 11. Окно « Properties » настройки свойств компонент
Для изменения названия формы (программы), нужно ее предварительно выделить (мышкой). После этого в заголовке окна « Properties » может появиться название формы Form1 . Следующим шагом нужно свойство Text установить в значение « Площадь треугольника » (рисунок 12).
Рис. 12. Настройка заголовка главной формы программы
Подобным образом настраиваются свойства компонент, размещенных на форме. Настроить такие свойства компонент:
– в компоненте label1 свойство Text = « a = «;
– в компоненте label2 свойство Text = « b = «;
– в компоненте label3 свойство Text = « c = «;
– в компоненте label4 свойство Text = « Площадь треугольника = «;
– в компоненте button1 свойство Text = « Вычислить «.После выполненных действий, форма будет иметь вид, как изображено на рисунке 13.
Рис. 13. Вид формы после настройки компонент
4. Программирование события клика на кнопке button1.
Результатом работы программы есть вычисление площади треугольника. Вычисление происходит в момент когда пользователь делает клик на кнопке « Вычислить «. В результате формируется событие Click . В программе этому событию отвечает фрагмент программного кода, который называется обработчиком события (event handler). Этот фрагмент формируется средствами Microsoft Visual Studio .
Для того чтобы вызвать обработчик события клика на кнопке button1 , нужно выполнить следующие действия (рисунок 14):
– выделить компонент button1 ;
– в окне Properties активировать вкладку « Events » (события);
– в списке событий, в поле ввода события Click сделать двойной клик мышкой.Рис. 14. Вызов обработчика события Click клика на кнопке button1
В результате выполненных действий, система Microsoft Visual Studio сформирует обработчик события и переключит окно в режим ввода программного кода.
Обработчик события (метод) имеет название button1_Click . Формируется следующий программный код:
Между фигурными скобками нужно вписать собственный код вычисления площади треугольника по формуле Герона.
Листинг программного кода обработчика события button1_Click() следующий:
Объясним некоторые фрагменты кода.
Чтобы перевести значение компонента textBox1->Text из строки в соответствующей вещественный тип float используется метод Parse() из класса System::Double .
Чтобы занести в переменную a типа float значение строки с textBox1->Text можно использовать один из двух способов:
Указатель this есть указателем на данный класс (класс Form1 ).
Для вычисления квадратного корня используется функция Sqrt() из класса Math :
Для преобразования из типа float в строчный ( string ) используется метод ToString() :
5. Запуск проекта на выполнение.
Теперь можно запускать проект на выполнение (клавиша F5 ) и тестировать его работу.
Используя данный пример, можно создавать собственные программы для построения графиков других функций. По желанию можно модернизировать работу программы по своему усмотрению.
Содержание
Поиск на других ресурсах:
Условие задачи
Задана формула функции двух переменных z = sin(x) + cos(y) . Разработать приложение, которое рисует график этой функции в отдельной форме.
Дополнительно реализовать поворот графика влево, вправо, вверх, вниз. Также нужно выводить оси OX , OY , OZ .
⇑
Математическая постановка задачи
Построение графика функции двух переменных есть математически решаемой задачей, в которой используются известные формулы вычисления.
График функции двух переменных z(x,y) строится в параллелепипеде с размерами (xx1, xx2) , (yy1, yy2) , (zz1, zz2) .
Для использования поворота системы в 3-мерном пространстве возникает понятие точки ( x0 , y0 , z0), относительно которой происходит поворот системы координат.
Также возникает понятие углов:
-
(альфа) – поворот системы относительно оси OZ ; (бета) – поворот системы относительно оси OX .
Сдвиг в точку ( x0 , y0 , z0 ) с учетом поворота на углы и описывается известными соотношениями
После перемножения матриц получаем формулу для вычисления:
По этой формуле будет происходить преобразование системы координат и масштабирование (рисунок 1).
Рис. 1. Сдвиг и поворот системы координат
Необходимо определиться, в какой плоскости монитора будут лежать оси координат OX , OY , OZ . Принимаем, что в плоскости монитора лежат оси OX и OY . А ось OZ перпендикулярна экрану.
Координаты расчетной точки (x, y) прижимаются к точке (0, 0) по формулам:
где A , a – коэффициенты перспективы, которые подбираются экспериментально в зависимости от функции.
⇑
Выполнение
1. Создание проекта как Windows Forms Application
Создать проект. Подробный пример создания проекта по шаблону Windows Forms Application описывается здесь . Автоматически создается главная форма приложения. Имя исходного модуля главной формы « Form1.cs «.
⇑
2. Создание формы Form1 .
Создать форму по образцу, как показано на рисунке 2.
Настроить следующие свойства компонент и формы:
- в форме Form1 свойство Text = « График функции двух переменных «;
- в форме Form1 свойство MaximizeBox = False ;
- в форме Form1 свойство StartPosition = « CenterScreen «;
- в компоненте button1 свойство Text = « Показать график функции … «.
⇑
3. Создание формы Form2 .
Создать новую форму. Подробный процесс создания новой формы описывается здесь .
Имена файлов формы « Form2.cs » и « Form2.Designer.cs «.
Разместить на форме четыре компонента типа Button. Автоматически создается четыре объекта с именами button1, button2, button3, button4.
Настроить свойства компонент и формы следующим образом:
- в форме Form2 свойство StartPosition = «CenterScreen»;
- в форме Form2 свойство Text = « График функции z = f(x,y) «;
- в компоненте button1 свойство Text = « ^ «;
- в компоненте button2 свойство Text = « v «;
- в компоненте button3 свойство Text = « < «;
- в компоненте button4 свойство Text = « > «.
Приблизительный вид формы Form2 изображен на рисунке 3.
4. Ввод внутренних переменных в форму Form2 .
Все внутренние переменные, использующиеся для организации вывода графика, размещаются в классе формы Form2. Поэтому, сначала надо активизировать модуль « Form2.pas ».
В модуль формы Form2 вводятся следующие внутренние переменные с классом видимости private:
- xx1, xx2, yy1, yy2 – соответствуют координатам точек, которые отображаются на экране монитора;
- массивы xx и yy предназначены для вывода плоскости из 4-х точек. Область определения функции z = f(x, y) разбивается на прямоугольники, на любом из которых функция экстраполируется ребрами четырехугольника.
В разделе public вводятся:
- переменные X_min , Y_min , X_max , Y_max вещественного типа, которые представляют реальные координаты параллелепипеда, в котором выводится график функции. Эти переменные заполняются из основной формы Form1 экспериментальным путем:
- переменные alfa, beta вещественного типа, которые отображают углы наблюдения за графиком функции. Заполняются из главной формы Form1;
- переменные x0, y0, z0 вещественного типа. Отображают величины из главной формулы вычисления (см. математическую постановку задачи);
- переменная A вещественного типа. Представляет коэффициент перспективы и подбирается экспериментально;
- переменная f_show логического типа используется для указания того, что нужно перерисовать график, в случае изменения положения углов alfa и beta.
После введения переменных в текст программы, фрагмент класса формы Form2 имеет вид:
Переменные, имеющие идентификатор доступа public, заполняются из формы Form1 .
⇑
5. Программирование внутренних методов в форме Form2 .
В текст класса Form2 вводятся три дополнительных метода:
- функция преобразования системы координат и масштабирования Zoom_XY() ;
- функция func() для которой выводится график;
- функция рисования графика Show_Graphic().
Листинг метода преобразования системы координат следующий:
Листинг метода func() следующий.
В этом методе вместо строки
можно сделать вставку собственной функции.
Непосредственный вывод графика функции реализован в методе Show_Graphic() . Листинг метода Show_Graphic() следующий.
Объясним некоторые фрагменты кода в методе Show_Graphic().
Область определения функции z = f(x,y) разбивается на прямоугольники, на любом из которых функция экстраполируется с ребрами четырехугольника. Построение четырехугольников на экране реализуется с помощью метода DrawLine().
После очистки канвы происходит рисование осей координат и методом DrawLine() выводятся фрагменты поверхности.
При рисовании поверхности, из метода Show_Graphic() вызывается метод Zoom_XY(), что осуществляет преобразование и масштабирование из реальных координат в экранные координаты.
⇑
6. Программирование события Paint формы Form2.
Обработчик события Form2_Paint() получает два параметра. Первый параметр типа System.Object , второй параметр типа PaintEventArgs .
Параметр типа PaintEventArgs содержит объект Graphics, необходимый для рисования на поверхности формы.
Листинг обработчика события Form2_Paint() следующий.
⇑
7. Программирование обработчиков событий клика на кнопках button1, button2, button3, button4.
Поворот графика происходит в момент, когда пользователь делает клик на одной из кнопок, размещенных на форме Form2 (элементы управления button1, button2, button3, button4).
Отображение графика зависит от внутренних переменных alfa и beta. Переменная alfa содержит угол поворота относительно оси OZ . Переменная beta содержит значение угла поворота вокруг оси OX .
Поэтому, в обработчиках событий происходит изменение значений alfa и beta на некоторую величину. По желанию, можно установить собственную величину изменения alfa и beta.
Листинг обработчиков событий приведен ниже.
В вышеприведенных обработчиках событий, событие Paint генерируется явно с помощью унаследованного метода Invalidate(). Этот метод делает перерисовывание всей клиентской области программным путем.
Метод Invalidate() имеет несколько перегруженных вариантов. Например, если нужно обновить заданный прямоугольник, то нужно создать такой код:
⇑
8. Программирование обработчиков событий MouseDown, MouseMove и MouseUp.
Для осуществления поворота графика с помощью мышки нужно запрограммировать соответствующие обработчики событий.
Если нажать клавишу мыши и удерживать ее нажатой над формой Form2, а потом отпустить, то генерируются такие события (рисунок 4):
- MouseDown – генерируется, если пользователь делает клик мышкой на форме Form2;
- MouseMove – генерируется, если пользователь перемещает мышку над формой Form2 (независимо, нажата ли одна из кнопок мышки);
- MouseUp – генерируется, если пользователь отпускает кнопку мышки после нажатия.
⇑
9. Листинг модуля « Form2.cs ».
Ниже приведен полный текст файла ” Form2.cs ”, который соответствует форме Form2.
⇑
10. Программирование события клика на кнопке button1 формы Form1 (вызов формы рисования графика функции).
При клике на кнопке button1 из формы Form1 может выводиться график функции.
Обработчик события клика на кнопке Button1 имеет вид.
11. Запуск программы.
После запуска программы на выполнение, форма графика функции изображена на рисунке 5.
Читайте также: