Entradas populares

domingo, 6 de marzo de 2011

Algunos programas muy utlies

  • Este es un programa que resuelve un sumatoia de 1/k^2 (para los que o saben el símbolo '^'  significa a la potencia _y el numero de la potencia.) la sumatoria la hace desde el valor de k=1 hasta k=200. Un dato curioso que podrán notar es el uso de la instrucción cout.precision(3);  la cual me permite definir la precisión con la que quiero que se trabajen los flotantes o dicho de una manera mas sencilla los digitos que deseo que se usen después del punto decimal, en este caso es 3.
#include<stdio.h>
#include<iostream>
#include<conio.h>
using namespace std;
main()
{
      float suma=0.0, lim, k=0.0;

     cout<<"   ************************************************************************\n";
     cout<<"   **Programa para sacar la sumatoria de 1/K,aritmetica de punto flotante**\n";
     cout<<"   ************************************************************************\n";
     cout<<"\n\n\n";
     cout.precision(2);
     for( lim = 1; lim <= 200; ++lim )
     {
          suma = suma + (1/ (lim*lim));
          cout.precision(3);

     }
     putchar('\n');

     cout<<"La sumatoria de todos los numeros representados con un aritmetica de putno      flotante de (10,3,9,9) \n\n        >>>>Es: "<<suma;
     cout<<"\n\n\n Conclucion:\nPodemos ver la infinidad de numeros que pueden ser formados con una aritmetica  de punto fotante de este tipo,";
     cout<<" debido a lo pequeño que se torno el numero       conciderando los valores significativos que obtuvo despues del punto decimal.";
     getche();
     return(0);
}



  • Este es un programita muy curioso, bueno la verdad es que no mucho o depende del que le analize bajo sus criterios personales. El punto es que este programa se encarga de pasar un numero de notación decimal a binaria.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
main()
{
      long int decimal,i,cont=0, bin[30], cont2,ind=0;
      long int  numconv;
      cout<<"                   Pasar un numero de Decimal a Binario.";
      
      cout<<"\n\n                   Digite el numero Decimal: "; /* Aqui pide el numero que deseas pasar a binario*/
      cin>>decimal;  
      
      numconv=decimal; /* Salvamos el numero en otra variables para usarlo despues*/
       if(decimal>10)
      {
                    cont=12;
      }
      else
      cont=decimal/2;
      cont2=cont;/* Salvamos el contador en otra variable*/
      
      for(i=0; i<=cont; i++) /* Proceso de conversión.*/
      {
      bin[i]=decimal%2;
      decimal=decimal/2;
      }
      
      putchar('\n');
      cout<<"                   El numero en binario es: ";
      
      for(i=cont2-1; i>0; --i)
      {
                    if(bin[i]==0)
                    {
                                 --cont;
                    }
                    else
                    break;
      }
           
      for(i=cont;i>=0; i--) /* Lo Imprimimos*/
      {
      cout<<bin[i];
      }
      
      getche();
      return(0);
}

  • Hablando todavía de notaciones les traigo el programa que hace el proceso inverso al anterior, este en lugar de pasar de decimal a binario pasa de binario a decimal.usamos lo que son la sentecnia while por si el usuario desea volver hacer otra conversion.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
main()
{
      int decimal=0;
      int binario,res,cont=1;
      int continuar=1;
      cout<<"                   Pasar un numero de Binario a Decimal.";
      
      while(continuar==1)
      {
       cout<<"\n\n                   Digita el numero en binario: ";
       cin>>binario;
       decimal=0;
       
                 while(binario>0)
                 {
                  res=0;
         res=cont*(binario%10);
         decimal+=res;
         cont*=2;
         binario/=10;
                 }
                 
       cout<<"\n                   El numero en decimal es: "<<decimal;
       cout<<"\n\nSi desea continuar presione 1, si no presione 0\n"; 
       cin>> continuar;
       }
return(0);
getche();
}

  • Este sera el ultimo aporte( !de esta entrada¡) y no es ni mas ni menos que un programa en el cual empleo el uso de funciones en c/c++,(si utilizan codeblocks deben de hacerle unas modificaciones) y de la sentencia switch para crear lo que es un menú el cual hace que nuestro programa se vuelva interactivo ( que el programa sea interactivo quiere decir que le pide al usuario que le digite algún dato, para poder hacer algo ). este programa junta las funciones de los dos antiguos programas.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void pantallaso();
int entrada(); /* funcion que recogera una opcion que digite el usuario.*/
void decimal(); /* Funcion que pasara de decimal a binario*/
void binario(); /* Funcion que pasara de binario a decimal*/

main()/* Iniciamos las sentencias de ejeucion del programa*/
{
         int dato, continuar=1;
         
         pantallaso();
         while(continuar==1)
         {
         cout<<"\n\n";
         dato= entrada(); /* Pide a opcion de lo que deseas convertir*/
         switch(dato)
                     {
                          case 1:
                               cout<<"\n\n";
                               decimal();
                               break;
                          case 2:
                               cout<<"\n\n";
                               binario();
                               break;
                          default:
                               cout<<" Dato Erroneo";
                               break;
                     }  
                     
         cout<<" \n\n >>>Si desea continuar precione 1; si no precione 0";
         cout<<"\n\n                        >Digite su opcion: ";
         cin>>continuar;/* Opción por si desea continuar*/
         }
         
         getche();
         return(0);
}
void pantallaso()
{
     cout<<"   ************************************************************************\n";
     cout<<"   **Programa para convertir de Decimal a binario o de Binario a Decimal.**\n";
     cout<<"   ************************************************************************\n";
     cout<<"\n\n\n";
}

int entrada()
{
    int opcion;
    cout<<"                >>>Si desea convertir de Decimal a Binario presione '1'.\n\n";
    cout<<"                >>>Si desea convertir de Binario a Decimal presione '2'.\n\n";
    cout<<"                >Digite su opcion: ";
    cin>>opcion;/* Variable en la cual guardamos la opcion que digito el usuario*/
    return(opcion);
}

void decimal()
{
      long int decimal,i,cont=0, bin[30], cont2,ind=0;
      long int  numconv;
      cout<<"\n\n";
      cout<<"                   Pasar un numero de Decimal a Binario.";
      
      cout<<"\n\n                   Digite el numero Decimal: "; /* Aqui pide el numero que deseas pasar a binario*/
      cin>>decimal;  
      
      numconv=decimal; /* Salvamos el numero en otra variables para usarlo despues*/
       if(decimal>10)
      {
                    cont=12;
      }
      else
      cont=decimal/2;
      cont2=cont;/* Salvamos el contador en otra variable*/
      
      for(i=0; i<=cont; i++) /* Proceso de conversión.*/
      {
      bin[i]=decimal%2;
      decimal=decimal/2;
      }
      
      putchar('\n');
      cout<<"                   El numero en binario es: ";
      
      for(i=cont2-1; i>0; --i)
      {
                    if(bin[i]==0)
                    {
                                 --cont;
                    }
                    else
                    break;
      }
           
      for(i=cont;i>=0; i--) /* Lo Imprimimos*/
      {
      cout<<bin[i];
      }

}

void binario()
{
     int decimal=0;
     int binario,res,cont=1;
     
     cout<<"\n\n";
     cout<<"                   Pasar un numero de Binario a Decimal.";
      
     cout<<"\n\n                   Digita el numero binario: ";
     cin>>binario;
     decimal=0;
       
                 while(binario>0)
                 {
                  res=0;
         res=cont*(binario%10);
         decimal+=res;
         cont*=2;
         binario/=10;
                 }
     cout<<"\n                   El numero en decimal es: "<<decimal;
     
}


Programa Sobre El Metodo De Bisección.


  • Hola que Tal, les dejo lo que es el programa que resuelve el algoritmo del método de bisección, el cual sirve para encontrar las raíces de un polinomio.
  • Chequenlo y si si son abusados se darán cuenta que para que resuelva una ecuación diferente a x^3-x-1  tendrán que ir a la parte de hasta abajo donde se encuentra definida dicha función.
Un saludo a todos.


#include<conio.h>
#include<stdio.h>
#include<stdlib.h>


float fx1(float);
float fx2(float);
float fxm(float);
main()
{
      float x1=0.0,x2=0.0,xm=0.0,Er=0.0, Et=5.0;
      int iteracion=0;


      /*PASO 1 ESCOGER LOS VALORES DE X1 Y X2 TAL QUE FX1*FX2<0*/
      printf("\n\n\n      Digita el valor de x inicial.");
      scanf("%f",&x1);


      printf("\n\n\n      Digita el valor de x superior.");
      scanf("%f",&x2);


      if( fx1(x1) * fx2(x2) < 0)
      {
          do
          {
                  /*PASO 2*/
                  paso2:
                  xm = ( x1 + x2 ) / 2;


                  /*PASO 3*/
                  paso3:
                  if( fx1(x1)*fxm(xm) < 0 )
                  {
                      x2 = xm;
                      goto paso4;
                  }
                  else
                      if( fx1(x1)*fxm(xm) > 0 )
                      {
                          x1 = xm;
                          goto paso4;
                      }
                      else
                          if( fx1(x1)*fxm(xm) == 0 )
                              {
                                            if( iteracion == 20)
                                            printf("\n\n   La Raiz es: %f",xm);


                              }


                  /*PASO 4*/
                  paso4:
                  if( iteracion > 0 )
                  {
                      Er= abs( x2 - xm ) / abs( x2 ) *100;
                      Er = abs( Er );
                      ++iteracion;
                      goto paso5;
                  }
                  else
                  {
                      ++iteracion;
                      goto paso2;
                  }


                  /*PASO 5*/
                  paso5:
                  if( Er > Et)
                  {
                      ++iteracion;
                      goto paso3;
                  }
                  if( Er <= Et)
                  {
                      if (iteracion == 20)
                      printf("\n\n      La Raiz Es: %f",xm);
                  }


          }
          while(iteracion <= 20);
      }


      getche();
      return(0);


}


float fx1( float x )
{
      float res = 0.0;


      res= (x*x*x)-(x)-1;


      return(res);
}


float fx2( float x )
{
      float res = 0.0;


      res= (x*x*x)-(x)-1;


      return(res);
}


float fxm( float x)
{
      float res = 0.0;


      res= (x*x*x)-(x)-1;


      return(res);
}



Muy buen material (básico)



Hola que tal amigos, aquí les traigo el primer aporte por parte de este recién nacido. 


Tarda en Cargar


Se trata de un URL que les direccionara a una pagina donde se encuentra material en PDF muy bueno para aprender lo que son conceptos básicos de programación en C/C++. Este cuenta con varias definiciones, así como la explicación de las sentencias mas simples que pueden utilizar para crear un programa.


Espero les sea útil.

Bienvenida

Muchas veces cuando entramos al primer semestre de esta carrera nos pasa que no tenemos idea alguna de lo que es programar, o de lo que esto implica. Es por eso que les presento con humildad el primer Blog creado pensando en las necesidades de los estudiantes de los primeros semestres la carrera de MAC.


En este Blog encontraran algunos ejemplos básicos y uno que otro avanzando de programación en C y C++, pero no solo podrán encontrar algunos ejemplos de este tipo de programación, si no que también encontraran lo que son algunos ejercicios y algoritmos por resolver que les ayudaran a desarrollarse en el ámbito de la programación, se resolverán dudas, y se actualizara constantemente en la medida de lo posible.