Programar em C
185 pág.

Programar em C


DisciplinaLinguagem de Programação Estruturada128 materiais1.055 seguidores
Pré-visualização40 páginas
dele em praticamente todos os
programas \u2014 ele é o meio de quase toda comunicação com o teclado, com a tela e com arquivos.[1]
Os programas em C são organizados em funções \u2014 todo código em C deve fazer parte de uma função. Em
particular, todo programa deve ter uma função chamada main, pela qual será iniciada a execução do programa. A
função é definida, no nosso exemplo, na linha 3, e delimitada pelas chaves { }.
A palavra-chave int significa que a função devolve um valor inteiro (você pode pensar nesse valor exatamente como
o valor de uma função em matemática).
Na linha 5, executamos a função printf, que imprime na tela os parâmetros que lhe foram passados \u2014 no nosso
exemplo, passamos a seqüência de caracteres "Olá, mundo!" como parâmetro. Essa é uma das funções definidas em
um cabeçalho da biblioteca C, o arquivo stdio.h.
Note o ponto-e-vírgula no final da linha: todas as instruções em C devem terminar com um ponto-e-vírgula. (Essa é
uma causa muito comum de erros de compilação).
Um programa em C 10
Na linha 6, dizemos que a função main deve devolver (ou retornar) o valor 0 e terminar sua execução. (Esse é o valor
inteiro que dissemos que íamos retornar na linha 3.)
O padrão da linguagem C diz que a função main deve devolver um valor inteiro, e esse valor diz se o programa foi
executado com sucesso ou não. O valor zero indica que o programa foi finalizado sem nenhum erro, e valores
diferentes de zero podem indicar diferentes erros. Você não precisará se preocupar com isso no início do seu estudo
em C \u2014 o valor devolvido por um programa é geralmente usado em scripts, quando (por exemplo) um comando só
pode ser executado se o anterior tiver ocorrido com sucesso.
Compilando o programa
Linux
A maioria das distribuições linux já possuem compilador C na instalação padrão. Para compilar o programa
acima(ola.c) abra um terminal, entre na pasta onde o arquivo se localiza e digite o seguinte comando:
 gcc -o ola ola.c
O compilador irá gerar o arquivo executável chamado ola que pode ser executado da seguinte forma:
 ./ola
[1] Esse comando é uma diretiva do pré-processador; você aprenderá mais sobre esses comandos na seção Pré-processador.
Conceitos básicos
Você já viu um programa básico em C. Antes de começar a se dedicar ao estudo de C, é bom que você compreenda
alguns termos e alguns aspectos da linguagem, o que facilitará sua compreensão dos capítulos seguintes. A seguir,
formalizaremos alguns aspectos da estrutura básica da linguagem.
Estrutura básica
\u2022 Um programa em C é basicamente estruturado em blocos de código. Blocos nada mais são que conjuntos de
instruções, e devem ser delimitados com chaves ({ ... }). Um bloco também pode conter outros blocos.
\u2022 Uma instrução geralmente corresponde a uma ação executada, e deve sempre terminar com ponto-e-vírgula (;).
\u2022 O compilador ignora espaços, tabulações e quebras de linha no meio do código; esses caracteres são chamados
genericamente de espaço em branco (whitespace). Ou seja, os três trechos a seguir são equivalentes:
 printf("Olá mundo");return 0;
 printf ("Olá mundo");
 return 0;
 printf(
 
 "Olá mundo"
 
 );
 return
 0
 ;
Conceitos básicos 11
No entanto, você achará muito mais fácil de ler um estilo de código mais parecido com o segundo exemplo.
Costuma-se usar (mas não abusar de) espaços e tabulações para organizar o código.
\u2022 A linguagem é sensível à utilização de maiúsculas e minúsculas. Por exemplo, se você escrevesse Printf no
lugar de printf, ocorreria um erro, pois o nome da função é totalmente em minúsculas.
Escopo
Geralmente, em programação, não queremos que outras funções usem as variáveis que estamos manipulando no
momento. O conceito de escopo está justamente relacionado a isso. Escopo é o nível em que um dado pode ser
acessado; em C há dois níveis: local e global. Uma variável global pode ser acessada por qualquer parte do
programa; variáveis locais podem ser acessadas apenas dentro do bloco onde foram declaradas (ou nos seus
sub-blocos), mas não fora dele (ou nos blocos que o contêm). Isso possibilita que você declare várias variáveis com o
mesmo nome mas em blocos diferentes. Veja um exemplo:
 int a;
 {
 int a;
 int b;
 }
 {
 int b;
 }
As duas variáveis chamadas b são diferentes e só podem ser acessadas dentro do próprio bloco. A primeira variável
a é global, mas só pode ser acessada no segundo bloco, pois a variável local a no primeiro bloco oculta a variável
global de mesmo nome. Note que isso é possível em C, e tome cuidado para não cometer erros por causa disso.
Introdução às funções
Funções são muito usadas, não só em C, mas em linguagens de programação em geral. Uma função é basicamente
um bloco de código que realiza uma certa tarefa. Quando queremos realizar aquela tarefa, simplesmente fazemos
uma chamada de função para a função correspondente.
Uma função pode precisar que o programador dê certos dados para realizar a tarefa; esses dados são chamados
argumentos. A função também pode retornar um valor, que pode indicar se a tarefa foi realizada com sucesso, por
exemplo; esse valor é o valor de retorno. Podemos fazer uma analogia com as funções matemáticas: as variáveis
independentes são os argumentos e o valor numérico da função é o valor de retorno.
Em C, para chamar uma função, devemos escrever o seu nome, seguido da lista de argumentos (separados por
vírgula) entre parênteses, mesmo que não haja nenhum argumento. Lembre que a chamada de função também é uma
instrução, portanto devemos escrever o ponto-e-vírgula no final. Alguns exemplos de chamadas de funções:
 funcao(arg1, arg2, arg3);
 funcao();
Se quisermos saber o valor de retorno de uma função, podemos armazená-lo numa variável. Variáveis serão
introduzidas logo adiante, mas a sintaxe é muito fácil de aprender:
 valor_de_retorno = funcao(arg1, arg2);
Vejamos um exemplo completo:
Conceitos básicos 12
//quadrado.c
//calcula o quadrado de um número
#include<stdio.h>
int square( int num1 )
{
 return num1 * num1;
}
int main(){
 int number;
 int result;
 printf(&quot;\nDigite um numero: &quot;);
 scanf(&quot;%d&quot;, &number);
 result = square(number);
 printf(&quot;O Quadrado de %d eh: %d&quot;, number, result);
 return 0;
}
Em C, todo o código (exceto as declarações de variáveis e funções) deve estar dentro de funções. Todo programa
deve ter pelo menos uma função, a função main, que é por onde começa a execução do programa.
Expressões
Um conceito muito importante em programação é o de expressão. Expressões são conjuntos de valores, variáveis,
operadores e chamadas de funções que são avaliados ou interpretados para resultar num certo valor, que é chamado
o valor da expressão. Por exemplo:
\u2022 3 * 4 + 9 é uma expressão de valor 21;
\u2022 a + 3 * b é uma expressão equivalente à expressão matemática a + 3b;
\u2022 foo() é uma expressão cujo valor é o valor de retorno da função foo.
Comentários
Muitas vezes é bastante útil colocar comentários no código, por exemplo para esclarecer o que uma função faz, ou
qual a utilidade de um argumento, etc. A maioria das linguagens de programação permite comentários; em C, eles
podem aparecer de duas maneiras:
 /* Comentários que podem
 ocupar várias
 linhas.
 */
e
Conceitos básicos 13
 // Comentários de uma linha só, que englobam
 // tudo desde as duas barras até o final da linha.
Tudo que estiver entre as marcas /* e */ ou entre // será ignorado pelo compilador. Note que os comentários de
uma linha só (iniciados por //) foram incorporados ao padrão da linguagem apenas em 1999, e portanto alguns
compiladores podem não os suportar. As versões mais recentes do GCC não terão problema em suportar esse tipo de
comentário.
Variáveis
Variáveis
Em um programa, existe a necessidade de se guardar valores na memória, e isso é feito através de variáveis, que
podem ser definidas