viernes, 18 de febrero de 2011

TAREAS UNIDAD # 2

TAREA # 1

Por Jesus Gomez Garcia, salon 602 ingenieria en electronica.

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.

Pseudocodigo del programa 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.

Pseudocodigo del programa modificado.

double a, b, c, disc, raiz1, raiz2, x1, xa, xb, x1z;
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)
 {
 x1z=(-1)*(x1);
 xa=((-b)-(sqrt(x1z)))/(2.0*a);
 xb=((-b)+(sqrt(x1z)))/(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 en C++ programa original.

#include<iostream.h>
#include<conio.h>
#include<math.h>
//Este programa encuentr 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 Original.




















Codificacion en C++ Modificado para dar raices imaginarias.

#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, xz;
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)
 {
 xz=(-1)*(x1);
 xa=((-b)-(sqrt(xz)))/(2.0*a);
 xb=((-b)+(sqrt(xz)))/(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.






















-------------------------------------------------------------------------------------------------------------


Tarea # 2



La multiplicación rusa se realiza un tanto diferente a lo que nosotros estamos acostumbrados. Para multiplicar 2 números multiplicador por multiplicando se realiza el siguiente proceso: Se multiplica repetidamente por 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 2 números.

Pseudocodigo.

imp=0, n2, n1 entero
print "Introdusca multiplicador: "
read n1
print "Introdusca multiplicando: "
read n2
while(n1>=1)
 {
 if(n1%2!=0)
   {
   imp=imp+n2
   n1=n1/2
   n2=n2*2
   }
   else
   {
   n1=n1/2
   n2=n2*2
   }
  }
   print "El resultado es: " imp


Codigo en C++

#include<iostream.h>
#include<conio.h>
void main()
{
int imp=0, n2, n1;
cout<<"Introdusca multiplicador: ";
cin>>n1;
cout<<"Introdusca multiplicando: ";
cin>>n2;
cout<<endl;
while(n1>=1)
 {
 if(n1%2!=0)
   {
   imp=imp+n2;
   n1=n1/2;
   n2=n2*2;
   }
   else
   {
   n1=n1/2;
   n2=n2*2;
   }
  }
   cout<<"El resultado es: "<<imp<<endl;
   getch();
   }






Programa.




---------------------------------------------------------------------------------------------------------

Tarea # 3.

Escriba un programa que lea un 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 leído, el programa debe repetir el proceso hasta que la anchura sea 0.

C++.

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
char c;
int n, i=1, z;
cout<<"Inserte la anchura y el caracter porfavor: ";
cin>>n>>c;
cout<<endl;
for(i=0; i<n; i++)
 {
 cout<<setw(n-i)<<c;
 for(z=n-i; z<n; z++)
 {
 cout<<setw(2)<<c;
 }
 cout<<endl;
 }
 for(i=n-2; i>0; i--)
 {
 cout<<setw(n-i)<<c;
 for(z=n-i; z<n; z++)
 {
 cout<<setw(2)<<c;
 }
 cout<<endl;
 }
 cout<<setw(n-i)<<c;
 getch();
 }

Programa.




-----------------------------------------------------------------------------------------------------------

No hay comentarios:

Publicar un comentario