Pascal/Turbo Pascal - Ayuda para realizar programa en Pascal "Elecciones"

   
Vista:

Ayuda para realizar programa en Pascal "Elecciones"

Publicado por Héctor (8 intervenciones) el 13/05/2013 00:56:09
Necesito ayuda para realizar el siguiente programa, agradeceria mucho su ayuda, de antemano gracias.

Aqui el programa:

En época de elecciones es muy trascendente la participación de todos y todas los ciudadanos, además es de vital importancia el análisis de salida previo donde se va mostrando la tendencia de los votos antes de ser contabilizada la totalidad de ellos.

Especificaciones: La entrada de tu programa consistirá de los datos de n votantes. Para cada uno de ellos, se solicitará el nombre, el sexo, la edad y el partido político por el cual se inclina.

El nombre nom consistirá del nombre del votante, el sexo s se codificará con el caracter 'm' (mujer) o 'h' (hombre), la edad e será un número entero y el partido político p se codificará con los caracteres 'i' (PRI), 'a' (PAN), 'd' (PRD). La solicitud de datos de los votantes terminará cuando el nombre que se ingrese sea igual a la cadena 'bye'.

La salida del programa consistirá del conteo de:

1. El número total de votantes

2. El número total de hombres

3. El número total de mujeres

4. El promedio de edad de los votantes

5. El porcentaje de votantes que eligieron al PRI

6. El porcentaje de votantes que eligieron al PAN

7. El porcentaje de votantes que eligieron al PRD

Ejemplo:
--------------------------------------------------------------
Raúl H 22 i
--------------------------------------------------------------
Carmen M 26 d
--------------------------------------------------------------
Arturo H 32 d
--------------------------------------------------------------
José H 21 a
--------------------------------------------------------------
Mariana M 23 a
--------------------------------------------------------------
Aurelio H 19 d
--------------------------------------------------------------
Rubén H 31 i
--------------------------------------------------------------
Bye
--------------------------------------------------------------


7

5

2

24.85

28.5

28.5

43.8

Hint: Usa variables tipo string y char para los datos no núméricos. Las variables string pueden compararse usando los operadores relacionales(¡sí, como si fueran números!)
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 para realizar programa en Pascal "Elecciones"

Publicado por ramon (2072 intervenciones) el 26/05/2013 19:30:01
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
{A ver si esto te sirve}
 
 program elecciones;
  uses
    crt;
 
  const
     botantes = 100;
     xesotypo : array[1..2] of char = (
     'M','H');
     partido : array[1..3] of string[3] = (
     'PRI','PAN','PRD');
 
  type
  botante = record
        nombre : string[100];
        xeso   : char;
        edad   : integer;
        partid : string[3];
      end;
  var
    boto : array[1..botantes] of botante;
    t, cont : integer;
 
 
  procedure entradabotantes;
  var
    da, dato : string[100];
    t, erro, nu, k : integer;
  begin
     cont := 1;
     dato := ' ';
    while dato <> 'bye' do
    begin
        writeln('  >>> Entrada Datos Botantes Termina [bye] <<<');
        writeln;
        write(' Nombre : ');
        readln(dato);
        if dato <> 'bye' then
        begin
           boto[cont].nombre := dato;
           write(' Xeso [M]=Mujer [H]=Hombre : ');
           readln(dato[1]);
           case dato[1] of
         'm','M' : boto[cont].xeso := xesotypo[1];
         'h','H' : boto[cont].xeso := xesotypo[2];
          end;
           write(' Edad : ');
           readln(nu);
           boto[cont].edad := nu;
           write(' Partido i/a/d : ');
           readln(dato[1]);
           case dato[1] of
          'i','I' : boto[cont].partid := partido[1];
          'a','A' : boto[cont].partid := partido[2];
          'd','D' : boto[cont].partid := partido[3];
           end;
        end;
           cont := cont + 1;
           clrscr;
           if cont > botantes then
           cont := botantes;
      end;
  end;
 
  procedure resultados;
  var
    m, medi, h, muj, hon : integer;
    elpri, elpan, elprd : integer;
  begin
      hon := 0;
      muj := 0;
      elpri := 0;
      elpan := 0;
      elprd := 0;
      medi := 0;
      for h := 1 to cont - 2 do
      begin
          if boto[h].xeso = 'H' then
          hon := hon + 1;
          if boto[h].xeso = 'M' then
          muj := muj + 1;
          medi := medi + boto[h].edad;
          if boto[h].partid = partido[1] then
          elpri := elpri + 1;
          if boto[h].partid = partido[2] then
          elpan := elpan + 1;
          if boto[h].partid = partido[3] then
          elprd := elprd + 1;
      end;
      m := medi div (cont - 2);
      medi := m;
      gotoxy(1,1);write('***** Los Resultados Son *****');
      gotoxy(1,3);write('Participantes       : ',cont - 2);
      gotoxy(1,4);write('Numero De Hombres   : ',hon);
      gotoxy(1,5);write('Numero De Mujeres   : ',muj);
      gotoxy(1,6);write('Edad Media Botantes : ',medi);
      gotoxy(1,7);write('Botantes Del PRI    : ',elpri);
      gotoxy(1,8);write('Botantes Del PAN    : ',elpan);
      gotoxy(1,9);write('Botantes Del PRD    : ',elprd);
      gotoxy(1,11);write('<<<<< Pulse Espacio >>>>>');
      readkey;
  end;
 
  procedure botanted;
  begin
     clrscr;
     gotoxy(1,1);write(' Nombre             Xeso     Edad     Partido');
     for t := 1 to cont - 2 do
     begin
        gotoxy(2,2 + t);write(boto[t].nombre);
        gotoxy(22,2 + t);write(boto[t].xeso);
        gotoxy(31,2 + t);write(boto[t].edad);
        gotoxy(41,2 + t);write(boto[t].partid);
     end;
     gotoxy(1,3 + t);write('<<<<< Pulse Espacio >>>>>');
      readkey;
  end;
 
  procedure menu;
  var
     sal : boolean;
     tec : char;
   begin
       sal := false;
     repeat
        clrscr;
        writeln('  ****** Menu General Cuadrado Magico ******');
        writeln;
        writeln('        1 = Entrada Botantes');
        writeln('        2 = Ver Resultados');
        writeln('        3 = Ver Botantes');
        writeln('        4 = Salir');
        writeln;
        writeln('  >>>>>> Elija Opcion <<<<<<<<');
        repeat
           tec := readkey;
        until tec in['1','2','3','4'];
        clrscr;
     case tec of
  '1' : begin
           entradabotantes;
        end;
  '2' : begin
           resultados;
        end;
  '3' : begin
           botanted;
        end;
  '4' : sal := true;
    end;
     until sal = true;
   end;
 
  begin
     menu;
  end.
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