1 Funções (versão C) Funções são pedaços de código encapsulados para fácil acesso. Em C e C++ o processo de construção de uma função passa por 2 etapas.

Slides:



Advertisements
Apresentações semelhantes
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
Advertisements

Funções em C Prof. Fabiano Utiyama.
Técnicas de Programação II Revisão TP1 Parte2
Programação em Java Prof. Maurício Braga
Capítulo II – Algoritmos e Programas
Marco Antonio Montebello Júnior
Parte I Capítulo 5 Reutilizando código e escrevendo funções.
Construção de Algoritmos AULA 07
Programação II Estruturas de Dados
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 3 Criado por Frederick H. Colclough, Colorado Technical University Fundamentos das Funções.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Programação para Engenharia I
Algoritmos e Estrutura de Dados I
Introdução à Programação
LINGUAGEM C.
Disciplina: AAM Profa. Ana Watanabe 03/13 vol.2
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo
Linguagem C Strings.
Linguagem C Funções.
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Linguagem C.
Linguagem C Estruturas de Seleção.
Programação Orientada para Objectos
Revisão da Linguagem C.
Vamos agora aprender a utilizar estruturas.
O Portal do Estudante de Computação
Iniciação à linguagem C++
APRESENTAÇÃO: DAVID ANDERSON CARDOSO DANTAS CURSO DE C AULA 04: Funções Maceió, Maio de 2010.
DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel de Queiroz Roberto.
Introdução a Computação e Cálculo Numérico
Curso de Nivelamento LCG
1 Funções (versão C/C++) Em C++ existe uma opção intermédia entre a função e uma macro. Uma função pode ser declarada inline. Nesse caso as funções têm.
1 Funções de intervalo. Primeiro contacto com o C e o C++ Uma função de intervalo é uma aplicação f: [a,b] [a,b] definida de forma recursiva x n+1 =f(x.
Funções de intervalo. Primeiro contacto com o C e o C++
1. 2 História do C e C++ O C (e actualmente também o C++) é a linguagem que está na base do sistema operativo Unix (e todos os seus clones). Foi inventada.
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
Marco Antonio Montebello Júnior
CADEIA DE CARACTERES (Strings)
Programação II Estruturas de Dados Aula 02 - continuação
Seminário 1: Revisão de C
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução à linguagem C
Técnicas de Desenvolvimento de Programas
F UNÇÕES : PASSAGEM DE PARÂMETROS Aluno:Kaynã Vasconcelos Santos Matéria: Estrutura de dados e algoritmos I Turma: Professor: Danilo Silva dos Santos.
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
3. Introdução à Linguagem C
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Uso de parâmetros na linha de comando. Parâmetros da função main:
Introdução à Linguagem C
Declarando e Chamando Funções
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Aula Prática 3 Funções Monitoria Introdução à Programação.
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
Wellington Felix.  Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix  C++ é uma extensão da.
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Aula Prática 3 Funções Monitoria Introdução à Programação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Programação Computacional Aula 9: Meu primeiro programa em C
PCI- Funções e Procedimentos Profa. Mercedes Gonzales Márquez.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Funções.
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Transcrição da apresentação:

1 Funções (versão C) Funções são pedaços de código encapsulados para fácil acesso. Em C e C++ o processo de construção de uma função passa por 2 etapas 1.Criação de um protótipo 2.Definição da função Tipicamente os protótipos vão parar aos header files (*.h, *.hxx) enquanto as definições vão parar aos ficheiros de código (*.c, *.cpp, *.cxx). Quando as funções são frequentemente utilizadas agrupam-se em bibliotecas para uso com outros programas

2 Funções (versão C) Para além dos protótipos os header files contêm também definições globais como instruções de pré-processador (#include, #define, etc.). A definição dos header files é uma fase importante do processo de criação de uma biblioteca. Vejamos um primeiro exemplo de criação de funções:

3 Funções (versão C) Para além dos protótipos os header files contêm também definições globais como instruções de pré-processador (#include, #define, etc.). A definição dos header files é uma fase importante do processo de criação de uma biblioteca. Uma função em C e C++ só pode retornar um valor (então e os vectores?)

4 Funções (versão C) /************************** Programa que calcula o Programa que calcula o quadrado de um numero. quadrado de um numero. (versao com funcao) (versao com funcao) Autor: J. Seixas 2004 Autor: J. Seixas 2004 ***************************/ #include #include double quadrado(double ); /* prototipo */ int main(){ double x; double x; printf("Introduza um numero: "); /* mostra a frase no ecra */ printf("Introduza um numero: "); /* mostra a frase no ecra */ scanf("%lf",&x); /* recebe o valor para x */ scanf("%lf",&x); /* recebe o valor para x */ printf("Valor do seu quadrado e: %lf\n",quadrado(x)); printf("Valor do seu quadrado e: %lf\n",quadrado(x)); return(0); return(0);} double quadrado(double x) { /* definicao */ return (x*x); /* retorna o valor do quadrado*/ return (x*x); /* retorna o valor do quadrado*/}

5 Funções (versão C) Problema das funções em C: não há overloading ou seja, não podemos criar funções com o mesmo nome para tipos diferentes. Uma possibilidade em C (e em C++) é criar macros usando as funcionalidades do pré-processador. Isso permite com o mesmo nome ter um código válido para tipos diferentes. A macro utiliza a directiva #define do pré-processador Exemplo simples: #define N 25 Repare-se que não interessa o tipo de N!

6 Funções (versão C) /************************** Programa que calcula o Programa que calcula o quadrado de um numero. quadrado de um numero. (versao com macro) (versao com macro) Autor: J. Seixas 2004 Autor: J. Seixas 2004 ***************************/ #include #include #define QUADRADO( a ) ( a * a ) /* macro */ int main(){ double x; double x; printf("Introduza um numero: "); printf("Introduza um numero: "); scanf("%lf",&x); scanf("%lf",&x);/* uso da macro QUADRADO uso da macro QUADRADO*/ printf("Valor do seu quadrado e: %lf\n",QUADRADO(x)); printf("Valor do seu quadrado e: %lf\n",QUADRADO(x)); return(0); return(0);}

7 Funções (versão C) Vantagens das funções: 1. Verificação do tipo 2.Código final pequeno 3.Pode estender-se por várias linhas e conter definição de variáveis Vantagens das macros: 1.Permite código independente do tipo 2.Rapidez de cálculo Uma macro particularmente útil: #define delta(i, j) {((i)-(j))?0:1} Implementa simultaneamente o delta de Dirac e o delta de Kronecker!

8 Funções (versão C) Vantagens das funções: 1. Verificação do tipo 2.Código final pequeno 3.Pode estender-se por várias linhas e conter definição de variáveis Vantagens das macros: 1.Permite código independente do tipo 2.Rapidez de cálculo

9 Funções (versão C) Problemas com as macros: #define QUAD(x) x * x #define DUP(x) x + x A que é igual QUAD(DUP(3))? Resposta: 36? Não: 3+3*3+3 = 15 Formulação correcta: #define QUAD(x) (x) * (x) #define DUP(x) (x) + (x)

10 Funções (versão C) Funções e variáveis: 1. As variáveis definidas no interior de uma função têm escopo local, ou seja, só existem dentro da função 2. Mesmo as que são passadas no argumento! Nesse caso o valor da variável na chamada à função é copiado para a variável usada na função. As eventuais mudanças só existem no interior da função e não se manifestam no exterior dela! 3. Variáveis definidas fora de todas as funções têm escopo global, ou seja, são conhecidas por todas as funções e modificáveis por todas as funções! 4. Normalmente quando se sai de uma função as variáveis locais são destruídas juntamente com os valores que contêm! 5. Na verdade o próprio nome da função pode ser usado como variável

11 Funções (versão C) Funções e variáveis: 5. As variáveis globais têm escopo global, mas apenas no ficheiro onde estão definidas. 6. O nome das funções, sendo por definição declarado fora de todas as funções, é global, mas apenas no ficheiro onde estão definidas! Solução: novos qualificativos static permite a uma variável local de uma função manter o seu valor quando a função termina. Quando aplicado a funções obriga o seu nome a ter escopo local ao ficheiro. static permite a uma variável local de uma função manter o seu valor quando a função termina. Quando aplicado a funções obriga o seu nome a ter escopo local ao ficheiro. extern permite usar o nome de uma função ou variável antes da sua definição. Na prática permite que a função ou variável possa ser definida num outro ficheiro. extern permite usar o nome de uma função ou variável antes da sua definição. Na prática permite que a função ou variável possa ser definida num outro ficheiro.

12 Funções (versão C) Funções e variáveis: Problema das variáveis constantes: a maneira mais simples de definir uma constante é usar a directiva #define do pré- processador. O problema é que o #define uma vez introduzido afecta todo o código abaixo da definição. Não tem escopo local nas funções. Solução: mais um qualificativo const: significa que a variável a que está aplicado é constante, ou seja, que só pode ser inicializada uma vez. Mas o escopo da variável continua o mesmo