O trabalho

Disponível somente no TrabalhosFeitos
  • Páginas : 23 (5576 palavras )
  • Download(s) : 0
  • Publicado : 5 de abril de 2013
Ler documento completo
Amostra do texto
Estruturas de Dados
Slides da Disciplina
Prof. Rômulo Alencar
romulo.alencar@live.estacio.br

Conteúdo
  Funções
  Busca binária
 Passagem de Parâmetros   Pilhas
 Escopo
  Filas
 Recursividade
  Ponteiros

  Complexidade Algorítmica   Alocação Dinâmica
  Tipo Abstrato de Dados
  Listas Encadeadas
  Estruturas de Dados

 Classificação
  Listas
  Listas Sequenciais
  Métodos deOrdenação
Prof. Rômulo Alencar

 Listas Simplesmente
Encadeadas
 Listas Duplamente
Encadeadas
 Listas Circulares
Estruturas de Dados

2

Funções
  É possível dividir seu programa em blocos de código

menores chamados funções
 Funcionam como sub-programas
 Permitem o conceito de encapsulamento
 Escondem detalhes de implementação do usuário
 Tornam seu código-fonte mais organizado
 Evitamretrabalho
 Facilitam manutenção
 Reduzem pontos de falha

Prof. Rômulo Alencar

Estruturas de Dados

3

Funções
  Assim como as funções na matemática, as funções em

linguagens de programação possuem
 Argumentos/Parâmetros
 Entrada
 Valor de retorno
 Saída
  Uma função recebe dados de entrada dos argumentos

(parâmetros), realiza um processamento e retorna um
resultado como saída Sub-programa!

Prof. Rômulo Alencar

Entrada

Processamento

Estruturas de Dados

Saída

4

Funções
  Sintaxe de funções na linguagem de programação C++
Tipo de dados da saída

Entrada

tipo_de_dados nome_da_função(lista_de_parâmetros)
{
… //Lista de comandos
Processamento
return valor_de_retorno;

Saída

}

Prof. Rômulo Alencar

Estruturas de Dados

5

Funções
  Exemplo
 Função para calcular a soma dedois números inteiros
 Entrada: dois números inteiros
 Processamento: realizar a soma dos dois numeros
 Saída: o resultado da soma

int soma(int x, int y)
{
int s;
s = x + y;
return s;
}
Prof. Rômulo Alencar

Estruturas de Dados

6

Funções
  Uma vez que a função está criada, ela pode ser

chamada dentro do programa, inclusive dentro de outras
funções

int subtrai(int x, int y)
{
int s;
s =soma(x, -y);
Chamada de função
return s;
}
Prof. Rômulo Alencar

Estruturas de Dados

7

Funções
  Na linguagem de programação C++, todo programa é

visto como uma função
 Função main
 SO “chama” o programa, passando parâmetros como
entrada. Ao final da execução do programa, um valor é
retornado ao SO.
Entrada vinda do SO

int main(int argc, const char * argv[])
{
...
return 0;

Saída retornadaao SO

}
Prof. Rômulo Alencar

Estruturas de Dados

8

Passagem de Parâmetros
  Funções podem receber parâmetros como entrada de

dados
  Parâmetros podem ser passados
 Por valor
 Apenas os valores das variáveis são passados para a
função
 Por referência
 Os endereços das variáveis são passados para a
função

Prof. Rômulo Alencar

Estruturas de Dados

9

Passagem de Parâmetros
  Passagemde parâmetros por valor
 Funcionamento
 Valores dos parâmetros são copiados para as variáveis da
função que serão manipuladas
 Exemplo
 Admita a função
 int f(int x, int y)

 Uma chamada a ela da forma
 a = f(b, c);

 Acarretaria na cópia dos valores e b e c para as variáveis x
e y.
 A partir daí, a execução ocorre normalmente com x e y isoladas
de b e c.

 Efeito prático: caso osvalores de x e y sejam alterados pela
função, nada acontece com b e c, pois elas estão
completamente isoladas!
Prof. Rômulo Alencar

Estruturas de Dados

10

Passagem de Parâmetros
  Passagem de parâmetros por referência
 Funcionamento
 Endereços dos parâmetros são copiados para as variáveis
da função que serão manipuladas
 Exemplo
 Precisamos escrever uma função que inverta os valores de
duasvariáveis
 Primeira ideia
void inverte(int x, int y)
{
int aux = x;
x = y;
y = aux;
}

 Admitindo a chamada
inverte(a, b);
Prof. Rômulo Alencar

Estruturas de Dados

11

Passagem de Parâmetros
  Passagem de parâmetros por referência
 Exemplo
 Caso executemos a função do jeito que está, o efeito
esperado não acontecerá!
 A passagem de parâmetros está sendo realizada por valor
 As...
tracking img