A mi me parece correcto.
Un apunte, más de apariencia visual de los resultados que otra cosa. Puedes utilizar la función Format, para mejorar la salida de datos.
Por ejemplo, en lugar de esta línea:
Puedes poner esta:
Código Delphi
[-]
Write(Format('Nota:%d con peso:%d%%', [NOTA1, PESO1]));
Y verás que hay diferencia.
El primer %d significa que en esa posición va 1 número entero (el primer parámetro NOTA1). El segundo %d significa el segundo parámetro (PESO1) y el %% es para pintar el character de porcentaje(%).
Pruebalo y verás el cambio.
Aquí hay varios ejemplos de cómo se utiliza.
Algo similar puedes hacer con el resultado.