Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

adriano_bat

Dúvida sobre C, C++ e notação científica

Mensagens Recomendadas

adriano_bat

Boas, estou agora a aprender c++ e estou a seguir uns tutorias em c.

Tenho conseguido fazer a maior parte das conversões para c++, mas agora deparei.me com uma dúvida.

Aqui está em c:

#include <stdio.h>

main()
{
     float quilos = 1.0E3;
     double gramas = 1.0e6;
     float n_toneladas;

    printf("Quantas toneladas comprou: "); scanf("%f", &n_toneladas);

    printf("Nº de Quilos = %f = %e\n",n_toneladas * quilos, n_toneladas * quilos);

    printf("Nº de gramas = %f = %E\n", n_toneladas * gramas, n_toneladas * gramas);
}

A minha dúvida está na parte onde tenho que indicar (em c++) que é suposto aparecer em notação tradicional e em notação cientifica.

Alguém poderia converter isto para c++? Agradecia  :(


"If A is a success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut." - Einstein

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

fica algo assim:

int main()
{
     float quilos = 1.0E3;
     double gramas = 1.0e6;
     float n_toneladas;

cout<<"Quantas toneladas comprou: ";
cin>>n_toneladas;

cout<<"Nº de Quilos = "<<n_toneladas * quilos;
cout.setf(ios::scientific);//especificar se queres com precisão cientifica 
cout<<" = "<<n_toneladas * quilos<<endl;

cout.unsetf(ios::scientific);////especificar se não queres com precisão cientifica 
cout<<"Nº de gramas = "<<n_toneladas * gramas;
cout.setf(ios::scientific);
cout<<" = "<<n_toneladas * gramas<<endl;
}

acho que era isto que querias.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
adriano_bat

Exactamente :( obrigado pela ajuda. Desconhecia o comando a utilizar.


"If A is a success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut." - Einstein

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
adriano_bat

Mas se eu executar o programa, o primeiro número de gramas (que devia aparecer em notação tradicional) aparece ele também em notação cientifica:

Quantas toneladas comprou: 1

N║ de Quilos = 1000 = 1.000000e+003

N║ de gramas = 1e+006 = 1.000000e+006

Não sei se o problema é o número de dígitos, pois quando peço para calcular 0.5:

Quantas toneladas comprou: 0.5

N║ de Quilos = 500 = 5.000000e+002

N║ de gramas = 500000 = 5.000000e+005


"If A is a success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut." - Einstein

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

transforma estaticamente em int: int(n_toneladas * gramas)


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
adriano_bat

Obrigado.


"If A is a success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut." - Einstein

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.