Horizontal

sábado, 22 de diciembre de 2012

Cambio de base 10 a otra base n

Diseñar un programa que nos permita cambiar de base , el cambio sera de la base 10 a otra base n, en este caso la base n estará entre 1 y 10, ademas el número a cambiar de base estará entre 1 y 1000.

SOLUCIÓN

Como el cambio se realizará a una base entre 1 y 10, esto nos facilita al momento de imprimir los resultados.
Iniciamos acotando la base al igual que el número ingresado, luego realizaremos el cambio de base mediante divisiones sucesivas con ayuda del bucle while, finalmente imprimimos los resultados mediante el bucle for.

CÓDIGO


  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int m,m2,n,i,j;
  5.     int a[11];
  6.     printf("Base:");
  7.     scanf("%d",&n);
  8.     
  9.     while(n<2 || n>9)
  10.     {
  11.               printf("la base es mayor a 1 y menor a 10\n");
  12.               scanf("%d",&n);
  13.     }
  14.     
  15.     printf("Numero:");
  16.     scanf("%d",&m);
  17.     while(m<1 || m>1000)
  18.     {
  19.               printf("el numero debe estar entre 1 y 1000\n");
  20.               scanf("%d",&m);
  21.     }
  22.     m2=m;
  23.     
  24.     i=0;
  25.     while(m!=0)
  26.     {
  27.                a[i]=m%n;
  28.                i++;
  29.                m=m/n;
  30.     }
  31.     
  32.     printf("\t%d=",m2);
  33.     for(j=i-1;j>=0;j--)
  34.        printf("%d",a[j]);
  35.     printf(" en base %d",n);
  36.     
  37.     return 0;
  38. }

viernes, 8 de junio de 2012

Suma de los n números perfectos

  1. //suma de los n numeros perfectos
  2. #include<stdio.h>
  3. int main (){
  4.    int n,i,j,c,perfecto,np,suma_perfectos; 
  5.    
  6.  do{   
  7.    printf("ingrese la cantidad de los n primeros numeros perfectos a sumar\n");
  8.    scanf("%d",&n);
  9.    i=0;
  10.    suma_perfectos=0;
  11.    for(perfecto=1;i<n;perfecto++){
  12.       np=0;     
  13.       for(j=1;j<perfecto;j++)     
  14.          if(perfecto%j==0) np+=j;  
  15.       if(np==perfecto) c=1;
  16.       else c=0;      
  17.       if(c){
  18.          printf("%d es perfecto \n",perfecto);
  19.          suma_perfectos+=perfecto; 
  20.          i++; 
  21.       }      
  22.    }
  23.    printf("la suma de los %d primeros numeros perfectos es %d \n",n,suma_perfectos);
  24.   }while(n>0) ;  
  25.    return 0;
  26. }

Número perfecto

//número perfecto
#include<stdio.h>

int main(){
   int n,i,suma,condicion;   
   do{  
      printf("ingrese el numero\n");
      scanf("%d",&n);
      suma=0;
      for(i=1;i<n;i++)  
         if(n%i==0) suma+=i;
      if(suma==n) printf("%d es perfecto\n",n);
      else printf("%d no es perfecto\n",n);
   }while(n>0);
   return 0;
}

jueves, 7 de junio de 2012

Imprimir n números primos


El programa finaliza al ingresar un número negativo


  1. //imprimir n numeros primos
  2. #include<stdio.h>
  3. //numero primo
  4. int primo(int n){
  5.    int i,condicion;      
  6.       if(n!=1 && n!=0){
  7.          for(i=2;i<=n;i++)       
  8.             if(n%i==0)
  9.                if(n==i) condicion=1;                
  10.                else{ 
  11.                   condicion=0;
  12.                   break;
  13.                }
  14.       }
  15.       else condicion=0;
  16.    return condicion;
  17. }
  18. //************
  19. int main(){
  20.    int n,i;   
  21.    do{  
  22.       printf("ingrese hasta que numero buscar\n");
  23.       scanf("%d",&n);
  24.       for(i=0;i<=n;i++)       
  25.             if(primo(i)==1) printf("%d ",i);
  26.       printf("\n");              
  27.    }while(n>0);
  28.    return 0;
  29. }

Número primo


  1. //numero primo
  2. #include<stdio.h>
  3. int main(){
  4.    int i,primo,condicion; 
  5.     
  6.       printf("ingrese el numero\n");
  7.       scanf("%d",&primo);
  8.       if(primo!=1 && primo!=0){
  9.          for(i=2;i<=primo;i++)       
  10.             if(primo%i==0)
  11.                if(primo==i) condicion=1;                
  12.                else{ 
  13.                   condicion=0;
  14.                   break;
  15.                }
  16.          if(condicion==1) printf("%d es primo\n\n",primo);
  17.          else printf("%d no es primo\n\n",primo);
  18.       }
  19.       else printf("%d no es primo\n\n",primo);
  20.    
  21.    getchar();
  22.    getchar();
  23.    return 0;
  24. }

Calculadora básica


  1. //calculadora
  2. #include<stdio.h>
  3. //suma
  4. void suma(){
  5.    double a,b;
  6.    printf("ingrese el primer numero\n");
  7.    scanf("%lf",&a);
  8.    printf("ingrese el segundo numero\n");
  9.    scanf("%lf",&b);
  10.    printf(" %lf + %lf es %lf\n\n\n",a,b,a+b);
  11. }
  12. //resta
  13. void resta(){
  14.    double a,b;
  15.    printf("ingrese el primer numero\n");
  16.    scanf("%lf",&a);
  17.    printf("ingrese el segundo numero\n");
  18.    scanf("%lf",&b);
  19.    printf(" %lf - %lf es %lf\n\n\n",a,b,a-b);
  20. }
  21. //multiplicacion
  22. void multiplicacion(){
  23.    double a,b;
  24.    printf("ingrese el primer numero\n");
  25.    scanf("%lf",&a);
  26.    printf("ingrese el segundo numero\n");
  27.    scanf("%lf",&b);
  28.    printf(" %lf x %lf es %lf\n\n\n",a,b,a*b);
  29. }
  30. //division
  31. void division(){
  32.    double a,b;
  33.    printf("ingrese el primer numero\n");
  34.    scanf("%lf",&a);
  35.    do{
  36.    printf("ingrese el segundo numero(diferente de cero)\n");
  37.    scanf("%lf",&b);
  38.    }while(b==0);
  39.    printf(" %lf / %lf es %lf\n\n\n",a,b,a/b);
  40. }
  41. //*************************************************************
  42. int main(){
  43.    int i,j,obs;
  44.    double a,b,r;
  45.    do{
  46.       printf("CALCULADORA\n1 suma\n2 resta\n");
  47.       printf("3 multiplicacion\n4 division\n5 finalizar\n");
  48.       printf("elige una opcion\n");
  49.       scanf("%d",&obs);
  50.       switch(obs){
  51.          case 1: suma(); break;
  52.          case 2: resta(); break;
  53.          case 3: multiplicacion(); break;
  54.          case 4: division(); break;
  55.          case 5: break;
  56.          default: printf("opcion incorrecta\n\n\n");
  57.       }
  58.    }while(obs!=5);
  59.    return 0;
  60. }  
 

Fibonacci en forma recursiva


  1. //fibonacci en forma recursiva
  2. #include<stdio.h>
  3. //fibonacci
  4. int fibonacci(int a){
  5.    int b;
  6.    if(a==1 || a==2){
  7.       b=1;
  8.       return b;
  9.    }
  10.    if(a>2){
  11.       b=fibonacci(a-1)+fibonacci(a-2);
  12.       return b;
  13.    }
  14. }
  15. //pedir numero natural
  16. int pedir(){
  17.    int a;
  18.    do{
  19.       printf("ingrese el numero natural\n");
  20.       scanf("%d",&a);
  21.    }while(a<1);
  22.    return a;  
  23. }    
  24. //************************
  25. int main(){
  26.    int n,i;
  27.    n=pedir(); 
  28.    printf(" %d \n",fibonacci(n));
  29.    for(i=1;i<=n;i++)
  30.    printf("%d ",fibonacci(i));
  31.    getchar();
  32.    return 0;
  33. }
 

jueves, 24 de mayo de 2012

Triangulo rectangulo de 45 grados

Este programa pide el pide el cateto o altura del triangulo rectángulo, para luego formarlo con asteriscos


  1. //triangulo rectangulo de 45 grados
  2. #include<stdio.h>
  3. int main(){
  4.    int cateto,i,j,n;
  5.    printf("triangulo rectangulo de 45 grados\n");
  6.    do{
  7.      printf("ingrese es cateto o altura\n");
  8.      scanf("%d",&cateto);
  9.      while(cateto<2){
  10.         printf("para poder visualizar el triangulo ingrese el cateto mayor a 1\n");
  11.         printf("ingrese es cateto o altura\n");
  12.         scanf("%d",&cateto);                
  13.      }
  14.         for(i=0;i<=cateto-1;i++){ 
  15.            for(j=0;j<=i;j++) 
  16.               printf("*");
  17.            printf("\n");
  18.         }
  19.        
  20.      printf("\npresione \n1 continuar \n2 finalizar \n");  
  21.      scanf("%d",&n);
  22.     } while(1==n);
  23.     return 0;        
  24.  }   


domingo, 13 de mayo de 2012

Funcion de tercer grado

Este programa nos permite encontrar los valor de f(x) de una función de tercer grado o cúbica para los valores de x que el usuario acota y su da el valor de incremento.

  1. //funcion de grado 3
  2. #include<stdio.h>
  3. #include<math.h>
  4. int main(){
  5.    printf("Funcion de grado 3\n"); 
  6.    double a[4],x,xmin,xmax,xincr,y,n;
  7.    int i,condicion1;   
  8.    do{
  9.       for(i=0;i<4;i++){
  10.       printf("ingrese el coeficiente %d\n",i);   
  11.       scanf("%lf",&a[i]); 
  12.       }  
  13.      do{
  14.         printf("ingrese el x minimo\n");
  15.         scanf("%lf",&xmin);
  16.         printf("ingrese el x maximo\n");
  17.         scanf("%lf",&xmax);
  18.         printf("ingrese el incremento de x\n");
  19.         scanf("%lf",&xincr);     
  20.         for(x=xmin;x<=xmax;x=x+xincr){    
  21.           n=3;
  22.           y=0;                         
  23.           for(i=0;i<4;i++){
  24.              y=a[i]*pow(x,n)+y;
  25.              n--;          
  26.           } 
  27.           printf("f(%lf.8)=%lf\n",x,y);         
  28.         }        
  29.         printf("hallar para otros valores de x\n presione\n");
  30.         printf(" 1 continuar\n 2 finalizar\n");
  31.         scanf("%d",&condicion1);
  32.      }while(condicion1==1);
  33.      printf("hallar para otros valores de los coeficientes\n presione\n");
  34.      printf(" 1 continuar\n 2 finalizar\n");
  35.      scanf("%d",&condicion1);             
  36.      }while(condicion1==1);
  37.      return 0;
  38. }

Hallando el promedio de n números

Este programa no da como resultado el promedio de n números, si el número n es cero entonces nos dará como promedio cero.

  1. //Hallando el promedio de n numeros
  2. #include<stdio.h>
  3. int main(){
  4.     float numeron,suma,promedio;
  5.     int i,n,condicion;
  6.     suma=0;
  7.     condicion=2;
  8.     printf("Hallando el promedio de n numeros\n\n");
  9.     do{
  10.       if(condicion==1) suma=0;
  11.       printf("ingrese la cantidad de numeros a promediar\n");
  12.       scanf("%d",&n);             
  13.       for(i=1;i<=n;i++){
  14.          printf("ingrese el numero %d \n",i);
  15.          scanf("%f",&numeron);
  16.          suma=suma+numeron;
  17.       }
  18.       if(n==0) promedio=0.0;
  19.       else promedio=suma/n;
  20.       printf("el promedio de %d numero es %f\n\n\n",n,promedio);
  21.       printf("desea hallar el promedio de otros numeros\n presione\n");
  22.       printf(" 1 continuar \n 2 finalizar \n");
  23.       scanf("%d",&condicion);
  24.     }while(condicion==1);
  25. }



Hallando el mayor de n numeros

Este programa nos permite comparar una cierta cantidad de números que es especificado por el usuario.

  1. //Hallando el mayor de n numeros
  2. #include<stdio.h>
  3. int main()
  4. {
  5.     int numero1,numeron,mayor,i,n,condicion;
  6.     printf("Hallando el mayor de n numeros\n\n");
  7.     do{
  8.       printf("ingrese la cantidad de numeros a comparar\n");
  9.       scanf("%d",&n);
  10.       printf("ingrese el numero 1\n");
  11.       scanf("%d",&numero1);
  12.       mayor=numero1;
  13.       for(i=2;i<=n;i++)
  14.       {
  15.          printf("ingrese el numero %d\n",i);
  16.          scanf("%d",&numeron);
  17.          if(mayor<numeron) mayor=numeron;
  18.       }
  19.       printf("el mayor numero es %d\n\n\n",mayor);
  20.       printf("desea comparar otros numeros\n presione\n");
  21.       printf(" 1 continuar \n 2 finalizar \n");
  22.       scanf("%d",&condicion);
  23.     }while(condicion==1);
  24.     return 0;
  25. }

Hallando si el número ingresado es par o impar

El programa nos dice si un número es par o impar, sabemos que un número es par si el resto de dividir el numero entre dos es cero.

  1. //hallando si un numero es par o impar
  2. #include<stdio.h>
  3. int main()
  4. {
  5.     printf("Hallando si el numero ingresado es par o impar\n");
  6.     int numero,condicion;
  7.     do{              
  8.        printf("ingrese el numero\n");
  9.        scanf("%d",&numero);
  10.        if(numero%2==0)
  11.          printf("el numeo %d es par\n",numero);
  12.        else printf("el numero %d es impar\n",numero);
  13.                                                      
  14.        printf("\n ¿desea ingresar otro numero?\n");
  15.        printf("\n Prisione \n 1 continuar \n 2 finalizar \n\n");
  16.        scanf("%d",&condicion);        
  17.        } while(condicion==1);
  18.     return 0;   
  19.     }

Diferencia de cuadrados

Hallando la diferencia de cuadrados de dos números, esta es una aplicación de las operaciones que se puede realizar en C.


  1. /*Diferencia de cuadrados*/
  2. #include<stdio.h>
  3. int main()
  4. {
  5.     int a,b;
  6.     printf("ingrese el primer numero\n");
  7.     scanf("%d",&a);
  8.     printf("ingrese el segundo numero\n");
  9.     scanf("%d",&b);
  10.     printf("la diferencia de cuadrados entre %d y %d es %d",a,b,a*a-b*b);    
  11.     getchar();
  12.     getchar();
  13.     return 0;
  14. }

Resto de la división de dos númeos

En lenguaje existe un operador designado para este proposito es el "%", esta operación es muy útil, lo podemos usar para saber si un número es par o impar.


  1. #include<stdio.h>
  2. int main()
  3. {    
  4.   int numero1,numero2,resto,condicion;
  5.   printf("Programa para hallar el resto de dos numeros\n\n");
  6.   do{
  7.     printf("ingrese el primer numero\n");
  8.     scanf("%d",&numero1);
  9.     printf("ingrese el segundo numero\n");
  10.     scanf("%d",&numero2);
  11.     while(numero2==0)
  12.    {
  13.       printf("el segundo numero no puede ser cero.\n\n\n");
  14.       printf("Ingrese el segundo numero\n");
  15.       scanf("%d",&numero2);
  16.     }
  17.     resto=numero1%numero2;
  18.     printf("el resto de %d entre %d es %d\n\n",numero1,numero2,resto);  
  19.     printf("si desea hallar el resto de otros dos numeros\n presione \n");
  20.     printf("1: para continuar \n");
  21.     printf("2: para finalizar \n\n\n");
  22.     scanf("%d",&condicion);
  23.   }while(condicion==1);
  24.   //al presionar un numero distinto de 2 tambien finaliza el programa 
  25.   return 0;    
  26. }

Suma de enteros

Programa básico para sumas dos enteros, con un poco de ingenio se extiende este programa para "n" enteros:
  Para poder realizar operaciones con números es necesario declarar variables donde se almacenas estos números. La función scanf() nos permite obtener datos que el usuario ingresa.

  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int numero1,numero2,suma;
  5.     printf("ingrese el primer numero\n");
  6.     scanf("%d",&numero1);
  7.     printf("ingrese el segundo numero\n");
  8.     scanf("%d",&numero2);
  9.     suma=numero1+numero2;   
  10.     printf("%d mas %d es %d\n",numero1,numero2,suma);
  11.     getchar ();
  12.     return 0;
  13. }
Línea 1
#include<stdio.h>
se incluye la librería stdio.h

Línea 2
int main()
declaración de la función principal

Línea 4
 int numero1,numero2,suma;
se declaran 3 variables de tipo entero, numero1, numero2, suma.

Línea 5
 printf("ingrese el primer numero\n");
se pide al usuario un número para operar

Línea 6 
 scanf("%d",&numero1);
mediante la función scanf() podemos obtener los datos, el "%d" indica que se ingresara un tipo entero, el "&" de &numero1 pasa a la función scanf() la dirección de memoria de la variable numero1.

Linea 7, 8
    printf("ingrese el segundo numero\n");
    scanf("%d",&numero2); 
son similares a los anteriores
Línea 9
 suma=numero1+numero2;
aquí se realiza la operación de suma.

Línea 10
 printf("%d mas %d es %d\n",numero1,numero2,suma);
los simbolas "%d" que aparecen en la función printf() indican que en ese lugar va el valor de la variable señalada mas adelante, en este caso numero1. el segundo "%d" hace referenca a la variable numero2, es decir el orden de aparicion importa.

Línea 11
 getchar ();
con esta instrucción el programa espera que el usuario ingrese un carácter para continuar la ejecución.

Línea 12
 return 0;
con esta instrucción el programa retorna el control a sistema operativo.

Hola mundo

"Hola mundo" es un programa clásico que sirve como introducción a futuros programas de mayor complejidad.


  1.   #include<stdio.h>
  2.   int main()
  3.   {
  4.       printf("hola mundo");
  5.       getchar ();
  6.       return 0;
  7.   }

Línea 1
  #include<stdio.h>
esta instrucción incluye la librería "stdio.h", que nos permite usar la función printf(), para imprimir texto.

Línea 2
  int main()
es el inicio de al función principal main(), todo programa en C debe contener una función principal, ya que es el punto de inicio del programa. La palabra reservada "int" indica que la función main retornará un valor entero.

Línea 3
  {
esta llave izquierda comienza el cuerpo de la función main(), y finaliza en la línea 7.

Línea 4
  printf("hola mundo");
contiene la instrucción que realiza la tarea del programa, imprimir "hola mundo".

Línea 5
  getchar ();
esta instrucción es opcional, pues espera que el usuario ingrese un carácter para finalizar el programa y cerrar el terminal.

Línea 6
  return 0;
en esta instrucción finaliza el cuerpo de la función main, retornando el entero "0"; si se da el caso que existiera mas instrucciones posteriores a return, esta no se ejecutan.
Por ejemplo el siguiente programa realizaría igual tarea

  1.   #include<stdio.h>
  2.   int main()
  3.   {
  4.       printf("hola mundo");
  5.       getchar ();
  6.       return 0;
  7.       printf("no se ejecuta");
  8.   }
La línea 7 de este nuevo programa no se ejecuta.

Inicio

   Como el título del blog nos indica aquí encontraremos diferentes programas en el lenguaje C. Se proporciona información necesaria para iniciar a programar en C, ademas se facilita códigos de distintos problemas y/o ejemplos, buscando problemas que de alguna manera resulte interesante abordar. Ustedes pueden sugerir problemas y tratar de resolverlo juntos.

   Trataré de etiquetar los códigos por categorías como:
- Ejemplos típicos en el lenguaje C.
- Recurrencia.
- Estructuras de control.
- Estructuras de datos.
- Otros.

Related Posts Plugin for WordPress, Blogger...