Veamos un ejemplo donde utilicemos dos archivos. Supongamos que tenemos el archivo con la clasificación del índice de masa corporal (ver en Wikipedia IMC, https://es.wikipedia.org/wiki/%C3%8Dndice_de_masa_corporal).
Supongamos que el archivo se llama “IMC.DAT” y contiene el estado y el rango de valores (desde y hasta) que abarca ese estado, con los siguientes valores
Bajo peso |
|
0 |
18.5 |
Normal |
|
18.5 |
25 |
Sobrepeso |
|
25 |
30 |
Obesidad |
leve |
30 |
35 |
Obesidad |
media |
35 |
40 |
Obesidad |
mórbida |
40 |
100 |
la forma de calcular el IMC es el peso dividido la altura al cuadrado (o sea IMC = kg/m2).Pues bien, la idea sería mostrar nuevamente el archivo, pero ahora indicando según su IMC en que estado nutricional se encuentra la persona.
El algoritmo entonces necesitará procesar dos archivos, el archivo IMC y el cargado con pesos y alturas. Para agilizar el proceso y no tener que andar buscando el rango de IMC dentro del archivo (abriendo el archivo cada vez que se busca un rango) y como los datos del IMC son realmente pocos, entonces cargaremos dos arreglos: un vector y una matriz, luego obtendremos la clasificación de los datos cargados en memoria.
Proceso muestraIMC dimension IMC_estado[6] dimension IMC_valor[6,2] i <- 1 // primer paso, cargar el archivo IMC dentro de los arreglos abrir "IMC.DAT" como #1 Leer #1, IMC_estado[i], IMC_valor[i,1], IMC_valor[i,2] Mientras no eof(#1) Hacer i <- i + 1 Leer #1, IMC_estado[i], IMC_valor[i,1], IMC_valor[i,2] FinMientras cerrar #1 // Ahora procesar el archivo con los pesos y alturas abrir "DATOS.TXT" como #2 Mostrar "Estado nutricional: " Leer #2, nombre, sexo, peso, altura Mientras no eof(#2) Hacer IMC <- peso / ( altura ^ 2 ) Mostrar nombre, "Estado nutricional: " Sin Saltar Mostrar estado_IMC(IMC, IMC_Estado, IMC_valor ) Leer #2, nombre, sexo, peso, altura FinMientras cerrar #2 FinProceso Funcion estado <- estado_IMC( IMC, e, v) i <- 1 // Buscando el rango que corresponde al IMC // mientras no supere el final del arreglo i <= 6 // y no encuentre que el IMC entra dentro de un rango Mientras i <= 6 y no ( IMC > v[i,1] y IMC <= v[i,2] ) Hacer i <- i + 1 FinMientras si i = 7 Entonces estado <- "Fuera de rango!" Sino estado <- e[i] FinSi FinFuncion |