sábado, 26 de junho de 2010

Diário Eletrônico - Primeiro Post

Bom dia Internauta!

Vou iniciar esse meu novo blog com um exercício de pascal.
E quero utilizar este blog para este fim, que é apresentar trabalhos/exercícios que são passados para mim ao longo do curso de Sistemas de Informação que faço na Uniesp - Presidente Prudente (terminando o segundo termo).

-------------------------------------------------------------------------------------------------
- Variáveis heterogêneas (registros)
36) Para controle de um jogo, deseja-se o seguinte programa.
MENU
1 – Cadastro
2 – Consulta
3 – Estatística
Opção desejada?
Para cadastrar, seu programa deve conhecer o nome, país e pontuação.
Para consultar, seu programa deve solicitar o nome a ser consultado e
exibir os dados dos registros encontrados.
Na opção estatística, seu programa deve calcular e exibir a quantidade
de jogadores cadastrados, a maior pontuação, o nome do jogador de maior
pontuação e a quantidade de jogadores do Brasil.
Utilize vetores de registros e subalgoritmos (funções) com passagem de
parâmetros.

-------------------------------------------------------------------------------------------------

E meu algoritmo ficou assim:

program Exerc_36;

{$APPTYPE CONSOLE}

uses
SysUtils;

type RegCadastro = record
nome,pais:string;
pontuacao:real;
end;

type VetRegCadastro = array[1..10] of RegCadastro;

function menu(var opc:integer):char;
begin
writeln(' MENU');
writeln('1 - Cadastro');
writeln('2 - Consulta');
writeln('3 - Estatistica');
writeln('Opcao desejada?');
readln(opc);
end;

function cadastrar(var cadastro:vetregcadastro; var nome, nomemaior, pais:string; var pontuacao,maiorpont:real; var qtdebrasil, pos, numjogo:integer):char;
begin
inc(pos);
inc(numjogo);
writeln('Cadastro:');
writeln('Digite o nome:');
readln(cadastro[pos].nome);
writeln('Digite o pais:');
readln(cadastro[pos].pais);
if (cadastro[pos].pais = 'Brasil') or (cadastro[pos].pais = 'brasil') or (cadastro[pos].pais = 'BRASIL') then
inc(qtdebrasil);
writeln('Digite a pontuacao:');
readln(cadastro[pos].pontuacao);
if cadastro[pos].pontuacao > maiorpont then
begin
maiorpont:=cadastro[pos].pontuacao;
nomemaior:=cadastro[pos].nome;
end;
end;

function consulta(var cadastro:vetregcadastro; var nome:string; var status:boolean):char;
var i:integer;
begin
status:=false;
writeln('Consulta');
writeln('Digite o nome que deve ser encontrado:');
readln(nome);
writeln('Registro(s) encontrado(s):');
for i := 1 to 10 do
begin
if nome = cadastro[i].nome then
begin
writeln(cadastro[i].nome);
writeln(cadastro[i].pais);
writeln(cadastro[i].pontuacao:0:2);
status:=true;
end;
end;
if status = false then
writeln('Nenhum registro foi encontrado!');
end;

function estatistica(var nomemaior:string; var numjogo,qtdebrasil:integer; var maiorpont:real):char;
begin
writeln('Estatistica:');
writeln('O numero de jogadores eh:');
writeln(numjogo);
writeln('A maior pontuacao eh:');
writeln(maiorpont:0:2);
writeln('O nome do que pontuou mais eh:');
writeln(nomemaior);
writeln('A quantidade de jogadores do Brasil eh:');
writeln(qtdebrasil);
end;

var pos, opc, qtdebrasil, numjogo:integer; nome, resp, nomemaior, pais:string; pontuacao, maiorpont:real; status:boolean;
cadastro:vetregcadastro;
begin
maiorpont:=0;
resp:='sim';
pos := 0;
numjogo:=0;
qtdebrasil:=0;
while (resp = 'sim') or (resp = 'Sim') or (resp = 'SIM') do
begin
menu(opc);
case opc of

1:cadastrar(cadastro,nome,nomemaior,pais,pontuacao,maiorpont,qtdebrasil,pos,numjogo);
2:consulta(cadastro,nome,status);
3:estatistica(nomemaior,numjogo,qtdebrasil,maiorpont);
end;
writeln('Deseja continuar? (sim/nao)');
readln(resp);

end;
readln;
end.

-------------------------------------------------------------------------------------------------

Espero que seja útil para todos que estão iniciando em programação, ou para aqueles que tem curiosidade.

Nenhum comentário:

Postar um comentário