Anda di halaman 1dari 10

17/08/2015

Linguagem de Programao
aplicada a Microcontroladores
2015/2

Aula 02

Curso Tcnico em Eletrnica

O C "Case Sensitive"

Vamos comear o nosso curso ressaltando um ponto


de suma importncia: o C "Case Sensitive", isto ,
maisculas e minsculas fazem diferena.
Se declarar uma varivel com o nome soma ela ser
diferente de Soma, SOMA, SoMa ou sOmA. Da mesma
maneira, os comandos do C if e for, por exemplo, s podem
ser escritos em minsculas pois seno o compilador no ir
interpret-los como sendo comandos, mas sim como
variveis.

Edson Oliveira - 2015/2

17/08/2015

Exemplo 1
Vejamos um primeiro programa em C:
#include <stdio.h>
/*
Um Primeiro Programa
*/
int main ()
{
printf ("Ola! Eu estou vivo!\n");
return(0);
}
Compilando e executando este programa voc ver que ele
coloca a mensagem Ola! Eu estou vivo! na tela.
Exemplo1.cpp

Analisando o exemplo
Quando fazemos um programa, uma boa ideia usar
comentrios que ajudem a elucidar o funcionamento do
mesmo. No caso anterior temos um comentrio:
/*

Um Primeiro Programa

*/

O compilador C desconsidera qualquer coisa que esteja


comeando com /* e terminando com */. Um comentrio
pode, inclusive, ter mais de uma linha.

Edson Oliveira - 2015/2

17/08/2015

Analisando o exemplo
Inserir comentrios no cdigo do programa permite melhor organizao
e compreenso de seu funcionamento, j que possvel adicion-lo a
qualquer parte do programa.

H duas maneiras de introduzir comentrios no programa.

Sintaxe
// bla bla bla bla

comentrio de uma nica linha

/* bla bla bla bla


....
bla bla bla bla */

comentrio de mltiplas linhas

Nota:
Como regra de boa programao praxe iniciar o programa sempre informando o
nome do programador, data e uma descrio sucinta do que o programa faz.

Analisando o exemplo
A linha int main() indica que estamos definindo uma funo de
nome main.
Todos os programas em C tm que ter uma funo main, pois
esta funo que ser chamada quando o programa for executado. O
contedo da funo delimitado por chaves { }. O cdigo que estiver
dentro das chaves ser executado sequencialmente quando a funo for
chamada.
A palavra int indica que esta funo retorna um inteiro. O que
significa este retorno ser visto posteriormente, quando estudarmos um
pouco mais detalhadamente as funes do C.
A ltima linha do programa, return(0); , indica o final da funo e a
entrega de um produto feito pela funo, no caso um nmero inteiro de
valor 0.

Edson Oliveira - 2015/2

17/08/2015

Analisando o exemplo
A nica coisa que o programa realmente faz chamar a funo
printf(), passando a string (uma string uma sequncia de caracteres,
como veremos brevemente) "Ola! Eu estou vivo!\n" como argumento.
por causa do uso da funo printf() pelo programa que devemos
incluir o arquivo- cabealho stdio.h .
A funo printf() neste caso ir apenas colocar a string na tela do
computador. O \n uma constante chamada de constante barra
invertida. No caso, o \n a constante barra invertida de "new line" e ele
interpretado como um comando de mudana de linha, isto , aps
imprimir Ola! Eu estou vivo! o cursor passar para a prxima linha.
importante observar tambm que os comandos do C terminam
com ; .

Exemplo 2

Exemplo2.cpp

Edson Oliveira - 2015/2

17/08/2015

Edson Oliveira - 2015/2

So declaradas duas variveis chamadas Dias e Anos. A primeira


um int (inteiro) e a segunda um float (ponto flutuante). As variveis
declaradas como ponto flutuante existem para armazenar nmeros
que possuem casas decimais, como 5,1497.
feita ento uma chamada funo printf(), que coloca uma
mensagem na tela.
Queremos agora ler um dado que ser fornecido pelo usurio e
coloc-lo na varivel inteira Dias. Para tanto usamos a funo
scanf(). A string "%d" diz funo que iremos ler um inteiro. O
segundo parmetro passado funo diz que o dado lido dever ser
armazenado na varivel Dias. importante ressaltar a necessidade
de se colocar um & antes do nome da varivel a ser lida quando se
usa a funo scanf(). O motivo disto s ficar claro mais tarde.
Observe que, no C, quando temos mais de um parmetro para uma
funo, eles sero separados por vrgula.

Temos ento uma expresso matemtica simples que atribui a Anos


o valor de Dias dividido por 365.25 (365.25 uma constante ponto
flutuante 365,25). Como Anos uma varivel float o compilador far
uma converso automtica entre os tipos das variveis (veremos isto
com detalhes mais tarde).
A segunda chamada funo printf() tem trs argumentos. A string
"\n\n%d dias equivalem a %f anos.\n" diz funo para pular duas
linhas, colocar um inteiro na tela, colocar a mensagem dias
equivalem a, colocar um valor float na tela, colocar a mensagem
anos. e pular outra linha. Os outros parmetros so as variveis,
Dias e Anos, das quais devem ser lidos os valores do inteiro e do
float, respectivamente.

17/08/2015

Teste
O que faz o seguinte programa?

Exercicio1.cpp

Funes
Uma funo um bloco de cdigo de programa que pode ser usado
diversas vezes em sua execuo. O uso de funes permite que o
programa fique mais legvel, mais bem estruturado.
Um programa em C consiste, no fundo, de vrias funes colocadas
juntas.
Abaixo o tipo mais simples de funo:

Exemplo3.cpp

Edson Oliveira - 2015/2

17/08/2015

Funes

Este programa ter o mesmo resultado que o primeiro exemplo da


seo anterior.
O que ele faz definir uma funo mensagem() que coloca uma
string na tela e retorna 0. Esta funo chamada a partir de main() ,
que, como j vimos, tambm uma funo.
A diferena fundamental entre main e as demais funes do
problema que main uma funo especial, cujo diferencial o fato de
ser a primeira funo a ser executada em um programa C.

Argumentos em Funes
Argumentos so as entradas que a funo recebe. atravs dos
argumentos que passamos parmetros para a funo. J vimos funes
com argumentos. As funes printf() e scanf() so funes que recebem
argumentos. Veja o exemplo abaixo:

Exemplo4.cpp

Edson Oliveira - 2015/2

17/08/2015

Analisando o exemplo
Na definio de square() dizemos que a funo receber um
argumento inteiro x. Quando fazemos a chamada funo, o inteiro
num passado como argumento.
H alguns pontos a observar. Em primeiro lugar temos de satisfazer
aos requisitos da funo quanto ao tipo e quantidade de argumentos
quando a chamamos. Apesar de existirem algumas converses de tipo,
que o C faz automaticamente, importante ficar atento.
Em segundo lugar, no importante o nome da varivel que se
passa como argumento, ou seja, a varivel num, ao ser passada como
argumento para square() copiada para a varivel x.
Dentro de square() trabalha-se apenas com x. Se mudarmos o
valor de x dentro de square() o valor de num na funo main()
permanece inalterado.

Exemplo 3
Vamos
dar
um
exemplo de funo de
mais de uma varivel.
Repare que, neste caso,
os argumentos so
separados por vrgula e
que deve-se explicitar o
tipo de cada um dos
argumentos, um a um.
Note, tambm, que os
argumentos passados
para a funo no
necessitam ser todos
variveis porque mesmo
sendo constantes sero
copiados para a varivel
de entrada da funo.
Exemplo5.cpp

Edson Oliveira - 2015/2

17/08/2015

Retornando valores
Muitas vezes necessrio fazer com que uma funo retorne um valor. As
funes que vimos at aqui estavam retornando o nmero 0. Podemos
especificar um tipo de retorno indicando-o antes do nome da funo. Mas
para dizer ao C o que vamos retornar precisamos da palavra reservada
return. Sabendo disto fica fcil fazer uma funo para multiplicar dois
inteiros e que retorna o resultado da multiplicao.

Exemplo6.cpp

Analisando o exemplo

Edson Oliveira - 2015/2

Veja que, como prod retorna o valor de 12 multiplicado por 7, este


valor pode ser usado em uma expresso qualquer. No programa
fizemos a atribuio deste resultado varivel saida, que
posteriormente foi impressa usando o printf. Uma observao
adicional: se no especificarmos o tipo de retorno de uma funo, o
compilador C automaticamente supor que este tipo inteiro. Porm,
no uma boa prtica no se especificar o valor de retorno e, neste
curso, este valor ser sempre especificado.
Com relao funo main, o retorno sempre ser inteiro.
Normalmente faremos a funo main retornar um zero quando ela
executada sem qualquer tipo de erro.

17/08/2015

Exemplo 4

Exemplo7.cpp

Exerccio

1) Escreva uma funo que some dois inteiros e retorne o valor da


soma.
2) Escreva um programa que receba um nmero inteiro e retorne este
nmero elevado ao cubo.

Edson Oliveira - 2015/2

10

Anda mungkin juga menyukai