SoloCodigo

Programación General => Pascal => Mensaje iniciado por: ALCEST en Miércoles 5 de Septiembre de 2007, 00:07

Título: Programa Encuesta
Publicado por: ALCEST en Miércoles 5 de Septiembre de 2007, 00:07
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.


Citar
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.


:comp:
Título: Re: Programa Encuesta
Publicado por: -DriverOp- en Jueves 6 de Septiembre de 2007, 07:49
Lee acá: http://foros.solocodigo.com/index.php?showtopic=26071 (http://foros.solocodigo.com/index.php?showtopic=26071)
Título: Re: Programa Encuesta
Publicado por: ALCEST en Viernes 7 de Septiembre de 2007, 02:57
Cita de: "-DriverOp-"
Lee acá: http://foros.solocodigo.com/index.php?showtopic=26071 (http://foros.solocodigo.com/index.php?showtopic=26071)
Ya leí y no se cual es el problema porque no estoy pidiendo que resuelvan el problema sino ver si a algien se le ocurre una mejor idea

chau

saludos!
Título: Re: Programa Encuesta
Publicado por: Enko en Viernes 7 de Septiembre de 2007, 21:52
Si compila, funciona, y hace lo que tiene que hacer es porque está bien. ;)
Título: Re: Programa Encuesta
Publicado por: GsOiD en Sábado 8 de Septiembre de 2007, 08:52
Me imagino que quieres una especie de mejora en la lógica que maneja tu programa, y me temo que eso es cosa que tu debes hacer... así mejorarás tu razonamiento lógico =)