Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Araújo

otimização de algoritmo!

Recommended Posts

Opa galera, to empacado numa questão de algoritmo aqui, consegui resolver, mas gostaria de saber se há uma forma mais otimizada, pois meu código ficou IMENSO!

 

 

a questão:

 

 

Dado um conjunto contendo quatro valores (i, a, b, c), sendo i um valor inteiro, faça:

se i = l, ordene em ordem crescente a,b,c

se i = 2, ordene em ordem decrescente a,b,c

se i = 3, informar os três valores, de forma que o maior valor entre a, b e c fique entre os

outros dois.

Para qualquer outro valor de i divida a soma de a, b e c pelo maior valor entre os mesmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que testar qual o maior e o menor valor entre a,b,c e fazer os IFs para i...

O código irá sim ficar grande de qualquer jeito, mas talvez o melhor jeito seja esse que eu mencionei acima, primeiro você ve qual é o maior e o menor valor, aí você faz com que o menor valor seja atribuido ao "c", e o maior valor seja atribuido ao "a", então o valor intermediário ficará no "b"...

Após isso você faz com que o programa leia qual o valor de "i" e faça as funções...

Então nesse caso:

 

se i=1 então mostre a,b,c;

se i=2 então mostre c,b,a;

se i=3 então mostre b,a,c ou c,a,b;

se i<1 ou i>3 então mostre (a+b+c)/a;

 

Um exemplo para você testar o maior e o menor numero é fazer o seguinte:

Crie outras 3 variáveis que repitam o valor das tres em questão, ou seja, d=a, e=b, f=c... Depois faça algo como...

 

se b>a e b>c e c>a então "a" recebe o valor de "e", "b" recebe o valor de "f", "c" recebe o valor de "d";

 

vai ser meio extenso sim, mas não precisa se preocupar muito com isso, o que importa é o funcionamento :D

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.