Pascal/Turbo Pascal - Ayuda con un Ejercicio [Pascal]

 
Vista:
Imágen de perfil de Alejo Marin

Ayuda con un Ejercicio [Pascal]

Publicado por Alejo Marin (3 intervenciones) el 10/06/2014 02:41:01
Una empresa de servicios públicos tiene almacenada la información de sus clientes (a lo sumo 500). DE cada cliente se conoce el nombre, edad, tipo de cliente (1....5), tipo de servicio (A....G), cantidad de familiares a cargo y numero de cliente.
Además la empresa dispone de una tabla donde se almacena el monto a cobrar por el servicio dependiendo del tipo de cliente y del tipo de servicio.

Se pide:

a-) El mondo total que recaudara la empresa (a un cliente se le cobra dependiendo de su tipo de cliente y servicio multiplicando por la cantidad de integrantes)

b-) Informar para cada tipo de cliente cuantos clientes tiene la empresa

c-) Informar el nombre de los clientes cuyo numero tiene dos digitos pares

Aclaraciones:
* Se debe resolver utilizando (principalmente) Arreglos de tipo vectores y matrices.
* La información almacenada (vector) y la tabla (matriz) que ya tiene la empresa, se presupone ya cargada.
* Deben desarrollarse los incisos en un único programa.
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 un Ejercicio [Pascal]

Publicado por ramon (2158 intervenciones) el 11/06/2014 00:51:29
Si quieres ayuda pasa todos los datos para poder realizar lo que pides tabla donde se almacena el monto a cobrar por el servicio dependiendo del tipo de cliente y del tipo de servicio.
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
Imágen de perfil de Alejo  Marin

Ayuda con un Ejercicio [Pascal]

Publicado por Alejo Marin (3 intervenciones) el 11/06/2014 03:15:50
Es que justamente esos datos se presuponen ya cargados. En el programa puedo, por ejemplo, invocar un proceso "CargarVector" pero no necesito declararlo en Type porque el enunciado no pide eso, justamente ya los presupone diciendo "tiene almacenada".
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

Ayuda con un Ejercicio [Pascal]

Publicado por ramon (2158 intervenciones) el 11/06/2014 12:18:34
Si pero para poder manejar esos datos necesito su estructura si no mal puedo saber que valores poner para cobrar
por servicio y menos aun como cargar dicho archivo.

Intentare ponerte un ejemplo pero con contantes no con archivo.
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
Imágen de perfil de Alejo Marin

Ayuda con un Ejercicio [Pascal]

Publicado por Alejo Marin (3 intervenciones) el 11/06/2014 23:28:35
Bueno Ramón, espero tu ayuda. Gracias!
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

Ayuda con un Ejercicio [Pascal]

Publicado por ramon (2158 intervenciones) el 12/06/2014 11:35:37
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
{Mira a ver si esto te ayuda}
 
program empresa;
 uses
    crt;
  const
     {Esto seria el contenido de la informacion almacenada}
 
     servic : array['A'..'G'] of integer = (
     10,12,14,16,18,20,22);
     tclien : array[1..5] of integer = (
     12,16,20,24,28);
 
     max = 500;
 
  type
    cliente = record
          nombre : string[80];
            edad : integer;
        tcliente : integer;
       tservicio : char;
     nfamiliares : integer;
        ncliente : longint;
        end;
 
  var
    clien : array[1..max] of cliente;
    b, cont, l, bv, num : integer;
    fin : boolean;
    tec : char;
    total : longint;
    cli : array[1..5] of integer;
    dig : array[1..max] of integer;
    numcli : string[16];
 
   begin
      num := 1;
      fin := false;
      fillchar(clien,sizeof(clien),0);
    repeat
       clrscr;
       writeln('   Entrada Datos Cliente ');
       writeln('   >>>>>>>>>>>>>>>>>>>>> ');
       writeln;
       with clien[num] do
       begin
       write('   Entre Nombre         : ');
       readln(nombre);
       write('   Entre Edad           : ');
       readln(edad);
       write('   Tipo Cliente [1..5]  : ');
       readln(tcliente);
       write('   Tipo Servicio [A..G] : ');
       readln(tservicio);
       tservicio := upcase(tservicio);
       write('   Num. familiares      : ');
       readln(nfamiliares);
       write('   Num. cliente         : ');
       readln(ncliente);
      end;
        writeln;
        writeln('   Desea Entrar Mas Clientes [S/N] ');
        repeat
           tec := upcase(readkey);
        until tec in['S','N'];
        if tec = 'N' then
        fin := true
      else
         begin
         num := num + 1;
         if num > 500 then
         num := 500;
         end;
    until fin = true;
    total := 0;
    for bv := 1 to num do
    begin
       total := total + (tclien[clien[bv].tcliente] +
       servic[clien[bv].tservicio]) * clien[bv].nfamiliares;
    end;
      clrscr;
      writeln('  Los Resultados Son ');
      writeln;
      writeln('  Mondo total recaudado = ',total);
   for l := 1 to num do
   begin
   case clien[l].tcliente of
  1 : cli[1] := cli[1] + 1;
  2 : cli[2] := cli[2] + 1;
  3 : cli[3] := cli[3] + 1;
  4 : cli[4] := cli[4] + 1;
  5 : cli[5] := cli[5] + 1;
    end;
   end;
      writeln(' Cantidad De Clientes Tipo 1 = ',cli[1]);
      writeln(' Cantidad De Clientes Tipo 2 = ',cli[2]);
      writeln(' Cantidad De Clientes Tipo 3 = ',cli[3]);
      writeln(' Cantidad De Clientes Tipo 4 = ',cli[4]);
      writeln(' Cantidad De Clientes Tipo 5 = ',cli[5]);
    for l := 1 to num do
    begin
       cont := 0;
       str(clien[l].ncliente,numcli);
       for b := 1 to length(numcli) do
       begin
       if numcli[b] in['2','4','6','8'] then
       cont := cont + 1;
       end;
       if cont >= 2 then
       begin
       dig[l] := cont;
       end;
    end;
      for l := 1 to num do
      if dig[l] > 0 then
      writeln('  Cliente : ',clien[l].nombre);
      readkey;
   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