Código de Pseudocódigo/Diagramas de Flujo - => Calculo de las raices de una Ecuación de segundo grado

Requerimientos

Para ejecutar este codigo use el PseudoInterprete PSEINT http://pseint.sourceforge.net

1.0.1

Publicado el 16 de Octubre del 2014gráfica de visualizaciones de la versión: 1.0.1
9.436 visualizaciones desde el 16 de Octubre del 2014
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Una ecuación de segundo grado O ecuación cuadrática de una variable es una ecuación que tiene la forma de una suma algebraica de términos cuyo grado máximo es dos, es decir, una ecuación cuadrática puede ser representada por un polinomio de segundo grado o polinomio cuadrático. La expresión canónica general de una ecuación cuadrática de una variable es: a*X^2+b*X+c=0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
Proceso Calculo_de_las_raices_de_una_Ecuación_de_segundo_grado
	// versión 1.0.1 ultima edicion 17/Oct/2014 
	// By Jaimeza www.jaimeza.org
	// Para ejecutar este codigo use PSEINT http://pseint.sourceforge.net
	Limpiar Pantalla
	Definir coeficiente1_a, coeficiente2_b, coeficiente3_c Como Reales; // Definición de identificadores (coeficientes) 
    Definir raiz1, raiz1ParteReal, raiz1ParteImag, raiz2, raizMayor, discriminante Como Reales; // Para organizar las raices
	Definir banderaDiscriminante Como entero;
 
	Imprimir "Calculo de las raices de una Ecuación de segundo grado = a*X^2+b*X^1+c*X^0=0 == a*X^2+b*X+c=0";
	// Mas info: http://es.wikipedia.org/wiki/Ecuaci%C3%B3n_de_segundo_grado
 
	// Informacion de entrada
	Imprimir "";
	Imprimir "a es un coeficiente cuadrático";
	Imprimir "b es el coeficiente lineal";
	Imprimir "c es el coeficiente o término independiente";
	Imprimir "";
 
	// Entrada de datos
	Imprimir "Entre el valor del coeficiente a: ",sin bajar;
	Leer coeficiente1_a;
	Imprimir "Entre el valor del coeficiente b: ",sin bajar;
	Leer coeficiente2_b;
	Imprimir "Entre el valor del coeficiente c: ",sin bajar;
	Leer coeficiente3_c; // Leer ">", coeficiente3_c;
 
	// Impresion de los datos de entrada
	Imprimir "";
	Imprimir "Los coeficientes son a = ",coeficiente1_a,", b = ",coeficiente2_b,", c = ",coeficiente3_c;
 
	// Chequeo de argumentos de entrada
	Si coeficiente1_a = 0 Entonces
		Si coeficiente2_b = 0 Entonces
			Si coeficiente3_c = 0 Entonces
				Escribir "No hay ecuación, la expresion entrada es el numero cero => 0=0";
			Sino // el coeficiente3 no es cero
				Escribir "Contradiccion, la expresion entrada es un numero => ", coeficiente3_c, " = 0";
			FinSi
		Sino // el coeficiente2 no es cero
			Escribir "Se reduce a una ecuación lineal";
			Escribir "Solucion: x = ", -c/b;
		FinSi
	Sino
 
		// Impresion "bonita" del polinomio 
		Imprimir "";
		Imprimir "El polinomio es: P(x) = " ,sin bajar;
		Si coeficiente1_a <> 1 Entonces
			Si coeficiente2_b <> -1 Entonces
				Imprimir coeficiente1_a,"*",sin bajar;
			Sino
				Imprimir "-",sin bajar;
			FinSi
		Fin Si
		Imprimir "X^2",sin bajar;
 
		Si coeficiente2_b >= 0 Entonces
			Imprimir "+",sin bajar;
		FinSi
		Si coeficiente2_b <> 1 Entonces
			Si coeficiente2_b <> -1 Entonces
				Imprimir coeficiente2_b,"*",sin bajar;
			Sino
				Imprimir "-",sin bajar;
			FinSi
		FinSi
		Imprimir "X",sin bajar;
 
		Si coeficiente3_c >= 0 Entonces
			Imprimir "+",coeficiente3_c;
		Sino
			Imprimir coeficiente3_c;
		FinSi
 
		// Calculos
		discriminante = coeficiente2_b^2 - 4.0*coeficiente1_a*coeficiente3_c;
		Imprimir "";
		Escribir "Es valor del discriminante es: b^2 -4*a*c = ",discriminante;
 
		// informacion de las raices
		Si discriminante == 0 Entonces
			Escribir "";
			Escribir "Como el discriminante es 0 entonces hay 1 solucion en los numeros reales, con multiplicidad 2 (la parábola sólo toca en un punto al eje de las abscisas X)";
			banderaDiscriminante := 0;
		Sino
			Si discriminante <= 0 Entonces
				Escribir "";
				Escribir "Como el discriminante es negativo entonces hay 2 soluciones en los numeros complejos, (un complejo y su conjugado) (la parábola no corta al eje de las abscisas X)";
				banderaDiscriminante := 2;
			Sino // discriminante >=0
				Escribir "";
				Escribir "Como el discriminante es positivo entonces hay 2 soluciones de numeros reales y diferentes (la parábola cruza dos veces el eje de las abscisas X)";
				banderaDiscriminante := 1;
			FinSi
		FinSi
 
		// calculo de las raices
		Segun banderaDiscriminante Hacer
			2:
				Escribir ""
				raiz1ParteReal := -coeficiente2_b / ( 2*coeficiente1_a );
				raiz1ParteImag := raiz(-discriminante) / ( 2*coeficiente1_a );
 
				Escribir "Primera raiz: ",raiz1ParteReal,"+",raiz1ParteImag,"*i";
				Escribir "Segunda raiz: ",raiz1ParteReal,"-",raiz1ParteImag,"*i";
				Escribir "Factorizar(P(X),X): ( x + ", -raiz1ParteReal,"-",raiz1ParteImag,"*i ) * ( x + ",-raiz1ParteReal,"+",raiz1ParteImag,"*i)";
			0:
				Escribir ""
				raiz1 := -coeficiente2_b / ( 2*coeficiente1_a );
				raiz2 := raiz1; // Raiz 1 == Raiz 2 (multiplicidad)
				Escribir "raiz 1: ",raiz1;
				Escribir "raiz 2: ",raiz2;
				Escribir "Factorizar(P(X),X): ( X",(-raiz1)," )*( X",(-raiz2)," )";
			1:
				Escribir ""
				raiz1 := ( -coeficiente2_b + raiz(discriminante) ) / ( 2*coeficiente1_a );
				raiz2 := ( -coeficiente2_b - raiz(discriminante) ) / ( 2*coeficiente1_a );
 
				// Ordenando raices de menor a mayor para una mejor impresion
				Si raiz1 >= raiz2 Entonces
					raizMayor := raiz1;
					raiz1 = raiz2;
					raiz2 = raizMayor;
				FinSi
				Escribir "Primera raiz: ",raiz1;
				Escribir "Segunda raiz: ",raiz2;
 
				Escribir ""
				Escribir "Factorizar(P(X),X): ( X",(-raiz1)," )*( X",(-raiz2)," )";
			//De Otro Modo:
 
		FinSegun
 
    FinSi
 
FinProceso
 
// Ejemplos para probar los tres casos
// ejp1: 1*X^2 +2*X +3 raices { -1 +1.4142*i, -1 -1.4142*i }
// ejp2: 1*X^2 -11.6*X +33.64 raices { 5.8, 5.8 } // determinante cero
// ejp3: 1*X^2 -5*X +6 raices { 2, 3 } // determinante mayor que cero
// ejp4: -5*X^2 +6*X +9 raices { -.86969384567, 2.06969384567 }



Comentarios sobre la versión: 1.0.1 (0)


No hay comentarios
 

Comentar la versión: 1.0.1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s2799