Ir para conteúdo
Fórum Script Brasil
  • 0

C.O.I em Pascal - olimpiadas


Carlos Silva Moreira

Pergunta

Olá pessoal !!!

Preciso que vocês me auxiliem a desenvolver esse pequeno programa em pascal

Um programa que auxilie na contagem de pontos e classificação dos finalistas nas provas de Ginatica Olimpica durante os Jogos Olimpicos.

As finais de Ginastica funcionam assim:

Os dez melhores atletas realizam um apresentação final que lhes poderá dar a medalha de ouro;

Apos a apresentação de cada atleta 8 jurados dão notas entre 0 e 10;

A pontuacao final de cada atleta é calculada descartando-se a sua pior e melhor nota, e em seguida somando-se as outras notas pontuaçoes;

A ordem final dos atletas é a ordem decrescente de pontuacao, ou seja, aquele que tiver maior numero de pontos recebe a medalha de Ouro, o segundo de prata ....

Desta forma o programa deverá ler os nomes dos atletas, a nota de cada um dos juizes para cada atleta e em seguida calcular a pontuacao dos atletas.Por fim apresenta a classificacao final apresentando para cada um seu nome e o total de pontos obtidos.

Eu to tentando fazer esse programa, mas solicito ajuda de todos.

Program Olimpiada;

Type

nomes = array[1..10] of string;

notas = array[1..8] of real;

Var

nome : nomes;

i,j : integer;

nota : notas;

soma : real;

Begin

For i:=1 to 10 do

Begin

Write('Informe o nome ',i,' atleta : ' );

ReadLn(Nome);

End;

Writeln;

Writeln;

Write('Informe qual atleta do vetor deseja visualizar : ');

ReadLn(i);

WriteLn('Atleta : ' ,Nome);

Writeln;

For j:= 1 to 8 do

Begin

Write ('Informe a nota do atleta ' ,Nome, ' : ');

Readln (nota[j]);

End;

Begin

Writeln;

Soma:=0;

For j:= 1 to 8 do

Soma:= soma + nota[j];

Writeln ('A soma total das notas é : ',soma:2:2);

Readkey;

End;

End.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá, me chamo Mauricio Quereguine........acho q tenho a resposta pra você.

Seguinte carlos:

Não sei se é exatamente isso mas....explicando melhor:

1º você faz a entrada de dados....

2º localiza a maior nota e a menor.

3º você soma normalmente os pontos.

4º você pega a soma pronta e subtrai pelo maior, e depois pelo menor numero...

5º Nesse caso não seria necessário mas eu organizei o vetor em ordem crecente em relação a notafinal;

6º Apresentar o resultado.

Existe varias maneiras de se faser isso q você precisa, mas aqui...eu procurei exemplificar ao maximo, por isso o código ficou até

um pouquinho maior, mas fiz isso pra que você pudesse ter facilidade em intender e que você mesmo saiba faze-lo...

Óia o codigo ai:

[===============================================================]

Program Olimpiadas;

uses crt;

const num = 5; {aqui é o numero de atletas}

var atletas : array [1..num] of record

nome : string;

nota : array [1..8] of real;

notafinal : real;

maior,menor : real;

end;

sep : record

nome : string;

nota : array [1..8] of real;

notafinal : real;

end;

indice_nota,w,rep,inici,x,y,z,a,linha,indicemaior,indicemenor : integer;

maior,menor : real;

Begin{inicio do programa principal}

clrscr;

{entrada de dados ...Ex: nome, notas...}

for x := 1 to num do

begin

write('Nome do atleta :');

readln(atletas[x].nome);

for y := 1 to 8 do

begin

write('Nota ',y,'do ',atletas[x].nome,' : ');

readln(atletas[x].nota[y]);

end;

end;

{localizar o maior e o menor elemento}

maior := 0;

menor := 10000;

indicemaior := 0;

indicemenor := 0;

{maior elemento}

For x := 1 to num do

begin

maior := 0;

for y := 1 to 8 do

begin

if maior <= atletas[x].nota[y] then

begin

maior := atletas[x].nota[y];

indicemaior := y;

end;

end;

{armazenar o valor do maior elemento}

atletas[x].maior := maior;

End;

{menor elemento}

For x := 1 to num do

begin

menor := 1000;

for y := 1 to 8 do

begin

if menor >= atletas[x].nota[y] then

begin

menor := atletas[x].nota[y];

indicemenor := y;

end;

end;

{armazenar o valor do menor elemento}

atletas[x].menor := menor;

End;

{soma de pontos}

for x := 1 to num do

begin

atletas[x].notafinal := 0;

for y := 1 to 8 do

begin

atletas[x].notafinal := atletas[x].notafinal + atletas[x].nota[y];

end;

end;

{subtraindo os pontostotais do atleta com a maior e a menor nota}

for x := 1 to num do

begin

atletas[x].notafinal := atletas[x].notafinal - atletas[x].maior - atletas[x].menor;

end;

{ORGANIZAÇÃO DO VETOR EM RELAÇÃO A SOMA DE PONTOS}

inici := 0;

for rep := 1 to num do

Begin

{REPETIR 5 VESES}

{classificação}

{Copiar o 1º p/ o sep}

sep.nome := atletas[rep].nome;

sep.notafinal := atletas[rep].notafinal;

for a := 1 to 8 do

begin

sep.nota[a] := atletas[rep].nota[a];

end;

{localizar o maior "indice" }

maior := 0;

inici := inici + 1;

for w:= inici to num do

Begin

if maior <= atletas[w].notafinal then

Begin

maior := atletas[w].notafinal;

indice_nota := w;

End;

End;

{Copiar o maior para o 1º elemento}

atletas[rep].nome := atletas[indice_nota].nome;

atletas[rep].notafinal := atletas[indice_nota].notafinal;

for a := 1 to 8 do

begin

atletas[rep].nota[a] := atletas[indice_nota].nota[a];

end;

{copiar o SEP p/ o lugar do maior}

atletas[indice_nota].nome := sep.nome;

atletas[indice_nota].notafinal := sep.notafinal;

for a := 1 to 8 do

begin

atletas[indice_nota].nota[a] := sep.nota[a];

end;

End; {FIM REPETIR;}

{exibir resultado}

for x := 1 to num do

begin

write('Nome : ',atletas[x].nome,'| Pontos : ',atletas[x].notafinal:5:2);

writeln(' maior :',atletas[x].maior:5:2,' menor ',atletas[x].menor:5:2);

end;

readkey;

End.

[============================================================]

Bom, tá ai.....qualquer duvida só dizer....creio q se não for o q esperava dá pra ter uma noção....

t+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...