Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alextecno

[Resolvido] numero mais proximo da media

Recommended Posts

oi pessoal, sou novo aqui e não sei cm isso funciona, mais preciso terminar um programa q eu começei.

ele lê um vetor

imprime o maior e o menor numero encontrado e suas respectivas posições.

até aí eu já fiz.

agora eu preciso imprimir o numero mais proximo da media e a posiçao que ele ocorre.

será que alguem podia me ajudar nessa parte.

desde já muito obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom eu pensei em fazer isso:

* primeiro ordene o vetor;

com o vetor ordenado você sabe ql é o menor e o maior elemento do vetor..

ai calcula a média e tal, e vai calculando o resto da media com kd elemento, oq + c aproximar é ele ;D

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom eu pensei em fazer isso:

* primeiro ordene o vetor;

com o vetor ordenado você sabe ql é o menor e o maior elemento do vetor..

ai calcula a média e tal, e vai calculando o resto da media com kd elemento, oq + c aproximar é ele ;D

 

[]'s

nao posso ordenar o vetor pq senao quando eu for armazenar a posiçao q ele ocorre, ele vai armazenar a posiçao dele depois de ordenado.

e eu preciso q ele retorne a posição original.

então se alguem tiver uma idea por favor me ajude!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calcule a média.

Crie duas variáveis.

Uma que armazene a diferença entre o elemento e a média e outra que armazene a posição desse elemento no vetor.

 

Fica algo parecido com isso:

 

inteiro: numero, posicao

posicao <- 1
numero <- vet[1] - media

para i de 2 ate n faca
   se (numero < (vet[i] - media)) entao
	  numero <- vet[i]
	  posicao <- i
   fimse
fimpara

Falta resolver um detalhe.

Se o número do vetor for menor que a média a comparação deve ser refeita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui resolver

aí vai a solução

procedure calcula_prox_media (a:t_vetor);

var

temp,i,dif,menordif:integer;

begin

temp:=0;

for i := 1 to max do

begin

temp:= temp + a;

end;

 

 

begin

media := temp div max;

menordif:=maior-menor;

posimedia:=1;

 

 

for i := 1 to max do

begin

dif := abs (a-media);

if dif < menordif then

begin

menordif := dif;

prox := a;

posimedia:=i;

end;

end;

 

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.