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

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

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

ALGORITMOS I. Procedimentos e Funções

Programação modular. Função

Modularidade - Funções e Procedimentos

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos...

Linguagem C: Subprogramação

Modularidade - Fun ções e Procedimentos

Aula 13 Oficina de Programação Modularização. Profa. Elaine Faria UFU

Estruturas de repetição

Programação Estruturada

Controle de Fluxo Utilizando C

Módulo 3 Controle de Fluxo

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?

Computação Informática

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

Algoritmos e Programação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Estruturas de Repetição

ponteiros INF Programação I Prof. Roberto Azevedo

Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

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.

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

Introdução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

Simulado da Prova Parcial 2 (01/08/2013)

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo

ESTRUTURA DE DADOS (TCC )

1ª Lista de Exercícios

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

LISTA DE EXERCÍCIOS MÊS 04

Linguagem C. Funções. Prof. Maurício Dias

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

Escopo das Variáveis. Funções. Funções. Funções. Funções. Algoritmos e Lógica de Programação. Programação Estruturada Funções Recursividade

Subprogramas. Prof. Carlos Lopes

Aula 18: Funções em C

Revisão para Prova 2. Mirella M. Moro

Subprogramas. (ou Sub-rotinas) em C: Procedimentos e Funções. 2015/1 Programação Básica de Computadores (INF 09325)

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

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

Algoritmos RESUMO - LINGUAGEM C

Apontadores/ponteiros

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2006 Prova Substitutiva 3 de julho de 2006

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

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

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

Atividade de laboratório listas encadeadas simples

MC102 Algoritmos e Programação de Computadores

Linguagem C: Ponteiros - Alocação Dinâmica

Linguagens de Programação I

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

INF 1620 P1-13/09/02 Questão 1 Nome:

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

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

Introdução a Programação de Jogos

Linguagem C. André Tavares da Silva.

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Aula 14: Repetição (Parte 2)

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Recursão em C

Computação 2. Aula 7. Profª. Fabiany Ponteiros

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

Explicação do programa:

Conhecendo a Linguagem de Programação C

Programação: Vetores

Introdução à Ciência da Computação

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF029 Laboratório de Programação Aula 02: Modularização

Introdução à Programação

Laboratório de 13 de maio de 2019

Introdução a Computação

Aula 2 Comandos de Decisão

Programação de Computadores II. Cap. 5 Vetores

Computação 2. Diego Addan Aula 3. Funções

INF1005: Programação 1. Repetições. 08/03/10 (c) Paula Rodrigues 1

Índice. Índice... 0 Passagem de parâmetros... 3 Procedures... 5 Funções... 5

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

Sub-rotinas David Déharbe

Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento

Funções em Linguagem C Parte II

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

SCC Capítulo 2 Recursão

Programação de Computadores II

Aula 1 Apresentação do Curso

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Terceira Prova 20 de junho de 2011

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

controle de fluxo - condicionais

Laboratório de Introdução à Ciência da Computação I

INF 1007 Programação II

Algoritmos e Programação

Estruturas de Dados. Revisão de Funções e Recursão. Agradecimentos

ESTRUTURAS COMPOSTAS

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

Transcrição:

Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28

Funções Na Programação, funções são conjuntos de instruções que realizam tarefas específicas do programa Foram criadas a partir das funções matemáticas Tem como objetivo: Produzir um valor para o programa principal ou para outras funções Reproduzir um trecho de código que possa ser repetido em vários locais de um ou mais programas Funções Introdução à Computação 2 de 28

Principais Vantagens Divide o programa em unidades menores, facilitando a compreensão, visualização e depuração Evita a repetição de trechos do código Reutilização de código já construído Construção de programas complexos a partir de módulos (bibliotecas) Funções Introdução à Computação 3 de 28

Você Sabia... Os principais comandos em C são funções: printf(), scanf(), gets(), puts(), system() O comando main() é uma função Aliás, é a principal função do código Sem ela, o programa não será executado Assim como as variáveis, as funções devem ser declaradas antes de serem utilizadas Devem ser construídas separadamente Funções Introdução à Computação 4 de 28

Construção de uma Função Uma função deve ser construída da seguinte maneira: Tipo estruturado de dados tipo nome (tipo1 argumento1, tipo2 argumento2,...) declaração de variáveis locais; Nome da função (único no programa) comandos executados pela função; Comandos a específicos a serem executados pela função Todos os comandos devem sempre ser colocados entre chaves Argumentos da função (os "dados de entrada") Declaração de variáveis que serão utilizadas APENAS na função Funções Introdução à Computação 5 de 28

O Comando return O comando return retornará ao programa um único valor calculado pela função Normalmente, é o último comando da função É sempre acompanhado por um valor De acordo com o tipo estruturado estabelecido para a função, que poderá ser Primitivo (int, char, float) Vetor ou matriz Definido pelo usuário (struct) Ponteiro Funções Introdução à Computação 6 de 28

Passagem de Argumentos Após o nome da função, são empregados os argumentos da mesma São utilizados como parâmetros de entrada da função Não é necessário fazer declarações da mesma no meio das variáveis Quando a função é chamada, ao ser inseridos os valores entre parênteses, a função trabalhará com os mesmos Devem obedecer o tipo estruturado estabelecido Funções Introdução à Computação 7 de 28

Exercício cio Definir o caractere e o tamanho para desenhar uma linha na tela ======================... Aqui as linhas resultantes dos comandos. *--------------------------------------------------* Funções Introdução à Computação 8 de 28

Exercício cio #include <stdio.h> #include <stdlib.h> void linha(int n, char c) int i; for (i = 0; i < n; i++) printf("%c", c); printf("\n"); //programa int main() linha(20, '='); linha(30, '.'); printf("aqui as linhas resultantes dos comandos.\n"); printf("*"); linha(50, '-'); printf("*\n"); system("pause"); Funções Introdução à Computação 9 de 28

Exemplo Construir um programa que calcule o valor de f(x) = x³ - 2x² + 5x 4 a partir de um valor inserido pelo usuário #include <stdio.h> #include <stdlib.h> float x, y; //variáveis globais //função f float f(float x) float val; //variável local val = x*x*x 2*x*x + 5*x 4; return val; //programa int main() printf("entre com o valor de x: "); scanf("%f", &x); y = f(x); //chamada da função printf("f(%f) = %f\n", x, y); system("pause"); Funções Introdução à Computação 10 de 28

Retorno de Funções com Ponteiros Podem ser feitos para vários tipos estruturados como ponteiros String char *residencia (...) char residencia[] (...) Vetor int *valores (...) int valores[] (...) Matriz float **inversa (...) float inversa[][] (...) Funções Introdução à Computação 11 de 28

O tipo void Quando a função não retorna nenhum tipo de valor para o programa, a função é classificada como o tipo void Assim como se fosse um outro tipo, como int, float... Pode ser utilizado em operações onde a própria função leia ou imprima valores envolvidos no programa O comando return não é utilizado Em outras linguagens, as funções deste tipo são denominadas procedimentos (procedures) Funções Introdução à Computação 12 de 28

Exemplo Criar um algoritmo onde tenha uma função que imprima em tela a tabuada de um dado número n. void tabuada(int x) for (i = 1; i <= 10; i++) printf("%3d x %3d = %3d\n", x, i, x*i); int main() printf("entre com um numero: "); scanf("%d", &n); tabuada(n); system("pause"); Funções Introdução à Computação 13 de 28

Exemplo Criar uma função que calcule o fatorial de um número inteiro n int fat(int n) int x = 1; for (i = n; i > 1; i--) x *= i; return x; int main() printf("entre com um numero: "); scanf("%d", &n); printf("%d! = %d\n", n, fat(n)); system("pause"); Funções Introdução à Computação 14 de 28

Exercícios cios 1. Crie funções em um mesmo programa para calcular: 1. PermutaçãoP(n) 2. ArranjoA(n, p) 3. CombinaçãoC(n, p) Funções Introdução à Computação 15 de 28

Exercícios cios 2. Crie um programa que tenha a função f(x) que contenha uma função polinomial a sua escolha. Dado como entrada um intervalo [a, b], crie na linguagem C uma outra função que calcule uma das raízes da função, obedecendo o seguinte algoritmo: repita m (a + b)/2; se f(a)*f(m) < 0 então b m; senão a m; enquanto a b > ε; raiz (a + b)/2; retorne (raiz); Funções Introdução à Computação 16 de 28

Escopo de Variáveis Em miúdos, os filósofos definem ética e moral da seguinte forma: Ética tica: conjunto de valores universais em que o homem deve seguir independentemente de onde estiver Moral: conjunto de valores sucursais em que o homem deve seguir em um determinado local Funções Introdução à Computação 17 de 28

Escopo de Variáveis Tal como é o conceito atrelado entre ética e moral...... pode-se também relacionar isto ao conceito de variáveis utilizadas em um programa As variáveis podem ser divididas em dois tipos: Globais Locais Funções Introdução à Computação 18 de 28

Variáveis Locais São definidas dentro de um bloco de função Existem somente durante a execução da função Apenas podem ser utilizadas dentro da função em que foi declarada Enquanto isso, outras funções não podem utilizá-las Nem mesmo a função main() Os argumentos também são variáveis locais Funções Introdução à Computação 19 de 28

Variáveis Globais São as variáveis definidas fora de qualquer bloco de função São visíveis por qualquer função Podendo ser utilizadas e/ou modificadas por qualquer função Existem durante toda a execução do programa Não são utilizadas quando existe uma variável local hom Funções Introdução à Computação 20 de 28

Exemplo int i; int f1(int n) // f1() tem uma variável local chamada n j = n; //erro: j não foi declarada como variável global ou local de f1()... float f2(int i) // f2() tem uma variável local chamada i int j; // f2() tem uma variável local chamada j i = 2*i; // alterando a variável local i j = f1(i);... int main() // COMECE AQUI float j; // j é variável local de main() i = 1; // alterando a variável global i j = f2(i);// j recebe o resultado retornado pela função f2()... Funções Introdução à Computação 21 de 28

Observação Se existirem variáveis locais e globais com o mesmo nome, a função levará em conta a variável local O valor da variável global não será alterado Variáveis globais permitem que os argumentos de funções sejam omitidos Funções Introdução à Computação 22 de 28

Exemplo Exibir o saldo de gols de uma partida char *time1, *time2; int p1, p2; void letimes() printf("time 1:\n"); gets(time1); //FUNÇÃO PRINCIPAL printf("time 2:\n"); int main() gets(time2); letimes(); void leplacar() leplacar(); mostraplacar(); printf("entre com o placar do jogo:\n"); system("pause"); scanf("%d %d", &p1, &p2); void mostraplacar() printf(" ---PLACAR ELETRONICO---\n"); printf("%s %d X %d %s\n", time1, p1, p2, time2); printf("saldo de gols do time da casa: %d\n", p1-p2); Funções Introdução à Computação 23 de 28

Chamada de Função Existem duas maneiras de se tratar os dados que passam pelos argumentos: Chamada por valor: É passado para o argumento da função o valor da variável As alterações na função não modificam o valor original da variável Chamada por referência: É passado para o argumento da função o endereço da variável As alterações na função modificam o valor original da variável Funções Introdução à Computação 24 de 28

Exemplo Teste como exercício cio e compare) Troca de valores (Teste como exerc //PASSAGEM POR VALOR void troca(int a, int b) //Variável primitiva como argumento int aux; aux = a; a = b; b = aux; printf("funcao: %d %d\n", a, b); int main() int i = 2, j = 5; printf("main: %d %d\n", i, j) //É passado o valor troca(i, j); printf("main: %d %d\n", i, j); system("pause"); //PASSAGEM POR REFERÊNCIA void troca(int *a, int *b) //Ponteiro como argumento int aux; aux = *a; *a = *b; *b = aux; printf("funcao: %d %d\n", *a, *b); int main() int i = 2, j = 5; printf("main: %d %d\n", i, j); //É passado o endereço troca(&i, &j); printf("main: %d %d\n", i, j); system("pause"); Funções Introdução à Computação 25 de 28

Recursividade A recursividade é uma estratégia muito utilizada em programação Uma função recursiva é toda aquela que chama a ela própria dentro do seu respectivo bloco Funções Introdução à Computação 26 de 28

Exemplo Calcular o fatorial de um número inteiro utilizando recursividade double fatorial(double x) double val; if ((x == 1) (x == 0)) return 1; else val = x * fatorial(x-1); return val; int main() double n; printf("entre com um numero inteiro:"); scanf("%d", &n); printf("%d! = %d\n", n, fatorial(n)); system("pause"); Funções Introdução à Computação 27 de 28

Exercícios cios 1. Sendo x n = xx n-1, faça uma função recursiva para o cálculo da potência. Assuma potência inteira positiva, e em uma segunda versão, considere também potências negativas. 2. Escreva uma função recursiva MDC() que retorna o máximo divisor comum entre x e y. O M.D.C. de x e y é definido de forma recursiva da seguinte forma: se y = 0 senão MDC(x, y) = x MDC(x, y) = MDC(x, x%y) Funções Introdução à Computação 28 de 28