lunes, 21 de febrero de 2011

tareas de la unidad 2

Tarea 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:
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. 

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();
}







sábado, 19 de febrero de 2011

practica 4

problema 1




Un ángulo se considera agudo si es menor de 90o, obtuso si es mayor de 90o y recto si es igual a 90o.
Utilizando esta información escriba un programa que acepte un ángulo, en grados, y muestre el tipo de ángulo que corresponde al valor introducido en grados.

pseudocodigo
1.inicio

angulo real
print"angulo:"
read angulo
if(angulo<90)
print "angulo es agudo"
else
if(angulo==90)
print "angulo es recto"
else
print "el angulo es obtuso"
fin

programa.

#include <iostream.h>
 #include <conio.h>
 void main()
 {
 float angulo;
 cout<<"angulo=?";
 cin>>angulo;
 if(angulo<90)
 {
 cout<<angulo<<" es un agulo agudo"<<endl;
  }
   else
   {
   if(angulo==90)
      {
   cout<<angulo<<" es un agulo recto"<<endl;
      }

       else
       {
       cout<<angulo<<"es un angulo obtuso"<<endl;
       }
          }
      getch();
      }


problema 2
El cuadrante en el cual se ubica una línea dibujada desde el origen está determinado por el ángulo que la línea forma con el eje positivo de “X” en la siguiente forma.


angulo                   cuadrante  
entre 0 y 90               I
entre 90 y 180           II
entre 180 y 270        III  
entre 270 y 360         IV



Utilizando esta información escriba un programa que acepte el angulo de la línea como dato de entrada por el usuario y despliegue el cuadrante apropiado conforme a los datos (NOTA: Si el angulo es exactamente 0, 90, 180 0 270 la línea correspondiente no se ubica en ningún cuadrante si no en un eje.
Despliegue un mensaje que identifique un angulo de 0o como el eje positivo de “X”, un angulo de 90o como el eje positivo de “Y”, un angulo de 180o como el eje negativo de “X” y un angulo de 270o como el eje negativo de “Y”). Si el angulo es mayor de 360o mostrar un mensaje de error.

pseudocodigo
angulo flotante
print"Medida del angulo: "
read angulo
if (angulo>0 && angulo<90)
{
print"El angulo esta en el primer cuadrante"
}
else
{
    if (angulo>90 && angulo<180)
   {
   print"El angulo esta en el segundo cuadrante"
   }
   else
   {
       if (angulo>180 && angulo <270)
      {
      print"El angulo esta en el tercer cuadrante"
      }
      else
      {
          if (angulo>270 && angulo<360)
         {
         print"El angulo esta en el cuarto cuadrante"
         }
         else
         {
             if (angulo==0)
             {
             print"se trata de un angulo en el eje positivo de X"
             }
             else
             {
                 if (angulo==90)
                 {
                 print"se trata de un angulo en el eje positivo de Y"
                 }
                 else
                 {
                     if (angulo==180)
                     {
                     print"se trata de un angulo en el eje negativo de X"
                  }
                  else
                  {
                      if (angulo==270)
                     {
                     print"se trata de un angulo en el eje negativo de Y"
                     }
                     else
                     {
                     print"Angulo incorrecto (introdusca un angulo menor a 360)"
                     }
                  }
               }
            }
         }
      }
   }
}

fin

programa
#include <iostream.h>
#include <conio.h>
void main ()
{
float angulo;
cout<<"Medida del angulo: ";
cin>>angulo;
if (angulo>0 && angulo<90)
{
cout<<"El angulo esta en el primer cuadrante";
}
else
{
    if (angulo>90 && angulo<180)
   {
   cout<<"El angulo esta en el segundo cuadrante";
   }
   else
   {
       if (angulo>180 && angulo <270)
      {
      cout<<"El angulo esta en el tercer cuadrante";
      }
      else
      {
          if (angulo>270 && angulo<360)
         {
         cout<<"El angulo esta en el cuarto cuadrante";
         }
         else
         {
             if (angulo==0)
             {
             cout<<"se trata de un angulo en el eje positivo de X";
             }
             else
             {
                 if (angulo==90)
                 {
                 cout<<"se trata de un angulo en el eje positivo de Y";
                 }
                 else
                 {
                     if (angulo==180)
                     {
                     cout<<"se trata de un angulo en el eje negativo de X";
                  }
                  else
                  {
                      if (angulo==270)
                     {
                     cout<<"se trata de un angulo en el eje negativo de Y";
                     }
                     else
                     {
                     cout<<"Angulo incorrecto (introdusca un angulo menor a 360)";
                     }
                  }
               }
            }
         }
      }
   }
}

getch ();
}



problema 3
Escriba un programa que acepte dos números reales del usuario y un código de selección. Si el código de selección introducido es “1” haga que el programa sume los dos números introducidos anteriormente y despliegue el resultado; si el código de selección es “2” los números deberán ser multiplicados y si el numero de selección es “3” el primer número deberá dividirse entre el segundo número. No permita la división entre “0” y despliegue el mensaje apropiado cuando se intente esa división.

pseudocodigo
num1,num2 flotante
opc entero
print"Valor del primer numero: "
read num1
print"Valor del segundo numero: "
read num2
print" 1)Sumar   2)Multiplicar   3)dividir  "
print" Opcion "
read opc
if(opc==1)
{
print"La suma es: ",num1,"+",num2," = ",(num1+num2)
}

else
{
if(opc==2)
{
print"La multiplicacion es: ",num1,"*",num2,"=",(num1*num2)
}
else
{
if(opc==3)
{
if(num2!=0)
{
print"La division es: ",num1," / ",num2," = "(num1/num2)
}
else
{
print"Imposible dividir entre 0"
}
}
else
{
print"Error de opcion "
}
}
}
fin

programa
# include <iostream.h>
# include <conio.h>
void main()
{
float num1,num2;
int opc;
cout<<"Valor del primer numero: ";
cin>>num1;
cout<<"Valor del segundo numero: ";
cin>>num2;
cout<<" 1)Sumar   2)Multiplicar   3)dividir  ";
cout<<" Opcion ";
cin>>opc;
if(opc==1)
{
cout<<"La suma es: "<<num1<<"+"<<num2<<" = "<<(num1+num2)<<endl;
}

else
{
if(opc==2)
{
cout<<"La multiplicacion es: "<<num1<<"*"<<num2<<"="<<(num1*num2)<<endl;
}
else
{
if(opc==3)
{
if(num2!=0)
{
cout<<"La division es: "<<num1<<" / "<<num2<<" = "<<(num1/num2)<<endl;
}
else
{
cout<<"Imposible dividir entre 0"<<endl;
}
}
else
{
cout<<"Error de opcion "<<endl;
}
}
}
getch();
}



problema 4
Escriba un programa que acepte un número y una letra. Si la letra que sigue al número es “f”, el programa debe manejar el número introducido como una temperatura en grados Fahrenheit, convertirla a oC e imprimir un mensaje adecuado a la salida. Si la letra que sigue al número es una “c”, el programa deberá tratar al número como una temperatura en grados Celsius, convertirla a oF e imprimir un mensaje adecuado a la salida. Si la letra no es ni “f” ni “c”, el programa deberá imprimir un mensaje adecuado  de error. Utilice las siguientes formulas: oC=(5.0/9.0)*(oF-32.0)   y   oF=(9.0/5.0)*(oC+32.0).

con if
pseudocodigo
#include <iostream.h>
#include <conio.h>
void main ()
{
 t caracter
 num,r flotante
print"Introduzca numero "
read num
print"Celcius (c)  o  Fahrenheint (f) "
read t
if (t=='f'||t=='F')
{
r=(5.0/9.0)*num-32
print"La temperatura en grados celcius es: ",r
}
else
{
 if(t=='c'||t=='C')
   {
   r=(9.0/5.0)*num+32;
   print"La temperatura en grados fahrenheit es: ",r
   }
   else
   {
  print"Datos no validos, solo C o F"
   }
}
fin

programa
#include <iostream.h>
#include <conio.h>
void main ()
{
char t;
float num,r;
cout<<"Introduzca numero ";
cin>>num;
cout<<"Celcius (c)  o  Fahrenheint (f) ";
cin>>t;
if (t=='f'||t=='F')
{
r=(5.0/9.0)*num-32;
cout<<"La temperatura en grados celcius es: "<<r<<endl;
}
else
{
 if(t=='c'||t=='C')
   {
   r=(9.0/5.0)*num+32;
   cout<<"La temperatura en grados fahrenheit es: "<<r<<endl;
   }
   else
   {
   cout<<"Datos no validos, solo C o F";
   }
}
getch ();
}




con stwich
pseudocodigo
inicio
t caracter
num,r flotante
print"Introduzca un numero: "
read num
print"Celcius (c)  o  Fahrenheint (f):  "
read t

switch (t)
{
case 'f':
case 'F':
            r=(5.0/9.0)*num-32
            print"La temperatura en grados celcius es: ",r
         break;

case 'c':
case 'C':
         r=(9.0/5.0)*num+32;
            cout<<"La temperatura en grados fahrenheit es: ",r
         break;
default:
            print"Error de datos"
}
fin

programa
#include <iostream.h>
#include <conio.h>
void main ()
{
char t;
float num,r;
print"Introduzca un numero: "
read num
print"Celcius (c)  o  Fahrenheint (f):  "
read t

switch (t)
{
case 'f':
case 'F':
            r=(5.0/9.0)*num-32;
            print"La temperatura en grados celcius es: ",r
         break;

case 'c':
case 'C':
         r=(9.0/5.0)*num+32
           print"La temperatura en grados fahrenheit es: ",r
         break;
default:
            print"Error de datos"
}
fin


problema 5
Todos los años cuyos días no se pueden dividir exactamente entre 400 o entre 4 pero no entre 100 son años bisiestos. Por ejemplo, como 1600 puede dividirse exactamente entre 400, el año 1600 fue año bisiesto. De la misma forma, como 1988 es exactamente divisible entre 4 pero no entre 100, 1988 también fue un año bisiesto. Utilizando esta información escriba un programa que acepte el año como dato de entrada por el usuario, determine si el año es bisiesto y despliegue al usuario un mensaje que indique si el año introducido es o no bisiesto. 
pseudocodigo
inicio
anio entero
print"Escriba el anio deseado: "
read anio
if (anio%400==0)
{
print"El anio introducido es bisiesto"
}
else
{
 if (anio%4==0 && anio%100!=0)
   {
   print"El anio introducido es bisiesto"
   }
   else
   {
   print"El anio introducido no es bisiesto"
   }
}
fin


programa
#include <iostream.h>
#include <conio.h>
void main ()
{
int anio;
cout<<"Escriba el anio deseado: ";
cin>>anio;
if (anio%400==0)
{
cout<<"El anio introducido es bisiesto";
}
else
{
 if (anio%4==0 && anio%100!=0)
   {
   cout<<"El anio introducido es bisiesto";
   }
   else
   {
   cout<<"El anio introducido no es bisiesto";
   }
}
getch();
}





problema 6
Las calificaciones de un estudiante se calculan de acuerdo a la siguiente tabla:

mayor o igual que 90                                    A
menor que 90 pero mayor o igual a 80           B
menor que 80 pero mayor o igual a 70           C
menor que 70 pero mayor o igual a 60           D
menor que 60                                              F

Utilizando esta información escriba un programa que acepte la calificación numérica del estudiante y la convierta en su equivalente en letra y la despliegue.
pseudocodigo
inicio
cal entero
print"Escriba el numero de la calificacion:  "
read cal
if (cal<=100 && cal>=90)
{
print"La calificacion en letra es A"
}
else
{
    if (cal<90 && cal>=80)
   {
   print"La calificacion en letra es B"
   }
   else
   {
       if (cal<80 && cal>=70)
      {
      print"La calificacion en letra es C"
      }
      else
      {
          if (cal<70 && cal>=60)
         {
         print"La calificacion en letra es D"
         }
         else
         {
             if (cal<60)
             {
             print"La calificacion en letra es F"
             }
             else
            {
            print"Error: La calificacion debe ser entre 0 y 100"
            }
         }
      }
   }
}

fin

programa
#include <iostream.h>
#include <conio.h>
void main ()
{
int cal;
cout<<"Escriba el numero de la calificacion:  ";
cin>>cal;
if (cal<=100 && cal>=90)
{
cout<<"La calificacion en letra es A";
}
else
{
    if (cal<90 && cal>=80)
   {
   cout<<"La calificacion en letra es B";
   }
   else
   {
       if (cal<80 && cal>=70)
      {
      cout<<"La calificacion en letra es C";
      }
      else
      {
          if (cal<70 && cal>=60)
         {
         cout<<"La calificacion en letra es D";
         }
         else
         {
             if (cal<60)
             {
             cout<<"La calificacion en letra es F";
             }
             else
            {
            cout<<"Error: La calificacion debe ser entre 0 y 100";
            }
         }
      }
   }
}

getch ();
}