Pascal/Turbo Pascal - programacion

   
Vista:

programacion

Publicado por janfrancis (4 intervenciones) el 27/03/2016 19:30:10
Se requiere de un programa que distribuya el presupuesto de una familia adecuadamente, para ello requiere preguntar al usuario los siguientes datos: ingreso mensual familiar, cantidad de integrantes de la familia, condición de la vivienda (alquilada o propia) y cantidad de mascotas. Con estos datos el programa debe realizar lo siguiente:
1- Si la vivienda es alquilada, el 35% del ingreso familiar se destina al pago del alquiler. De lo contrario sólo el 5% por concepto de mantenimiento.
2- El presupuesto para alimentación e higiene personal corresponde 5% por cada integrante de la familia.
El dinero restante se distribuye de la siguiente forma:
3- El presupuesto de entretenimiento corresponde al 3% por cada integrante de la familia.
4- El presupuesto para salud corresponde al 2.5% por cada integrante de la familia.
5- Se debe tener un 5% del presupuesto para gastos extra.
6- Por cada integrante de la familia se debe preguntar la edad y asignar el presupuesto de acuerdo a lo siguiente:
a. Si la persona tiene de 0 a 3 años se le asigna un 3% del presupuesto restante para gastos extras y hace que el presupuesto para comida se incremente un 2% y el de entretenimiento un 2%.
b. Si la persona tiene más de 3 años y menos de 18 se le asigna un 6% del presupuesto restante para gastos relacionados con estudios y hace que el presupuesto para entretenimiento se incremente un 5%.
c. Si la persona tiene más de 65 años se le asigna un 5% del presupuesto restante para salud.
7- A cada mascota se le debe asignar un 3.5% del presupuesto.
El programa debe mostrar los detalles de distribución del presupuesto, indicando para ello el nombre de la categoría (vivienda, alimentación, entretenimiento, salud, educación, mascotas y gastos extras), porcentaje del presupuesto destinado a cada categoría y la cantidad de dinero correspondiente. Adicionalmente debe indicar el total de dinero ahorrado.


por favor ayudenme...
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

programacion

Publicado por ramon (2072 intervenciones) el 29/03/2016 19:16:32
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
{A ver si esto sirve}
 
 program presupuesto_familiar;
 uses
   crt;
  const
      alquilada = 35;
      propia = 5;
      alimen_igi = 5;
      entretenim = 3;
      salud = 2.5;
      extras = 5;
      edad_0_3 = 3;
      edad_4_17 = 6;
      edad_66 = 5;
      mascota = 3.5;
 
    type
      familia = record
            ingreso_mensual_fm : real;
            integrantes_de_la_familia : integer;
            edad : array[1..12] of integer;
            vivienda_alquilada_propia : char;
            cantidad_de_mascotas : integer;
          end;
 
    var
      datos : familia;
 
   function alquilada_o_propia : real;
   begin
      alquilada_o_propia := 0.0;
      if datos.vivienda_alquilada_propia = 'A' then
      alquilada_o_propia := ((datos.ingreso_mensual_fm * alquilada) / 100)
   else
      alquilada_o_propia := ((datos.ingreso_mensual_fm * propia) / 100);
   end;
 
   function alimentacion_e_higiene : real;
   begin
       alimentacion_e_higiene := 0.0;
       alimentacion_e_higiene := (datos.ingreso_mensual_fm *
       (datos.integrantes_de_la_familia * alimen_igi) / 100);
   end;
 
   function entretenimiento : real;
   begin
      entretenimiento := 0.0;
      entretenimiento := ((datos.ingreso_mensual_fm * entretenim) / 100);
   end;
 
   function  lasalud : real;
   begin
   lasalud := 0.0;
   lasalud := (datos.ingreso_mensual_fm * (datos.integrantes_de_la_familia *
   salud) / 100);
   end;
 
   function gastos_extra : real;
   var
     ex : real;
     int : integer;
   begin
      ex := 0.0;
      gastos_extra := 0.0;
      ex := ((datos.ingreso_mensual_fm * extras) / 100);
      for int := 1 to datos.integrantes_de_la_familia do
      begin
         if datos.edad[int] in[0..3] then
         ex := ex + ((datos.ingreso_mensual_fm * edad_0_3) / 100);
         if datos.edad[int] in[4..17] then
         ex := ex + ((datos.ingreso_mensual_fm * edad_4_17) / 100);
         if datos.edad[int] > 66 then
         ex := ex + ((datos.ingreso_mensual_fm * edad_66) / 100);
      end;
       gastos_extra := ex;
   end;
 
   function  mascotas : real;
   begin
       mascotas := 0.0;
       mascotas := (datos.ingreso_mensual_fm  *
       (datos.cantidad_de_mascotas * mascota) / 100);
   end;
 
   procedure muestra_gastos(gs : familia);
   begin
      clrscr;
      writeln('   ***** Dastos *****');
      writeln;
      writeln('    Vivienda        = ',alquilada_o_propia:0:2);
      writeln('    Alimentacion    = ',alimentacion_e_higiene:0:2);
      writeln('    Entretenimiento = ',entretenimiento:0:2);
      writeln('    Salud           = ',lasalud:0:2);
      writeln('    Gastos Extras   = ',gastos_extra:0:2);
      writeln('    Mascotas        = ',mascotas:0:2);
      writeln('    Ingreso Tptal   - ',datos.ingreso_mensual_fm:0:2);
      writeln;
      writeln('    Pulse Una Tecla');
      readkey;
   end;
 
   procedure entrada_datos(var dt : familia);
   var
     te : char;
     i : integer;
   begin
      clrscr;
      writeln('    ***** Entrada Datos Familiares *****');
      writeln;
      with dt do
      begin
      write('  Ingreso Familiar Mensual          : ');
      readln(ingreso_mensual_fm);
      write('  Integrantes De La Familia         : ');
      readln(integrantes_de_la_familia);
      if integrantes_de_la_familia > 12 then
      integrantes_de_la_familia := 12;
      for i := 1 to integrantes_de_la_familia do
      begin
         write('  Edad Integrante N.',i,' : ');
         readln(edad[i]);
      end;
      write('  Vivienda [A]=Alquilada [P]=Propia : ');
      repeat
          te := upcase(readkey);
      until te in['A','P'];
      vivienda_alquilada_propia := te;
      write(te);
      writeln;
      write('  Cantidad De Mascotas              : ');
      readln(cantidad_de_mascotas);
   end;
  end;
 
  procedure muestra_entrada(et : familia);
  var
    cual : string[9];
  begin
     clrscr;
        writeln('    **** Datos De La Familia ****');
        writeln;
        with et do
        begin
        writeln('   Ingreso Familiar Mensual  = ',ingreso_mensual_fm:0:2);
        writeln('   Integrantes De La Familia = ',integrantes_de_la_familia);
        if vivienda_alquilada_propia = 'A' then
        cual := 'Alquilada'
      else
        cual := 'Propia';
        writeln('   Vivienda                  = ',cual);
        writeln('   Cantidad De Mascotas      = ',cantidad_de_mascotas);
        writeln;
        writeln('   <<<< Pulse Una Tecla >>>>');
        end;
       readkey;
  end;
 
 
   procedure menu;
   var
     tecla : char;
     sal : boolean;
   begin
      sal := false;
    repeat
        clrscr;
        writeln('   ***** Menu Jeneral *****');
        writeln;
        writeln('   1 = Entrada Datos');
        writeln('   2 = Presenta Entrada');
        writeln('   3 = Presenta Gastos');
        writeln('   4 = Salir');
        writeln;
        writeln('   Elija Opcion ');
        repeat
            tecla := readkey;
        until tecla in['1','2','3','4'];
        clrscr;
    case tecla of
  '1' : entrada_datos(datos);
  '2' : muestra_entrada(datos);
  '3' : muestra_gastos(datos);
  '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