Questionário em estatisticas em Pascal

Publicado por Angelito Monteiro Goulart (última atualização em 15/12/2011)

[ Hits: 5.843 ]

Homepage: http://angelitomg.com

Download questionario.pas




Programa que recebe respostas de 10 questões, com 5 opções cada uma, de diferentes usuários.

Recebe o nome do usuário e o número da resposta de cada uma das 10 questões. Ao final, exibe quantas vezes cada resposta de cada questão foi escolhida.

Finaliza quando o nome do usuário for vazio.

  



Esconder código-fonte

program Questionario;

{ Cria uma estrutura chamada entrevistado que vai conter o nome
e um vetor com as respostas }
Type Entrevistado = record
        Nome: String[30];
        Respostas: array[1..10] of integer;
        end;

Var
        { Cria uma variavel do tipo entrevistado }
        Pessoa: Entrevistado;

        { Cria uma variavel para manipular um arquivo com dados
        do tipo Entrevistado}
        Arquivo: File of Entrevistado;

        { Variaveis para controlar a matriz Resultado }
        i, j: Integer;

        { Matriz resultado, que ira conter os resultados }
        Resultado: array[1..10, 1..5] of integer;

Begin

        { Abre o arquivo respostas.bin }
        assign(Arquivo, 'respostas.bin');

        { Define o modo como criacao/gravacao }
        rewrite(Arquivo);

        { Loop principal do programa }
        Repeat

                { Recebe o nome do entrevistado }
                writeln('Digite seu nome: ');
                readln(Pessoa.Nome);

                { Se o nome for vazio, sai do loop }
                if (Pessoa.Nome = '') then
                begin
                   break;
                end;

                { Obtem as 10 respostas }
                for i := 1 to 10 do
                begin
                    writeln('Digite a resposta da questao ', i, ':');
                    readln(Pessoa.Respostas[i]);
                end;

                { Escreve as respostas no arquivo}
                write(Arquivo, Pessoa);

        { Condicao para sair do loop }
        Until Pessoa.Nome = '';

        { Abre o arquivo de respostas para leitura }
        reset(Arquivo);

        { Coloca o cursor no inicio do arquivo }
        seek(Arquivo, 0);


        { Zera a matriz de resultados }
        for i := 1 to 10 do
        begin
            for j := 1 to 5 do
            begin
                Resultado[i, j] := 0;
            end;
        end;

        { Le o arquivo de respostas }
        while not eof(Arquivo) do
        begin

            { Le o registro atual }
            read(Arquivo, Pessoa);
            for i := 1 to 10 do
                begin

                     { Parte principal. Verifica a resposta dada pelo usuario
                     e incrementa o inidice equivalente a resposta da matriz
                     de resultados. Ou seja: mais uma pessoa respondeu ESSA
                     pergunta}
                     Resultado[i, Pessoa.Respostas[i]] := Resultado[i, Pessoa.Respostas[i]] + 1;

                end;
        end;

        { Fecha o arquivo }
        close(Arquivo);

        { Exibe as respostas }
        for i := 1 to 10 do
        begin
            writeln('-- Questao ', i, ': ');
            for j := 1 to 5 do
            begin
                writeln('Opcao ', j, ': ', Resultado[i, j], ' respostas!');
            end;
        end;

End.

Scripts recomendados

Manipulação de arquivos

Arquivo texto

Funções de Manipulação de Arquivos Pascal

Numeros pitagoricos

ZCodEdit - Editor de textos com sintaxe HTML e Pascal


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts