• Viernes 29 de Marzo de 2024, 10:27

Autor Tema:  Calcular Promedio  (Leído 3516 veces)

thot_ohm

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Calcular Promedio
« en: Martes 14 de Junio de 2005, 16:01 »
0
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:

Código: Text
  1.  
  2. var
  3.     i: byte;
  4.     key: char;
  5.     Notas: Array[1..10] of real;
  6.     SumNotas: real;
  7.   begin
  8.   i:= 0;
  9.   repeat
  10.     i:= i + 1;
  11.     write ('Intoduzca la nota: ');
  12.     readln (Notas[i]);
  13.     SumNotas:= SumNotas + Notas[i];
  14.     write ('¨Desea introducir otra nota? (s/n): ');
  15.     readln (key);
  16.     if i = 10 then write ('Ya se tienen 10 notas del alumno');
  17.   until (key = 'n') or (key = 'N') or (i = 10);
  18.   Datos.Prom:= SumNotas / i;
  19.   write ('El promedio es ', Datos.Prom);
  20.   readln;
  21.   end;
  22.  
  23.  

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
Código: Text
  1.  
  2. Notas: Array[1..n] of real;
  3.  
  4.  
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
Código: Text
  1.  
  2. NOtas: Array[1..MaxNotas] of real;
  3.  
  4.  
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.
OHM

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Calcular Promedio
« Respuesta #1 en: Miércoles 15 de Junio de 2005, 01:52 »
0
La longitud de un arreglo no puede ser una variable, solo una constante.
Código: Text
  1.  
  2. WriteLn(varReal:0:2); //si es 2.32589 escribe: 2.32
  3. WriteLn)varReal:10:3);//si es 2.32589 escribe:          2.323
  4.  
  5.  
Citar
varReal:A:F;
A=Caracteres alineacion derecha
F=numeros despues de la coma

No se recomieda usar pormedio para valores mayores a 7 porque el promedio es preciso con series +/- inferiores a 7. Si son mayores a 7 hay que usar promedio con parametro Student "t" que es un poco m'as complicado.

thot_ohm

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: Calcular Promedio
« Respuesta #2 en: Miércoles 15 de Junio de 2005, 14:57 »
0
Citar
No se recomieda usar pormedio para valores mayores a 7 porque el promedio es preciso con series +/- inferiores a 7. Si son mayores a 7 hay que usar promedio con parametro Student "t" que es un poco m'as complicado.

Con razón recomendaban eso jejeje. Yo por dármelas de arrecho me volví un ocho. O sea como decimos en Venezuela: Por hacer una gracia me salió una morisqueta  :rolleyes: .

En cuanto a lo de la notación científica mil gracias, eso era lo que necesitaba.
OHM