lunes, 8 de noviembre de 2010

C - Ejemplos sencillos

Lenguajes de Programación - Semana 12- PUNTOS EXTRA

Estas con algunas aplicaciones pequeñas escritas en C para pasar el rato :) que me gustaria compartirles

FRASE AL REVES

Toma una frase escrita desde el teclado, la almacena en un arreglo y despues utilizando la funcion strlen de la libreria string.h y con la ayuda de un ciclo for giramos la frase al reves.
//Leer una frase y escribirla al reves

#include 
#include 

int main(void) {
  char frase[100];
  int n;
 
  printf("Introduce una frase y la escribire al reves [255 letras]\n");
  printf("Cuando termines pulsa ENTER\n\n");
  scanf("%[^\n]", frase);
  printf("\n");
  
  for (n=strlen(frase)-1; n>=0; n--)
    printf("%c", frase[n]);
 
  printf("\n\n");
  return 0;    
}

DESCARGA: frase.c

Para compilar: gcc -o frase frase.c
Para ejecutar: ./frase

EJECUCION


MULTIPLICACION

Este programa genera multiplicaciones aleatorias con la ayuda de la funcion rand y la libreria time.h que nos ayuda a variar los datos generados.
#include 
#include 

DESCARGA: multaleatoria.c

Para compilar: gcc -o multaleatoria multaleatoria.c
Para ejecutar: ./multaleatoria

EJECUCION



RAIZ "X" DE UN NUMERO

Este programa resuelve la raiz "n" del numero que demos, por un metodo llamado de aproximacion.
// Programa para calcular una Raiz Cuadrada "x" de un numero "n"

#include 

double absoluto(double x){
  if(x < 0) 
    return(-1.0 * x);
  return(x);
}

double potencia(double x, int n) {
  int i;
  double resultado = 1.0;
  for(i = 0; i < n; i++)
    resultado = resultado * x;     
  return(resultado);
}

double raizn(double R, int n) {
  double x = 1.0, y = 2.0;
  while(absoluto(x - y) > .00001) {
    y = x;
    x = (1.0 / n) * (((n - 1) * x) + (R / potencia(x, (n - 1))));
  }
  return(x);
}

int main(void) {
  
  double raiz, valor, resultado;
  
  printf("\t\t\tPROGRAMA PARA CALCULAR UNA RAIZ\n\n");
  printf("Dame el numero para saber su raiz cuadrada -> ");
  scanf("%lf", &valor);
  printf("Dame el valor de la raiz -> ");
  scanf ("%lf", &raiz);
  
  resultado = raizn(valor, raiz);
  
  printf("\nLa raiz %1.1lf del numero %1.1lf en = %1.2lf\n\n", raiz, valor, resultado);
  return 0;
}


DESCARGA: raiz.c

Para compilar:gcc -o raiz raiz.c
Para ejecutar: ./raiz

EJECUCION



NUMEROS PRIMOS

Este programita generara una serie que contiene n numeros primos, la cantidad de resultados se puede controlar desde la constante MAX en el codigo fuente.
/* Programa que imprime "n" numeros primos de acuerdo al numero especificado 
en la constante MAX */

#include 
#define MAX 50

int primo(int numero) {
  int i; 
  for(i = 2; i < numero; i++)
    if(numero % i == 0)
      return 0;
  return 1;
}

int main(void) {
  int primos[MAX], i = 2, k = 0;
  while(k < MAX) {
    if(primo(i) == 1) {
      primos[k] = i;
      k = k + 1;
    }
    i = i + 1;
  }
  printf("\n\t\t\t%d numeros primos\n\n", MAX);
  for(i = 0; i < MAX; i++)
    printf("%d\t", primos[i]);
  putchar('\n');
  return 0;
}


DESCARGA: primos.c

Para compilar: gcc -o primos primos.c
Para ejecutar: ./primos

EJECUCION



SALUDOS!!! ^_^

1 comentario: