Hola
Bueno si alguien tiene tiempo y sugiere alguna mejora sera bienvenida, a continuación el enunciado del problema.
Un grupo de personas completan un cuestionario respondiendo si leen los diarios A, B o C. Realice un programa q informe cuantas personas leen sólo el diario A, cuantos leen los tres diarios, cuantos no leen diarios y cuantos no leen el diario A pero si algun otro.
program tp3ej1;
uses
crt;
var
op_a,op_b,op_c,opcion:char;
leen_abc,solo_leen_a,no_leen,leen_solo_b_o_c:integer;
bandera:boolean;
begin
clrscr;
leen_abc:=0;
solo_leen_a:=0;
no_leen:=0;
leen_solo_b_o_c:=0;
repeat
clrscr;
bandera:=false;
repeat
writeln('Usted lee el diario A ? (S/N): ');
readln(op_a);
op_a:=upcase(op_a);
if op_a='S' then
bandera:=true
else
if op_a='N' then
bandera:=true;
until bandera;
bandera:=false;
repeat
writeln('Usted lee el diario B ? (S/N): ');
readln(op_b);
op_b:=upcase(op_b);
if op_b='S' then
bandera:=true
else
if op_b='N' then
bandera:=true;
until bandera;
bandera:=false;
repeat
writeln('Usted lee el diario C ? (S/N): ');
readln(op_c);
op_c:=upcase(op_c);
if op_c='S' then
bandera:=true
else
if op_c='N' then
bandera:=true;
until bandera;
if op_a = 'S' then
begin
if op_b = 'S' then
begin
if op_c = 'S' then
leen_abc:=leen_abc+1
end
else
if op_c = 'N' then
solo_leen_a:=solo_leen_a+1
end
else
begin
if op_b = 'N' then
begin
if op_c = 'N' then
no_leen:=no_leen+1
else
leen_solo_b_o_c:=leen_solo_b_o_c+1
end
else
leen_solo_b_o_c:=leen_solo_b_o_c+1
end;
writeln('Ingrese F para finalizar encuesta');
writeln('Ingrese C para continuar encuesta');
readln(opcion);
opcion:=upcase(opcion);
until opcion = 'F';
clrscr;
writeln(solo_leen_a,' personas sólo leen el diario A.');
writeln(leen_abc,' personas leen los diarios A,B,C.');
writeln(no_leen,' personas no leen ningún diario.');
writeln(leen_solo_b_o_c,' personas leen los diarios B o C.');
readln;
end.