Biscoitos τ

Jogos, Ubuntu, biscoitos, dicas, curiosidades, GNU/Linux, anime, escola, filmes, biscoitos, software livre, música e muito mais.

Sexta-feira, 12 de Agosto de 2011

Arredondado valor para p casas decimais em C

Este verão decidi iniciar-me em programação, especificamente na linguagem C. Por isso, vou postar de vez em quando o código-fonte de algum programa que acho que deva ser postado. Isto vai servir, principalmente, para me lembrar como fiz este ou aquele pormenor e, ao mesmo tempo, partilhar alguma coisa. Mas não vai servir de muito se você nunca aprendeu programação. Para esses casos e para quem quiser aprender mais do que já sabe, deixo uns links no final do post. Eu não pretendo com isto ser um guia em C, alias estou muito longe de conseguir isso. Se a sua intenção é aprender C ou fundamentos de programação, procure outra fonte.


Este programa lê um número real positivo e escreve-o, arredondando-o à p-ésima casa decimal, sendo p definido pelo utilizador.

#include 
main()
{
        float n;
	int p;
	printf("Escreva um numero real positivo:");
	scanf("%f", &n);
	printf("Escreve o numero de casas decimais:");
	scanf("%d", &p);
	printf("%.*f\n", p, n);
}

A parte que acho mais importante neste pequeno programa é o último printf. Iremos falar dele mais à frente.

Para fazer um arredondamento faço assim:

printf("%.2f", 4.258);
o que faço é definir a largura do campo de formatação. Aquele 2 a seguir ao ponto dentro da string significa o número de casas decimais. O número 4.258 seria escrito 4.26.

Também podia fazer

printf("%5.2f", 4.258);
neste caso, o 5 na string significa o número de símbolos incluindo o sinal (+ ou -) e o ponto (.) reservados para a parte inteira. 4.258 seria escrito 4.26, como no caso anterior porque especificamos 5 símbolos para a parte que corresponde à parte do '4.', que mais que suficiente para que ele seja escrito.

Vamos agora ao último printf do nosso programa:

printf("%.*f\n", p, n);

'\n' significa que será deixado uma linha depois de escrever o resultado, portanto não importa agora.

O campo de formatação é um pouco diferente que os anteriores: %.*f. Este campo faz com que p seja incorporado no campo de formatação afim de obter o resultado arredondado às casas decimais especificadas pelo utilizador. Suponho que p é lido para '*' e n é lido para o campo de formatação inteiro, obtendo assim uma instrução que escreve um número real positivo com p casas decimais.



  • Curso de C
  • Leia livros sobre programação, em especial aqueles que transmitem os fundamentos em programação. Recomendo "Fundamentos de Programação usando C" escrito por Marques de Sá e editado pela FCA que é o que estou a ler agora.
publicado por Sobrinho às 13:35
tags: ,

Dezembro 2011

Dom
Seg
Ter
Qua
Qui
Sex
Sab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

pesquisar

 

blogs SAPO


Universidade de Aveiro