Квадратное уравнение в excel vba

This is the second part of the how to solve quadratic equations in Excel guide. Here, we are going to be focusing on how to do this manual and VBA method, whereas the first part shows how to do this using the Goal Seek feature. In this guide, we are going to show you a different approach to solving quadratic equations in Excel using formulas and VBA.

If you missed the first part:

A quadratic function is a type of equation that contains a squared variable. It is called quadratic because quad means square in Latin. The quadratic functions usually have a structure like ax² + bx + c = 0, where x represents an unknown variable, and a, b, and c represent known constants. Excel can help you easily solve these types of equations for x.

Download Workbook

The Quadratic Formula

A quadratic function’s variable can take 2 values, meaning that there can be 2 solutions. To find these values, you can use the quadratic formula:

The plus/minus operator (±) means the formula should be executed twice. Once with plus (+):

And once with minus (-):

The a, b and c values are known numbers where a ≠ 0. Since we know the formula representation and the values, we can now create a formula for solving quadratic equations.

The Standard Formula

For this first approach, you essentially need to replicate the quadratic formula in Excel. You can enter the known values (a, b and c) right away into the formula. However, this means that the formula will be static and you will need to change the values one-by-one again when you need to solve for another equation.

Alternatively, you can pull the input values from cells to place the constants a, b and c and use those references inside the formula. Changing the cell value is usually a lot easier than changing all values one-by-one, especially with complex formulas.

Let’s assume that our constant values are in cells C7, D7 and E7. In this example, we also named these cells as a_1, b_1 and c_1 to make the formula easier to read. The formulas will be,

=(-b_1 + SQRT(POWER(b_1,2) — 4*a_1*c_1)) / (2*a_1)

=(-b_1 — SQRT(POWER(b_1,2) — 4*a_1*c_1)) / (2*a_1)

As you can see, one of the formulas uses plus and the other uses minus. This is how you can create a structure to solve the quadratic equations using traditional formulas. You can learn more about the POWER and SQRT functions in the respective pages.

solving quadratic equations

Solving Quadratic Equations using VBA

The standard formula method is effective and dynamic. However, it may be hard to remember or use. While Excel doesn’t have a function that allows solving quadratic equations with one click, you can create yourself one!

To start working with VBA, you need to enable the Visual Basic for Applications (VBA) window. When your workbook is open, press the Alt + F11 key combination. Once the VBA window is active, add a module. Modules are pages where you can write your VBA code.

Copy and paste the code below into the module you’ve just added:

Function SolveQuadraticEquation(a As Integer, b As Integer, c As Integer, result As Integer)
  If result = 1 Then
    SolveQuadraticEquation = (-b + Sqr(b * b — 4 * a * c)) / (2 * a)
  ElseIf result = 2 Then
    SolveQuadraticEquation = (-b — Sqr(b * b — 4 * a * c)) / (2 * a)
  Else
    SolveQuadraticEquation = «Invalid result value. It should be 1 or 2.»
  End If
End Function

This code creates a new function named SolveQuadraticEquation. This function has 4 arguments — 3 for known values, and 1 for selecting the plus/minus sign.

solving quadratic equations

After pasting the code, return to the Excel window and test your new function. First, enter the 3 known values, a, b and c. Set 1 or 2 to select between plus and minus respectively.

Урок № 15. Сводим всё вместе

Сводим всё вместе

В этом уроке мы попробуем написать нашу первую программу на Visual Basic — программу для решения квадратных уравнений. Может быть эта программа и не очень полезна в хозяйстве, но она хорошо вас ознакомит с принципами программирования на VB. Итак, приступим. Всмомним из урока 5 основные этапы разработки приложение на Visual Basic:

  1. Продумывание программы
  2. Проектирование интерфейса
  3. Написание программного кода
  4. Отлаживание программы
  5. Окончательная компиляция

Программу будем писать согласно этим пунктам:

1. Продумывание программы.

Что должна делать наша программа? — решать квадратные уравнения. Вспомним, как решаются квадратные уравнения.

Чтобы решить такое уравнение, нужно найти его дискриминант и затем, корни. Дискрименант ищется по формуле:

Если дискриминант > 0, то

X1 = (b + (корень из D)) / 2*a
X2 = (b — (корень из D)) / 2*a

Если дискриминант = 0, то

Если дискриминант Назначение элемента управления

A: — параметр A
txtParamA

B: — параметр B
txtParamB

C: — параметр C
txtParamC

Кнопка для запуска решения
cmdCalculate

Label, с вычисленным дискриминантом
lblD

Label, с корнем X1
lblX1

Label, с корнем X2
lblX2

Форма, содержащая все эти элементы
frmMain

Остальные элементы переименовывать не обязательно, т.к. мы к ним не будем обращаться в коде программы. Но, если хотите, можете переименовать. Приучайтесь к этому.

Интерфейс готов. Он конечно не претендует на звание самого удобного и красивого интерфейса года ;), но для начала сойдёт. Всё равно, в дальнейшем, уже после написания кода программы, вы сможете изменить интерфейс по вашему вкусу.

3. Написание программного кода.

Теперь самое интересное! Мы будет писать код для нашей программы! Давайте ещё раз продумаем алгоритм работы программы:

    Вводим исходные данные в тектовые поля (a,b,c). Напомню, что код для этого писать не нужно. За нас всё сделает Visual Basic и Windows. В этом то и заключается прелесть графического интерфейса пользователя (GUI). Мы только считаем введенные значения и всё.

После нажатия на кнопку, производим вычисление дискриминанта и корней.

  • Выводим полученные значения в метки (Label’и).
  • Нам необходимо написать обработчик события клик (Click) нашей кнопки — cmdCalculate. Что значит обработчик события? Обработчик события — это процедура, которая будет выполняться всякий раз, когда произойдёт то или иное событие. Например собите Click. Оно происходит всякий раз при нажатии на кнопку. Т.е., если запустить программу на выполнение и не нажимать на кнопку cmdCalculate ничего не произойдёт. Но как только вы кликните по кнопке, произойдёт выполнение кода, который написан в процедуре обработки события Click (процедуре с именем cmdCalculate_Click). Он будет выполняться всякий раз, когда пользователь кликнет по кнопке. В этом то и состоит та самая Событийно-Управляемая модель программирования, которая отличается от плоских последовательных программ (Turbo Паскаля, например). Программирование на Visual Basic целиком и полностью базируется на этой Событийно-Управяемой модели.

    Надеюсь, что вы уловили мою мысль. Если нет, то не отчаивайтесь, далее всё станет понятно.

    Чтобы создать обработчик события Click необходимо сделать двойной клик по нашей кнопке cmdCalculate (при двойном клике, VB создаёт заготовку обработчика события — по-умолчанию. У кнопки, это событие Click, у формы — Load, у таймера — Timer и т.д.). Visual Basic создаст для вас заготовку процедуры, которая будет выглядеть следующим образом:

    Private Sub cmdCalculate_Click()

    Чтобы создать обработчик для другого события, необходимо выбрать событие в правом списке в окне кода:

    В списке довольно много различных событий. В левом списке вы можете выбрать доступные элементы управления, которые помещены на форму. В данном случае в списке вы видите cmdCalculate. Очень удобно.

    Так же, как и некоторое свойства элементов управления, события тоже повторяются. Например, событие Click. Оно есть и у элемента кнопки (Command Button), и у элемента метки (Label) и у многих других. Есть оно и у формы. Это очень облегчает процесс программирования. Не нужно тратить много времени на изучение каждого элемента управления, т.к. многое повторяется.

    Заметьте также, что у процедуры обработки события Click нет входных параметров, о чём нам говорят пустые скобки. Добавить свои параметры в эту процедуру нельзя. У процедур обработки некоторых других событий могут быть параметры. Например, у события MouseMove (координаты курсора мыши) или KeyUp (код отжатой клавиши). Эти параметры передаются незаметно для программиста, и их можно использовать по своему усмотрению (а можно и вовсе не использовать).

    Теперь давайте приступим непосредственно к программированию. Для начала объявим переменные с типом Double (для хранения вещественных чисел):

    Private Sub cmdCalculate_Click()
    &nbsp&nbsp&nbsp&nbsp’ объявляем переменные
    &nbsp&nbsp&nbsp&nbsp Dim paramA As Double
    &nbsp&nbsp&nbsp&nbspDim paramB As Double
    &nbsp&nbsp&nbsp&nbspDim paramC As Double

    &nbsp&nbsp&nbsp&nbspDim x1 As Double
    &nbsp&nbsp&nbsp&nbspDim x2 As Double
    &nbsp&nbsp&nbsp&nbspDim D As Double
    End Sub

    Теперь считаем введённые параметры a, b и с. Для этого присвоим переменным paramA, paramB и paramC значения свойства Text всех 3-х полей для ввода (TextBox’ов). Мы можем это сделать потому, что Visual Basic сам преобразует число в виде строки в обычное число с плавающей точкой.

    paramA = txtParamA.Text
    paramB = txtParamB.Text
    paramC = txtParamC.Text

    Доступ к свойству любого элемента управления осуществляется через точку, которая разделяет имя свойства и имя элемента. Обратите внимание на технологию Intellisence. Visual Basic выдает список доступных свойств этого элемента управления. Это очень удобно. Вам не придётся выучивать наизусть длинные и сложные названия свойств. Достаточно выбрать нужное свойство из списка и всё.

    Теперь нам нужно рассчитать дискриминант. Для этого присвоим переменной D, которая будет хранить значение дискриминанта, следующее выражение:

    D = (paramB * paramB) — (4 * paramA * paramC)

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

    Теперь, зная значение дискриминанта, нужно сравнить его с нулём. Если он больше нуля, то вычислить оба корня, если равен нулю, то вычислить один корень, ну а если меньше, то ничего не вычислять и выдать сообщение о том, что корней нет. Такое ветвление мы организуем с помощью оператора If:

    If D > 0 Then
    &nbsp&nbsp&nbsp&nbspx1 = (paramB + Sqr(D)) / (2 * paramA)
    &nbsp&nbsp&nbsp&nbspx2 = (paramB — Sqr(D)) / (2 * paramA)
    &nbsp&nbsp&nbsp&nbsplblD.Caption = «Дискременант: » & D
    &nbsp&nbsp&nbsp&nbsplblX1.Caption = «Корень №1: » & x1
    &nbsp&nbsp&nbsp&nbsplblX2.Caption = «Корень №2: » & x2
    ElseIf D = 0 Then
    &nbsp&nbsp&nbsp&nbspx1 = paramB / (2 * paramA)
    &nbsp&nbsp&nbsp&nbspx2 = x1
    &nbsp&nbsp&nbsp&nbsplblD.Caption = «Дискременант: » & D
    &nbsp&nbsp&nbsp&nbsplblX1.Caption = «Корень №1: » & x1
    &nbsp&nbsp&nbsp&nbsplblX2.Caption = «Корень №2 = Корню №1»
    ElseIf D Then
    &nbsp&nbsp&nbsp&nbsplblD.Caption = «Дискременант: » & D
    &nbsp&nbsp&nbsp&nbsplblX1.Caption = «Корней нет!»
    &nbsp&nbsp&nbsp&nbsplblX2.Caption = «»
    &nbsp&nbsp&nbsp&nbspMsgBox «Дискременант меньше нуля! Корней нет!», vbCritical
    End If

    Не забывайте про отступы! С ними код намного нагляднее.

    Корень мы вычисляем встроенной функцией VB — Sqr (от Square). В выражениях, которые мы присваиваем свойству Caption у меток, мы используем оператор конкатенации (склеивание строк). Им мы склеиваем строку слева от & со строкой справа. Откуда берётся строка справа? Ведь там переменные типа Double!? Как я уже говорил, Visual Basic неявно занимается преобразованием типов. В данном случае перед конкатенацией, числа Double сначала преобразуются в строку.

    В принципе, программа уже готова. Давайте проверим её работоспособность. Нажмите кнопку Start. Появится наша форма. Введите значение в поля: a = 3, b = -6, c = 2. Нажмите на кнопку «Решить!». Если вы всё делати правильно, то должны увидеть следующую картину:

    Дело в том, что строка для вывода в Label не вписывается в его размеры. Поэтому происходит перенос на следующую строчку. Чтобы этого избежать, закройте программу и установите свойство меток AutoSize в True (Совет: Чтобы не устанавливать это свойство 3 раза для каждой метки, выдели их сразу все 3 и установите свойство.). Свойство AutoSize — подгоняет размер метки так, чтобы текст в свойстве Caption полностью уместился в одну строчку и не переносился на другую. Теперь снова запустите программу, введите те же значения и нажмите на кнопку:

    Теперь всё в порядке! Программа работает! Можете поэкперементировать, вводя разные значения коэффициентов.

    Но, обратите внимение! Что произойдёт, если мы, не введя значения в поля , нажмём на кнопку? Что тогда присвоиться нашим переменным? Или, что будет, если мы введём нули в качестве коэффициентов? В обоих случаях Visual Basic сгенерирует ошибку. Почему? Ответ на этот вопрос мы разберём на следующем уроке.

    Создание проекта «Решение квадратного уравнения» при помощи языка программирования Visual Basic

    Конкурс-смотр «Экскурсия по кабинету»

    «Решение квадратного уравнения»

    при помощи языка программирования Visual Basic

    Тип урока: обучающий

    Вид урока: практическое занятие в среде программирования Visual Basic

    Продолжительность урока: 45 минут

    Учащиеся должны знать:

      Этапы создания проекта Управляющие элементы: их название, обозначение, свойства. Среду языка программирования: панель свойств, панель инструментов

    Учащиеся должны уметь:

      Создавать проект средствами языка программирования Visual Basic Вносить изменения в программный код

    Задачи урока:

      Воспитательная. Развитие познавательного интереса, воспитание информационной культуры. Учебная.

    1. Изучить и закрепить основные навыки работы в среде программирования Visual Basic.

    2. Научиться применять для разработки программы текстовые поля для ввода информации

      Развивающая. Развитие логического мышления, расширение кругозора.

    1. Словесный (беседа, электронная лекция, изложение материала).

    2. Наглядный (демонстрация проекта).

    3. Практическая работа.

    Цель урока: Научить учащихся применять современное программное обеспечение в решении нестандартных задач, а именно, решения квадратного уравнения общего вида ax2 + bx + c = 0

    Оснащение урока: мультимедийный проектор или интерактивная доска Smart (для демонстрации учителем хода выполнения практической работы), компьютеры с установленной средой программирования Visual Basic

    Используемая литература: Н. Угринович «Информатика 9 класс», Н. Угринович «Практикум по информатике и информационным технологиям», CD — диск «Информатика и информационные технологии»

    Аннотация

    Данный урок в 9-м классе провожу после изучения теоретического материала по теме «Графический интерфейс проекта и событийные процедуры» (урок № 17) и «Переменные: тип, имя, значение» (урок № 18), как обучающий, позволяющий не только обобщить и закрепить полученные знания, но перейти на новый виток изучения темы.

    При выполнении практической работы учащиеся не только закрепляют полученные знания, но и проявляют свои творческие навыки, так как при создании интерфейса программы каждый учащийся может проявить свою индивидуальность.

    Кроме того, учащиеся могут предложить и свои варианты написания событийной процедуры на языке программирования VisualBasic.

    План урока:

    I. Организационная часть

    Внешний вид, приветствие, готовность оборудования.

    II. Основная часть

    1. Актуализация знаний

    3. Этап введения новых знаний

    Демонстрация преподавателем, постановка задачи на выполнение практической работы.

    4. Этап применения знаний

    Создание собственного проекта.

    III. Заключительная часть

    1. Рефлексия. Подведение итогов

    Подвести итоги, отметить наиболее отличившихся учащихся, выставить оценки.

    2. Этап информации о домашнем задании

    Разработать интерфейс проекта «Калькулятор», используя новые управляющие элементы TextBox и Label. Изучить параграф 4.4, 4.5

    1. Организационный этап

    Цель нашего урока — научиться применять современное программное обеспечение в решении задач, а именно, решения квадратного уравнения общего вида ax2 + bx + c = 0. Для достижения поставленной цели нам с вами необходимо вспомнить и ответь на следующие вопросы:

    · Что такое командная кнопка?

    · Какие функции она выполняет при создании интерфейса программы?

    · Как обозначается в программе?

    · Как можно изменить размеры создаваемой формы?

    · Как изменить внешний вид формы?

    · Каким способом можно создать программный код?

    · Что такое событийная процедура?

    · Какие событийные процедуры Вы знаете?

    · Как правильно объявить переменные?

    · Какие операторы используются для задания условия?

    2. Объяснение нового материала.

    Для создания проекта «Решение квадратного уравнения» нам необходимо разработать интерфейс программы. Для того, чтобы вводились данные не на самой форме необходимо использовать новый для вас элемент, который называется элемент управления TextBox (текстовое поле). Какие свойства присваиваются этому объекту? Обычно всегда используется приставка txt, а далее имя, которое необходимо пользователю и которое потом используется в написании программного кода.

    Кроме того, в разработке интерфейса программы вам понадобится еще один новый элемент управления Label (Метка). Он необходим для того, чтобы обозначить текстовое поле. Для этого элемента используется приставка lbl.

    Все эти элементы вы можете найти на панели инструментов.

    3. Разработка интерфейса программы

    Войдите в систему программирования Visual Basic 6. Перед Вами появятся Панель инструментов и окно формы, как на рисунке ниже:

    Слева на рисунке Вы видите Панель инструментов. Найдите на ней

    — TextBox (текстовый бокс),

    — CommandButton — (командная кнопка).

    Они понадобятся Вам при проектировании окна формы нахождения корней квадратного уравнения в среде Visual B

    На предыдущем уроке для ввода коэффициентов a, b, c исходного квадратного уравнения при проектировании использовался инструмент InputBox, находящийся на Панели управления, что потребовало для каждого коэффициента отдельное окно, то на данном уроке мы с вами научимся, как можно ввести исходную информацию, то есть коэффициенты уравнения a, b, c вместе в одном окне. Для этого будет предложено воспользоваться инструментом TextBox.

    Ниже на рисунке показан желаемый вид окна, который должна будет иметь спроектированная форма задачи.

    Как видно из предшествующего рисунка, прежде всего, нужно выполнить несколько подготовительных пунктов, касающихся оформления окна формы. Это потребует внести изменения в окно свойств формы Properties-Form1:

    1. Выбрать конфигурацию шрифта (размер, наклон, толщину): изменить свойство font,

    2. Дать название форме: «Решение квадратного уравнения» (то есть изменить свойство Caption в окне свойств формы),

    3. Установить свойства: width=7000 единиц (длина формы) и height=5000 единиц (высота формы),

    4. Выбрать цвет фона BackColor, например, светлобирюзовый.

    И уже после этого поместите на форму планируемые объекты:

    1. — Label1(0) (метка A) и соответствующий ей текстовый бокс TextBox1(0) — TextBox (текстовый бокс) для ввода числового значения коэффициента a исходного квадратного уравнения,

    2. — Label1(1) (метка B) и соответствующий ей текстовый бокс TextBox1(1) — TextBox (текстовый бокс) для ввода числового значения коэффициента b исходного квадратного уравнения,

    3. — Label1(2) (метка C) и соответствующий ей текстовый бокс TextBox1(2) — TextBox (текстовый бокс) для ввода числового значения коэффициента c исходного квадратного уравнения,

    4. — CommandButton — (командная кнопка). Command Button — кнопка будет помечена командой: «Решить!» квадратное уравнение. Под эту кнопку необходимо будет еще написать соответствующий код программы, в котором предусмотреть вычисление дискриминанта и корней квадратного уравнения, если дискриминант неотрицательный, или выдать сообщение в отдельном окне Message Box о том, что уравнение не имеет корней в случае, если дискриминант окажется отрицательным.

    5. — Label2() (метка, содержащая указание: «Введите коэффициенты уравнения: «),

    6. — Label3() (метка, содержащая строку: «Дискриминант: « и его величину),

    7. — Label4() (метка, содержащая строку-решение: «Корень уравнения x1 = : « и его значение),

    8. — Label5() (метка, содержащая строку-решение: «Корень уравнения x2 = : « и его значение),

    С этой целью выполните последовательно следующие действия:

    1. Поместите на форму Form1 метку Label1(0) и рядом текстовый бокс TextBox1(0).

    2. Затем войдите в меню Edit (Правка) и выполните команду: Select all (Выделить все) и далее команду: Copy (копировать). Вы получите в буферной памяти компьютера копию двух объектов: метки и текстового блока.

    3. Теперь дважды вставьте указанную пару объектов на форму. Вы получите на форме уже три пары объектов: три метки и три текстовых блока, как показано ниже на рисунке.

    4. Используя окна свойств для обънктов Label1(0), Label1(1) и Label1(2), замените сложные названия меток Label1(0), Label1(1) и Label1(2) на более простые: A, B и C. Для этого измените соответствующие свойства Caption.

    5. Очистите поле каждого текстового блока TextBox1(0), TextBox1(1), TextBox1(2). Для этого в окне свойств объекта TextBox1(0) найдите свойство text и почистите правую часть этой строки, то есть уберите наименование text1. Проделайте то же самое для объектовTextBox1(1) и TextBox1(2).

    6. Кроме того, расположите на форме кнопку Command Button и дайте ей новое название: Решить!. В результате форма будет иметь следующий вид:

    7. Поместите на форму над тремя парами меток A, B, C и текстовых боксов TextBox1(0), TextBox1(1), TextBox1(2) метку Label2() с указанием: Введите коэффициенты уравнения.

    8. Поместите на форму метку Label3(): Дискриминант: .

    9. Поместите на форму метку Label4(): Корень уравнения x1 = .

    10. Поместите на форму метку Label5(): Корень уравнения x2 = .

    Вы получите желаемый вид окна, показанный на рисунке в начале урока, который будет иметь спроектированная форма задачи.

    4. Составление программного кода

    Теперь остается одно: Вам нужно заняться составлением кода программы, которая будет включаться в работу по двойному щелчку по командной кнопке (Command Button): Решить!.

    5. Самостоятельная работа учащихся по составлению программного кода

    Комментарии для учителя

    Ниже на рисунке показан код этой программы. В ней, как обговаривалось выше, вычисляется дискриминант квадратного уравнения b2 — 4ac и после анализа его знака в случае неотрицательности дискриминанта вычисляются корни уравнения или дается ответ: Дискриминант меньше нуля! Корней нет!

    Ниже на рисунках Вы видите опробование проекта для трех случаев:

      дискриминант больше нуля: корни действительные и разные;

    дискриминант равен нулю: корни действительные и равные;

    дискриминант меньше нуля: действительных корней нет.

    6. Подведение итогов

    Учащиеся показывают проект учителю, и подводится итог урока, выставляются оценки.

    7. Домашнее задание

    Разработать интерфейс проекта «Калькулятор», используя новые управляющие элементы TextBox и Label. Изучить параграф 4.4, 4.5

    на урок информатике в 9Б классе

    Количество учащихся: 13 человек

    Дата: 10.12.2009 года

    Урок информатике, проведенной в 9 классе по теме «Создание проекта «Решение квадратного уравнения» при помощи языка программирования Visual Basic» с использованием информационных компьютерных технологий показал новый подход к организации практической работы учащегося на уроке.

    Каждый ученик создал собственный проект «Решение уравнения», используя при этом знания, полученные на предыдущих уроках. Кроме того, прослеживается интеграция знаний, которая помогает учащимся осознать, что важно знать, не только какаю-то одну предметную область, но и смежные с ней дисциплины.

    На уроке соблюдены все временные рамки и требования СанПин по организации и проведению практических работ на уроках информатики.

    Полученные знания учащиеся могут применять для создания интегрированных проектов и по другим предметам.

    Марина Анатольевна постоянно усовершенствует традиционные педагогические технологии обучения информатике, использует проектную технологию.

    Анализ урока информатики

    Информатика в 9-в классе проводилась вторым уроком в кабинете информатики. Все требования СанПина к проведению уроков в компьютерном классе были соблюдены. Площадь кабинета составляет 60 кв. м. В кабинете установлена люминесцентное освещение, на специально оборудованных столах компьютеры, технические средства, имеются соответствующие рабочие столы на 30 учащихся, помещение проветрено, проведена влажная уборка.

    – творчески работающий учитель, владеющий педагогико — психологическими основами анализа свой деятельности и возможностями учащихся.

    точно определила место урока в теме, определила тип урока: обучение, что позволило корректно определить цели и задачи, подобрать приемы.

    На уроке применялись оптимальные приемы и методы для реализации поставленных целей и задач. Деятельность учителя и учащихся протекает естественно независимо от степени сложности.

    отличает активная инновационная экспериментальная деятельность. Основываясь на методологии развивающего обучения, она опробует в своей работе различные современные педагогические технологии. Четко и подробно на экране появляются интерфейс программы, при этом учитель объясняет назначение каждого управляющего элемента и способы его использования в других проектах.

    В течение урока. проводила с учащимися индивидуальную работы, консультировала. Много работали над расширением кругозора, обогащением словарного запаса учащихся, над выработкой грамотной речи.

    Время урока используется исключительно продуктивно за счет продуманной методики его проведения. Практическое задание подготовлено доступное, ясное и самое главное, что созданный программный продукт может быть использован как самими учащимися, так и применяться на уроках математики. Ученики представляют, чего от них хотят, и с желанием работают.

    За урок 5 учеников получили «5», 5 учеников «4», 3 ученика «3».

    Много внимания уделяет формированию положительной мотивации к обучению и к информатике. Она охотно делится опытом своей работы с коллегами.

    Visual basic практическая работа «Решение квадратного уравнения»

    Решение квадратного уравнения на языке VB в двух вариантах и рассмотрение блок-схемы решения задачи.

    Просмотр содержимого документа
    «Visual basic практическая работа «Решение квадратного уравнения»»

    Лабораторная работа №1. Решение квадратного уравнения.

    1. Вывод результата с помощью оператора Print

    Решение. Рассмотрим блок-схему решения данной задачи:

    Программа написана справа от блок-схемы.

    Private Sub Command1_Click()

    d = b * b — 4 * a * c

    X1 = (-b + Sqr(d)) / (2 * a)

    X2 = (-b — Sqr(d)) / (2 * a)

    Для выполнения программы нажимает клавишу F5. Вводим значения коэффициентов a, b, c. Результат работы программы читаем в форме.

    a=1567, b = -110, c = -15, ответ: x1=0,13904296372987 x2=-6,88451334809872E-02

    При вводе десятичных дробей через окно InputBox следует применять запятую.

    a=1,5, b = 1, c = -4, ответ: x1 = 1,3333333, x2 = -2

    Если запустить программу и ничего не вводить (a=0, b = 0, c = 0), а нажимать ОK (Enter), то появится сообщение об ошибке. Следует нажать кнопку End.

    2) Добавление новых элементов в форму

    Главным объектом среды программирования Visual Basic является форма. До сих пор на форме мы располагали только одну кнопку, результат читали также на поверхности формы.

    Инструментальное меню Visual Basic содержит много элементов, которые также можно разместить на форме. Познакомимся поближе со второй строкой этой панели.

    Буква А означает надпись. При наведении на неё курсора появляется слово Label (читается лэйбл, переводится этикетка, надпись). На форме надпись будет растягиваться аналогично командной кнопке — в виде прямоугольника. В неё мы будем печатать поясняющие надписи.

    Справа от неё находится кнопка текстовое окно TextBox (читается ТекстБокс, текстовая панель). В текстовое окно можно вводить и выводить информацию (числа, слова).

    Создадим форму для задачи «Нахождение корней квадратного уравнения», используя вышеперечисленные элементы инструментального меню. Прежде всего создадим в тетради эскиз формы. Он может выглядеть так:

    Создадим на форме места под будущие надписи и окна. Методом растягивания, перетаскивания и изменения размеров создайте форму с кнопкой, четырьмя лейблами, и четырьмя текстовыми окнами.

    Изменение свойств формы

    Щелкнем на свободном месте формы. Она будет ограничена квадратными маркерами по восьми направлениям изменения размеров формы.

    Справа активизировалась панель свойств этой формы – Properties – Form1 (читается пропетиз фом ван, переводится свойства формы один). В этом окне слева расположены названия свойств, а справа их значения. Значения мы можем менять по своему усмотрению. Названия свойств являются ключевыми словами языка VB, их постепенно надо запоминать. Нам надо изменить текст в заголовке формы. Изменение текста заголовка формы выполняется в строке Caption (произносится — кэпшн, переводится заголовок). Щелкаем мышкой по этому свойству, печатаем – Решение квадратного уравнения, нажимаем Enter. Текст появляется в заголовке формы.

    Изменим цвет формы. Для этого в свойствах находим строку BackColor (бэк колор, задний цвет). На вкладке Palette (палетте, палитра) выбираем нужный нам цвет для формы, щелкнув по нему указателем мыши.

    Выделяем командную кнопку и в разделе свойств Caption печатаем Вычислить.

    Выделяет объект Label1. В разделе свойств Caption печатаем а =. Переходим к свойству Alignment (читается — элайнмент, переводится выравнивание). Раскрываем список этой строки и выбираем выравнивание по правому краю 1. Right Justify (Райт джустифай, правое, если много текста, то левая и правая границы выровнены). Можно было нажать клавишу с цифрой 1.

    Свойство Font (фонт, вид шрифта) позволит нам настроить вид символов. В диалоговом окне можно выбрать тип шрифта, начертание (обычный, курсив, полужирный) и размер 14. Сделайте так, чтобы текст а = выглядел как а =. “это достигается применением шрифта Times New Roman (Таймс Нью Роман)

    Аналогично меняем содержимое объектов Label2, Label3.

    В свойстве Caption объекта Label4 записываем Ответ:

    В свойствах текстового окна Text1 находим строку Text. Стираем существующую надпись, можно пробелом, и подтверждаем изменение клавишей Enter или щелчком мыши на другом объекте.

    Аналогично поступаем с остальными текстовыми окнами. Форма готова.

    Точечная запись — в качестве переменной

    Объектно-ориентированные языки программирования работают с объектами. В качестве объекта может быть форма, командная кнопка, надпись, текстовое окно и др. Каждый из этих объектов имеет свойства. Эти свойства можно менять по нашему усмотрению либо на Панели свойств (Properties), либо из программы. Для того, чтобы изменить свойства из программы, точнее, иметь доступ к свойствам объекта их командной строки, нужно указать название объекта и через точку свойство. Например, чтобы иметь доступ к содержимому первого текстового окна нашего проекта по свойству Text, надо сделать запись: Text1.Text. –(в программном коде)

    Такая запись может использоваться в качестве переменной. Свойство может содержать какое-либо значение. Это значение мы можем записать при запуске программы, или программист, при составлении программы, поместит в него какое-нибудь значение.

    Сравните две строки:

    Text1.Text = “5” — эта строка помещает значение 5 в текстовое окно Text1.

    a= Text1.Text — эта строка присваивает переменной a содержимое текстовой строки. Если в текстовом окне ничего нет, то Visual Basic помещает в него специальное значение Null. Это ни нуль, не пробел, а пустое место.

    для этой формы будет выглядеть так:

    Private Sub Command1_Click()

    d = b * b — 4 * a * c

    X1 = (-b + Sqr(d)) / (2 * a)

    X2 = (-b — Sqr(d)) / (2 * a)

    Text4.Text = “x1=” & X1 & “ x2=” & X2

    Программу следует проверить на контрольных примерах. Перемещение по окнам сверху вниз — клавишей Tab. . Перемещение по окнам снизу вверх клавишным аккордом — Shift +Tab. Программа будет работать правильно для корректных данных, иначе будет появляться сообщение об ошибке.

    источники:

    http://pandia.ru/text/78/324/2041.php

    http://multiurok.ru/files/visual-basic-praktichieskaia-rabota-rieshieniie-kv.html

    Решение квадратного уравнения

    05.12.2017, 19:44. Показов 33621. Ответов 4


    Студворк — интернет-сервис помощи студентам

    Составьте программу на языке VBA для решения
    квадратного уравнения
    a *x^2 +b*x + =0
    Программа должна проверять
    правильность исходных данных и в случае, когда коэффициент при второй
    степени неизвестного равен нулю, выводить соответствующее сообщение.

    Исходные данные:
    1. a=1, b=2, c=1
    2. a=1, b=0,5, c=–0,5
    3. a=1, b=1, c=3
    4. a=0, b=1, c=0,13
    5. a=0, b=0, c=5
    Результат:
    1. x1,2=–1
    2. x1=–1, x2=0,5
    3. Нет действительных корней
    4. x=–0,13
    5. Неверные исходные данные



    0



    Простейшие макросы

     Программирование в VBA ничем принципиально не отличается от большинства других языков программирования, если не использовать визуальные средства.

    Язык программирования Бейсик, вернее, один из его диалектов или версий является частью VBA.

    Когда вы программируете на VBA, то можете, также как и в Бейсик, вообще не описывать предварительно переменные, используемые в программе, чего Вы не можете сделать, например, в Паскале.

    VBA – это разновидность VB для приложений. VBA встроен в Application Word, Excel, Power Point, Access.

    Для каждого приложения есть свои нюансы VBA.

    С помощью VBA приложения можно связывать между собой, вызывая в одной программе разные приложения и передавая данные между ними.

    Такой процесс называется Автоматизацией. То приложение, откуда данные берутся, выступает в роли сервера, а то приложение, куда данные вставляются, играет роль клиента.

    Лучше всего для сервера подходит Excel, а для клиента – Word.

    Переменные, описанные с помощью оператора Dim, являются локальными, и действуют лишь внутри объявляемого модуля.

    Переменные, объявленные как Public, действуют во всех программных модулях и доступны из любого модуля.

    Значения Public не надо передавать другим модулям, так как они всегда доступны по их имени. Локальные переменные можно передавать другим модулям при их вызове.

    Если вы работаете в Excel, то есть одна тонкость при обработке вещественных (с десятичной точкой) чисел.

    Чаще всего на листе Excel числа набираются через запятую, а VBA такие числа воспринимает через точку. Поэтому десятичные числа лучше с листа считывать в символьные переменные, а затем программным способом менять запятую на точку. Тогда ошибок не будет наверняка.

    Если Вы  хотите, чтобы в VBA нельзя было использовать не объявленные переменные, как в Паскале, то надо перед программой поставить режим Explicit в виде команды Option Explicit.

    Давайте рассмотрим простейшую программу по решению квадратных уравнений с использованием алгоритма, известного из школы.

    Эту задачу средствами VBA в EXCEL можно решить минимум тремя или четырьмя способами.

    Первый способ использует ввод и вывод данных на самом листе Excel.

     Sub koren1()

    Dim a As Integer

    Dim b As Integer

    Dim c As Integer

    Dim d As Integer

    Dim x1 As Integer

    Dim x2 As Integer

    ‘ Тип данных можно сделать Long для больших целых чисел

    ‘ или Double для вещественных чисел

    ‘ или Variant для чисел любого типа

    ‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

    ‘ читаем значения чисел в переменные

    i = 2 ‘Задаем номер строки

    a = Cells(i, 1)

    b = Cells(i, 2)

    c = Cells(i, 3)

    d = b * b – 4 * a * c ‘Вычисляем дискриминант

    ‘Выводим его значение в строку 2, столбец 4

    Cells(i, 4) = d

    ‘Применяем условие для решения квадратных уравнений

    If d >= 0 Then

    MsgBox “Решение есть”

    x1 = (-b – Sqr(d)) / (2 * a)

    x2 = (-b + Sqr(d)) / (2 * a)

    Cells(i, 5) = x1

    Cells(i, 6) = x2

    Else

    MsgBox “Решений нет”

    End If

    End Sub

    Решим задачу вторым способом, задавая сами значения непосредственно в программе.

    Sub koren2()

    Dim a As Integer

    Dim b As Integer

    Dim c As Integer

    Dim d As Integer

    Dim x1 As Integer

    Dim x2 As Integer

    ‘ Тип данных можно сделать Long для больших целых чисел

    ‘ или Double для вещественных чисел

    ‘ или Variant для чисел любого типа

    ‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

    ‘ Заносим значения чисел в переменные

    a = 1

    b = 2

    c = -35

    MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c)

    d = b * b – 4 * a * c ‘Вычисляем дискриминант

    ‘Выводим его значение в строку 2, столбец 4

    MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c) + vbCr + _

    Дискриминант D=B*B-4*A*C= + CStr(d)

    ‘Обращаю внмание на вывод нестроковых значений в операторе Msgbox

    ‘ Значение надо преобразовать в строковый тип данных

    ‘Применяем условие для решения квадратных уравнений

    If d >= 0 Then

    MsgBox “Решение есть”

    x1 = (-b – Sqr(d)) / (2 * a)

    x2 = (-b + Sqr(d)) / (2 * a)

    MsgBox “Корень x1=” + CStr(x1) + vbCr + “Корень x2=” + CStr(x2)

    Else

    MsgBox “Решений нет”

    End If

    End Sub

    Решим задачу 3-м способом, получая значения путем их ввода в интерактивном режиме непосредственно в программу.

    Sub koren3()

    Dim a As Integer

    Dim b As Integer

    Dim c As Integer

    Dim d As Integer

    Dim x1 As Integer

    Dim x2 As Integer

    Dim a1 As String

    ‘ Тип данных можно сделать Long для больших целых чисел

    ‘ или Double для вещественных чисел

    ‘ или Variant для чисел любого типа

    ‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

    ‘ Вводим значения в переменные

    a1 = InputBox(“Введите значение коэф.А”, “Ввод коэффициента”, 1)

    a = Val(a1)

    a1 = InputBox(“Введите значение коэф.B”, “Ввод коэффициента”, 2)

    b = Val(a1)

    a1 = InputBox(“Введите значение коэф.C”, “Ввод коэффициента”, -35)

    c = Val(a1)

    If a = 0 Then MsgBox “Уравнение имеет одно решение”

    ‘MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c)

    d = b * b – 4 * a * c ‘Вычисляем дискриминант

    ‘Выводим его значение в строку 2, столбец 4

    MsgBox “Коэф. A=” + CStr(a) + vbCr + “Коэф. B=” + CStr(b) + vbCr + “Коэф. C=” + CStr(c) + vbCr + _

    Дискриминант D=B*B-4*A*C= + CStr(d)

    ‘Обращаю внмание на вывод нестроковых значений в операторе Msgbox

    ‘ Значение надо преобразовать в строковый тип данных

    ‘Применяем условие для решения квадратных уравнений

    If d >= 0 Then

    MsgBox “Решение есть”

    x1 = (-b – Sqr(d)) / (2 * a)

    x2 = (-b + Sqr(d)) / (2 * a)

    MsgBox “Корень x1=” + CStr(x1) + vbCr + “Корень x2=” + CStr(x2)

    Else

    MsgBox “Решений нет”

    End If

    End Sub

    Решим задачу 4-м способом, получая значения путем их ввода в форму пользователя непосредственно в программе.

    Создаем форму  пользователя Userform1

    В форме располагаем несколько меток и текстовых окон, а также две командные кнопки.

    По каждой кнопке вызывается исполняемый модуль

    Текстовые окна имеют имена Koef_A, Koef_B, Koef_C, Disk_D, Koren_x1 и Koren_x2

    Командные кнопки имеют имена cmdRun и cmdExit.

    Private Sub cmdExit_Click()

    UserForm1.Hide

    End Sub

    Private Sub CmdRun_Click()

    Dim a As Double

    Dim b As Double

    Dim c As Double

    Dim d As Double

    Dim x1 As Double

    Dim x2 As Double

    Dim a1 As Double

    UserForm1.Disk_D = “”

    UserForm1.Koren_x1 = “”

    UserForm1.Koren_x2 = “”

    ‘ Тип данных можно сделать Long для больших целых чисел

    ‘ или Double для вещественных чисел

    ‘ или Variant для чисел любого типа

    ‘ Изменяя тип переменных, можно решать задачу в разных диапазонах данных

    ‘ Вводим значения в переменные

    If Trim(UserForm1.Koef_A) = “” Or Trim(UserForm1.Koef_B) = “” Or Trim(UserForm1.Koef_C) = “” Then

    MsgBox “Введите значения коэффициентов”

    Exit Sub

    End If

    a = UserForm1.Koef_A

    b = UserForm1.Koef_B

    c = UserForm1.Koef_C

    If a = 0 Then MsgBox “Уравнение имеет одно решение”

    d = b * b – 4 * a * c ‘Вычисляем дискриминант

    ‘Выводим его значение в строку 2, столбец 4

    UserForm1.Disk_D = UserForm1.Koef_B + “*” + UserForm1.Koef_B + “-” + _

    4* + UserForm1.Koef_A + ” *” + UserForm1.Koef_C + “=” + CStr(d)

    ‘Обращаю внмание на вывод нестроковых значений в операторе Msgbox

    ‘ Значение надо преобразовать в строковый тип данных

    ‘Применяем условие для решения квадратных уравнений

    If d >= 0 Then

    ‘MsgBox “Решение есть”

    x1 = (-b – Sqr(d)) / (2 * a)

    x2 = (-b + Sqr(d)) / (2 * a)

    UserForm1.Koren_x1 = x1

    UserForm1.Koren_x2 = x2

    Else

    MsgBox “Решений нет”

    End If

    End Sub

    Текст этой записи Простейшие макросы.doc

    Файл Excel. содержащий рассмотренные примеры

     Перейти на запись об основах VBA

    Перейти в рубрику Обучение с примерами макросов в Excel

    {quote}{login=Baklanoff}{date=19.09.2012 12:55}{thema=}{post}Хм… ошибка в коде заключается в том, что переменные взяты в кавычки. Например:  
    y = «Есть два иррациональных корня х1= » + al + «+ i » + be + «, x2 = » + al + «- i » + be  
    al — если это переменная должна стоять вне кавычек, вот только если это переменная то, где вы ее вычисляете? У вас вычисляется al1 , но не al.  
    Далее, если перить формуле на листе «З1 Л1», то в случае когда b ^ 2 — 4 * a * c < 0 нужно выводить результат «Нет действительных корней», а вы выводите «Есть два иррациональных корня». Приведите, пожалуйста, пример в порядок, а то сложно понять, какой результат нужен.{/post}{/quote}  
    Переменные я исправила давно. Требования вывод именно иррациональных корней. (Матфак)  

      Вот код исправленный  
    Sub Res()  
    ‘ Res Ìàêðîñ  
    ‘ Ðåøåíèå êâàäðàòíîãî óðàâíåíèÿ  
    Dim y As String  
    Dim ax, bx, dx, al, be, a, b, c As Single  
    a = Cells(3, 2).Value  
    b = Cells(4, 2).Value  
    c = Cells(5, 2).Value  
    If b ^ 2 — 4 * a * c < 0 Then  
    al = -b / (2 * a)  
    be = Sqr(-b ^ 2 + 4 * a * c) / (2 * a)  
    y = «Åñòü äâà èððàöèîíàëüíûõ êîðíÿ õ1= » & al & «+ i » & be & «, x2 = » & al & «- i » & be  
    ElseIf b ^ 2 — 4 * a * B5 = 0 Then  
    ax = (-b + Sqr(b ^ 2 — 4 * a * c)) / (2 * a)  
    y = «Åñòü îäèí êîðåíü õ =» & ax  
    Else  
    ax = (-b + Sqr(b ^ 2 — 4 * a * c)) / (2 * a)  
    bx = (-b — Sqr(b ^ 2 — 4 * a * c)) / (2 * a)  
    y = «Åñòü äâà êîðíÿ õ1= » & ax & «, x2 = » & bx  
    End If  
    Range(«B6»).Select  
    ActiveCell.FormulaR1C1 = y  

      End Sub  

      Все работает. спасибо за помощь

    Понравилась статья? Поделить с друзьями:
  • Квадратное уравнение microsoft excel
  • Квадратное отклонение в excel
  • Квадратная скобка в документе word
  • Квадратичный тренд в excel это
  • Квадратичный корень в excel