Ejercicios : El mayor de tres edades, leídos desde un archivo.

Ejercicios con solución 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: un nuevo ejercicio propuesto por uno de nuestro seguidores del blog www.aprendoencasa.com que nos propone unos ejercicios o prácticas en la que se ha de solicitar por pantalla tres edades y tres nombres, una vez solicitados se han de almacenar en un fichero, posteriormente se ha de leer del archivo, las edades y visualizar por pantalla el nombre de la persona de mayor edad.



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.

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

El ejercicio planteado es el siguiente:

Prácticas: El mayor de tres edades, leídos desde un archivo.

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

se ha de solicitar por pantalla tres edades y tres nombres, una vez solicitados se han de almacenar en un fichero, posteriormente se ha de leer del archivo, las edades y visualizar por pantalla el nombre de la persona de mayor edad. La solución de los ejercicios que se plantean es la siguiente:

/*
    Nuevo ejercicio y práctica de programación
    con solución, propuesta por un usuario del
    blog www.aprendoencasa.com, en el cual se
    ha de solicitar tres numeros por pantalla,
    correspondientes a la edad de tres personas,
    tambien se ha de solicitar el nombre de las
    mismas, conforme se esten solicitando se han
    de almacenar las mismas en un archivo, una
    vez finalizado el proceso de grabación, el
    programa ha de leer los datos del archivo y
    a continuación visualizar en pantalla, el nombre
    de la persona de mayor edad.
    Vuelvo a recordar que no pretendo que el
    planteamiento de la práctica con solución sea
    el unico posible, ya que existen diferentes
    posibilidades de implementación y programación
    de la misma, asi que espero vuestros comentarios
    y aportaciones para que el blog siga creciendo
    gracias a vosotros, un saludo a todos y gracias.

*/

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

// Funcion principal
int main()
{
    // Variables a utilizar en el programa
    int Edad = 0;
    char Nombre[80];
    int Contador = 0;
    char NombreLeido[80];
    int EdadLeida = 0;
    // Variable para control del archivo de datos
    FILE *fichero;


    // Apertura del archivo en modo binario y escritura
    // si no existe el archivo se creara y si existe
    // sera sobreescrito.
    fichero = fopen("datos.bin","wb");

    // Solicitud de las edades y nombres por pantalla
    // almacenando los mismos en el archivo
    // Bucle para solicitar tres datos
    for(Contador=0;Contador<3;Contador++) {
        // Visualizar el titulo de peticion del nombre
        printf("Nombre ( %d ) :",Contador+1);
        //  Solicitar el nombre hasta encontrar el primer
        // intro, lo que hace que podamos teclear nombres
        // compuestos
        scanf(" %[^\n]",Nombre);
        // visualizar el titulo de peticion de la edad
        printf("Edad ( %d ) :",Contador+1);
        // solicitar la edad de la persona
        scanf(" %d",&Edad);
        // almacenar los datos en el fichero
        fprintf(fichero,"%s %d",Nombre,Edad);
    }

    // Para poder leer los datos del archivo se puede
    // volver a cerrar y abrir el mismo para situar el
    // puntero de archivo al principio de los datos, o
    // se puede realizar un "rebobinado" de la posicion
    // del puntero del archivo para situarnos al principio
    // del mismo. en este caso se va a optar por la forma
    // mas simple que es la de cerrar y volver a abrir el
    // archivo.

    // Cerrar el archivo
    fclose(fichero);
    // Abrir el archivo en modo binario y en modo solo
    // lectura para poder leer los datos contenidos en
    // el mismo.
    fichero = fopen("datos.bin","rb");
    // se recorre el archivo leyendo los datos del
    // mismo hasta llegar al final y se comparan los
    // datos para averiguar cual es el mayor.
    // Se inicializan tanto la cadena de texto como la
    // edad de la persona
    Edad = 0;
    Nombre[0]='';
    // mientras no se llegue al final del archivo
    while(!feof(fichero)) {
        // se lee del archivo un registro
        fscanf(fichero,"%s %d",NombreLeido,&EdadLeida);
        // se comparan las edades leidas y almacenada
        if( EdadLeida >= Edad ) {
            Edad = EdadLeida;
            strcpy(Nombre,NombreLeido);
        }
    }
    // se cierra el archivo
    fclose(fichero);
    // se visualiza el nombre de la persona de mas edad
    printf("La persona de mas edad es %s.",Nombre);
    printf("\nFin programa.");
    return 0;
}

 

El ejercicio o práctica ha de mostrar como resultado una imagen similar a la siguiente:

Ejercicios en C, mayor de tres números.

Ejercicios en C, mayor de tres números.