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

(Resolvido) Erro de compilaçao no if e no else


Sengo

Pergunta

O exercicio que eu to com duvida é fazer uma funçao que leia 2 angulos diferntes em radiano, calcule o seno deles e retorne o maior resultado.

só que ta dando uns errinhos ai:

Por favor me ajudem :D

# include<cstdlib>
# include<iostream>
# include<cmath>
using namespace std;
float Seno(float sen)
{
    float s1, s2, radiano1, radiano2;
    s1=sin(radiano1)
    s2=sin(radiano2)
    if (s1>s2)
      {

          return s1;
      }
    else
      {
          return s2;
      }
}

int main ()
{
    float a,b,c,d;
    cout<<"Entre com um radiano:"<<endl;
    cin>>a;
    b=Seno(a);
    cout<<"Entre com outro radiano:"<<endl;
    cin>>c;
    d=Seno©
    if (d>b)
    {

        cout<<d<<endl;
    }
    else
    {
        cout<<b<<endl;
    }
    return 0;
}

erros:

in function 'float Seno(float)'

linha 9: error: expected ';' before "s2"

linha 15: error:expected primary -expression before "else"

linha 15: error: expected ';' before "else"

in function `int main()':

linha 30: error: expected `;' before "if"

linha 35: error: expected prymary-expression before "else"

linha 35: error: expected ';' before "else"

Outra coisa, se não for pedir muito expliquem os codigos que vocês estao usando, e não simplesmente corrijam o programa. obrigado

Editado por Jonathan Queiroz
Adicionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

d=Seno©
O que é esse © no fim da linha? Acho que a intenção foi fazer algo assim:
d=Seno(c);
s1=sin(radiano1)
s2=sin(radiano2)

Estão faltando os ; aqui. Sempre que terminar uma instrução, coloque um ponto-e-vírgula.

Não cheguei a testar o código, mas fazendo essas alterações ao menos os erros de sintaxe devem ser corrigidos.

Link para o comentário
Compartilhar em outros sites

  • 0

valeu, era só os ponto e vírgula mesmo. Mas você pode me esclarecer uma coisa? Por que nas funçoes if , else , a funçao float Seno(float sen) que eu criei e na int main eu não posso usar ponto e virgula e nas funçoes da biblioteca cmath (como a do sin que eu usei ali) eu tenho que usar?

valeu

Editado por Sengo
Link para o comentário
Compartilhar em outros sites

  • 0

Isso é uma coisa simples, que você aprende em qualquer linguagem de programação, eu nem sei como te explicar.

O ';' você usa em comando de uma linha(executaveis), como variaveis, funções pre-definidas(por exemplo printf, scanf).

E em funções(sua int man() e float Sen());

condicionais(if), e alguns outros casos(for();

while(), switch(), etc...);

você não usa.

Bom como eu te disse é uma coisa simples, eu nem sei como explicar, até dei um googlada, mas não achei nada a respeito.

Editado por vini_loock
Link para o comentário
Compartilhar em outros sites

  • 0

Não se deve utilizar ponto-e-vírgula ao definir uma função, apenas quando ao declarar (explico a diferença) ou chamar.

Exemplo:

int quadrado(int numero); //declaro o protótipo da função quadrado
int main(); //declaro o protótipo da função main

//Defino a função main
int main() /*sem ponto-e-vírgula aqui*/
{
    //...
    int quadradoDeCinco = quadrado(5); //chamo a função passado o valor 5 como parâmetro
    //...
    return 0;
}
//Defino a função quadrado
int quadrado(int numero) /*novamente sem ponto-e-vírgula aqui*/
{
    return numero*numero;
}
A declaração de funções é necessária para que o compilador saiba que exista uma função com aquele nome. Da maneira como a compilação é feita, seria necessário que as funções chamadas pela função main estivessem antes dela:
int quadrado(int numero)
{
    return numero*numero;
}
int main()
{
    ...
}
Isso pode ser facilmente resolvido declarando a função antes. Dessa forma, o compilador sabe de antemão que a função existe. Notas:
  • Tudo o que está entre /* e */ (tanto em C como C++) ou entre // e a próxima quebra de linha (apenas C++, que é a linguagem que está utilizando) é considerado comentário, isto é, não altera em nada o código.
  • Ao declarar protótipos para funções não é necessário nomear os parâmetros. Por exemplo, poderíamos simplesmente escrever:
    int quadrado(int);

Edit:

Não tinha visto o post do vini_loock. Basicamente você utiliza o ponto-e-vírgula para separar instruções ou declarar protótipos de funções e classes, mas não ao definir uma função.

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...