#31 más que entender diría que debería aprender a resolver los problemas; entender el problema y buscar resolverlo y para ello necesita practicar la lógica, e incluso la abstracción pienso que es algo fundamental, encontrar un problema y abstraerte hasta el punto de partida. Es como aparecer en la salida de un laberinto y tener que buscar el camino de vuelta al inicio. Puede parecer una tontería, pero no sé, yo siempre lo he visto así en cuanto al tema de ser resolutivo.
primero hay que saber interpretar el problema, ya puedes saber toda la programación que quieras que no lo vas a hacer. Vale , que #1 no lo entienda , puede pasar.. Pero nadie ?? Si solo es utilizar un poco de lógica, luego quiza no te salga programandolo, pero bueno, saber lo que debes hacer si
max' :: (Ord a) => a -> a -> a
max' a b = if (a > b) then a else b
maxList :: (Ord a) => [a] -> a
maxList [x] = x
maxList (x:xs) = max' x (maxList xs)
$ maxList [1,3,25]
=> 25
$ maxList ['b','a','f']
=> 'f'
Lo resolví bien al final. Haciendo otros ejercicios me vino, en realidad era muy sencillo.
import java.util.Scanner;
public class altura2 {
public static void main(String []args){
int alumnos;
float altura;
float aux=0;
Scanner teclado=new Scanner(System.in);
System.out.println("Nº alumnos");
alumnos=teclado.nextInt();
for(int i=1;i<=alumnos;i++) {
System.out.println("Altura alumno "+i);
altura=teclado.nextFloat();
if(altura>aux)
aux=altura;
}
System.out.println("el alumno mas alto mide: " + aux);
}
}
Y sé que que te imprima todo el rato "altura de alumno X" es feísimo pero está más clarinete.