Questionário em estatisticas em Pascal
Publicado por Angelito Monteiro Goulart (última atualização em 15/12/2011)
[ Hits: 5.697 ]
Homepage: http://angelitomg.com
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.
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.
Funções de Manipulação de Arquivos Pascal
ZCodEdit - Editor de textos com sintaxe HTML e Pascal
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Desenvolvimento de um driver (8)
Não esta salvando as configurações de usuário. (3)
Quais Shell Scripts vocês usam? (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba