Prévia do material em texto
Linguagem e Técnicas de Programação Aula 10 Linguagem e Técnicas de Programação Funções Linguagem e Técnicas de Programação ● Finalidades – Apresentar os conceitos e detalhes necessários para criar funções na linguagem C. ● Declarar uma nova função. ● Definir os parâmetros de uma função. ● Definir o retorno de uma função. ● Fazer a passagem de parâmetros por valor para a função. Linguagem e Técnicas de Programação Definição de Funções ● Quando temos um programa muito grande muitas vezes torna-se difícil acompanharmos a lógica ali empregada. ● Com o uso das funções podemos dividir grandes tarefas de computação em tarefas menores. ● Uma FUNÇÃO nada mais é do que um bloco de código, declarações e outros comandos, nomeado e chamado de dentro de um programa. ● É uma sequencia de comandos que recebe um nome e pode ser chamada de qualquer parte do programa. ● Exemplos: – printf() – scanf() Linguagem e Técnicas de Programação Definição de Funções ● Geralmente esses programas em C são montadas com várias pequenas funções em vez de poucas de maior tamanho. ● Assim a criação de funções evita a repetição de código. ● Quando um procedimento é repetido diversas vezes, ela deve ser transformado numa função que, então, será chamada diversas vezes. ● Um programa bem estruturado deve ser pensado em termos de funções fora do corpo principal do programa. ● Em C, tudo é feito através de funções. Linguagem e Técnicas de Programação Definição de Funções ● Definição e estrutura básica – Duas são as principais razões para o uso de funções: ● Estruturação dos programas. ● Reutilização de código. Linguagem e Técnicas de Programação Definição de Funções ● Estruturação dos programas: – Entende-se que os programas será construídos a partir de pequenos blocos de códigos, as funções; – Cada um com uma tarefa específica e bem definida; – Facilita a compreensão dos programas. ● Reutilização de código: – Uma função é escrita para realizar uma determinada tarefa; – Pode ser utilizada diversas vezes e em pontos diferentes do programa. Linguagem e Técnicas de Programação Definição de Funções ● Declarando uma função: – A forma geral para definir uma função é: < tipo_retorno > < nome_função > ( lista_de_parâmetros) { sequência de declarações e comandos retorno <variável do tipo declarado no início da função> } Linguagem e Técnicas de Programação Definição de Funções ● Local de declaração de uma função: – A função deve ser definida ou declarada antes de ser utilizada, ou seja, antes da cláusula main(). – Exemplo: Linguagem e Técnicas de Programação Definição de Funções ● Local de declaração de uma função: – Pode-se também declarar uma função depois da cláusula main(). – Nesse caso, é preciso declarar antes o protótipo da função. < tipo_retornado > < nome_função > (lista_de_parâmetros); – O protótipo de uma função é uma declaração de função que omite o corpo mas especifica o seu nome, tipo de retorno e lista de parâmetros. Linguagem e Técnicas de Programação Definição de Funções ● Local de declaração de uma função: – Exemplo: Linguagem e Técnicas de Programação Definição de Funções ● Parâmetros de uma função: – Os parâmetros de uma função são o que o programador utiliza para passar a informação de um trecho de código para dentro de uma função. – São uma lista de variáveis, separadas por virgula. – Devem ser especificados o tipo e o nome de cada variável passada para a função. Linguagem e Técnicas de Programação Definição de Funções ● Parâmetros de uma função: – Forma geral de declaração de parâmetros: tipo_de_retorno nome_função (tipo nome1, tipo nome2, …, tipo nomeN) { sequência de declarações e comandos } – Exemplo: Linguagem e Técnicas de Programação Definição de Funções ● Funções sem parâmetros: – Dependendo da função, ela pode não possuir nenhum parâmetro. – Nesse caso, pode-se optar por duas soluções: ● Deixar a lista de parâmetros vazia: void mensagem(). ● Colocar void entre parênteses: void mensagem(void). – Exemplo: Linguagem e Técnicas de Programação Definição de Funções ● Retorno da função – É a maneira como a função devolve o resultado da execução para quem a chamou. – A expressão tipo_retornado estabelece o tipo de valor que a função vai devolver para quem a chamou. – Uma função pode retornar qualquer tipo válido na linguagem C: ● Tipos básicos predefinidos: int, char, float, double, void e ponteiros; ● Tipos definidos pelo programador: struct, array (indiretamente), etc... Linguagem e Técnicas de Programação Definição de Funções ● Tipos de passagem de parâmetros – Parâmetros de uma função são o mecanismo que o programador utiliza para passar a informação de um trecho de código para dentro da função. – Existem dois tipos de passagem de parâmetros: ● Passagem por valor ● Passagem por referência Linguagem e Técnicas de Programação Definição de Funções ● Passagem por valor – Padrão para todos os tipos básicos predefinidos (int, char, float, double). – E estruturas definidas pelo programador (struct). – Os argumentos para uma função são sempre passados por valor. – Uma cópia do dado é feita e passada para a função. – As funções não podem alterar o valor original de uma variável passada para a função. Linguagem e Técnicas de Programação Definição de Funções ● Passagem por referência (Será estudada mais a frente...) – Na passagem de parâmetros por referência não se passam para a função os valores das variáveis, mas os endereços das variáveis na memória. – Para passar um parâmetro por referência, usa-se o operador “ * ” na frente do nome do parâmetro durante a declaração da função. – Usada nos casos em que é necessário que toda modificação feita nos valores dos parâmetros dentro da função seja repassada para quem a chamou. – Exemplo: ● scanf(); Linguagem e Técnicas de Programação Definição de Funções ● Criando suas próprias bibliotecas – Uma biblioteca é como o seu arquivo de código-fonte principal. – Com a diferença de que ele não possui a função main(). – Isso ocorre porque seu programa não vai começar na biblioteca. Linguagem e Técnicas de Programação Definição de Funções ● Criando suas próprias bibliotecas – Precisamos criar dois arquivos: ● Cabeçalho (ou header) da biblioteca: este arquivo contém as declarações e definições do que está contido dentro da biblioteca. Aqui são definidas quais funções (apenas seus protótipos), tipos e variáveis farão parte da biblioteca. Sua extensão é .h. ● Código-fonte da biblioteca: arquivo que contém a implementação das funções definidas no cabeçalho. Sua extensão é .c. Linguagem e Técnicas de Programação Definição de Funções ● Criando suas próprias bibliotecas – Exemplo: operacoes.h operacoes.c main.c Linguagem e Técnicas de Programação Definição de Funções ● Exercícios – fazer um algorítimo em C para: 1) Ler dois números e mostrar qual é o maior. 2) Ler o nome e a idade de uma pessoa e classificá-la em maior ou menor de idade. (use os comandos: scanf() / gets() / fgets() - para ler o nome). Exemplo: char nome[30]; gets(nome); // scanf("%s", nome); // fgets(nome,30,stdin); 3) Mostrar a média de 40 alunos de acordo com as quatro notas digitadas. A saída deve ser nome do aluno, media final e a situação (aprovado ou reprovado), de acordo com o seguinte critério: media >= 7 – Aprovado; media < 7 – Reprovado. Linguagem e Técnicas de Programação Definição de Funções ● Exercícios – fazer um algorítimo em C para: 4) Calcular e mostrar os 50 primeiros números da sequência de Fibonacci, cujas sementes são 0 e 1. 5) Pedir para digitar dois números inteiros e positivos a e x, calcular a potência de a elevado a x, utilizando multiplicações sucessivas e mostrar o resultado final. 6) Calcular a seguinte soma 1/1 + 1/2 + …. + 1/50. 7) Calcular a seguinte soma 50/1 + 49/2 + …. + 1/50. Linguagem e Técnicas de Programação Definiçãode Funções ● Exercícios – fazer um algorítimo em C para: 8) Sabe-se que um número é perfeito se a soma de seus divisores é igual a ele próprio (excluindo o número como próprio divisor). 9) Pedir para digitar um número e mostrar todos seus divisores. 10) Um número é primo quando seus únicos divisores soão 1 e ele próprio. Pedir para digitar um número e verificar se é primo. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24