Este me pide que se lea una serie de 300 datos correspondientes al peso de la misma cantidad de niños. Lo que tengo que hacer es una tabla en la cual me informe la cantidad de niños que pesan entre 10 y 20 kilos, entre 20.01 y 30, y más de treinta, solo puedo usar arrays, procedimientos y funciones. Agradeceré tu respuesta.
Supongamos que no se necesita el nombre de los niños. Tus ED serían: A : array [1..300] of real; A1, a2, a3 : integer;estos son tus contadores para cada grupo. Esta variante de solución basa su eficiencia en que se recorre la lista una sola vez y como resultado quedan separados los 3 grupos, esto da mayor velocidad, pero para eso se utiliza más espacio de memoria debido a que tengo que utilizar 3 var como contadores. Otra variante es construir 3 funciones que cada una de un grupo distinto y como vez entonces la lista se recorrería 3 veces. Aquí te va esta, si prefieres la otra, ya sabes solo pídelo. Supongamos que ya captastes los 300 valores y estos ya los almacenastes en el arreglo a. Ahora dices: for i:=1 to 300 do si a<= 20 Entonces Inc(a1) Sino si a > 30 Entonces Inc(a3) Sino Inc(a2) Como resultado tienes lo que has pedido, en a1, a2, a3 la cantidad de niños con el peso respectivo a cada grupo. Para dar mayor belleza puedes encapsular esto en un procedimiento y llamarlo Clasificación o lo que se te ocurra. La tabla hazla con algo como esto: writeln(' grupos cant' ); writeln('10 y 20 ',a1) writeln('20.1 y 30 ',a1) writeln('30 y más ',a1) esto suponiendo que la salida sea por consola; ¿Satisfecho(a)?