Resumen: Entrega nº 67 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00168A

 

 

EJERCICIO

En un fichero tenemos las notas de un grupo de alumnos de una clase en un array Nota(1), Nota(2), ..., Nota(n – 1), establecidas entre 0 y 10. El último dato es un señalero con valor – 50. Se desea desarrollar el pseudocódigo y diagrama de flujo para un programa que determine la nota media.

 

 

SOLUCIÓN

Pseudocódigo:

1. Inicio [Media con señalero aprenderaprogramar.com]

2. i = 1

3. Leer Nota(i)

4. Mientras Nota(i) >= 0 Hacer

Suma = Suma + Nota(i)

i = i + 1

Leer Nota(i)

Repetir

5. Media = Suma / (i – 1)

6. Mostrar “La nota media de la clase es”, Media

7. Fin

 

 

Diagrama de flujo:

 

 

Comentarios: Si lo comparamos con el programa que calculaba la media para una clase de 35 alumnos encontramos lo siguiente:

· Este programa es mucho más potente por estar enfocado a un caso general (clase de n alumnos) en vez de a un caso particular (clase de 35 alumnos). La potencia es una fortaleza del programa. Por ello, siempre que podamos programaremos pensando en casos generales (número de alumnos n, precio de un producto x, velocidad de un vehículo v, etc.)

· Para el número prefijado de iteraciones usábamos la estructura Desde ... Siguiente por ser cómoda, mientras que para un número no conocido de iteraciones hemos usado Mientras ... Hacer.

 

Hemos preferido usar la condición Nota(i) >= 0 en vez de Nota(i) <> - 50 . En general trabajar con intervalos es más seguro que hacerlo con igualdades o desigualdades. Si por cualquier circunstancia el valor almacenado fuera – 50,01 el uso de intervalos nos ahorraría problemas, aunque no siempre será posible evitar las referencias a un valor concreto.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

 

Descargar archivo: