Tarea No. 1
Modifique el programa 4.9 para que las raíces imaginarias sean calculadas y desplegadas cuando el discriminante sea negativo. En este caso las dos raíces de la ecuación son:
X= (-b/2a)+((sqrt[-(b^2 – 4ac)]/2a) i
X=(-b/2a)-((sqrt[-(b^2 – 4ac)]/2a) i
Donde I es el símbolo del número imaginario para la raíz cuadrada de -1.
Solucion del Problema Original
a, b, c, disc, raiz1, raiz2 reales
print "Este programa calcula las raices de una"
print "ecuacion cuadratica de la forma "
print "2"
print "ax+bx+c=0"
print "Porfavor introdusca valores para a, b, y c: "
leer a, b, c;
if(a==0.0&&b==0.0)
print"La ecuacion es deganerada y no tiene raices"
else if(a==0.0)
print "La ecuacion tiene la raiz unica X = ", -c/b
else
{
disc=pow(b,2.0) -4*a*c
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
print "Las dos raices reales son", raiz1 " y ", raiz2
}
else if(disc<0.0)
print "Ambas raices son imaginarias"
else
print "Ambas raices son iguales a ", -b/(2*a)
fin.
print "Este programa calcula las raices de una"
print "ecuacion cuadratica de la forma "
print "2"
print "ax+bx+c=0"
print "Porfavor introdusca valores para a, b, y c: "
leer a, b, c;
if(a==0.0&&b==0.0)
print"La ecuacion es deganerada y no tiene raices"
else if(a==0.0)
print "La ecuacion tiene la raiz unica X = ", -c/b
else
{
disc=pow(b,2.0) -4*a*c
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
print "Las dos raices reales son", raiz1 " y ", raiz2
}
else if(disc<0.0)
print "Ambas raices son imaginarias"
else
print "Ambas raices son iguales a ", -b/(2*a)
fin.
double a, b, c, disc, raiz1, raiz2, x1, xa, xb, xc;
print "Este programa calcula las raices de una"
print " ecuacion cuadratica de la forma "
print " 2";
print " ax+bx+c=0"
print "Porfavor introdusca valores para a, b, y c: "
leer a , b , c;
if(a==0.0&&b==0.0)
print "La ecuacion es deganerada y no tiene raices"
else if(a==0.0)
print " La ecuacion tiene la raiz unica X = ", -c/b
else
{
disc=pow(b,2.0) -4*a*c; //Calcula el discriminante
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
print ""Las dos raices reales son ", raiz1, " y ", raiz2
}
else if(disc<0.0)
{
print "Ambas raices son imaginarias"
x1=pow(b,2.0) -4*a*c;
}
if(x1<=0)
{
xc=(-1)*(x1);
xa=((-b)-(sqrt(xc)))/(2.0*a);
xb=((-b)+(sqrt(xc)))/(2.0*a);
print "Y su resultado es "xa"i", " y ", xb"i"
}
else
{
print "Ambas raices son iguales a "-b/(2*a)
fin.
Codigo de Programacion en C++ (Programa Original)
#include <iostream.h>
#include <conio.h>
#include <math.h>
//Este programa encuentra las raices de una ecuacion cuadratica
int main()
{
double a, b, c, disc, raiz1, raiz2;
cout<<"Este programa calcula las raices de una\n";
cout<<" ecuacion cuadratica de la forma \n";
cout<<" 2\n";
cout<<" ax+bx+c=0\n\n";
cout<<"Porfavor introdusca valores para a, b, y c: ";
cin>> a >> b >> c;
if(a==0.0&&b==0.0)
cout<<"La ecuacion es deganerada y no tiene raices.\n";
else if(a==0.0)
cout<<" La ecuacion tiene la raiz unica X = "<<-c/b<<endl;
else
{
disc=pow(b,2.0) -4*a*c; //Calcula el discriminante
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
cout<< "Las dos raices reales son"<<raiz1<<" y "<<raiz2<<endl;
}
else if(disc<0.0)
cout<<"Ambas raices son imaginarias.\n";
else
cout<<"Ambas raices son iguales a "<<-b/(2*a)<<endl;
}
getch();
}
#include <conio.h>
#include <math.h>
//Este programa encuentra las raices de una ecuacion cuadratica
int main()
{
double a, b, c, disc, raiz1, raiz2;
cout<<"Este programa calcula las raices de una\n";
cout<<" ecuacion cuadratica de la forma \n";
cout<<" 2\n";
cout<<" ax+bx+c=0\n\n";
cout<<"Porfavor introdusca valores para a, b, y c: ";
cin>> a >> b >> c;
if(a==0.0&&b==0.0)
cout<<"La ecuacion es deganerada y no tiene raices.\n";
else if(a==0.0)
cout<<" La ecuacion tiene la raiz unica X = "<<-c/b<<endl;
else
{
disc=pow(b,2.0) -4*a*c; //Calcula el discriminante
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
cout<< "Las dos raices reales son"<<raiz1<<" y "<<raiz2<<endl;
}
else if(disc<0.0)
cout<<"Ambas raices son imaginarias.\n";
else
cout<<"Ambas raices son iguales a "<<-b/(2*a)<<endl;
}
getch();
}
Programa Ejecutado en C++ (Original)
Codigo de Programacion en C++ (Programa Modificado)
#include <iostream.h>
#include <conio.h>
#include <math.h>
//Este programa encuentr las raices de una ecuacion cuadratica
int main()
{
float a, b, c, disc, raiz1, raiz2, x1, xa, xb, xc;
cout<<"Este programa calcula las raices de una\n";
cout<<" ecuacion cuadratica de la forma \n";
cout<<" 2\n";
cout<<" ax+bx+c=0\n\n";
cout<<"Porfavor introdusca valores para a, b, y c: ";
cin>> a >> b >> c;
if(a==0.0&&b==0.0)
cout<<"La ecuacion es deganerada y no tiene raices.\n";
else if(a==0.0)
cout<<" La ecuacion tiene la raiz unica X = "<<-c/b<<endl;
else
{
disc=pow(b,2.0) -4*a*c; //Calcula el discriminante
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
cout<< "Las dos raices reales son "<<raiz1<<" y "<<raiz2<<endl;
}
else if(disc<0.0)
{
cout<<"Ambas raices son imaginarias.\n";
x1=pow(b,2.0) -4*a*c;
}
if(x1<=0)
{
xc=(-1)*(x1);
xa=((-b)-(sqrt(xc)))/(2.0*a);
xb=((-b)+(sqrt(xc)))/(2.0*a);
cout<<"Y su resultado es "<<xa<<"i"<<" y "<<xb<<"i";
}
else if(disc==0)
{
cout<<"Ambas raices son iguales a "<<-b/(2*a)<<endl;
}
}
getch();
}
#include <conio.h>
#include <math.h>
//Este programa encuentr las raices de una ecuacion cuadratica
int main()
{
float a, b, c, disc, raiz1, raiz2, x1, xa, xb, xc;
cout<<"Este programa calcula las raices de una\n";
cout<<" ecuacion cuadratica de la forma \n";
cout<<" 2\n";
cout<<" ax+bx+c=0\n\n";
cout<<"Porfavor introdusca valores para a, b, y c: ";
cin>> a >> b >> c;
if(a==0.0&&b==0.0)
cout<<"La ecuacion es deganerada y no tiene raices.\n";
else if(a==0.0)
cout<<" La ecuacion tiene la raiz unica X = "<<-c/b<<endl;
else
{
disc=pow(b,2.0) -4*a*c; //Calcula el discriminante
if(disc>0.0)
{
disc=sqrt(disc);
raiz1=(-b+disc)/(2*a);
raiz2=(-b-disc)/(2*a);
cout<< "Las dos raices reales son "<<raiz1<<" y "<<raiz2<<endl;
}
else if(disc<0.0)
{
cout<<"Ambas raices son imaginarias.\n";
x1=pow(b,2.0) -4*a*c;
}
if(x1<=0)
{
xc=(-1)*(x1);
xa=((-b)-(sqrt(xc)))/(2.0*a);
xb=((-b)+(sqrt(xc)))/(2.0*a);
cout<<"Y su resultado es "<<xa<<"i"<<" y "<<xb<<"i";
}
else if(disc==0)
{
cout<<"Ambas raices son iguales a "<<-b/(2*a)<<endl;
}
}
getch();
}
Programa Ejecutado en C++ (Programa Modificado)
Tarea No. 2
La multiplicacion rusa se realiza un tanto diferente a lo que nosotros estamos acostumbrados, para multiplicados numero multiplicador por multiplicando se realiza el siguiente proceso: se multiplica repetidamente por 2 el multiplicando y al mismo tiempo se divide entre 2 el multiplicador hasta que el multiplicador tome el valor de 1, luego se suman todos los multiplicandos correspondientes a todos los numeros multiplicadores impares. Dicha suma es el resultado del producto de los dos numeros.
Tarea No. 3
Escriba un programa que lea un numero entero y un carácter. La salida debe ser un rombo dibujado con el carácter dado y de anchura máxima dada por el entero leido. El programa debe repetir el proceso, hasta que la anchura sea 0. Ej. 8*
Codigo de Programacion
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main ()
{
int a,cont,contador;
char caracter;
cout<<"ancho del rombo=?"<<endl;
cin>>a;
cout<<"caracter=?"<<endl;
cin>>caracter;
for (cont=a;cont>=1;cont--)
{
cout.setf(ios::fixed);
cout<<setw(cont);
contador=cont;
while (contador<=a)
{
cout<<" "<<caracter;
contador=contador+1;
}
cout<<endl;
}
for (cont=1;cont<=a;cont++)
{
cout.setf(ios::fixed);
cout<<setw(cont+1);
contador=cont;
while (contador<a)
{
cout<<" "<<caracter;
contador=contador+1;
}
cout<<endl;
}
getch ();
}
Programa Ejecutado




