Hola de nuevo.
Siguiendo con el desarrollo del programa, tengo que calcular el promedio de unas notas. En las especificaciones que me dieron en la Universidad me dicen que se recomienda que no sean mayor a 7 notas. De todas maneras yo quiero hacer que calcule el promedio de n notas (por hacer el programa más flexible).
Para seguir con el planteamiento del problema acá está el código que hice:
var
i: byte;
key: char;
Notas: Array[1..10] of real;
SumNotas: real;
begin
i:= 0;
repeat
i:= i + 1;
write ('Intoduzca la nota: ');
readln (Notas[i]);
SumNotas:= SumNotas + Notas[i];
write ('¨Desea introducir otra nota? (s/n): ');
readln (key);
if i = 10 then write ('Ya se tienen 10 notas del alumno');
until (key = 'n') or (key = 'N') or (i = 10);
Datos.Prom:= SumNotas / i;
write ('El promedio es ', Datos.Prom);
readln;
end;
Datos.Prom es una variable declarada en la cabecera del programa (este código es nada más el procedimiento en discusión).
Inicialmente, había hecho
Notas: Array[1..n] of real;
Pero cuando compilo me da un error que la variable es demasiado larga (¿?). Le dí una longitud al arreglo de 10 para no estancarme ahí y seguir con el procedimiento.
Yo sé que se puede hacer
NOtas: Array[1..MaxNotas] of real;
Donde MaxNotas es una constante con un valor "x".
Mi pregunta es: ¿Puedo darle al arreglo una longitud declarada por una variable? Es decir ¿Puede el arreglo tener una longitud variable?
Otra cosa: Cuando muestro el promedio por pantalla aparece en notación científica. ¿Como se hace para especificar el número de decimales que queremos que aparezcan?
Gracias por la ayuda.