No. 26 de 56 de articulos. Practicas C

Articulos encontrados...

Prácticas y Ejercicios con Solución

Ejercicios con solución y prácticas resueltas de programación en c,nuevos ejercicios de programación en lenguaje C. El enunciado de las prácticas y ejercicios que se plantea es el siguiente: El ejercicio propuesto por uno de nuestro seguidores del blog www.aprendoencasa.com que nos propone unos ejercicios o prácticas en la que se plantea solicitar dos fechas por pantalla y a continuación utilizando funciones crear una que devuelva la diferencia en dias entre dos fechas.

Vuelvo a comentar que no es la única solución posible y que la forma de mejorar siempre estas prácticas es que aportéis vuestro granito de arena utilizando para ello los comentarios. Un saludo y gracias por vuestra visita.

Para realizar las practicas o consultar los ejercicios de programación resueltos has de pulsar sobre el enlace a continuación denominado “LEER EL ARTICULO COMPLETO”. Recuerda también darnos ánimos haciendo un clic en el botón google+1 de la columna izquierda o el que esta situado en la parte superior del articulo, así como recomendar la visita a nuestra página a tus amigos.

Ejercicios y practicas de programación en c resueltos o con solución

El ejercicio planteado es el siguiente:

Ejercicios y Practicas resueltas en lenguaje de programación en C

introduciendo dos fechas por pantalla utilizando estructuras para solicitar las mismas el programa ha de devolver la diferencia en dias entre las dos fechas tecladas, esta función que existe en otros lenguaje es facil de implementar en c, aunque algo tediosa. se ha de tener en cuenta que se emplean para resolver el ejercicio propuesto el operador condicional del lenguaje C. La solución de los ejercicios que se plantean es la siguiente:

/*

Nuevo ejercicio con solución o práctica resuelta de 

programación en lenguaje C, estos ejercicios se proponen 

para potenciar el aprendizaje de personas que estén estudiando 

programación y en particular el lenguaje de programación c. 

La práctica resuelta que se propone es la de realizar un programa 

que solicitando dos fechas, devuelve la diferencia en días entre 

las dos fechas tecleadas. Vuelvo a comentar que no es la única 

solución posible y que la forma de mejorar siempre estas prácticas 

es que aportéis vuestro granito de arena utilizando para ello los 

comentarios. Un saludo y gracias por vuestra visita a este vuestro blog

www.aprendoencasa.com

*/

// Libreria de funciones a utilizar

#include <stdio.h>

// Definicion de constantes

#define TRUE 1

#define FALSE 0

// Estructuras de tipo fecha

typedef struct {

        int dia;

        int mes;

        int anyo;

} Date;

// Predefinicion de funciones

int EsBisiesto(int);

int NumeroDiasAnyo(int);

int DiasTranscurridosAnyo(Date);

long DiferenciaFechas(Date,Date);

// Funcion principal

int main(int argc, char *argv[])

{

    // Variables a utilizar para las fechas

    Date Fecha1;

    Date Fecha2;

    // Solicitar la primera fecha

    printf("Fecha Inicio (dd mm yyyy) : ");

    scanf("%d %d %d",&Fecha1.dia,&Fecha1.mes,&Fecha1.anyo);

    // Solicitar la segunda fecha

    printf("Fecha Final (dd mm yyyy) : ");

    scanf("%d %d %d",&Fecha2.dia,&Fecha2.mes,&Fecha2.anyo);

    // las fechas solicitadas se suponen que son correctas ya que

    // este programa no realiza la comprobacion de las mismas

    // tambien se supone que la primera fecha es igual o inferior a la

    // segunda fecha tecleada

    // Visualizar la diferencia en dias llamando a la funcion

    printf("Diferencia en dias = %ld",DiferenciaFechas(Fecha1,Fecha2));

    // realizar una pausa en el sistema

    system("PAUSE");

    // Finalizar programa

    return 0;

}

// Funcion para comprobar si un año es bisiesto

// se pasa como parametro el año 

int EsBisiesto(int anyo) 

{

  int resultado = FALSE;

  // se comprueba si el año es bisiesto o no

  if ( ((anyo%4==0) && (anyo%100!=0)) || (anyo%400==0) )

     resultado = TRUE;

  // se devuelve el resultado

  return resultado;

}

// Funcion que devuelve el numero de dias del año teniendo

// en cuenta si el año pasado como parametro es bisiesto o no

int NumeroDiasAnyo(int anyo)

{

    // para devolver el numero de dias se utiliza el operador

    // condicional en conjuncion con la llamada a la funcion

    // que indica si el año es bisiesto o no

    return EsBisiesto(anyo)?366:365;

}

int DiasTranscurridosAnyo(Date Fecha)

{

 // Variables a utilizar   

  int contador=0;

  int suma=0;

  int dia=Fecha.dia;

  int mes=Fecha.mes;

  int anyo=Fecha.anyo;

  // Crear una matriz numerica con los dias

  // correspondientes a cada mes

  int Meses_Anyo[] = {31,28,31,30,31,30,31,31,30,31,30,31};

  // Contar los dias transcurridos segun los meses pasados

  for (contador=0;contador<mes-1;contador++)

  {

     suma+= Meses_Anyo[contador];

  }

  //  sumar los dias correspondientes al mes actual

  suma+= dia;

  // si el año es bisiesto sumar 1 dia mas al total

  if(EsBisiesto(anyo) && mes>2) 

     suma++;

  // devolver el numero de dias transcurridos de la fecha pasada

  return suma;

}

// Funcion que devuelve el numero de dias transcurridos entre dos fechas

// la primera fecha ha de ser menor a la segunda fecha, los años de ambas

// fechas se han de especificar con cuatro digitos para que el programa

// funcione correctamente

long DiferenciaFechas(Date Fecha1,Date Fecha2)

{

     // Variables a utilizar

     int anyoiniciocuantos=0;

     int anyofinalcuantos=0;

     long sumadias=0;

     int cuentaanyos=0;

     // Dias transcurridos de la primera fecha, en caso de ser años iguales

     // la diferencia en dias de la primera fecha es 0

     anyoiniciocuantos = Fecha1.anyo==Fecha2.anyo?0:

          NumeroDiasAnyo(Fecha1.anyo) - DiasTranscurridosAnyo(Fecha1);

     // dias transcurridos del año de la segunda fecha

     anyofinalcuantos = DiasTranscurridosAnyo(Fecha2);

     // Contar los años transcurridos entre una fecha y otra sumando

     // los dias correspondientes por año

     for(cuentaanyos=Fecha1.anyo+1;cuentaanyos<Fecha2.anyo;cuentaanyos)

     {

        sumadias+=NumeroDiasAnyo(cuentaanyos);

     }

     // sumar los dias correspondientes al total de dias transcurridos

     sumadias+=anyoiniciocuantos+anyofinalcuantos;

     // devolver la suma de dias transcurridos

     return sumadias;

}

La captura de pantalla, al ejecutar los ejercicios con solución es la siguiente:

Ejercicios y prácticas con solución de programación en c

Navegacion SeriesAnterior en la serie...Siguiente en la serie...

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies