No. 46 de 56 de articulos. Practicas C

Articulos encontrados...

Prácticas y Ejercicios con Solución

Ejercicios, Prácticas y Ejercicios, Cursos Gratuitos

Ejercicios : Realizar la comprobación de una fecha correcta…

La práctica o ejercicios con solución que se propone es realizar un ejercicio en el cual se ha de solicitar una fecha por pantalla con el formato dd/mm/aaaa y comprobar que la misma sea correcta en todos los sentidos, en caso que sea incorrecta la fecha, se ha de volver a solicitar.

Ejercicio propuesto por un usuario del blog www.aprendoencasa.es.

Ejercicios con solución petición y comprobación de fecha

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. Los ejercicios y prácticas propuestos son de una nueva serie dedicada a la programación en c, en este caso se realizan ejercicios, en el cual la solución del mismo se ha planteado de cierta forma por el administrador  del blog www.aprendoencasa.es . Vuelvo a comentar que no es la única solución posible y que la forma de mejorar siempre estas prácticas o ejercicios 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 MAS”. 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. Recordaros que los cursos online gratuitos en modalidad a distancia o teleformación, no pretenden ser un temario cerrado y que esperamos vuestras aportaciones. Muchísimas gracias por visitarnos.

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

El ejercicio planteado es el siguiente:

Ejercicios : Realizar la comprobación de una fecha correcta…

La práctica o ejercicios con solución que se propone es realizar un ejercicio en el cual se han de solicitar una fecha  por pantalla que ha de tener el siguiente formato dd/mm/aaaa, y se ha de comprobar que la misma, sea correcta en todos los sentidos.

Ejercicios y Practicas resueltas en lenguaje de programación en lenguaje C, Cursos Online Gratuitos

La práctica o ejercicios con solución que se propone es realizar un ejercicio en el cual se han de solicitar una fecha por pantalla y esta ha de ser correcta en todos los sentidos es decir, se ha de comprobar los días, meses, años, y que los separadores de la misma este bien situados..  La solución de los ejercicios que se plantean es la siguiente:

/*
    El siguiente ejercicio o práctica de programación
    tiene como función realizar el aprendizaje de las
    ordenes relacionadas con el tratamiento de cadenas
    de la libreria string.h, asi como la utilización de
    bucles, conversion de cadena a número, etc.

    Para realizar este ejercicio o práctica se ha de solicitar
    una fecha utilizando un formato de cadena dd/mm/aaaa, se
    ha de comprobar que la fecha sea correcta y que el formato
    de la misma este bien, teniendo en cuenta que para el dia
    y el mes se han de teclear obligatoriamente dos digitos
    mientras que para el año se han de teclear cuatro, se ha
    de tener en cuenta tambien si el año es bisiesto o no.

*/

// Librerias a utilizar por el programa
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    // Variables a utilizar por el programa
    int dia = 0;
    int mes = 0;
    int anyo = 0;
    char fecha[11];
    char cdia[3];
    char cmes[3];
    char canyo[5];
    int correcta = 0; // Variable para controlar si la fecha es correcta
                        // 0 indica correcta 1 indica un valor incorrecto
    char *puntero;
    int contador;
    int auxiliar=0;

    // se solicita la fecha por pantalla
    do {
        // damos por hecho que la fecha es correcta
        // si se encuentra algun error entoces se modifica
        correcta = 0;
        // se solicita la fecha utilizando un formato cadena
        printf("Fecha (dd/mm/aaaa)...: ");
        scanf(" %s",fecha);
        // se comprueba en primer lugar si la longitud de la
        // fecha son diez caracteres, si no es asi esta mal
        // se utiliza la funcion strlen de la libreria string.h
        if(strlen(fecha)!=10) correcta=1;
        // se comprueba cuantas barras existen y en que posiciones
        contador = 0;
        while(contador<=strlen(fecha)) {
            if(fecha[contador]=='/' && (contador!=2 && contador!=5)) correcta=1;
            contador++;
        }

        if(correcta==0) {

            // Separar la fecha utilizando la funcion strtok
            contador=0;
            puntero = strtok (fecha,"/");
            while(puntero!=NULL) {
                switch(contador) {
                    case 0:
                        strcpy(cdia,puntero);
                        break;
                    case 1:
                        strcpy(cmes,puntero);
                        break;
                    case 2:
                        strcpy(canyo,puntero);
                        break;
            }
                contador++;
                puntero = strtok (NULL,"/");
            }
            // convertir dia,mes y año en formato texto a numero
            dia = atoi(cdia);
            mes = atoi(cmes);
            anyo = atoi(canyo);
            // Otra forma de convertir la fecha puede ser la
            // siguiente utilizando el codigo ascii y teniendo en
            // cuenta que el valor del caracter ascii del 0 es 48
            dia = ((cdia[1]-48)*1) + ((cdia[0]-48)*10);
            mes = ((cmes[1]-48)*1) + ((cmes[0]-48)*10);
            anyo = ((canyo[3]-48)*1) + ((canyo[2]-48)*10) + ((canyo[1]-48)*100) + ((canyo[0]-48)*1000);
            // Una vez separada la fecha se realiza la comprobacion para
            // analizar si la fecha es correcta, comprobando los meses
            // y los dias correspondientes a cada mes
            switch(mes) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    if(dia<1 || dia>31) correcta=1;
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    if(dia<1 || dia>30) correcta=1;
                    break;
                case 2:
                    // si el año es bisiesto o no
                    if ( ((anyo%4==0) && (anyo%100!=0)) || (anyo%400==0) ) {
                        if(dia<1 || dia>28) correcta=1;
                    } else {
                        if(dia<1 || dia>29) correcta=1;
                    }
                    break;
                default:
                    correcta=1;
                    break;
            }
        }
    } while(correcta==1);
   return 0;
}

/*
    funcion: STRLEN
    ============================
    perteneciente a la libreria string.h, la función devuelve el numero
    de caracteres que contiene una cadena sin tener en cuenta el caracter
    de fin de cadena. el formato de utilización es el siguiente

        VariableNumerica = strlen(VariableCadena) ;

    funcion: STRCPY
    ===============================
    perteneciente a la libreria string.h, la función realiza la copia
    de una cadena de caracteres en otra. el formato de utilización es el
    siguiente.

        strcpy(CadenaDestino,CadenaOrigen);

    funcion: STRTOK
    ==================================
    perteneciente a la libreria string.h, la funcion realiza la
    descomposicion de la cadena especificada en trozos (tokens)
    el problema es que la cadena original es destruida en el
    proceso. el formato de utilización es el siguiente.

        strtok(CadenaCaracteres,CaracterSeparador);

    esta funcion normalmente se utiliza con un puntero y un
    bucle que repita el proceso hasta que se recorre la cadena
    por completo. observar el ejemplo de descomposicion de la
    fecha utilizando el caracter separador / (barra).

    funcion: if
    ===================
    la funcion if denominada tambien Si Condicional, permite
    realizar la evaluación de una condición y ejecutar una
    serie de acciones dependiendo del resultado verdadero o falso
    de la misma. el formato de utilización es el siguiente.

        if (Condicion) {
            acción/es a realizar en caso verdadero;
        } else {
            acción/es a realizar en caso falso;
        }

    funcion: do...while
    ===============================
    la funcion do...while se denomina tambien bucle condicional,
    haz mientras.
    ya que repite una serie de acciones mientras se cumpla la
    condicion que se especifique en la misma. la diferencia con
    otros bucles, es que al menos una vez las acciones que se
    encuentran en el mismo son ejecutadas, posteriormente se
    comprueba la condicion y si se cumple se vuelve a repetir
    el grupo de acciones. el formato de utilización es el siguiente.

        do {

            acción/es a realizar;

        } while(CondicionAEvaluar)

    funcion: while
    ===============================
    la funcion while se denomina tambien bucle condicional mientras.
    la orden permite realizar la repeticion de una acción o
    conjunto de acciones, mientras que se cumpla la condición
    que se especifique. a diferencia del anterior bucle, primero
    se evalua la condición y si se cumple se realizan las ordenes
    especificadas. el formato de utilización es el siguiente.

        while ( Condicion ) {
            acción/es a realizar;
        }

    función: switch
    ========================================
    la función switch al igual que el si condicional permite
    realizar la ejecución de acciones dependiendo del valor
    que se evalua por la orden. el formato de utilización es
    el siguiente.

        switch ( VariableaEvaluar ) {
            case Valor:
                acción/es;
                break;
            case Valor:
                acción/es;
                break;
            default:
                acción/es;
                break;
        }

*/

 

El resultado del programa en ejecución es el siguiente:

image

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