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:
x1=-b/2a + (sqrt (b^2-4ac))/2a y x2=-b/2a - (sqrt (b^2-4ac))/2a
programa
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main ()
{
float x1, x2;
double a, b, c, dis, r1, r2;
cout<<"Este programa calcula raices de una\n";
cout<<"ecuacion cuadratica de la forma:\n";
cout<<" 2\n";
cout<<" ax + bx + c = 0\n\n";
cout<<"introduzca los valores para a, b y c: ";
cin>>a;
cin>>b;
cin>>c;
if (a==0.0 && b==0.0)
{
cout<<"La ecuacion es degenerada, no tiene raices.\n";
}
else
{
if (a==0.0)
{
cout<<"La ecuacion tiene raiz unica x = "<< -c/b <<endl;
}
else
{
dis=pow(b,2.0)-4*a*c;
if (dis>0)
{
dis=sqrt(dis);
r1=(-b+dis)/(2*a);
r2=(-b-dis)/(2*a);
cout<<"Las raices reales son "<<r1<<" y "<<r2<<endl;
}
else
{
if(dis<0.0)
{
x1=(-b/2*a)+((sqrt(-(b*b-4*a*c))/2*a));
x2=(-b/2*a)-((sqrt(-(b*b-4*a*c))/2*a));
cout<<"Las dos raices son imaginarias y son: X1= ";
cout<<x1<<" y X2= "<<x2<<endl;
}
else
{
cout<<"Las dos raices son iguales a: "<<-b/(2*a)<<endl;
}
}
}
}
getch ();
}
Tarea 2
La multiplicación rusa se realiza un tanto diferente a la que nosotros estamos acostumbrados. Para multiplicar dos números (multiplicador y multiplicando) se realiza el siguiente proceso:
Se multiplica repetidamente x 2 el multiplicando y al mismo tiempo se divide entre 2 el multiplicador hasta que el multiplicador tome el valor 1. Luego se suman todos los multiplicandos correspondientes a los multiplicadores impares. Dicha suma es el resultado del producto de los dos números, por ejemplo:
Número 1: 37
Número 2: 12
Los números que se sumaron son 12, 48 y 384, por lo tanto el resultado de la multiplicación es 444.
programa
#include <conio.h>
#include <iostream.h>
void main ()
{
int sum,numero1,numero2;
sum=0;
cout<<"Numero 1 (multiplicador): ";
cin>>numero1;
cout<<"Numero 2 (multiplicando): ";
cin>>numero2;
while (numero2!=0)
{
if (numero2%2!=0)
sum=sum+numero1;
numero1=numero1*2;
numero2=numero2/2;
}
cout<<"RESULTADO: "<<sum;
getch();
}
Tarea 3
Escriba un programa que lea un entero y un caracter la salida debe ser un rombo dibujado con el carácter dado y de anchura máxima por el entero leido.
El programa debe repetir el proceso hasta que la anchura sea 0.
El programa debe repetir el proceso hasta que la anchura sea 0.
Programa
#include <iostream.h>
#include <conio.h.>
#include <iomanip.h>
void main()
{
int t, num, z;
char car;
cout <<"Anchura del rombo ";
cin>>num;
cout<<"seleccione un caracter: ";
cin>>car;
cout<<" "<<endl;
cout<<" "<<endl;
for(t=0;t<num;t++)
{
cout<<setw(num-t)<<car;
for(z=num-t;z<num;z++)
{
cout<<setw(2)<<car;
}
cout<<endl;
}
for(t=num-2;t>0;t--)
{
cout<<setw(num-t)<<car;
for(z=num-t;z<num;z=z+1)
{
cout<<setw(2)<<car;
}
cout<<endl;
}
cout<<setw(num-t)<<car;
getch();
}
No hay comentarios:
Publicar un comentario