Questionário em estatisticas em Pascal
Publicado por Angelito Monteiro Goulart (última atualização em 15/12/2011)
[ Hits: 6.190 ]
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.
ZCodEdit - Editor de textos com sintaxe HTML e Pascal
[Script Pascal] Verificando quantos Caracteres por Segundo tem a legenda
Nenhum comentário foi encontrado.
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalação do K3s Single-Node com Rancher no Ubuntu 24.04
Usei o NotebookLM para Auditar Logs do Linux
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Preparando o Ambiente para Administrar o Samba 4 a partir do Windows com RSAT
Problema ao instalar Linux Mint. (1)
Midia de instalação LM-21.3 não inicializa (11)
A diferença entre a fala de um Samuel e a fala de alguém que conhece o... (9)









