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 à Programação Função (incentivo) Semelhantes a funções matemáticas (não iguais) Conjunto de operações realizadas para obter um resultado f y :. Dada uma função f obter y Podem possuir parâmetros; ex: f(x, y, z) | x, y, z parâmetros Função Conjunto de instruções que é chamado pelo programa principal ou alguma outra função Podem retornar ou não um valor Estrutura de uma função Parâmetro(s) Tipo retornado Nome da função float elevar3(float x) { float resultado; resultado= x * x * x; return resultado; } Conjunto de instruções Função: parâmetros Digamos a seguinte função matemática z= x² + y, logo z= f(x, y); o resultado de z depende de dois parâmetros x e y Do mesmo jeito em c, existem parâmetros nas funções Esses parâmetros receberão valores com o qual gerará a saída, com o uso correto Na função elevar3(float x), temos como parâmetro o x que possui valor float Função Pode retornar um int, float, char, por exemplo, dentre outros diversos Temos um tipo void, grosseiramente falando, quer dizer “vazio”, ou “retornar um vazio” no contexto de funções. O conceito se abrange um pouco mais Reforçando!!! Como qualquer outra função pode possuir parâmetros que isso void menu() { printf(“1. Salvar\n”); printf(“2. Abrir\n”); printf(“3. Sair\n”); } Função: return No slide 3 pode-se notar o uso da palavra return float elevar3(float x) { float resultado; resultado= x * x * x; return resultado; } O return serve para dizer ao programa qual valor a ser retornado, se necessário, pela função No caso da função void, pode-se emitir o uso do return Função: return O que acontece quando é chamado? Assim que é chamado a função termina e retorna ao programa que o chamou, com o valor definido ou não de retorno int maior(int n1, int n2) Se n1 for maior que n2 então retorna n1 como resultado, função acaba aqui. { if (n1 > n2) return n1; return n2; } Função: execução A primeira função a ser executada em qualquer programa em C é a main. No entanto, quando ocorre a chamada para fazAlgumaCoisaComAVariavel, a execução da main é "pausada", e passa-se a executar o código da função chamada. int main() { int variavel; printf("Entre com o valor da variavel:\n"); scanf("%d",&variavel); fazAlgumaCoisaComAVariavel(variavel); return 0; } Função: execução void fazAlgumaCoisaComAVariavel(int var) { int variavelDeControle; variavelDeControle = VerificaAlgumaCoisaSobreAVariavel(var); if(variavelDeControle == 1) //faz alguma coisa else //faz outra coisa } Novamente, quando encontramos a chamada a uma função, pausamos a execução da outra, e só voltamos quando chegamos ao fim da que chamamos. Isso se chama a pilha de execução. Cada vez que encontramos uma chamada a uma função, executa-se o código dessa função até o fim ou até encontrarmos outra chamada de função. Dessa forma, a primeira função chamada será a ultima a chegar ao seu fim. Escopo O escopo de uma variável é o conjunto de locais onde ela pode ser acessada. As variáveis e funções só podem ser acessadas dentro da função onde foram declaradas. – Variáveis declaradas dentro de funções são chamadas de variáveis locais. – Variáveis declaradas fora de todas as funções (inclusive da main) são chamadas de variáveis globais e podem ser referenciadas em todo o programa. Escopo Variáveis globais numéricas têm como padrão serem inicializadas com 0 (ou seja, quando não inicializadas explicitamente pelo programador) Há a possibilidade de se usar o mesmo nome para uma variável global e uma local. – Quando uma variável é chamada num lugar onde os dois escopos são visíveis, o programa dará preferência à variável local. Escopo Lembre-se de que quando uma função chega ao final, as variáveis nela declaradas deixam de existir. As variáveis declaradas dentro de funções podem ainda vir com o modificador static. Com ele, a variável é criada apenas uma vez, e volta a ser usada em todas as outras execuções da função. int funcao() { static int num = 2; num = num * 2; return num; } DÚVIDAS? Exercício 1 Desenvolva um programa que analisa os coeficientes recebidos A, B, C de uma equação do segundo grau (faça uma função para isso) e que informa ao usuário quantas soluções possui. Também calcule a(s) raiz(es) (outra função), e as informe, caso ela(s) exista(m). Exercício 2 Faça um programa que receba o tamanho do raio de um círculo em metros. Deve haver um menu para o usuário escolher entre calcular a área ou calcular o comprimento da circunferência e uma função para cada opção. No fim, mostre a resposta do cálculo. – Obs.: Considere pi=3,14. Exercício 3 Faça duas funções que recebam as coordenadas x e y de dois pontos de uma reta. Uma função deve imprimir as coordenadas x e y do ponto médio e a outra calcular o coeficiente angular da reta.