14.03.2015 Views

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

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.

Compilan<strong>do</strong> e executan<strong>do</strong> este programa você verá que ele coloca a mensagem Ola! Eu estou vivo! na tela<br />

2.2.1 - Vamos analisar o programa por partes.<br />

A linha #include diz ao compila<strong>do</strong>r que ele deve incluir o arquivo-cabeçalho stdio.h. Neste arquivo<br />

existem definições de funções úteis para entra<strong>da</strong> e saí<strong>da</strong> de <strong>da</strong><strong>do</strong>s (std = stan<strong>da</strong>rd, padrão em inglês; io =<br />

Input/Output, entra<strong>da</strong> e saí<strong>da</strong> ==> stdio = Entra<strong>da</strong> e saí<strong>da</strong> padroniza<strong>da</strong>s). To<strong>da</strong> vez que você quiser usar uma destas<br />

funções deve -se incluir este coman<strong>do</strong>. O C possui diversos arquivos -cabeçalhos.<br />

Quan<strong>do</strong> fazemos um programa, uma boa idéia é usar comentários que ajudem a eluci<strong>da</strong>r o funcionamento <strong>do</strong> mesmo.<br />

No caso acima temos um comentário: /* Um Primeiro Programa */. O compila<strong>do</strong>r C desconsidera qualquer coisa<br />

que esteja começan<strong>do</strong> com /* e terminan<strong>do</strong> com */. Um comentário pode, inclusive, ter mais de uma linha.<br />

A linha main() define uma função de nome main. To<strong>do</strong>s os programas em C têm que ter uma função main, pois é<br />

esta função que será chama<strong>da</strong> quan<strong>do</strong> o programa for executa<strong>do</strong>. O conteú<strong>do</strong> <strong>da</strong> função é delimita<strong>do</strong> por chaves { }. O<br />

código que estiver dentro <strong>da</strong>s chaves será executa<strong>do</strong> sequencialmente quan<strong>do</strong> a função for chama<strong>da</strong>.<br />

A única coisa que o programa realmente faz é chamar a função printf(), passan<strong>do</strong> a string (uma string é uma<br />

seqüência de caracteres, como veremos brevemente) "Ola! Eu estou vivo!\n" como argumento. É por causa <strong>da</strong><br />

função printf() que devemos incluir o arquivo- cabeçalho stdio.h . A função printf() neste caso irá apenas colocar a<br />

string na tela <strong>do</strong> computa<strong>do</strong>r. O \n é uma constante chama<strong>da</strong> de constante barra inverti<strong>da</strong> . O \n é de "new line" e ele<br />

é interpreta<strong>do</strong> como um coman<strong>do</strong> de mu<strong>da</strong>nça de linha, isto é, após imprimir Ola! Eu estou vivo! o cursor passará<br />

para a próxima linha. É importante observar também que os coman<strong>do</strong>s <strong>do</strong> C terminam com ; .<br />

Alguns compila<strong>do</strong>res C podem <strong>da</strong>r uma mensagem de aviso ("warning") ao compilar os programas iniciais<br />

apresenta<strong>do</strong>s aqui. Isto é porque, por default, to<strong>da</strong> função em C (inclusive a main()) retorna um inteiro. Quan<strong>do</strong> não<br />

fornecemos este inteiro de retorno, o compila<strong>do</strong>r pode man<strong>da</strong>r uma mensagem <strong>do</strong> tipo "Function should return a<br />

value.". Por enquanto você terá que aceitar estas mensagens. Mais tarde ensinaremos como devemos fazer para que o<br />

programa fique "correto".<br />

Podemos agora tentar um programa mais complica<strong>do</strong>:<br />

#include <br />

main ()<br />

{<br />

int Dias; /* Declaracao de Variaveis */<br />

float Anos;<br />

printf ("Entre com o número de dias: "); /* Entra<strong>da</strong> de Da<strong>do</strong>s */<br />

scanf ("%d",&Dias);<br />

Anos=Dias/365.25; /* Conversao Dias->Anos */<br />

printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos);<br />

}<br />

Vamos entender como o programa acima funciona. São declara<strong>da</strong>s duas variáveis chama<strong>da</strong>s Dias e Anos. A primeira<br />

é um int (inteiro) e a segun<strong>da</strong> um float (ponto flutuante). É feita então uma chama<strong>da</strong> à função printf(), que coloca<br />

uma mensagem na tela.<br />

Queremos agora ler um <strong>da</strong><strong>do</strong> que será forneci<strong>do</strong> pelo usuário e colocá-lo na variável Dias . Para tanto usamos a função<br />

scanf(). A string "%d" diz à função que iremos ler um inteiro. O segun<strong>do</strong> parâmetro passa<strong>do</strong> à função diz que o <strong>da</strong><strong>do</strong><br />

li<strong>do</strong> deverá ser armazena<strong>do</strong> na variável Dias. É importante ressaltar a necessi<strong>da</strong>de de se colocar um & antes <strong>do</strong> nome<br />

<strong>da</strong> variável a ser li<strong>da</strong> quan<strong>do</strong> se usa a função scanf(). O motivo disto só ficará claro mais tarde. Observe que, no C,<br />

quan<strong>do</strong> temos mais de um parâmetro para uma função, eles serão separa<strong>do</strong>s por vírgula.<br />

Temos então uma expressão matemática simples que atribui a Anos o valor de Dias dividi<strong>do</strong> por 365.25. Como Anos<br />

é uma variável float o compila<strong>do</strong>r fará uma conversão automática entre os tipos <strong>da</strong>s variáveis (veremos isto com<br />

detalhes mais tarde).<br />

Pág. 7

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

Saved successfully!

Ooh no, something went wrong!