Pascal/Turbo Pascal - AYUDA CON PROGRAMA!!

 
Vista:
sin imagen de perfil

AYUDA CON PROGRAMA!!

Publicado por luis Fernando (1 intervención) el 08/03/2018 19:08:12
Necesito hacer un programa al que le de el nombre de ciertos alumnos, su promedio, materias reprobadas y aprobadas y al final me de la lista de alumnos que pasan y los que no pasaran a la universidad.
Ya tengo medio hecho el programa, el problema es que a la hora de poner los promedio con decimales, el programa se quiebra... ¿Me ayudan completandolo, por favor?

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
program Alumnos;
  uses
     crt;
  type
     tclasificacion = Record
      Nombrealumnos : string[20];
            Promedio : integer;
        aprobadas : integer;
       Reprobadas : integer;
     end;
 
 var
   Alumnos : array[1..10] of tclasificacion;
       aux : tclasificacion;
   i, t, r : integer;
 
 procedure entradadatos;
 begin
     for i := 1 to 10 do
     begin
        clrscr;
        writeln(' DATOS DE LOS ALUMNOS : ',i);
        writeln;
        write('Nombre del alumno        : ');
        readln(Alumnos[i].nombrealumnos);
        write('¿Cuál es su promedio?: ');
        readln(alumnos[i].promedio);
        write('Materias aprobadas          : ');
        readln(Alumnos[i].aprobadas);
        write('reprobadas      : ');
        readln(Alumnos[i].Reprobadas);
    end;
  end;
 
   procedure ordenaalumnos;
   begin
       for t := 1 to 8 do
         for r := 8 downto t + 1 do
         if alumnos[t].promedio < alumnos[r].promedio then
         begin
             aux := alumnos[t];
             alumnos[t] := alumnos[r];
             alumnos[r] := aux;
         end;
   end;
 
   procedure mostraresultados;
   var
      d : integer;
   begin
       writeln('.... Pasan a la universidad .....');
       writeln;
       for d := 1 to 6 do
       writeln(alumnos[d].nombrealumnos,'   promedio : ',alumnos[d].promedio);
       writeln;
       writeln(',,,, no pasan ,,,,,');
       writeln;
       for d := 7 to 8 do
       writeln(alumnos[d].nombrealumnos,'   promedio : ',alumnos[d].promedio);
       writeln;
       writeln('*** Pulse [Enter] ***');
       readln;
   end;
 
   procedure menu;
   var
     tec : char;
   begin
      repeat
       clrscr;
       writeln('**** Menu General ****');
       writeln;
       writeln('  1 = Entrada Datos');
       writeln('  2 = Mostrar Resultados');
       writeln('  3 = Salir');
       writeln;
       writeln('<<< Elija Opcion >>>');
       repeat
       tec := readkey;
       until tec in['1','2','3'];
    case tec of
  '1' : begin
        clrscr;
        entradadatos;
        ordenaalumnos;
        end;
  '2' : begin clrscr; mostraresultados; end;
    end;
      until tec = '3';
   end;
 
 
   begin
      menu;
   end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA CON PROGRAMA!!

Publicado por elio (1 intervención) el 09/03/2018 00:05:18
Promedio : integer;

La variable de tipo entero no admiten decimales
usar variables tipo "single" o "real"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar