Hola!
Necesito un poco de ayuda para entender la solución presentada para el ejercicio de desarrollo.
Según la letra ( adjunto debajo ) nos piden implementar procedimientos que lean de la entrada estándar una oración / n oraciones, pero asimismo menciona el no uso de read ni readln ( únicos procedimiento de entrada de datos vistos en el curso hasta ahora ), lo cuál ya de por sí da a entender que no es posible leer los datos de entrada de la consola con el conocimiento visto en el curso ( hay otras formas cómo readkey, pero no fueron dadas en el curso ).
Mis dudas respecto a la solución es la siguiente:
1- Dentro de CantidadDeLetras, la variable largo está inicializada cómo boolean, pero luego se le asigna un valor integer ( que sería el retorno de leerPalabraLargo ), ésto entiendo que no debería ni de compilar.
2- cant en oracionMasLarga entiendo que no está inicializado, según nos dijeron en el curso es una mala práctica dado que genera un comportamiento indefinido, o algún error en tiempo de compilación. De todas formas siguiendo el razonamiento cuando se pasa la variable hacia cantidadDeLetras(cant) dentro se "transforma" a cnt , si cnt := 0 y largo es booleano ( asumiendo que el programa compile y ejecute ) debería retornar siempre 0.
3- En qué momento se lee la entrada completa de la frase? porque si no está en oracionMasLarga ni en cantidadDeLetras, no pueden usarse read ni readln no debería de recibirse la frase por parámetro en el procedure oracionMasLarga?