22.10.2014 Views

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

103.45<br />

5.37<br />

45.00<br />

2.9 Comando de atribuição<br />

Armazenando dados gerados pelo programa<br />

A seção 2.7 apresentou o comando que permite que se armazene <strong>em</strong> variáveis a entrada do<br />

programa. Agora ver<strong>em</strong>os como armazenar dados gerados durante a execução de um programa.<br />

Considere um programa para o cálculo da média de uma relação de números. Naturalmente, a<br />

quantidade de números da relação (se não foi fornecida a priori) deve ser de alguma forma<br />

determinada e armazenada <strong>em</strong> alguma variável para que possa ser utilizada no cálculo final da<br />

média pretendida.<br />

O armazenamento de dados gerados pelo próprio programa, alterações no conteúdo de variáveis e<br />

determinações de resultados finais de um processamento são realizados através do comando de atribuição,<br />

que deve ser escrito com a seguinte sintaxe.<br />

Identificador de variável = expressão;<br />

A expressão do segundo m<strong>em</strong>bro pode se resumir a um valor constante pertencente ao tipo de<br />

dado da variável do primeiro m<strong>em</strong>bro, caso <strong>em</strong> que o valor é armazenado naquela variável. Se não<br />

for este o caso, a expressão é avaliada e, se for do mesmo tipo da variável do primeiro m<strong>em</strong>bro, o<br />

resultado é armazenado na variável.<br />

A expressão do segundo m<strong>em</strong>bro pode envolver a própria variável do primeiro m<strong>em</strong>bro. Neste caso, o<br />

conteúdo anterior da variável será utilizado para a avaliação da expressão e será substituído pelo valor desta<br />

expressão. Por ex<strong>em</strong>plo, se i é uma variável do tipo int ou do tipo float o comando i = i + 1; faz com que o<br />

seu conteúdo seja incr<strong>em</strong>entado de uma unidade.<br />

Ver<strong>em</strong>os ao longo do livro que comandos do tipo i = i + 1; aparec<strong>em</strong> com muita frequência. A<br />

linguag<strong>em</strong> C oferece uma forma simplificada de escrever este comando: i++;. Esta sintaxe se tornou tão<br />

característica da linguag<strong>em</strong> C que sua "ampliação" para incorporar recursos de programação orientada a<br />

objetos foi denominada C++ (de forma s<strong>em</strong>elhante, o comando i = i – 1 pode ser escrito i--;). O incr<strong>em</strong>ento<br />

de uma variável de uma unidade também pode ser obtido através do comando ++i e estas expressões pod<strong>em</strong><br />

figurar <strong>em</strong> expressões aritméticas. A diferença entre i++ e ++i pode ser entendida no seguinte ex<strong>em</strong>plo. A<br />

sequência de comandos<br />

i = 2;<br />

j = i++;<br />

k = ++i;<br />

realiza as seguintes ações:<br />

i = 2, armazena <strong>em</strong> i o valor 2;<br />

j = i++, armazena <strong>em</strong> j o valor 2 e armazena <strong>em</strong> i o valor 3 (incr<strong>em</strong>enta o valor de i);<br />

k = ++i, armazena <strong>em</strong> i o valor 4 (incr<strong>em</strong>enta o valor de i) e armazena o valor 4 na variável j.<br />

Um ex<strong>em</strong>plo simples: determinando a parte fracionária de um<br />

número<br />

Como diss<strong>em</strong>os na seção 2.3, o armazenamento de um valor de ponto flutuante numa variável do tipo<br />

int faz com que seja armazenada na variável a parte inteira do valor de ponto flutuante. Isto permite que se<br />

extraia facilmente a parte fracionária de um número. Por ex<strong>em</strong>plo, o programa a seguir fornece a parte<br />

fracionária de um número dado, calculada como a diferença entre ele e a sua parte inteira.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!