You are on page 1of 16

Programao de computadores I

Universidade Federal de Ouro Preto


DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
Larissa Camila Papa
1
Funes Parte I
Aula 08
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
2
Funes so as estruturas que permitem ao usurio separar seus
programas em blocos.

Se no as tivssemos, os programas teriam que ser curtos e de
pequena complexidade.

Para fazermos programas grandes e complexos temos de
constru-los bloco a bloco.
Funo
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
3
tipo_de_retorno nome_da_funo (declarao_de_parmetros) {
corpo_da_funo
}

onde:
tipo-de-retorno o tipo de varivel que a funo vai retornar.
A declarao de parmetros uma lista com a seguinte forma
geral:
tipo nome1, tipo nome2, ... , tipo nomeN
Escopo de uma funo
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
4
O tipo deve ser especificado para cada uma das N variveis de
entrada. na declarao de parmetros que informamos ao
compilador quais sero as entradas da funo (assim como
informamos a sada no tipo-de-retorno).

O corpo da funo a sua alma. nele que as entradas so
processadas, sadas so geradas ou outras coisas so feitas.
Consideraes
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
5
Comando return
O comando return tem a seguinte forma geral:
return valor_de_retorno;

Quando se chega a uma declarao return a funo
encerrada imediatamente e a funo retorna este valor.

importante lembrar que o valor de retorno fornecido tem
que ser compatvel com o tipo de retorno declarado para a
funo.
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
6
int Square (int a) {
return (a*a);
}

int main () {
int num;
printf ("Entre com um numero: ");
scanf ("%d",&num);
num=Square(num);
printf ("\n\nO seu quadrado vale: %d\n",num);
return 0;
}
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
7
Escopo de variveis
O escopo o conjunto de regras que determinam o uso e a
validade de variveis nas diversas partes do programa.
Variveis locais;
Variveis globais.
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
8
Variveis locais
So aquelas que s tm validade dentro do bloco no qual so
declaradas.

Podemos declarar variveis dentro de qualquer bloco.
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
9
Variveis locais
func1 (...) {
int abc,x;
...
}

void main () {
int a,x,y;
for (...) {
float a,b,c;
...
}
...
}
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
10
Variveis globais
Variveis globais so declaradas, fora de todas as funes do
programa.

Elas so conhecidas e podem ser alteradas por todas as
funes do programa.
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
11
Passagem de parmetros por valor
Quando chamamos uma funo os parmetros formais da
funo copiam os valores dos parmetros que so passados
para a funo.

No so alterados os valores que os parmetros tm fora da
funo.

So passados para a funo apenas os valores dos parmetros
e no os prprios parmetros
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
12
float sqr (float num) {
num=num*num;
return num;
}


void main () {
float num,sq;
printf ("Entre com um numero: ");
scanf ("%f",&num);
sq=sqr(num);
printf ("\n\nO numero original e: %f\n",num);
printf ("O seu quadrado vale: %f\n",sq);
}
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
13
Passagem de parmetros por referncia
Ocorre quando alteraes nos parmetros formais, dentro da
funo, alteram os valores dos parmetros que foram
passados para a funo.

Neste tipo de chamada, no se passa para a funo os valores
das variveis, mas sim suas referncias.
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
14
Quando queremos alterar as variveis que so passadas para
uma funo, ns podemos declarar seus parmetros formais
como sendo ponteiros.

Os ponteiros so a "referncia" que precisamos para poder
alterar a varivel fora da funo.

Quando usarmos a funo, teremos de lembrar de colocar um
& na frente das variveis que estivermos passando para a
funo.
Passagem de parmetros por referncia
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
15
Passagem de parmetros por referncia
void Swap (int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}

void main (void){
int num1,num2;
num1=100;
num2=200;
Swap (&num1,&num2);
printf ("\n\nEles agora valem %d %d\n",num1,num2);
}
Universidade Federal de Ouro Preto
DECEA Departamento de Cincias Exatas e Aplicadas
Joo Monlevade Minas Gerais
16
Referncias
Rudek, M.; Carneiro, L. G.; Pereira. A. Z.. Apostila de tcnicas
de programao. Pontifcia Universidade Catlica do Paran,
2002.

Curso de Programao em C. Apostila desenvolvida pelo
professor Renato C. M.. UFMG.

You might also like