Estou acompanhando o curso. só não entendi o significado de %1f,%1f ou %2f que vocês estão usando e nem qual a diferença entre double e float nos códigos,porque eu troco float por double e da errado. descobri que tem que usar o %lf pra fica certo,mas gostaria de saber o significado. acho que deve ter muita gente com a mesma dúvida, por isso acho bom vocês esclarecer essas coisas para o curso ficar ainda melhor.
thanks!
23 de abril de 2014 às 13:35
Anônimo disse...
O lf quer dizer "long float" ! É usado para armazenar quando a variável é double!
28 de abril de 2014 às 21:56
Juliana disse...
%.2f - o .2 antes do f é pra limitar o numero de casas depois do ponto (num.00), pois no float aparecem mais de duas. é uma medida estética, já que fica feio aquele monte de zeros no fim do numero! dá pra colocar quantas casas quiser: .1, .2, .3, .4....
2 de maio de 2014 às 13:04
Anônimo disse...
Ao realizar a operação:
float expressao = ((8+10)-1)/2
Teremos o resultado 8 ao invés de 8.5.
Mesmo imprimindo expressao (via printf) formatado como float, o resultado será '8.00'.
Observe que a expressão contém apenas números inteiros, ainda que a variável esteja definida como float.
Para evitar isso, deve-se converter explicitamente a expressão que está sendo calculada. Ficando desta forma:
float expressao = (float) ((8+10)-1)/2
Caso algum número na expressão seja ponto flutuante, não é necessário a conversão. Ex.:
olá, gostaria de sabe como faço para obter o resultado em módulo
24 de agosto de 2015 às 12:04
Anônimo disse...
LOGO A CIMA DISSE-TE: E caso fosse: 8/4 - 2? Pode ser: 8/4 - 2 = 2 - 2 = 0 Ou pode ser: 8/4 - 2 = 8/(4 - 2) = 8 / 2 = 4
a QUESTÃO É, QUEM tem mais importância, se é a divisão ou subtração? então alguma das duas então erradas, porventura, este pode ser (subtração) está errado ao meu ver.
6 de novembro de 2015 às 11:40
Anônimo disse...
ola pessoal, fiz tudo como esta na apostila, mas o resultado deu 0,00 em todos os calculos. Alguem pode me ajudar.
28 de novembro de 2018 às 18:48
Anônimo disse...
fiz tudo igual a apostila, mas os resultados deram: 0.00 + 0.00 = 0.00 0.00 - 0.00 = 0.00 0.00 * 0.00 = 0.00 0.00 / 0.00 = 5.13 como faço para resolver isso, alguem pode me ajudar?
Sou iniciante em programação. E agradeço seu passo a passo, claro e simples. Em outros a explicação é muito avançada para quem está começando. Obrigada 🤗
24 de outubro de 2019 às 10:07
Anônimo disse...
Alguma pode.me.ajudarr sou menina mas estou com depressão
1 de dezembro de 2022 às 17:30
Operações matemáticas básicas. Fácil não?
Por exemplo, quanto é: 1 + 1 x 2 ?
Pode ser 3: 1 + (1x2) = 1 + 2 = 3
Ou pode ser 4: (1+1)x2 = 2x2= 4
Então, qual a resposta certa? Obviamente é só uma.
Para o computador, um cálculo não pode resultar em dois valores.
A resposta correta é sempre 3. Isso tem a ver com operações matemáticas e precedência em C.
Baixar nossa apostila: Apostila de C
Símbolos matemáticos em C
Precedência dos operadores matemáticos em C
Vamos voltar ao exemplo do início de nosso tutorial: quanto seria 1 + 1 x 2
A resposta é sempre 3 pois o operador de multiplicação é mais importante que a soma.
E caso fosse: 8/4 - 2?
Pode ser: 8/4 - 2 = 2 - 2 = 0
Ou pode ser: 8/4 - 2 = 8/(4 - 2) = 8 / 2 = 4
A resposta é sempre 0, pois o operador de divisão é mais importante que o de subtração.
Mostramos esses exemplos para provar que saber a ordem (ou precedência) dos operadores é muito importante.
Embora a maioria dos cursos (alguns ditos 'bons' e famosos) simplesmente ignore isso, mas você viu que pode obter respostas totalmente diferentes.
Segue a lista dos operadores matemáticos que estudamos em nosso artigo.
A importância vai crescendo de baixo para cima e da esquerda para a direita: * / %+ -
Usando parênteses para evitar confusão com a precedência
Caso não seja muito fã ou bom em memorização, existe um recurso que você pode usar que vai deixar claro a ordem das operações, bem como deixar mais organizado seu código em C.
A regra é simples: agrupe e ponha entre parênteses o que você quer calcular.
Por exemplo, se ao invés de 1 + 1 x 2, tivéssemos escrito:
1 + (1 x 2) ?
É bem óbvio que somamos o 1 com o RESULTADO do que está entre parênteses. Ou seja, sempre é calculado primeiro o que está em parênteses:
1 + (1 x 2) = 1 + 2 = 3
(1 + 1) x 2 = 2 x 2 = 4
O outro caso 8/4 - 2, também fica bem evidente e simples de se entender apenas olhando:
(8/4) - 2 = 2 - 2 = 0
8/(4 - 2) = 8/2 = 4
E você achando que sabia as operações básicas de Matemática, hein?
postado por Programação Progressiva às 20:12 em 11 de dez. de 2012
13 Comentários
Fechar esta janela Ir para formulário de comentárioEscrever centenas de páginas e não errar, é quase impossível.
Por isso, existem um ou outro detalhe que nos passou despercebido.
Agradecemos, então, ao leitor Eduardo Saraiva, que viu uma palavra trocada e nos avisou do erro.
Quem mais notar algum erro, algo não muito bem explicado ou confuso, por favor, ajude na divulgação do conhecimento e nos indique os problemas.
21 de junho de 2013 às 09:47
Onde está escrito:
(8/4) - 2 = 4 - 2 = 2
Na verdade é:
(8/4) - 2 = 2 - 2 = 0
30 de junho de 2013 às 15:06
muito bom mesmo este curso
28 de setembro de 2013 às 17:30
Estou acompanhando o curso. só não entendi o significado de %1f,%1f ou %2f que vocês estão usando e nem qual a diferença entre double e float nos códigos,porque eu troco float por double e da errado. descobri que tem que usar o %lf pra fica certo,mas gostaria de saber o significado. acho que deve ter muita gente com a mesma dúvida, por isso acho bom vocês esclarecer essas coisas para o curso ficar ainda melhor.
thanks!
23 de abril de 2014 às 13:35
O lf quer dizer "long float" ! É usado para armazenar quando a variável é double!
28 de abril de 2014 às 21:56
%.2f - o .2 antes do f é pra limitar o numero de casas depois do ponto (num.00), pois no float aparecem mais de duas. é uma medida estética, já que fica feio aquele monte de zeros no fim do numero! dá pra colocar quantas casas quiser: .1, .2, .3, .4....
2 de maio de 2014 às 13:04
Ao realizar a operação:
float expressao = ((8+10)-1)/2
Teremos o resultado 8 ao invés de 8.5.
Mesmo imprimindo expressao (via printf) formatado como float, o resultado será '8.00'.
Observe que a expressão contém apenas números inteiros, ainda que a variável esteja definida como float.
Para evitar isso, deve-se converter explicitamente a expressão que está sendo calculada. Ficando desta forma:
float expressao = (float) ((8+10)-1)/2
Caso algum número na expressão seja ponto flutuante, não é necessário a conversão. Ex.:
float expressao = ((8+10)-1)/2.0
30 de dezembro de 2014 às 22:52
olá, gostaria de sabe como faço para obter o resultado em módulo
24 de agosto de 2015 às 12:04
LOGO A CIMA DISSE-TE:
E caso fosse: 8/4 - 2?
Pode ser: 8/4 - 2 = 2 - 2 = 0
Ou pode ser: 8/4 - 2 = 8/(4 - 2) = 8 / 2 = 4
a QUESTÃO É, QUEM tem mais importância, se é a divisão ou subtração? então alguma das duas então erradas, porventura, este pode ser (subtração) está errado ao meu ver.
6 de novembro de 2015 às 11:40
ola pessoal, fiz tudo como esta na apostila, mas o resultado deu 0,00 em todos os calculos. Alguem pode me ajudar.
28 de novembro de 2018 às 18:48
fiz tudo igual a apostila, mas os resultados deram:
0.00 + 0.00 = 0.00
0.00 - 0.00 = 0.00
0.00 * 0.00 = 0.00
0.00 / 0.00 = 5.13
como faço para resolver isso, alguem pode me ajudar?
28 de novembro de 2018 às 19:01
Sou iniciante em programação. E agradeço seu passo a passo, claro e simples. Em outros a explicação é muito avançada para quem está começando. Obrigada 🤗
24 de outubro de 2019 às 10:07
Alguma pode.me.ajudarr sou menina mas estou com depressão
1 de dezembro de 2022 às 17:30