Informática: resolución de un problema en fortran

Solo disponible en BuenasTareas
  • Páginas : 7 (1661 palabras )
  • Descarga(s) : 0
  • Publicado : 11 de septiembre de 2012
Leer documento completo
Vista previa del texto
Análisis del problema

Datos:
- Se conocen al inicio: A partir del archivo envios.txt podemos obtener el código postal, año, cantidad total de envíos a ese lugar en ese año y tipo de envío (A, B o C)
- Se obtienen en el transcurso: El archivo tipos_envios.txt que creamos en el punto número 1 y la tabla cod_anio que realizamos en el punto número 3. Además, en el punto 2, 4 y 5 se utilizandatos que ingresa el usuario por teclado, estos son el código postal (en el caso 2) y el año (en el caso 4 y 5).


Metodología:

Para resolver el trabajo práctico, pensamos en un algoritmo principal que invoque a diferentes subalgoritmos, y a su vez, debimos crear diferentes estructuras de datos e implementar diferentes metodologías para resolver cada una de las consignas.
El algoritmoprincipal invoca a una función menú, la cual muestra en pantalla 6 opciones para que el usuario indique qué desea realizar. Las opciones 1,2,3 y 5 invocan a subrutinas, la opción 4 a una función y la opción 6 es para finalizar el programa. A su vez, como en los casos 2, 4 y 5 se deben ingresar sus datos por teclado, validamos los mismos llamando a la función lógica VALIDA desde el algoritmo principal.Consigna 1:
El algoritmo principal invoca a la subrutina rta1, la cual tiene la siguiente metodología. Primero abrimos el archivo llamado envios.txt, del cual leemos línea por línea, y definimos el tipo y como llamaremos a cada campo. Luego guardamos el primer código postal leído en una variable llamada x_ant, y mientras x_ant sea igual que el código postal que va leyendo de las diferenteslíneas, que acumule la cantidad total de tipo A, de tipo B y de tipo C. Cuando termina con el primer código leído, graba la primer línea en el nuevo archivo llamado tipos_envios.txt, y procede a leer la segunda línea del archivo envios.txt, repitiendo todo el procedimiento anterior hasta que sea el final de archivo envios.txt.

Consigna 2:
Para poder realizar esta sentencia, es necesario si o siprimero realizar el punto 1, ya que la información necesaria para ejecutar la consigna 2 proviene del archivo tipo_envios.txt creado en dicho punto. Por esto, utilizamos una variable bandera para asegurarnos que se haya ejecutado el caso 1 antes del 2.
Una vez que el usuario ejecuta la opción 2, se invoca a la subrutina rta2. La misma primero abre el archivo tipo_envios.txt de donde obtiene losdatos para trabajar. Luego se le pide al usuario que ingrese un código postal y valida que sea un código existente. En caso de no coincidir con ningún código postal, se muestra un cartel informando que ese código postal no existe. Si el valor existe, entonces muestra en pantalla el total de envíos tipo A, tipo B y tipo C para ese lugar.

Consigna n°3:
Para este caso utilizamos un subalgoritmo detipo “subrutina” llamado rta3 que posee una variable de salida que nombramos cod_anio. Dentro de la subrutina, abrimos el archivo envios.txt, inicializamos el arreglo cod_anio de 30 filas y de 7 columnas en 0, y leímos el archivo. El primer código postal que lea se lo asignamos a una variable llamada x_ant, y, mientras que x_ant sea igual que el código que lee del archivo y no sea el final delarchivo, va a leer año por año y acumular en el arreglo la cantidad total del mismo.
Para que este arreglo sea más sencillo, tomamos como índice los años del 2005 al 2010, y añadimos el año 2004 para poder guardar los códigos postales en la primer columna. También, al no saber exactamente cuántos códigos postales posee el archivo, utilizamos un contador que se incrementa a medida que completa uncódigo postal. Pero, sí se sabe que no hay más de 30 códigos postales diferentes, por esto nuestro arreglo cod_anio posee 30 filas.

Consigna n°4:
Para resolver esta consigna utilizamos una función de tipo entero que posee dos parámetros formales, que son el año, que se ingresa por teclado, y la tabla cod_anio realizada en la consigna 3, que se encuentra en memoria como un arreglo. Como en...
tracking img