Anda di halaman 1dari 11

ECUACIONES DE 2 GRADO:

Una ecuacin de segundo grado es una expresin de la forma ax + bx + c = 0 donde a,b,c son
nmeros reales conocidos llamados coeficientes, y x es la incgnita, el valor desconocido.
Resolver una ecuacin de segundo grado es encontrar el valor o valores de x, que hacen que la
igualdad sea cierta. A esos valores les llamamos soluciones.
Recordars que la expresin que determina las soluciones de una ecuacin de 2 grado es

Llamamos discriminante al valor


Y la raz del discriminante ser

Una ecuacin de 2 grado tiene soluciones reales siempre y cuando el valor del
discriminante sea positivo o igual a cero.
En esta prctica pretendemos realizar una hoja de clculo que resuelva ecuaciones de 2 grado con
soluciones reales. Para que te hagas una idea, te mostramos a modo de ejemplo, en la figura 1, el
resultado de la prctica:

PRCTICA 5: RESOLVER ECUACIONES DE 2 GRADO.


Crea un archivo de hoja de calculo Microsoft Excel en Tu carpeta llamado Ecuaciones de 2
grado.

Comenzamos el ejercicio escribiendo todo el texto que nos aparecer en esta nueva hoja de
clculo:
1. En la celda C1 escribe: Resolucin de ecuaciones de 2 grado . La alineacin en esta celda es
centrada.
2. En la celda B3 se escribe: ax + bx + c = 0.
Nota:
Para escribir el exponente de la x utilizamos el cdigo ASCII que se utiliza para escribir caracteres
que no estn en el teclado. Para escribir el cuadrado de la x mientras se mantiene presionada la
tecla Alt en el teclado numrico (a la derecha) pulsamos las teclas que contienen los nmeros 253.

3. En la celda B5escribe: Introduccin de valores.


4. En la celda B7 escribe: En la celda C7 introduce el valor de a
5. En la celda B8: En la celda C8 introduce el valor de b
6. En la celda B9: En la celda C9 introduce el valor de c
7. En la celda B11: Discriminante
8. En la celda B12: Raz discriminante
9. En la celda B14: Soluciones:
10. En la celda B15: 1 solucin:
11. En la celda B16: 2 solucin:
12. En la celda C3 escribe: Las soluciones de la ecuacin vienen dadas por la frmula:
13. Selecciona las columnas B y C; y en el men Formato elige Columna Autoajustar a la
seleccin.

Ahora que ya has escrito el texto correspondiente a esta hoja de clculo, indicamos a
continuacin como has de introducir las frmulas necesarias para completar esta prctica.

En la celda D11 se ha de introducir la frmula que calcule el discriminante.


Como la pretensin es que esta hoja de clculo sirva para resolver cualquier ecuacin de 2 grado
con soluciones reales, hemos de operar con contenidos de celdas, por ello en lugar de valores en las
frmulas aparecern referencias a celdas.
Nota:
No te preocupes si el resultado de la frmula son mensajes de error, pues todava no hemos
introducido datos.
No obstante, si el discriminante es negativo, la raz del discriminante siempre ser un valor de error,
pues como sabes las races de nmeros negativos no son valores reales.

1. Para que calcule el discriminante escribiremos en la celda D11 lo siguiente: =C8^2-4*C7*C9


2. Observa que dato de la ecuacin corresponde a cada una de las referencias del celda que
aparecen en la frmula anterior.
3. En la celda D12 escribe la expresin (o inserta la funcin) que calcule la raz del discriminante,
esto es =Raiz(D11)
En la celda C15 se escribe la expresin que da lugar a una de las soluciones de la ecuacin de 2
grado. Recuerda que la raz del discriminante se ha calculado en la celda D11, por tanto
4. En la celda C15 escribe:
=(-C8+D12)/(2*C7)
5. En la celda C16 escribimos la expresin que da lugar a la segunda solucin de la ecuacin:
=(-C8-D12)/(2*C7)
6. Observa que dato corresponde a cada una de las referencias del celda que aparecen en la
frmula anterior

Vamos a utilizar una de las funciones lgicas que posee Excel para que la hoja de clculo nos
informe segn el signo del discriminante, si la ecuacin posee o no soluciones:

La funcin que vamos a utilizar es la funcin SI que ya conoces, de la unidad 8. Para saber ms
sobre esta funcin recuerda que puedes consultar la Ayuda de Microsoft Excel.
1. En la celda E11 escribe todo seguido, respetando los parntesis, los puntos y comas, y las
comillas lo que a continuacin indicamos:
=SI(D11<0;"El discriminante es negativo";SI(D11=0;"El discriminante es cero";"El discriminante es
positivo"))

2. En la celda D15 escribe:


=Si(D11<0;"La ecuacin no tiene soluciones reales";Si(D11=0;"La ecuacin posee una solucin
doble";"La ecuacin posee dos soluciones reales y distintas"))

Todava podemos mejorar nuestra prctica insertando como objetos de dibujo las frmulas,
tal y como estamos acostumbrados a escribirlas. Es decir, el discriminante: , la raz del
discriminante y la expresin que determina las soluciones de la

ecuacin:

Para ello hemos de utilizar la herramienta de Office llamada Editor de ecuaciones. A continuacin
iremos detallando los pasos.
1. Sitate en la celda C11, y haz clic en el men Insertar, Objeto.
2. En el cuadro de la ventana localiza Microsoft Editor de ecuaciones y haz clic en el
botn Aceptar. En el caso de que no lo tengas contina en el siguiente apartardo. No obstante,
si realizas la prctica 5 llamada Microsoft Editor de ecuaciones, aprenders a instalarlo.
La figura 2 muestra la barra de herramientas del editor de ecuaciones
Ten en cuenta
que para desplazarte por la expresin que ests escribiendo con el editor de ecuaciones se utilizan
las teclas del cursor. Como ejemplo, observa la figura 3.

3. Trata de escribir la expresin en la celda C11

4. Haz lo mismo con las otras dos expresiones en la

celda C12 y en la celda E5.

Puedes mejorar la presentacin de la prctica cambiando las fuentes, los anchos de columna,
bordes, sombreados de celda, etc.

Nos disponemos a resolver ecuaciones de 2 grado. En las celdas C7, C8 y C9 se introducirn


los nmeros correspondientes a los coeficientes a, b y c.
1. Introduce los datos correspondientes a la ecuacin 5x-2x-1=0 y observa los resultados.
2. Del mismo modo, introduce los datos de cada una de las siguientes ecuaciones:
x-2x+1=0; 2x+3x+4=0; x+4x+3=0

Ejercicios ejemplos: operador mod e if then else en


Visual Basic. Par o impar, ecuacin 2 grado...
(CU00324A)
Escrito por Mario R. Rancel
Resumen: Entrega n23 del curso Aprender a programar en Visual Basic desde
cero.

Codificacin aprenderaprogramar.com: CU00324A

EJERCICIO EJEMPLO CON IF THEN ELSE EN VISUAL BASIC

Crear un programa que pida un nmero entero distinto de cero y nos muestre en pantalla un
mensaje indicndonos si el nmero es par o impar.

Nota: El procedimiento a emplear ser basado en el uso del operador Mod.

SOLUCIN

Crearemos un Label de solicitud del nmero, un Textbox de entrada, un Button (Command Button
en las versiones menos recientes de Visual Basic) y un Label para el clculo y el resultado. Le
ponemos los nombres y organizamos los controles en pantalla como nos parezca correcto (no
tiene por qu coincidir con lo que ponemos aqu). Los nombres que hemos empleado nosotros
son: LabelPideNum, TextNentero, ButtonHallar yLabelResultado.

Cdigo (versionesVB menos recientes) Cdigo (versiones VB ms recientes)

REM Curso Visual Basic aprenderaprogramar.com


Rem Curso Visual Basic Option Explicit On
aprenderaprogramar.com
Option Explicit Public Class Form1
Dim Num As Integer
Dim Num As Integer Dim Res As Integer
Dim Res As Integer
Private Sub Form1_Load(ByVal sender As
Private Sub Form_Load() System.Object, ByVal e As System.EventArgs) Handles
Form1.Caption = "Determina naturaleza par o MyBase.Load
impar" Me.Text = "Determina naturaleza par o impar"
ButtonHallar.Caption = "Determinar" ButtonHallar.Text = "Determinar"
LabelPideNum = "Introduzca un n entero" LabelPideNum.Text = "Introduzca un n entero"
End Sub End Sub

Private Sub ButtonHallar_Click() Private Sub ButtonHallar_Click(ByVal sender As


Num = Val(TextNentero) System.Object, ByVal e As System.EventArgs) Handles
Res = Num Mod 2 ButtonHallar.Click
LabelResultado.FontSize = 10 Num = Val(TextNentero.Text)
LabelResultado.FontBold = True Res = Num Mod 2
If Res = 0 Then LabelResultado.Font = New Font("Arial", 10,
LabelResultado = "El nmero es par" FontStyle.Bold)
Else If Res = 0 Then
LabelResultado = "El nmero es impar" LabelResultado.Text = "El nmero es par"
End If Else
End Sub LabelResultado.Text = "El nmero es impar"
End If
End Sub
End Class

Grficamente:
Hemos escrito el If ... Then Else como un bloque en vez de como una nica lnea. El motivo
para ello es que aporta mayor claridad y facilidad de interpretacin.

EJERCICIO ECUACIN DE SEGUNDO GRADO (ECUACIN CUADRTICA)

Crear un programa que resuelva la ecuacin cuadrtica tipo ax 2 + bx + c. El planteamiento del


problema y su solucin en forma de pseudocdigo se pueden encontrar en el curso Bases de la
programacin nivel I de aprenderaprogramar.com, dentro de los ejercicios relacionados con
condicionales. Una vez creado el programa, hay que contrastar su correcto funcionamiento.

SOLUCIN

Usaremos tres Labels para pedir los parmetros a, b y c denominados Labela, Labelb y Labelc, y
tres TextBox para que el usuario introduzca datos (Texta, Textb y Textc) adems de un botn
(ButtonCalcular). Nosotros hemos aadido adems un mensaje de cabecera con un label
(LabelTitulo). Mostraremos primero el cdigo para versiones de Visual Basic ms recientes y
luego para versiones menos recientes. Ten en cuenta que la lgica de los programas es en
ambos casos igual, lo nico que vara son los detalles de la sintaxis.

CDIGO (PARA VERSIONES DE VISUAL BASIC MS RECIENTES)

REM Curso Visual Basic aprenderaprogramar.com


Option Explicit On

Public Class Form1


REM Declaracin de variables
Dim aNumber, bNumber, cNumber, dNumber, eNumber As Single

REM Contenido del formulario


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
Me.Text = "Ecuacin cuadrtica"
ButtonCalcular.Text = "Calcular x"
LabelTtulo.Text = "Parmetros a, b y c para ecuacin tipo a*x^2 + b*x + c = 0"
End Sub

REM Clculo y muestra de resultados


Private Sub ButtonHallar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles ButtonCalcular.Click
LabelResultado.Font = New Font("Arial", 10, FontStyle.Bold)
aNumber = Val(Texta.Text)
bNumber = Val(Textb.Text)
cNumber = Val(Textc.Text)
dNumber = bNumber ^ 2 - 4 * aNumber * cNumber
eNumber = 2 * aNumber

If dNumber = 0 Then
LabelResultado.Text = "x1 = x2 = " & -bNumber / eNumber
Else
If dNumber > 0 Then
LabelResultado.Text = "x1 = " & (-bNumber + Math.Sqrt(dNumber)) / eNumber
LabelResultado.Text = LabelResultado.Text & vbCrLf & "x2 = " & (-bNumber -
Math.Sqrt(dNumber)) / eNumber
Else
LabelResultado.Text = "x1 = " & -bNumber / eNumber & " + " & Math.Sqrt(-dNumber) / eNumber
& " * " & Math.Sqrt(-dNumber) / eNumber & " * i"
End If
End If
End Sub
End Class

Nota: en versiones recientes de Visual Basic algunas letras estn reservadas y no pueden ser
usadas como nombres de variables. Por ejemplo la letra e. De ah que en vez de nombrar a las
variables como a, b, c, d, e las hayamos nombrado aNumber, bNumber, cNumber, dNumber y
eNumber.

CDIGO (PARA VERSIONES DE VISUAL BASIC MENOS RECIENTES)

Rem Curso Visual Basic aprenderaprogramar.com

Option Explicit
Rem Declaracin de variables
Dim a!, b!, c!, d!, e As Single

Rem Contenido del formulario


Private Sub Form_Load()
Form1.Caption = "Ecuacin cuadrtica"
CommandCalcular.Caption = "Calcular x"
LabelTtulo = "Parmetros a, b y c para ecuacin tipo a*x^2 + b*x + c = 0"
Labela.Caption = "Valor parmetro a"
Labelb.Caption = "Valor parmetro b"
Labelc.Caption = "Valor parmetro c"
End Sub

Rem Clculo y muestra de resultados


Private Sub CommandCalcular_Click()
LabelResultado.FontSize = 10
LabelResultado.FontBold = True
a = Val(Texta)
b = Val(Textb)
c = Val(Textc)
d=b^2-4*a*c
e=2*a
If d = 0 Then
LabelResultado = "x1 = x2 = " & - b / e
Else
If d > 0 Then
LabelResultado = "x1 = " & (-b + Sqr(d)) / e
LabelResultado = LabelResultado & vbCrLf & "x2 = " & (-b - Sqr(d)) / e
Else
LabelResultado = "x1 = " & -b / e & " + " & Sqr(-d) / e & " * i"
LabelResultado = LabelResultado & vbCrLf & "x2 = " & -b / e & " - " & Sqr(-d) / e & " * i"
End If
End If
End Sub

COMENTARIOS

El programa (ambas versiones de cdigo) "funciona", si bien tiene sus limitaciones. Prueba a
introducir los siguientes datos: a = 0, b = 3 y c = 1 . Te aparecern resultados extraos (o un
error como "Error 6 en tiempo de ejecucin. Desbordamiento"). El motivo para esos resultados
extraos o errores es que si a = 0 implica que e = 0 y al encontrarnos con una operacin del
tipo (-b + Sqr(d)) / edonde el denominador vale cero... operacin matemtica no permitida!
Esto ocurrir mientras no preparemos el programa para detectar este tipo de situaciones y darles
un tratamiento adecuado, cosa que veremos ms adelante.

Estamos construyendo programas sencillos que en lneas generales responden bien cuando se
dan las circunstancias previstas pero que fallan ante situaciones extraas. Esto no debe
preocuparnos por el momento, ya que a medida que progresemos como programadores iremos
construyendo programas cada vez ms slidos.

Aspecto grfico:
EJEMPLOS CON IF THEN ELSE EN VISUAL BASIC: PARADOJA DEL SI BURLADO POR UN
INTERVALO

Reflexiona sobre el significado y prueba los siguientes cdigos en tu ordenador:

Cdigo 1 (versionesVB menos recientes) Cdigo 1 (versiones VB ms recientes)

REM Curso Visual Basic aprenderaprogramar.com


Rem Curso Visual Basic aprenderaprogramar.com Option Explicit On
Option Explicit Public Class Form1
Dim A% Dim A As Integer

Private Sub Form_Load() Private Sub Form1_Load(ByVal sender As


A = 160 System.Object, ByVal e As System.EventArgs)
If 50 < A < 75 Then Handles MyBase.Load
MsgBox ("Arabia") A = 160
Else If 50 < A < 75 Then
MsgBox ("Eusebio") MsgBox("Arabia")
End If Else
End Sub MsgBox("Eusebio")
End If
End Sub
End Class
Cdigo 2 (versionesVB menos recientes) Cdigo 2 (versiones VB ms recientes)

REM Curso Visual Basic aprenderaprogramar.com


Rem Curso Visual Basic aprenderaprogramar.com Option Explicit On
Option Explicit Public Class Form1
Dim A% Dim A As Integer

Private Sub Form_Load() Private Sub Form1_Load(ByVal sender As


A = 160 System.Object, ByVal e As System.EventArgs)
If A > 50 And A < 75 Then Handles MyBase.Load
MsgBox ("Arabia") A = 160
Else If A > 50 And A < 75 Then
MsgBox ("Eusebio") MsgBox("Arabia")
End If Else
End Sub MsgBox("Eusebio")
End If
End Sub
End Class

Si bien podra esperarse obtener el mismo resultado con ambos cdigos, al ejecutar el cdigo 1
obtenemos como resultado que se muestre en pantalla "Arabia", mientras que al ejecutar el
cdigo 2 se muestra "Eusebio". La razn: Visual Basic no admite comparaciones dobles del tipo x
< y < z. Ante este tipo de escritura, slo es evaluada la primera condicin de las dos
pretendidas. Solucin? No usar comparaciones dobles.

Este resultado inesperado puede ocasionar un buen quebradero de cabeza, ya que en un


programa extenso no ser nada fcil detectar este error. Como remedio, usaremos siempre la
escritura de condiciones una detrs de otra y no de forma mltiple.

Anda mungkin juga menyukai