Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {PROVA 1
- Objetivo: gravar o número de vacinas aplicadas e mostrar estatísticas
- Responsável: Mario Simão
- Data: 26.10.2016
- Atualização: 26.10.2016
- }
- {=================================================================================}
- program prova1;
- uses crt;
- const
- nVacinas = 6; {número de tipos de vacina}
- type
- tipoMatrizPrincipal = array [1..24,1..nVacinas] of integer;
- tipoVetorNomes = array [1..nVacinas] of string;
- tipoVetorMeses = array [1..24] of string;
- tipoVetorTotal = array [1..nVacinas] of integer;
- var
- principal: tipoMatrizPrincipal;
- vetorNomes: tipoVetorNomes;
- vetorMeses: tipoVetorMeses;
- vetorTotal: tipoVetorTotal;
- vetorNomesTotal: tipoVetorNomes;
- {=================================================================================}
- procedure nomesMes(var meses: tipoVetorMeses); {define os nomes dos meses}
- begin
- meses[1]:= '| Sem Campanha | Janeiro ';
- meses[2]:= '| Sem Campanha | Fevereiro';
- meses[3]:= '| Sem Campanha | Março ';
- meses[4]:= '| Sem Campanha | Abril ';
- meses[5]:= '| Sem Campanha | Maio ';
- meses[6]:= '| Sem Campanha | Junho ';
- meses[7]:= '| Sem Campanha | Julho ';
- meses[8]:= '| Sem Campanha | Agosto ';
- meses[9]:= '| Sem Campanha | Setembro ';
- meses[10]:= '| Sem Campanha | Outubro ';
- meses[11]:= '| Sem Campanha | Novembro ';
- meses[12]:= '| Sem Campanha | Dezembro ';
- meses[13]:= '| Com Campanha | Janeiro ';
- meses[14]:= '| Com Campanha | Fevereiro';
- meses[15]:= '| Com Campanha | Março ';
- meses[16]:= '| Com Campanha | Abril ';
- meses[17]:= '| Com Campanha | Maio ';
- meses[18]:= '| Com Campanha | Junho ';
- meses[19]:= '| Com Campanha | Julho ';
- meses[20]:= '| Com Campanha | Agosto ';
- meses[21]:= '| Com Campanha | Setembro ';
- meses[22]:= '| Com Campanha | Outubro ';
- meses[23]:= '| Com Campanha | Novembro ';
- meses[24]:= '| Com Campanha | Dezembro ';
- end;
- {=================================================================================}
- procedure nomesPadrao(var nomes,nomesTotal: tipoVetorNomes); {define os nomes das vacinas como padrão da prova}
- begin
- nomes[1]:= 'BCG';
- nomesTotal[1]:= 'BCG';
- nomes[2]:= 'Hepatite B';
- nomesTotal[2]:= 'Hepatite B';
- nomes[3]:= 'Antipólio';
- nomesTotal[3]:= 'Antipólio';
- nomes[4]:= 'Tetravalente';
- nomesTotal[4]:= 'Tetravalente';
- nomes[5]:= 'Triplica Viral';
- nomesTotal[5]:= 'Triplica Viral';
- nomes[6]:= 'Rotavirus';
- nomesTotal[6]:= 'Rotavirus';
- end;
- {=================================================================================}
- procedure receberNomes(var nomes,nomesTotal: tipoVetorNomes); {recebe o nome de cada vacina}
- var
- i: integer;
- nome: string;
- begin
- writeln;
- writeln('Digite os nomes das vacinas');
- writeln;
- for i:= 1 to nVacinas do
- begin
- write('Vacina ',i,': ');
- readln(nome);
- nomes[i]:= nome;
- nomesTotal[i]:= nome;
- end;
- end;
- {=================================================================================}
- procedure legenda (nomes: tipoVetorNomes); {legenda dos números referentes a cada vacina}
- var
- i: integer;
- begin
- writeln('LEGENDA:');
- writeln;
- for i:=1 to 6 do
- begin
- writeln(i,' - ',nomes[i]);
- end;
- end;
- {=================================================================================}
- procedure receberDados(var matriz: tipoMatrizPrincipal; nomes: tipoVetorNomes);
- var
- mes: integer;
- campanha: char;
- i,n: integer;
- begin
- clrscr;
- writeln;
- writeln('INSERIR DADOS DIÁRIOS DE VACINAÇÃO');
- writeln;
- {Pede o mês}
- writeln;
- writeln('Passo 1. Informe o mês (números de 1 a 12).');
- writeln;
- write('Mês: ');
- readln(mes);
- while mes > 12 do
- begin
- writeln;
- write('Resposta inválida. Aperte qualquer tecla para poder digitar novamente...');
- readkey;
- clrscr;
- writeln;
- writeln('INSERIR DADOS DIÁRIOS DE VACINAÇÃO');
- writeln;
- writeln;
- writeln('Passo 1. Informe o mês (números de 1 a 12).');
- writeln;
- write('Mês: ');
- read(mes);
- end;
- {Pede se está ou não em campanha de vacinação}
- clrscr;
- writeln;
- writeln('INSERIR DADOS DIÁRIOS DE VACINAÇÃO');
- writeln;
- writeln;
- writeln('Passo 2. Existe campanha de vacinação no momento?');
- writeln;
- write('Resposta ("s" ou "n"): ');
- readln(campanha);
- while (campanha <> 's') and (campanha <> 'n') do
- begin
- writeln;
- write('Resposta inválida. Aperte qualquer tecla para poder digitar novamente...');
- readkey;
- clrscr;
- writeln;
- writeln('INSERIR DADOS DIÁRIOS DE VACINAÇÃO');
- writeln;
- writeln;
- writeln('Passo 2. Existe campanha de vacinação no momento?');
- writeln;
- write('Resposta ("s ou "n"): ');
- readln(campanha);
- end;
- if campanha = 's' then
- begin
- mes:= mes + 12;
- end;
- clrscr;
- writeln;
- writeln('INSERIR DADOS DIÁRIOS DE VACINAÇÃO');
- writeln;
- writeln;
- writeln('Passo 3. Informe a quantidade de vacinas aplicadas.');
- writeln;
- for i:= 1 to nVacinas do
- begin
- write(nomes[i],': ');
- readln(n);
- matriz[mes,i]:= matriz[mes,i] + n;
- end;
- writeln;
- end;
- {=================================================================================}
- procedure imprimirTabela (matriz: tipoMatrizPrincipal; meses: tipoVetorMeses);
- var
- i,j,k: integer;
- begin
- clrscr;
- writeln;
- writeln('TABELA DE DADOS');
- writeln;
- { writeln('____________________________________________________');}
- writeln('|--------------|-----------|---|---|---|---|---|---|');
- write('| Status | Mês |');
- for k:=1 to nVacinas do
- begin
- write(' ',k,' |');
- end;
- writeln;
- writeln('|--------------|-----------|---|---|---|---|---|---|');
- for i:=1 to 12 do
- begin
- write(meses[i],' |');
- for j:=1 to nVacinas do
- begin
- write(matriz[i,j]:3,'|');
- end;
- writeln;
- end;
- writeln('|--------------|-----------|---|---|---|---|---|---|');
- for i:= 13 to 24 do
- begin
- write(meses[i],' |');
- for j:= 1 to nVacinas do
- begin
- write(matriz[i,j]:3,'|');
- end;
- writeln;
- end;
- writeln('|--------------|-----------|---|---|---|---|---|---|');
- writeln;
- end;
- {=================================================================================}
- procedure totalMesCada (matriz: tipoMatrizPrincipal; nomes: tipoVetorNomes);
- var
- i,total,mes,mesCampanha: integer;
- begin
- writeln('Insira o mês para ver as estatísticas (números de 1 a 12)');
- write('Mês: ');
- readln(mes);
- writeln;
- mesCampanha:= mes + 12;
- for i:= 1 to nVacinas do
- begin
- total:= matriz[mes,i] + matriz[mesCampanha,i];
- write(nomes[i],': ');
- writeln(total);
- end;
- writeln;
- end;
- {=================================================================================}
- procedure totalCampanhaCada (matriz: tipoMatrizPrincipal; nomes: tipoVetorNomes);
- var
- i,total,mes: integer;
- begin
- writeln('Total sem camapnha de vacinação:');
- writeln;
- for i:=1 to nVacinas do {calcula e imprime o total de cada fora de campanhas de vacinação}
- begin
- total:=0;
- for mes:= 1 to 12 do
- begin
- total:= total + matriz[mes,i];
- end;
- writeln(nomes[i],': ', total);
- end;
- writeln;
- writeln;
- writeln('Total com campanha de vacinação:');
- writeln;
- for i:= 1 to nVacinas do {calcula e imprime o total de cada dentro de campanhas de vacinação}
- begin
- total:= 0;
- for mes:= 13 to 24 do
- begin
- total:= total + matriz[mes,i];
- end;
- writeln(nomes[i],': ',total);
- end;
- writeln;
- end;
- {=================================================================================}
- procedure totalCada (matriz: tipoMatrizPrincipal; var nomes: tipoVetorNomes; var vetorTotal: tipoVetorTotal);
- var
- i,mes,total,aux1: integer;
- aux2: string;
- begin
- for i:= 1 to nVacinas do
- begin
- total:=0;
- for mes:=1 to 24 do
- begin
- total:= total + matriz[mes,i];
- end;
- vetorTotal[i]:= total;
- end;
- for i:= 1 to (nVacinas-1) do
- begin
- if vetorTotal[i] > vetorTotal[i+1] then
- begin
- aux1:= vetorTotal[i];
- vetorTotal[i]:= vetorTotal[i+1];
- vetorTotal[i+1]:= aux1;
- aux2:= nomes[i];
- nomes[i]:= nomes[i+1];
- nomes[i+1]:= aux2;
- end;
- end;
- for i:= 1 to nVacinas do
- begin
- write(nomes[i],': ');
- writeln(vetorTotal[i]);
- end;
- end;
- {=================================================================================}
- procedure menuRelatorios;
- var
- opcao: integer;
- continuar: boolean;
- opcaoSair: char;
- begin
- continuar:= true;
- while continuar = true do
- begin
- clrscr;
- writeln('_________________________________________________________');
- writeln('| |');
- writeln('| R E L A T Ó R I O S |');
- writeln('| |');
- writeln('| 1. Total Mensal de Cada Vacina |');
- writeln('| 2. Total dentro e fora de Campanhas de Cada Vacina |');
- writeln('| 3. Total de Cada Vacina |');
- writeln('| 0. Voltar ao menu principal |');
- writeln('|_______________________________________________________|');
- writeln;
- write('Opção: ');
- readln(opcao);
- writeln;
- case opcao of
- 1:
- begin
- clrscr;
- writeln;
- writeln('RELATÓRIO MENSAL');
- writeln;
- writeln;
- totalMesCada(principal,vetorNomes);
- write('Aperte qualquer tecla para voltar ao Menu de Relatórios...');
- readkey;
- end;
- 2:
- begin;
- clrscr;
- writeln;
- writeln('RELATÓRIO DAS CAMPANHAS DE VACINAÇÃO');
- writeln;
- writeln;
- totalCampanhaCada(principal,vetorNomes);
- write('Aperte qualquer tecla para voltar ao Menu de Relatórios...');
- readkey;
- end;
- 3:
- begin
- clrscr;
- writeln;
- writeln('RELATÓRIO TOTAL');
- writeln;
- writeln;
- totalCada(principal,vetorNomes,vetorTotal);
- writeln;
- write('Aperte qualquer tecla para voltar ao Menu de Relatórios...');
- readkey;
- end;
- 0:
- begin
- continuar:= false;
- end;
- end;
- end;
- end;
- {=================================================================================}
- procedure menuOpcoes;
- var
- continuar: boolean;
- opcao: integer;
- begin
- continuar:= true;
- while continuar = true do
- begin
- clrscr;
- writeln('________________________________________');
- writeln('| |');
- writeln('| O P Ç Õ E S |');
- writeln('| |');
- writeln('| 1. Mudar Nomes das Vacinas |');
- writeln('| 2. Voltar à Nomenclatura Padrão |');
- writeln('| 3. Ver Tabela de Dados |');
- writeln('| |');
- writeln('| 0. Voltar ao Menu Principal |');
- writeln('|______________________________________|');
- writeln;
- write('Opção: ');
- readln(opcao);
- writeln;
- case opcao of
- 1:
- begin
- clrscr;
- writeln;
- writeln('MUDAR NOMES DAS VACINAS');
- receberNomes(vetorNomes,vetorNomesTotal);
- writeln;
- write('Aperte qualquer tecla para voltar ao Menu de Opções...');
- readkey;
- end;
- 2:
- begin
- clrscr;
- writeln;
- writeln('VOLTAR À NOMENCLATURA PADRÃO');
- nomesPadrao(vetorNomes,vetorNomesTotal);
- writeln;
- writeln;
- writeln('Nomenclatura padrão definida');
- writeln;
- write('Aperte qualquer tecla para voltar ao Menu de Opções...');
- readkey;
- end;
- 3:
- begin;
- clrscr;
- imprimirTabela(principal,vetorMeses);
- legenda(vetorNomes);
- writeln;
- write('Aperte qualquer tecla para voltar ao Menu de Opções...');
- readkey;
- end;
- 0:
- begin;
- continuar:= false;
- end;
- end;
- end;
- end;
- {=================================================================================}
- { PROGRAMA PRINCIPAL }
- {=================================================================================}
- var
- i, opcao: integer;
- continuar: boolean;
- opcaoSair: char;
- begin
- nomesPadrao(vetorNomes,vetorNomesTotal); {define os nomes das vacinas com o padrão da prova}
- nomesMes(vetorMeses); {define os nomes de cada mes referentes aos números 1 a 12}
- continuar:= true;
- while continuar = true do
- begin
- clrscr;
- writeln('____________________________________________');
- writeln('| |');
- writeln('| M E N U |');
- writeln('| |');
- writeln('| 1. Inserir Dados Diários de Vacinação |');
- writeln('| 2. Relatórios |');
- writeln('| 3. Opções |');
- writeln('| 0. Sair do Programa |');
- writeln('|__________________________________________|');
- writeln;
- write('Opção: ');
- readln(opcao);
- writeln;
- case opcao of
- 1:
- begin
- receberDados(principal,vetorNomes);
- end;
- 2:
- begin;
- menuRelatorios;
- end;
- 3:
- begin
- menuOpcoes;
- end;
- 0:
- begin
- writeln('Deseja sair do programa? Todos os dados serão perdidos');
- writeln;
- write('Responda "s" ou "n": ');
- readln(opcaoSair);
- if opcaoSair = 's' then
- begin
- continuar:=false;
- end
- else
- begin
- writeln;
- writeln;
- write('Aperte qualquer tecla para voltar ao menu principal...');
- readkey;
- clrscr;
- end;
- end;
- end;
- end;
- clrscr;
- writeln;
- writeln('Obrigado pela preferência.');
- writeln;
- end.
- {=================================================================================}
- { FIM DO PROGRAMA }
- {=================================================================================}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement