PCI- Funções e Procedimentos Profa. Mercedes Gonzales Márquez.

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

Técnicas de Programação II Revisão TP1 Parte2
Programação em Java Prof. Maurício Braga
Capítulo VIII – Subprogramação
V Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. v Funções – são procedimentos.
Construção de Algoritmos AULA 07
Recursividade Prof. Rosana Palazon.
Programação II Estruturas de Dados
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Algoritmos e Estrutura de Dados I
Conteúdo: - Modularização.
Introdução à Computação - Jorge Macêdo
Alocação Dinâmica de Memória
Universidade Federal do Espírito Santo
Linguagem C Funções.
Vetores, Matrizes e Funções
Revisão da Linguagem C.
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
PROGRAMAÇÃO I UNIDADE 4.
Programação II Estruturas de Dados Aula 02 - continuação
Argumentos por valor Passagem de valor da variável indicada Não permite alteração de variável indicada Exemplo: int quadrado_de(int ); //protótipo int.
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Prof. Ricardo Santos PONTEIROS
Programação de Computadores
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.
Algoritmos e Estruturas de Dados I – Recursão
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Introdução à Linguagem C
Aula Prática 3 Funções Monitoria Introdução à Programação.
Algoritmos e Estruturas de Dados I – Modularizaçã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.
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 à.
Revisão Luis Antonio Tavares
Programação de Computadores I – Arquivos
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
Ameliara Freire Dividir para Conquistar.
Profa. Maria Augusta Constante Puget
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Linguaguem de Programação II
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Linguaguem de Programação II
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Funções.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo VIII Subprogramação.
Profa. Mercedes Gonzales Márquez
Linguagem de Programação
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
PCI- Vetores Profa. Mercedes Gonzales Márquez. Aula 5 - VetoresAlgoritmos e Estruturas de Dados I Sequência de valores todos do mesmo tipo Nome único.
Programação de Computadores I – Arquivos Profa. Mercedes Gonzales Márquez.
PRE 1002 Éverlin Marques 2015/1.
Fundamentos de Programação 1
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
1 CCO 016 FUNDAMENTOS DE PROGRAMAÇÃO Universidade Federal de Itajubá Prof. Dr. Edison Oliveira de Jesus.
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
PCI- Funções e Procedimentos
PCI- Funções e Procedimentos
Programação de Computadores I – Arquivos
Transcrição da apresentação:

PCI- Funções e Procedimentos Profa. Mercedes Gonzales Márquez

Funções Um ponto chave na resolução de um problema complexo é conseguir quebrá-lo em subproblemas menores. Ao criarmos um programa para resolver um problema, é crítico quebrar um código grande em partes menores, fáceis de serem entendidas e administradas.

Definição de uma função Uma função é definida da seguinte forma: tipo nome(tipo parâmetro1,..., tipo parâmetroN) { comandos; return valor de retorno; } Toda função deve ter um tipo (int, char, float, etc). Esse tipo determina qual será o tipo de seu valor de retorno. Os parâmetros são variáveis, que são inicializadas com valores indicados durante a invocação da função. O comando return devolve para o invocador da função o resultado da execução desta.

Exemplo de função Por exemplo, suponha um programa para calcular o numero de combinações de n eventos em conjuntos de p eventos, p <=n. Sem o conceito de função, teríamos que repetir três vezes as instruções para calculo do fatorial de um numero x. Com o conceito de função, precisamos apenas escrever essas instruções uma única vez e substituir x por n, p, e (n-p) para saber o resultado de cada calculo fatorial.

Exemplo de função #include double fatorial(int x); /* prototipo da funcao */ /* escopo da funcao */ double fatorial(int x){ double fat=1; int i; for (i=x; i > 1; i--) fat = fat * i; return(fat); }

Exemplo de função /* funcao principal */ int main(){ int n,p,C; scanf("%d %d",&n,&p); if ((p >= 0)&&(n >= 0)&&(p <= n)){ /* chamada da funcao */ C = (int)(fatorial(n)/(fatorial(p)*(fatorial(n-p)))); printf("%d \n",C); } return 0; }

Variáveis locais Variáveis locais só existem na memória enquanto a função estiver sendo executada e só podem ser usadas no escopo desta função. No exemplo, x,i e fat são variáveis locais e são alocadas e desalocadas três vezes na memória. A mesma observação é válida com relação as variáveis locais n, p, e C da função principal, porém essas permanecem na memória durante toda a execução do programa.

Passagem de parâmetros No exemplo, o valor de n na chamada fatorial(n) é passado para uma cópia x da variável n. Qualquer alteração em x não afeta o conteúdo de n no escopo da função principal. Dizemos então que o parâmetro e passado por valor.

Passagem de parâmetros Porém, pode acontecer de desejarmos alterar o conteúdo de uma ou mais variáveis no escopo da função principal. Neste caso, os parâmetros devem ser passados por referência. Ou seja, a função cria uma cópia do endereço da variável correspondente na função principal em vez de uma cópia do seu conteúdo. Qualquer alteração no conteúdo deste endereço é uma alteração direta no conteúdo da variável da função principal. Por exemplo, o programa acima requer que p <= n. Caso contrário, podemos trocar o conteúdo dessas variáveis.

Passagem de parâmetros void troca(int *x, int *y){ int aux; aux = *x; /* conteudo de x e atribudo ao conteudo de aux */ *x = *y; /* conteudo de y e atribudo ao conteudo de x */ *y = aux; /* conteudo de aux e atribudo ao conteudo de y */ } Observação: troca é um exemplo de função tipo void ou também chamada procedimento e será visto nos próximos slides.

Passagem de parâmetros int main(){ int n,p,C; scanf("%d %d",&n,&p); if (p > n) troca(&p,&n); /* passa os enderecos de p e de n */ if ((p >= 0)&&(n >= 0)){ C = (int)(fatorial(n)/(fatorial(p)*(fatorial(n-p)))); printf("%d \n",C); } return 0; }

Procedimentos ou funções tipo void O procedimento corresponde a uma função do tipo void (tipo de dado indefinido) que não possui o comando return devolvendo algum valor para a função chamadora. Por exemplo, a função abaixo imprime o número que for passado para ela como parâmetro: void imprime (int numero) { printf ("Número %d\n", numero); }

Procedimentos ou funções tipo void # include void imprime (int numero) { printf ("Numero %d\n", numero); } int main () { imprime (10); imprime (20); return 0; }

Exemplos Implemente os algoritmos 4 ao 15 dos slides de Modularização da disciplina Algoritmos e Estrutura de Dados I.

Exemplo de função 6. #include int primo(inteiro: n){ int:i; i=2; while(i<=sqrt(n)) { if ((n%i)=0) ‏ return(0); i=i+1; } return(1)‏; } int main(){ inteiro:i,par scanf (“%d”,&par); while (par>0) { for (i=0; i<par; i++) if (primo(i)==1 && primo (par- i)==1){ printf(“o par eh: %d e %d”, i, par-i); i=par; } scanf (“%d”,&par); } return 0; }