Vous êtes sur la page 1sur 58

Estruturas de Dados

Funes
Aula 6 03/04/2012

Funes

Funes

Funes
sempre prefervel dividir tarefas grandes em pequenas e utilizar seus resultados parciais para compor o resultado final desejado. Benefcios
Facilita a codificao Funes especficas podem ser reutilizadas em outros cdigos. Evita repetio de cdigo

Por que e como usar funes?

Como definir uma funo?

Forma Geral

Funes alternativas para clculo da mdia

Funes alternativas para clculo da mdia

06_01_func_media.c

O que acontece quando uma funo chamada?

O que acontece quando uma funo chamada?

O que acontece quando uma funo chamada?

Usando funes como parmetro para outras funes

Que dados uma funo enxerga?

Pilha de execuo

2. 3.

4. 1.

Dvidas?

Uso da funo exemplo 1

06_02_func_sub.c

Qual a sada deste programa?

exemplo 1

Uso da funo exemplo 1

Qual a sada deste programa?

06_02_func_sub.c

Dvidas?

Funo sem valor de retorno

06_06afunc_no_return_err.c

Funo sem valor de retorno

06_06afunc_no_return_err.c

Funo sem valor de retorno

06_06bfunc_no_return_ok.c

Converso de temperatura

Converso de temperatura

Converso de temperatura

Converso de temperatura

Converso de temperatura

Prottipo ou assinatura da funo

Converso de temperatura - exerccio

06_03_func_conv_temp_e.c

Exemplo 2 Clculo do Fatorial

Dvidas?

Variveis do tipo ponteiro


Quanto escrevemos:

int a;
declaramos uma varivel de nome a que pode armazenar valores inteiros. reserva-se um espao na memria suficiente para armazenar valores inteiros (4 bytes)

Variveis do tipo ponteiro


Da mesma forma podemos declarar variveis para armazenar endereos de memria em que h valores inteiros armazenados:

int *p;

Operadores para ponteiros


Operador & (endereo de)
Aplicado a variveis Resulta no endereo da posio de memria reservada para a varivel

Operador * (contedo de)


Aplicado a variveis do tipo ponteiro Acessa o contedo do endereo de memria armazenado pela varivel ponteiro.

Exemplo 1 - ponteiros
Aps as declaraes as duas variveis armazenam valores lixo, pois no foram inicializadas.

Exemplo 1 - ponteiros
/* a recebe o valor de 5*/ a=5; /* p recebe o endereo de a (diz-se p aponta para a)*/ p = &a; /* contedo de p recebe o valor 2*/ *p = 2;

Exemplo 1 - ponteiros
Com essas atribuies, a varivel a recebe, indiretamente, o valor 2.. Acessar a equivalente a acessar *p.

Exemplo 1 - ponteiros

Ponteiros - cuidados

Por que scanf e outras funes precisam do endereo de variveis?

06_17_func_par_valor.c

Por que scanf e outras funes precisam do endereo de variveis?

06_19_func_par_ref.c

Duvidas frequentes
void funcao(int n) -> ausencia de valor de retorno.
o comando return no necessrio na funo.

tipo do retorno funcao(void)


funes que no tm parmetros.

Duvidas frequentes
Funo main
O compilador acha que a funo main() deve retornar um inteiro Este valor pode ser usado pelo sistema operacional para testar a execuo do programa.
int main(void)

Duvidas frequentes
Antigamente, main() era aceitvel, mas recomendvel usar o padro C99, onde os seguintes comandos so aceitos: int main ( void ) int main ( int argc, char *argv[] ) recomendvel usar o return sempre.

Duvidas frequentes
Funo que no retorna nada e sem argumentos:
void funcaoA(void);

Esta lgica no aplicada a funo main, ento use sempre


int main(void)

Funes da biblioteca <stdio.h>

Printf - exemplos

Scanf - exemplos

Lista de Exerccios (enviada por email aos alunos cadastrados)


A 1 lista de exerccios deve ser entregue professora at o dia 12/abril em sala de aula.
O aluno no perder pontos se no entregar a lista!

Data Importantes:
Entrega do Trabalho
3 de maio (5 feira)

P1
10 maio de 2012 (5 feira)

P2
26 de junho de 2012 (3 feira)

VS
5 de julho de 2012 (5 feira)

Avisos e Slides das aulas


Atravs do email: uffestruturadedados2012.1@gmail.com

Bibliografia:
W. Celes, R. Cerqueira e J.L. Rangel, Introduo a Estruturas de Dados, Campus.