1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Algoritmia - Ajuda

Discussão em 'Programação' iniciada por Guimaraez, 18 de Outubro de 2008. (Respostas: 17; Visualizações: 856)

  1. Guimaraez

    Guimaraez Power Member

    Boa tarde, tou a fazer um algoritmo que:

    a) Dado o peso de um animal adulto e a quantidade diária de ração, indique se essa quantidade é a adequada
    para um animal com esse peso.
    b) Indique qual a quantidade adequada para esse animal, bem como o erro.

    Código:
    Inicio
        Def peso, racao, erro, adq    int
        Escrever("Qual o peso do animal?")
        Ler (peso)
        Se peso <= 10
            Entao escrever ("Qual a quantidade diaria de racao que o seu animal tem?")
            Ler (racao)
            Se racao = 0,1
            Entao Escrever ("O animal tem a racao adequada para a sua raça")
            Senao
                Adq = 0,1 + (0.002*peso)
                erro = racao - peso
                Escrever ("A quantidade certa é:", adq)
                Escrever ("O erro é de:", erro)
            FSE
        Se 10<peso<=25
            Entao escrever ("Qual a quantidade diaria de racao que o seu animal tem?")
            Ler (racao)
            Se racao = 0,3
            Entao Escrever ("O animal tem a racao adequada para a sua raça")
            Senao
                Adq = 0,3 + (0.002*peso)
                erro = racao - peso
                Escrever ("A quantidade certa é:", adq)
                Escrever ("O erro é de:", erro)
            FSE
        Se 25<peso<=45
            Entao escrever ("Qual a quantidade diaria de racao que o seu animal tem?")
            Ler (racao)
            Se racao = 0,4
            Entao Escrever ("O animal tem a racao adequada para a sua raça")
            Senao
                Adq = 0,4 + (0.002*peso)
                erro = racao - peso
                Escrever ("A quantidade certa é:", adq)
                Escrever ("O erro é de:", erro)
            FSE
        Se peso>45
            Entao escrever ("Qual a quantidade diaria de racao que o seu animal tem?")
            Ler (racao)
            Se racao = 0,5
            Entao Escrever ("O animal tem a racao adequada para a sua raça")
            Senao
                Adq = 0,5 + (0.002*peso)
                erro = racao - peso
                Escrever ("A quantidade certa é:", adq)
                Escrever ("O erro é de:", erro)
            FSE
        Senao escrever ("Erro")
        FSE
        FSE
        FSE
    FIM
    
    Algo errado?
     
    Última edição: 18 de Outubro de 2008
  2. blueomega

    blueomega Power Member

    metia

    Código:
        Escrever("Qual o peso do animal?")
        Ler (peso)
        escrever ("Qual a quantidade diaria de racao que o seu animal tem?")
        Ler (racao)
    
    não repito codigo, a variavel ração ja estava defenida

    talvez assim

    Código:
    Inicio
        Def peso, racao, erro, adq    int
        Escrever("Qual o peso do animal?")
        Ler (peso)
        Entao escrever ("Qual a quantidade diaria de racao que o seu animal tem?")
        Ler (racao)
        Se peso <= 10 e racao = 0,1 ou  Se 10<peso<=25 e Se racao = 0,3 ou  Se 25<peso<=45 e Se racao = 0,4 ou Se peso>45 e Se racao = 0,5
    
            Entao Escrever ("O animal tem a racao adequada para a sua raça")
            Senao
                Adq = racao + (0.002*peso)
                erro = racao - peso
                Escrever ("A quantidade certa é:", adq)
                Escrever ("O erro é de:", erro)
            FSE
       
        FSE
        FSE
    FIM
    podes desdobrar as condicionais pra ficar mais bonito. so funciona assim o calculo do adq porque o valor da ração era usado
     
    Última edição: 18 de Outubro de 2008
  3. Guimaraez

    Guimaraez Power Member

    Obrigado,

    agora tou a tentar transforma-lo para C, para ver se funciona.

    Ja tou meio esquecido do C.

    Ainda n conseguir por a dar.

    Código:
    #include <iostream>
    using namespace std;
    int main ()
    {
    int peso;
    int racao;
    int erro;
    int adq;    
        cout<<"Qual o peso do animal?";
        cin>>peso;
        cout<<"Qual a quantidade diaria de racao que o seu animal tem?";
        cin>>racao;
        if (peso <= 10) && (if racao == 0,1) ||  if (10<peso<=25) && (if racao == 0,3) ||  (if 25<peso<=45) && (if racao == 0,4) || (if peso>45) && (if racao == 0,5) {
        cout<<"O animal tem a racao adequada para a sua raça e peso";
        else {
                adq = racao + (0.002*peso);
                erro = racao - peso;
                cout<<"A quantidade certa é:"<<adq;
                cout<<"O erro é de:"<<erro; 
             }
        
        }
    }
    
    ainda da uns erros
     
    Última edição: 18 de Outubro de 2008
  4. Guimaraez

    Guimaraez Power Member

    deem me uma mãozinha sff
     
  5. Baderous

    Baderous Banido

    O problema está no if. Não podes fazer if (peso<=10) && (if ...). Tens de meter:

    Código:
    if (peso<=10 && racao==0.1)
    E os limites de valores de uma variável tem que ser expressos um por um e não numa expressão só como fizeste em: 10<peso<=25. Tens que colocar

    Código:
    if (peso>10 && peso<=25)
     
  6. Guimaraez

    Guimaraez Power Member

    Ave Baderous,

    agr:

    Código:
    #include <iostream>
    using namespace std;
    
    int main ()
    {
    int peso;
    int racao;
    int erro;
    int adq;    
        cout<<"Qual o peso do animal?";
        cin>>peso;
        cout<<"Qual a quantidade diaria de racao que o seu animal tem?";
        cin>>racao;
        if (peso <= 10 && racao == 0,1) ||  if ((peso>10 && peso<=25) && racao == 0,3) ||  if ((peso>1025 && peso<=45) && racao == 0,4) || if (peso>45 && racao == 0,5)
    {
        cout<<"O animal tem a racao adequada para a sua raça e peso";
        }
        else {
                adq = racao + (0.002*peso);
                erro = racao - peso;
                cout<<"A quantidade certa é:", adq;
                cout<<"O erro é de:", erro; }
        
        
    }
    
    erros:

    1>.\5666.cpp(14) : error C2143: syntax error : missing ';' before '||'
    1>.\5666.cpp(14) : warning C4390: ';' : empty controlled statement found; is this the intent?
    1>.\5666.cpp(15) : error C2143: syntax error : missing ';' before '{'
    1>.\5666.cpp(18) : error C2181: illegal else without matching if
     
  7. armagedalbeebop

    armagedalbeebop Power Member

    isso dos || é a mesma situacao da de cima,
    so vais utilizar apenas um if e nas condicoes é que tens que por os || a separar


    acho que o else tá fora do sitio

    if(condicao){
    ....
    }else{
    ....
    }

    e penso que os couts nao funcionam assim,pelo menos eu nunca fiz assim
    deverás fazer
    cout<<"A quantidade certa é:"<<adq<<endl; // podes por o endl para passar para outra linha
    cout<<"O erro é de:"<<erro;
     
    Última edição: 18 de Outubro de 2008
  8. good_in_bed

    good_in_bed Power Member

    Exacto...Tipo :

    Código:
    if ( (peso <= 10 && racao == 0,1) || ((peso>10 && peso<=25) && racao == 0,3)) || ... ) 
     
  9. banid0

    banid0 Power Member

    substitui
    Código:
    if (peso <= 10 && racao == 0,1) ||  if ((peso>10 && peso<=25) && racao == 0,3) ||  if ((peso>1025 && peso<=45) && racao == 0,4) || if (peso>45 && racao == 0,5)
    
    por
    Código:
    if ( (peso <= 10 && racao == 0,1) ||  ((peso>10 && peso<=25) && racao == 0,3) || ((peso>1025 && peso<=45) && racao == 0,4) || (peso>45 && racao == 0,5) )
    
    explicação:
    em c fazes:

    Código:
    if ((condição) || (condição2) )
    {
    fazer
    }
    e não
    Código:
    if (condição) || if (condição2) 
    {
    fazer
    }
    edit: a tentar-me explicar, já fui tarde :D
     
  10. Guimaraez

    Guimaraez Power Member

    ja deuuuu ^^

    so ha uma coisa agr, ele faz tudo mas fexa-se logo nem da pa ver os resultados

    OBRIGADO A TODOS :P
     
    Última edição: 18 de Outubro de 2008
  11. blueomega

    blueomega Power Member

    é do ide, deves estar a usar o devc

    podes meter mais um imput antes do return 0; ou system("pause");
     
  12. Guimaraez

    Guimaraez Power Member

    mais um problema resolvido, obrigado blueomega.
    So que problemas trazem mais problemas lol. O programa nao ta a fazer o pressuposto lol. Corre mas nao faz o q é pedido.

    Relembro:

    a) Dado o peso de um animal adulto e a quantidade diária de ração, indique se essa quantidade é a adequada
    para um animal com esse peso.
    b) Indique qual a quantidade adequada para esse animal, bem como o erro.


    O q tenho:

     
  13. Baderous

    Baderous Banido

    Penso que pode ter a ver com o facto de estares a multiplicar 0.002 (float) com um inteiro, guardando depois o resultado num inteiro. Ora ao guardar o resultado num inteiro, o número não vai ser guardado com a mesma precisão, logo poderá dar um resultado diferente. Tenta mudar os tipos do adq e erro para float.
     
  14. Guimaraez

    Guimaraez Power Member

    lool q burro q fui !! shame on me.

    mesmo assim nada :S
     
  15. Baderous

    Baderous Banido

    Não te esqueças também de mudar o tipo de racao.
     
  16. armagedalbeebop

    armagedalbeebop Power Member

    mas o que se passa exactamente?

    edit prob resolvido?
     
    Última edição: 18 de Outubro de 2008
  17. Guimaraez

    Guimaraez Power Member

    nao pk a racao ja esta definida como 0,1 para animais com menos de 10kg por exemplo.
    E definida como 0,5 para animais com mais de 45kg, etc


    mas o que ele faz é:
    por qualqer valor que eu digite ele mostra:

    "O animal tem a racao adequada para a sua raca e peso"


    _________//________

    Neste algoritmo usei 4 variáveis do tipo inteiro que fui usando ao longo de todo o problema, o algoritmo começa por receber um valor para a variavel "peso", em que dependendo desse valor teremos ramos diferentes, ramos esses que sao definidos por multiplas condiçoes. Depois deste passo, a variavel "racao" recebe um valor que vai determinar se o animal tem ou nao uma alimentaçao adequada ao seu peso. Caso contrario é feita uma operaçao para que seja calculada a alimentaçao adequada e é nos mostrado tambem a diferença entre a alimentaçao actual e ideal.
     
    Última edição: 18 de Outubro de 2008
  18. Guimaraez

    Guimaraez Power Member

    problema resolvido:

    em vez d por

    0,1
    era
    0.1

    lol e etc
     
    Última edição: 19 de Outubro de 2008

Partilhar esta Página