Material sobre Funções AEDS 1

Documentos relacionados
Algoritmos e Estruturas de Dados I (DCC/003) Funções

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Conhecendo a Linguagem de Programação C

Sub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Introdução à Programação

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Métodos Computacionais

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Introdução a Programação de Jogos

Introdução a Programação. Tipos Estruturados de Dados

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

INF 1620 P2-14/10/05 Questão 1 Nome:

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Programação Estruturada

Introdução à Programação

Faculdade de Computação

Sub-rotinas David Déharbe

Linguagem C. André Tavares da Silva.

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

6 Alguns conceitos e comandos em programação

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

Conceito de procedimentos e funções

Introdução à Programação C

Algoritmos e Estruturas de Dados I (DCC/003) Variável Indexada Vetor

Programação I Funções. Prof. Carlos Alberto

Programação de Computadores II

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Programação de Computadores II. Cap. 4 Funções

Aula 12- Variáveis e valores reais

TAD: Tipo Abstrato de Dados (parte 2)

Algoritmos e Programação

INF1005: PROGRAMAÇÃO I. Capítulo 12. Ivan Mathias Filho Funções Matemáticas

Capítulo 4: Programando com Funções. Pontifícia Universidade Católica Departamento de Informática

Aula 18: Funções em C

TAD: Tipo Abstrato de Dados (parte 2)

MC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016

... Subprogramas Após fazer as tarefas previstas o nosso programa devolve o comando ao sistema operativo. Isto está numa hierarquia onde o nosso progr

Linguagem de Programação C. Funções e Procedimentos

facilita o trabalho em equipe, com diferentes grupos trabalhando em cada módulo independente.

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Terceira Aula Prática - 10 de setembro de 2010

Aula 14: Estruturas de Seleção e Controle em C

Programação: Vetores

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

16 Definição e Uso de Funções em Programas

Algoritmos RESUMO - LINGUAGEM C

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Função. Unidade autônoma do programa desenvolvida para executar alguma atividade. A estrutura de uma função C é semelhante à da função main( )

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Métodos Computacionais em Física

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

3.1 - Funções para manipular dados de entrada e saída padrão

Programação de Computadores II Aula 03. Linguagem C I

Modularidade - Funções e Procedimentos

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

ponteiros INF Programação I Prof. Roberto Azevedo

Aula 2: Introdução a Linguagem C

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

C Comandos de Controle

Introdução à linguagem de programação C. Alexandre Mota

Introdução à Programação. Funções e Escopo de Variáveis

Computação eletrônica: Funções

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Ponteiros e Tabelas. K&R: Capítulo 5

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Capítulo 3: Programando com Funções

ENGENHARIA DE PRODUÇÃO PROGRAMAÇÃO Algoritmos Conceitos Iniciais. Prof. Luiz Fernando Laguardia Campos FMS

INF 1620 P1-04/10/03 Questão 1 Nome:

Fundamentos de Programação 1

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Introdução à linguagem C

Computação Informática

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Apontadores/ponteiros

INTRODUÇÃO À LINGUAGEM C

INF 1620 P1-16/09/06 Questão 1 Nome:

Revisão para Prova 2. Mirella M. Moro

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Módulo 3 Controle de Fluxo

Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO

Vetores. Marina Andretta. 11 de abril de 2016 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 11 de abril de / 20

Introdução a Computação

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Revisão. Profa Marina Gomes

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Cap. 3 Entrada e Saída e Controle de Fluxo

#include <stdio.h> void Swap (int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } main () {

Transcrição:

Material sobre Funções AEDS 1 1

Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2

Funções - Exemplos Função quadrática y = ax 2 +bx+c Entrada: x Saída: y 3

Funções - Exemplos Função z = sin(x 2 +y 2 )/(x 2 +y 2 ) Entrada: x, y Saída: z 4

Funções na programação Em linguagens imperativas, TODOS os programas usam funções No C, o programa SEMPRE começa executando a função main. #include <stdio.h> int main(void) { puts("olá, Mundo!"); return 0; 5

Funções Usamos funções para evitar de escrever várias vezes o mesmo código Código que será executado várias vezes em um programa, mas com valores diferentes Operações comuns a um ou mais programas 6

Funções na programação Nas linguagens de programação, as funções possuem: Zero ou mais parâmetros de entrada, com ou sem os seus tipos Zero ou mais parâmetros de saída, com ou sem os seus tipos Código a ser executado pela função 7

Funções - C Em C, definimos a função por: Zero ou mais parâmetros de entrada, com os seus tipos Um parâmetro de saída com tipo, sendo que o tipo pode ser sem saída Código da função Ao chamarmos a função, devemos passar valores para TODOS os parâmetros, sem exceção (não é o caso no C++ ) 8

Funções - C Declarando uma função tipo nome(tipo par1, tipo par2, ) { return VALOR; 9

Funções - C tipo define como será o retorno da função: Inteiro: int Caractere: char Real: float, double. Devemos indicar o valor de saída (guardado em uma variável, ou uma constante) usando o comando return. Funções podem não retornar saída: void 10

C - Exemplo Nome da função double logistica(double x) { return 1.0/(1.0+exp(-1.0*x)); 11

C - Exemplo Variável de entrada double logistica(double x) { return 1.0/(1.0+exp(-1.0*x)); 12

C - Exemplo double logistica(double x) { return 1.0/(1.0+exp(-1.0*x)); Saída do tipo double 13

C - Exemplo double logistica(double x) { return 1.0/(1.0+exp(-1.0*x)); Código a ser executado: marcação de início e fim de bloco usando chaves 14

C - Exemplo double logistica(double x) { return 1.0/(1.0+exp(-1.0*x)); Saída: Retorne o valor da expressão a seguir 15

C Exemplo: usando funções double logistica(double x) { return 1.0/(1.0+exp(-1.0*x)); int main() { double entrada = 10.0; double saida = logistica(entrada); Variável saida recebe o valor da função 16

Exemplo 2 int sep (int v[], int p, int r) { int w[1000], i = p, j = r, c = v[p], k; for (k = p+1; k <= r; ++k) if (v[k] <= c) w[i++] = v[k]; else w[j--] = v[k]; // agora i == j w[i] = c; for (k = p; k <= r; ++k) v[k] = w[k]; return i; Função sep: três parâmetros, retorna um inteiro 17

Exemplo 3 usando o main A função main é especial: É a primeira a ser chamada no programa Todo programa tem um! Seu retorno indica se o programa executou corretamente (retorno 0) ou não (retorno!= 0) Seus parâmetros, quando existem, são os parâmetros passados para o programa quando foi executado 18

Exemplo 3 usando o main #include <stdio.h> int main(int argc, char **argv) { int i; for(i=0;i<argc;i++) { printf( %s,argv[i]); return 0; 19

Exemplo 3 usando o main O programa imprime todos os argumentos recebidos pelo main Útil para mudar o funcionamento do seu programa passando parâmetros 20

Funções na programação Em linguagens de programação, funções podem não ter parâmetros de entrada ou de saída: o importante é o efeito da execução da função 21

Funções sem retorno C Funções sem retorno devem ter o tipo de retorno void. Exemplo: função para imprimir mensagem de boas-vindas do programa void saudacao() { printf( Ola usuario! Digite o comando que quer executar, ou? para ajuda. ); int main() { saudacao(); return 0; 22

Porque não retornar valor? Porque o importante pode ser a ação colateral da função, e não o seu valor de saída: Impressão de uma mensagem Ligar/desligar um componente do hardware Porque a função sempre executa sem erro: void exit(); 23

Funções: escopo de variáveis Variáveis podem ser acessadas somente dentro do seu escopo No C, o escopo é definido do momento da declaração até o fim do bloco No C, uma variável declarada dentro de um bloco de laço vive somente uma iteração do laço 24

Funções: escopo de variáveis int teste(int x) { int main() { int y; for(int i=0;i<10;i++) { if(i < 5) { int a; else { int b; 25

Funções: escopo de variáveis int teste(int x) { Escopo de x int main() { int y; for(int i=0;i<10;i++) { if(i < 5) { int a; else { int b; 26

Funções: escopo de variáveis int teste(int x) { Escopo de y int main() { int y; for(int i=0;i<10;i++) { if(i < 5) { int a; else { int b; 27

Funções: escopo de variáveis int teste(int x) { Escopo de i int main() { int y; for(int i=0;i<10;i++) { if(i < 5) { int a; else { int b; 28

Funções: escopo de variáveis int teste(int x) { Escopo de a int main() { int y; for(int i=0;i<10;i++) { if(i < 5) { int a; else { int b; 29

Funções: escopo de variáveis int teste(int x) { Escopo de b int main() { int y; for(int i=0;i<10;i++) { if(i < 5) { int a; else { int b; 30

Funções e escopo As variáveis locais (variáveis de uma função) são armazenadas em um modelo de pilha: Cada nova variável criada é adicionada ao topo da pilha Ao terminar o bloco, eliminamos todas as variáveis daquele bloco da pilha O mesmo vale para chamada de funções 31

Funções e escopo 32

Funções e escopo 33

Funções e escopo 34

Funções e escopo 35

Funções e escopo 36

Módulos 37

Módulo Um módulo é uma forma de organizar um programa grande Dividimos o programa em módulos, onde cada um deles possui um conjunto de tarefas bem específico: Módulo de entrada/saída Módulo de gerenciamento de memória Módulo de cálculo. 38

Módulo Módulos terão uma ou mais funções, que desta forma realizam operações similares. Módulo de operações matemáticas Módulo de operações sobre o tempo Módulo para entrada e saída 39

Exemplos de módulos em C Módulo de operações matemáticas (log, pow, sqrt, ) Módulo de operações sobre o tempo (gettimeofday, localtime,.) Módulo para entrada e saída (printf, scanf, gets, getchar, ) 40

Módulos e bibliotecas Módulos muito úteis podem ser empacotados em bibliotecas, para que possam ser utilizados em outros programas 41

Módulos e bibliotecas - C Em C, carregamos módulos e bibliotecas com o comando #include #include<stdio.h> #include<math.h> #include meumodulo.h O uso de <> ou depende da localização do módulo/biblioteca No diretório de bibliotecas do sistema: <> Em outro lugar (por exemplo, no diretório onde está o meu programa) : 42

C - Definindo um módulo O módulo consiste em: Arquivo de cabeçalhos de funções e declaração de tipos de dados (extensão.h) Arquivo com o código das funções (extensão.c) 43

C - Definindo um módulo Arquivo simples.h double media (double a, double b); double dif(double a, double b); Arquivo simples.c #include simples.h double media(double a, double b) { return (a+b)/2; double dif(double a, double b) { return a b; 44

Bibliotecas padrão do C Muitas funções comuns: stdio.h Entrada e saída Math.h Funções matemáticas mais complexas stdlib.h gerenciamento do programa: alocar memória, sair, sys/time.h Gerenciar o tempo: imprimir datas, ver a hora/data atual 45

Bibliotecas padrão do C Podemos encontrar a lista de funções em manuais, livros e em sites Web, i.e.: http://www.acm.uiuc.edu/webmonkeys/book/c_ guide/ 46

Bibliotecas padrão do C Math.h A math.h é especial: precisa de um parâmetro na compilação gcc codigo.c -lm -o programa -l nome indica que queremos que o programa incorpore código de um módulo externo. TODA biblioteca precisa do l nome, EXCETO as funções padrão do C 47