
Problema con promedio de notas
Publicado por Juan (8 intervenciones) el 17/09/2016 04:04:14
Buenas! Tengo que calcular y mostrar los mejores dos centros con su correspondiente promedio de notas. Ya hice todo pero no puedo encontrar el error..a veces me muestra bien el promedio, otras me pone 11.3, etc (imposible). Si alguien me puede dar una mano le agradeceria.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program tp1;
uses
crt,dos;
const
ncentros = 4;
ncursos = 8;
nalumnos = 30;
type
centros = array[1..ncentros] of string;
cursos = array[1..ncursos] of string;
tabla = array[1..ncentros,1..ncursos,1..nalumnos] of integer;
var
V:tabla;
centro:centros =('Lujan','Campana','Chivilcoy','Capital Federal');
curso:cursos =('Ingles','Frances','Aleman','Computacion','Algebra','Logica','Estadistica','Programacion');
procedure cargar_notas (var v:tabla);
var
i,j,k:byte;
begin
randomize;
for i:=1 to ncentros do
for j:=1 to ncursos do
for k:=1 to nalumnos do
v[i,j,k] := random(10)+1;
writeln('Notas cargadas aleatoriamente. Pulse cualquier tecla para volver al menu:');
end;
procedure mejores_centros (var v:tabla; var centro:centros; var curso:cursos);
var
suma:integer;
i,j,k,centro1,centro2:byte;
prom,mayor,mayor1:real;
begin
suma:=0;
mayor:=0;
mayor1:=0;
centro1:=0;
centro2:=0;
for i:=1 to ncentros do begin
for j:=1 to ncursos do
for k:=1 to nalumnos do
suma:=suma + v[i,j,k];
prom:=suma/nalumnos/ncursos;
if (prom>mayor) then begin
if (mayor>mayor1) then begin
mayor1:=mayor;
end;
mayor:=prom;
centro1:=i;
suma:=0;
end
else begin
if (prom>mayor1) then begin
mayor1:=prom;
centro2:=i;
suma:=0;
end;
end;
end;
writeln('Los dos mejores centros y sus notas (media) son:');
writeln;
writeln(centro1,'- ',centro[centro1],' (promedio = ',mayor:0:1,')');
writeln(centro2,'- ',centro[centro2],' (promedio = ',mayor1:0:1,')');
end;
begin
cargar_notas(V);
mejores_cursos(V,centro,curso);
end.
Valora esta pregunta


0