-
Lenguaje
Pascal
-
Descripción
Una empresa necesita realizar un censo entre sus empleados con la siguiente información: estado civil, número de hijos, casa propia. Se debe establecer el porcentaje de empleados con vivienda propia, porcentaje de casados y porcentaje de solteros.
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
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
program CensoDeEmpleados;
uses crt;
var casados, con_vivienda_propia, empleados, estado_civil, solteros : integer;
var tipo_de_vivienda : integer;
var porcentaje_casados, porcentaje_con_vivienda_propia, porcentaje_solteros : real;
var tecla_repetir : char;
begin
casados := 0;
con_vivienda_propia := 0;
empleados := 0;
solteros := 0;
porcentaje_casados := 0;
porcentaje_con_vivienda_propia := 0;
porcentaje_solteros := 0;
repeat
clrscr;
empleados := empleados+1;
writeln ('Selecciona el valor de estado civil.');
writeln (' 1.- Soltero');
writeln (' 2.- Casado');
write (' : ');
repeat
readln (estado_civil);
if (estado_civil<1) or (estado_civil>2) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (estado_civil>=1) and (estado_civil<=2);
writeln ('Selecciona el valor de tipo de vivienda.');
writeln (' 1.- propia');
writeln (' 2.- rentada');
writeln (' 3.- otro');
write (' : ');
repeat
readln (tipo_de_vivienda);
if (tipo_de_vivienda<1) or (tipo_de_vivienda>3) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (tipo_de_vivienda>=1) and (tipo_de_vivienda<=3);
if estado_civil=1 then
begin
solteros := solteros+1;
end
else
begin
casados := casados+1;
end;
if tipo_de_vivienda=1 then
begin
con_vivienda_propia := con_vivienda_propia+1;
end;
writeln;
write (#168'Deseas repetir el proceso? (S/N): ');
repeat
tecla_repetir := readkey;
until (tecla_repetir = 's') or (tecla_repetir = 'n') or (tecla_repetir = 'S') or (tecla_repetir = 'N');
until (tecla_repetir <> 's') and (tecla_repetir <> 'S');
if empleados = 0 then
porcentaje_casados := 0
else
porcentaje_casados := 100.0*casados/empleados;
if empleados = 0 then
porcentaje_con_vivienda_propia := 0
else
porcentaje_con_vivienda_propia := 100.0*con_vivienda_propia/empleados;
if empleados = 0 then
porcentaje_solteros := 0
else
porcentaje_solteros := 100.0*solteros/empleados;
writeln ('Valor de casados: ', casados);
writeln ('Valor de con vivienda propia: ', con_vivienda_propia);
writeln ('Valor de empleados: ', empleados);
writeln ('Valor de solteros: ', solteros);
writeln ('Valor de porcentaje casados: ', porcentaje_casados:0:6);
writeln ('Valor de porcentaje con vivienda propia: ', porcentaje_con_vivienda_propia:0:6);
writeln ('Valor de porcentaje solteros: ', porcentaje_solteros:0:6);
write ('Presiona una tecla para terminar . . . ');
readkey;
end.
uses crt;
var casados, con_vivienda_propia, empleados, estado_civil, solteros : integer;
var tipo_de_vivienda : integer;
var porcentaje_casados, porcentaje_con_vivienda_propia, porcentaje_solteros : real;
var tecla_repetir : char;
begin
casados := 0;
con_vivienda_propia := 0;
empleados := 0;
solteros := 0;
porcentaje_casados := 0;
porcentaje_con_vivienda_propia := 0;
porcentaje_solteros := 0;
repeat
clrscr;
empleados := empleados+1;
writeln ('Selecciona el valor de estado civil.');
writeln (' 1.- Soltero');
writeln (' 2.- Casado');
write (' : ');
repeat
readln (estado_civil);
if (estado_civil<1) or (estado_civil>2) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (estado_civil>=1) and (estado_civil<=2);
writeln ('Selecciona el valor de tipo de vivienda.');
writeln (' 1.- propia');
writeln (' 2.- rentada');
writeln (' 3.- otro');
write (' : ');
repeat
readln (tipo_de_vivienda);
if (tipo_de_vivienda<1) or (tipo_de_vivienda>3) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (tipo_de_vivienda>=1) and (tipo_de_vivienda<=3);
if estado_civil=1 then
begin
solteros := solteros+1;
end
else
begin
casados := casados+1;
end;
if tipo_de_vivienda=1 then
begin
con_vivienda_propia := con_vivienda_propia+1;
end;
writeln;
write (#168'Deseas repetir el proceso? (S/N): ');
repeat
tecla_repetir := readkey;
until (tecla_repetir = 's') or (tecla_repetir = 'n') or (tecla_repetir = 'S') or (tecla_repetir = 'N');
until (tecla_repetir <> 's') and (tecla_repetir <> 'S');
if empleados = 0 then
porcentaje_casados := 0
else
porcentaje_casados := 100.0*casados/empleados;
if empleados = 0 then
porcentaje_con_vivienda_propia := 0
else
porcentaje_con_vivienda_propia := 100.0*con_vivienda_propia/empleados;
if empleados = 0 then
porcentaje_solteros := 0
else
porcentaje_solteros := 100.0*solteros/empleados;
writeln ('Valor de casados: ', casados);
writeln ('Valor de con vivienda propia: ', con_vivienda_propia);
writeln ('Valor de empleados: ', empleados);
writeln ('Valor de solteros: ', solteros);
writeln ('Valor de porcentaje casados: ', porcentaje_casados:0:6);
writeln ('Valor de porcentaje con vivienda propia: ', porcentaje_con_vivienda_propia:0:6);
writeln ('Valor de porcentaje solteros: ', porcentaje_solteros:0:6);
write ('Presiona una tecla para terminar . . . ');
readkey;
end.