Baixe o app para aproveitar ainda mais
Prévia do material em texto
20172º Semestre 2Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais Subprogramas 3 ➢ São estruturas que agrupam um conjunto de comandos, que são executados quando o subprograma é chamado / invocado retornando ou não um valor. ➢ Quando um subprograma não retorna nenhum valor é denominado de procedimento ➢ Quando um subprograma retorna um valor é denominado de função ➢ A linguagem Java não faz distinção 4Subprogramas Vantagens ➢ Reduzem o tamanho do programa ➢ Evitam a repetição de trechos de códigos, minimizando erros e facilitando alterações ➢ Facilitam a compreensão e visualização do programa. ➢ Permitem o reaproveitamento de códigos construídos anteriormente ➢ Abstracção da implementação 5Subprogramas Funções ➢ Uma função é um conjunto de qualquer tipo de instruções. ➢ Sintaxe return-type function-name(argument declarations) { declarações e expressões } ➢ O return-type e argument são opcionais, exemplo: dummy() {} usar void void dumy(void){} ➢ Se a função não tiver retorno então passa a ser um procedimento ➢ A devolução do resultado de execução da função é devolvido usando a palavra reservada: return Sumário 5 ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais Criação de um subprograma em JAVA 6 ➢ Os subprogramas dividem-se em duas partes: o cabeçalho e as instruções ➢ O cabeçalho é constituído por: static return-type function-name(argument declarations) ▪ static representa em OO, um espaço de memória partilhado para definição da função. ▪ O return-type deverá apresentar apenas um tipo de dados (int, float, String, double etc..) ▪ O nome do subprograma function-name é escolhido pelo developer (atenção!!!) ▪ Os argument podem ser em nº infinito ➢ As instruções podem constar de todos os mecanismos conhecidos até agora: declaração de variáveis, sequência, decisão e repetição. Criação de um subprograma em JAVA 6 tipo_de_retorno nome_da_função Lista_de_argumentos instrução retorno_do_valor Sumário 7 ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais 8 ➢ Cada subprograma é identificado por um nome que é atribuído pelo programador o Significa que as instruções que o compõem são executadas apenas pela indicação desse nome seguido de um par de parêntesis curvos (), contendo a lista de parâmetros que o subprograma necessita para funcionar. ➢ Quando não há parâmetros a usar, colocam-se apenas os parêntesis curvos (). ➢ Para utilizar um subprograma não é necessário saber como funciona internamente, mas sim conhecer os parâmetros esperados (quantidade, sequência e tipos de dados). ➢ Valor de retorno do subprograma: • Quando existe: chamada é uma instrução autónoma • Quando não existe: chamada tem que ser integrada numa instrução, para que o valor devolvido possa ser utilizado. Chamada de um subprograma em Java 9Chamada de um subprograma em Java com retorno ➢ Output ? ➢ Chamada de um subprograma com retorno 10Chamada de um subprograma em Java sem retorno ➢ Chamada de um subprograma sem retorno ➢ Output ? 11Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais 12Parâmetros ➢ Parâmetros são os valores recebidos e / ou retornados por uma função ➢ Parâmetros formais: variáveis definidas no cabeçalho da função ▪ static int funcao_exemplo(int valor_recebido) ➢ Parâmetris reais: valores que em cada chamada se pretende que os parâmetros formais assumam ▪ int resultado = funcao_exemplo(2); 13Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais 14Passagem por Valor ➢ Quando passamos uma variável do tipo primitivo para uma função chamamos esta passagem de passagem por valor ➢ Significa que não é o parâmetro real que é passado ao subprograma, mas sim uma cópia do seu valor. ➢ O que implica que o valor passado se mantem inalterável após a execução do subprograma, independentemente das alterações feitas ao parâmetro formal correspondente no interior do subprograma. Passagem por valor Exemplo 15 ➢ Output ? 16Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais 17Passagem por referência ➢ Significa que é passado ao subprograma o parâmetro real (seu valor incluído) ➢ não suportado pela linguagem JAVA de forma directa, suportado pela linguagem C. ➢ Qualquer alteração efectuada pelo subprograma sobre o parâmetro formal é reflectido ao valor passado. 18Passagem por referência ➢ Um dos mecanismos que o Java têm para realizar a passagem por referência é a utilização dos objectos ➢ Quando passamos uma variável do tipo objecto, na realidade apenas a referência do objecto é passada para a função. O objecto em questão fica activo e acessível desta referência. ➢ Os atributos dos objectos podem ser alterados e estas alterações serão mantidades mesmo após a execução do método. 19Passagem por referência ➢ Output ? Valor de sb antes chamada = Programação II Valor de sb apos chamada = Programação II é interessante 20Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais Visibilidade 21 ➢ Um subprograma não pode utilizar variáveis declaradas noutros subprogramas ➢ As variáveis definidas em cada subprograma só são visíveis dentro desse subprograma. São invisíveis para todos os restantes subprogramas ➢ Output ? ERRO porque a variável número é apenas visível dentro subprograma muda 22Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais 23Variáveis Locais ➢Uma variável declarada dentro de um subprograma é chamada variável local ao subprograma ➢Uma variável local é criada sempre que o subprograma é activado e destruída sempre que o subprograma termina a execução ➢É possível, por isso, declarar variáveis com o mesmo nome, mas em subprogramas diferentes. 24Sumário ➢ Subprogramas ➢ Criação ➢ Chamada ➢ Parâmetros ➢ Passagem por valor ➢ Passagem por referência ➢ Visibilidade ➢ Variáveis locais ➢ Variáveis globais 25Variáveis globais ➢Variáveis declaradas fora de qualquer subprograma, têm a designação de variáveis globais ➢As variáveis globais são criadas no início da execução do programa e só são destruídas no final de execução do programa ➢As variáveis globais são visíveis em qualquer subprograma, e podem ser alteradas por qualquer subprograma 26Variáveis globais Exemplo ➢ variavelGlobal é uma variável global pois é visível ao longo de todo o programa 27Dúvidas 28Exercicios ➢ Qual o resultado deste Programa 36.0 28Exercicios ➢ Implemente uma função em Java para imprimir o conteúdo de um vector de 10 posições. A função deve receber um parâmetro do tipo caractere que indica se o conteúdo deve ser exibido na ordem correta ou na ordem inversa (“C” para correta e “I” para inversa). ➢ Implemente uma função em Java que receba um nome por parâmetro e verifique se esse nome se encontranum vector. Retorne verdadeiro caso o valor se encontre e falso, caso contrário. ➢ Crie um método que recebe um array de inteiros e retorna a quantidade de elementos do array que são números negativos. ➢ Crie um método que recebe um array de inteiros e um valor inteiro x e retorna a quantidade de vezes que x aparece no array a.
Compartilhar