Ejercicios : Realizar sumatorio de números de un archivo
El archivo propuesto por los ejercicios y practicas esta compuesto por filas y en cada fila un numero entre 1 y 5 y valor flotante a continuación.
Se plantea realizar un ejercicio o práctica de programación en el cual se solicita un numero por pantalla entre 0 y 5, si se teclea un valor de cero se sale del programa sin realizar ninguna acción, mientras que si teclea un valor entre 1 y 5 se ha de abrir un archivo, el cual esta compuesto por filas en el que cada fila hay un valor numérico entre 1 y 5 y un valor numérico flotante sobre el cual se ha de realizar el sumatorio del numero flotante siempre que el valor del primer numero coincida con el valor solicitado por pantalla.
La solución de los ejercicios que se plantean es la siguiente:
/*
El siguiente ejercicio o practica de programación en lenguaje c, ha
sido propuesto por un usuario del blog www.aprendoencasa.es, el ejercicio
consiste en solicitar un numero por pantalla entre 0 y 5, si se teclea
un valor de cero se sale de la practica de programación resuelta sin
realizar ninguna acción mientras que si se teclea un valor entre 1 y 5
se ha de abrir un archivo en el cual esta compuesto por filas en el que
cada fila hay un valor numero entre 1 y 5 y un valor numérico flotante
el cual se ha de realizar una suma de todos los valores que coincidan con
el valor solicitado por pantalla. De nuevo agradecer a todos los usuarios
los ejercicios y practicas de programación propuestas y las visitas realizadas
a este vuestro blog www.aprendoencasa.com
*/
// Librerías a utilizar por el programa
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// Variables a utilizar
int NumeroLeer = 0;
float NumeroSumar =0.0;
int NumeroPedir = 0;
FILE *FicheroLectura;
int BanderaExiste = 0;
float SumaNumeros = 0.0;
// Solicitar el numero del cual se quiere realizar el sumatorio
// los números validos serán entre 1 y 5 siendo 0 el valor de salida
// del programa. En caso de introducir un numero erróneo volver a solicitar
// el mismo por pantalla.
do {
printf("\nNumero ...: ");
scanf(" %d",&NumeroPedir);
if(NumeroPedir<0 || NumeroPedir>5) {
printf("\n!Error en la entrada del numero. (0 a 5)!\n");
}
} while(NumeroPedir<0 || NumeroPedir>5);
// Si el numero introducido no es cero y es un valor correcto entre 1 y 5
// se abrirá el archivo de datos para leer el fichero con los números
// y realizar el sumatorio que plantea el ejercicio o practica
FicheroLectura = fopen("datos.dat","r");
if(!FicheroLectura) {
printf("\n!Error en la apertura del archivo. Compruebe los datos");
} else {
// El fichero se ha abierto correctamente y por tanto se procede
// a recorrer el mismo buscando si existe un numero coincidente
// con el dato y realizando la suma. Se utiliza la variable
// bandera para saber si hay alguna aparición del numero especificado
// en la practica o ejercicio de programación en c
BanderaExiste = 0;
SumaNumeros = 0.0;
// Se realiza una prelectura
fscanf(FicheroLectura,"%d %f",&NumeroLeer,&NumeroSumar);
while(!feof(FicheroLectura)) {
// Se ha encontrado el numero y se realiza la suma
// correspondiente
if(NumeroPedir == NumeroLeer) {
SumaNumeros += NumeroSumar;
BanderaExiste = 1;
}
// Leer el siguiente registro
fscanf(FicheroLectura,"%d %f",&NumeroLeer,&NumeroSumar);
}
// Se cierra el archivo
fclose(FicheroLectura);
// Si bandera existe es que el numero existía en el archivo
// y por tanto se ha realizado un sumatorio que se visualiza
if(BanderaExiste==1) {
printf("\nEl Sumatorio del %d es igual a %.2f\n\n",NumeroPedir,SumaNumeros);
} else {
printf("\nEl numero no se ha encontrado en el archivo..\n\n");
}
}
system("PAUSE");
return 0;
}
Teniendo en cuenta que el archivo de datos se ha de llamar «datos.dat» y estar situado en el mismo directorio donde se encuentra el programa. Se ha creado un archivo con los siguientes datos.
Y el resultado del ejercicio o práctica, ha de mostrar una solución similar a la que se muestra a continuación.
Gracias por vuestra visita y un saludo!!!