Aula teórica 14. Tema 12. Subprogramas (cont)

Documentos relacionados
Aula teórica 13. Tema 12. Subprogramas. Subprogramas em Java Chamada de métodos. Área de domínio das variáveis. Preparado por eng.

Aula teórica 11. Tema 11. Repetição. Ciclo while Ciclo do-while Ciclo for

Aula teórica 4. Tema 3. Linguagem de Programação Java. Manipulação de informação simples (cont.)

Aula teórica 10 Tema 10. Selecção Instruções de selecção:

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)

Programação Orientada aos Objectos I

AULA TEÓRICA 4. Tema 2. Introdução a programação em Java (Continuação) Tema 3. Instruções básicas de entrada e saída

AULA TEÓRICA 7. Tema 4. Estruturas de controlo (continuação).

AULA TEÓRICA 3. Tema 2. Introdução a programação em Java (Continuação)

AULA TEÓRICA 1 Tema 6. Algoritmos e Fluxogramas

AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação

AULA TEÓRICA 5 Tema 3. Instruções básicas de entrada e saída (continuação)

AULA TEÓRICA 2. Tema 1. Desenho de Algoritmos (continuação)

AULA TEÓRICA 10. Tema 9. Interface. Tema 10. Recursividade

AULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.

Aula Teórica 8. Preparado por eng.tatiana Kovalenko

Introdução à Programação LP JAVA

PROGRAMAÇÃO JAVA. Parte 3

Array de objectos Array de objectos Criação Exemplo:

AULA TEÓRICA 4. Tema 3. Linguagem de programação de alto nível Java

Tema 7. Colecções AULA TEÓRICA 6. Listas: ArrayList, LinkedList, Vector Ø Criação Ø Manipulação

Instituto Superior de Ciências e Tecnologia de Moçambique

Programação e Algoritmos I 1 o semestre

AULA TEÓRICA 3. Tema 4. Excepções Ø Tratamento de excepções

Instituto Superior de Ciências e Tecnologia de Moçambique

Herança. Caso queira referir-se a um construtor da super classe, a sintaxe é diferente: super.nomedoatributo; super.nomedometodo(<parametros>)

AULA TEÓRICA 4. Tema 5. Ficheiros. Ficheiro do tipo texto. Ficheiros de Objectos. Ø Classe File Ø Criação. Manipulação. Ø Classe StringTokenizer

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Programação para GI. Subprogramas

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Introdução à Programação

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Análise de Programação

AULA TEÓRICA 10 Tema 9. Introdução à programação. Desenho de Algoritmos

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Seleção Múltipla Laços (while, do-while, for) AULA 05

Tipos de dados e comandos POO

Fundamentos de programação

Linguagem de Programação III

Linguagem de Programação II Implementação

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Programação : Engenharia Informática 6619 : Tecnologias e Sistemas de Informação. Cap. 6 Subprogramas I Subprogramas I

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 05 Subprogramas I

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Variáveis primitivas e Controle de fluxo

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Linguagem Java: Sintaxe Java

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

AULA 6 - ARRAYS. Array de 10 elementos

Lição 4 Fundamentos da programação

Desenvolvimento Modular de Procedimentos

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Sintaxe Básica de Java Parte 2

Algoritmos e Modelação Computacional. Paulo Mateus MEBiom LMAC 2018

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Linguagem de Programação II Implementação

Explicação do programa:

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

Input / Output na linguagem java. Para isso usamos um dos construtores da classe java.io.file:

INSTRUÇÕES DE REPETIÇÃO

Programação Java (nível intermediário) Encapsulamento

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Orientação a Objetos e Java

Introdução aos aplicativos Java. Prof. Marcelo Roberto Zorzan

Sintaxe da linguagem Java

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

Linguagens de Programação Classificação

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Instituto Superior de Engenharia de Lisboa

9 Classes Abstractas e Interfaces

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Algoritmos II Aula 11 Funções e Procedimentos

Aula 7 Modularização. Processamento da Informação. Universidade Federal do ABC

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Programação Orientada a Objetos

Lógica de Programação. Lógica de Programação com Java

Programação Estruturada e Orientada a Objetos

Algoritmos I Aula 13 Linguagem de Programação Java

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

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

" # $ % & ' ( ) 1/6 29/11/2004 : : : A1 (Custódio) A2 (Custódio) B2 (Dirceu) A3 (Dirceu) B3( Dirceu) B1 (Marcus) B4 (Marcus) PARTE TEÓRICA

Subprogramação. Leonardo Gresta Paulino Murta.

Transcrição:

Aula teórica 14 Tema 12. Subprogramas (cont) Passagem de parâmetros. Valor de retorno Preparado por eng.tatiana Kovalenko 1

Variáveis globais Variáveis declarados no início da execução do programa, fora de qualquer método, chamam-se globais. Eles podem ser utilizados em qualquer método e são destruídas quando o programa termina. Não é boa prática declarar todas as variáveis como globais. public class AreaDominio_VarGlobais { static int v; public static void mudar() { v = 100; System.out.println("V= "+v+" dentro do metodo muda"); public static void main(string[] args) { v = 50; System.out.println("V= "+v+" antes da chamada"); mudar(); System.out.println("V= "+v+" depois da chamada"); O output será: V= 50 antes da chamada V= 100 dentro do método muda V= 100 depois da chamada 2

Analise exemplo a seguir: public class AreaDominio_VarGlobais2 { static int v; public static void mudar() { int v = 100; System.out.println("V= "+v+" dentro do metodo"); public static void main(string[] args) { v = 50; System.out.println("V= "+v+" antes da chamada"); mudar(); System.out.println("V= "+v+" depois da chamada"); O output será: V= 50 antes da chamada V= 100 dentro do método V= 50 depois da chamada Nota a diferença no output deste programa. 3

Passagem de parâmetros Em Java, a passagem de parâmetros de tipos predefinidos (int, float, boolean, etc.) é feita por valor, que significa que não é o parâmetro real que é passado ao método, mas apenas o seu valor. Este tipo de passagem implica que o valor da variável fica inalterável após a execução do subprograma, independentemente das alterações feitas. Exemplo: public class Exemplo { public static void mudar(int valor) { valor = 20; public static void main(string[] args) { int x = 10; mudar(x); //chamada do método mudar com passagem de parâmetro x System.out.println("O conteúdo da variavel x= "+x); O output será: O conteudo da variavel x= 10 4

A execução deste programa começa pelo subprograma main(), como é habitual. Após de inicialização da variável x com o valor 10 é invocado o método mudar(), tendo como parâmetro real a variável x. Este parâmetro corresponde ao parâmetro formal valor. Durante a execução do método mudar() a variável valor, inicialmente tendo o valor 10, passado na hora de chamada, recebe o novo valor 20. Ao terminar a execução do mudar(), o controlo é devolvido ao programa chamador, que executa a instrução a seguir, visualizando o valor da variável x que ficou inalterado. Isso acontece porque o valor da variável x que é passado ao subprograma e não a própria variável x. Valor de retorno Todos os métodos até agora considerados não devolvem qualquer resultado ao método que faz a sua chamada. Este facto é confirmado pela presença da palavra reservada void no cabeçalho. Quando é necessário que o método devolva um valor que calculou, a palavra void deve ser substituída pelo tipo de resultado que o método deve devolver. 5

Este programa testa o método chamado cubo() que devolve o cubo dum valor do tipo byte passado como parâmetro: public class TestarCubo { public static void main(string[] args) { for (byte i = 1; i<=5; i++) System.out.println (i + "\t"+ cubo(i)); public static int cubo (byte n) { return n*n*n; O output será: 1 1 O método main contém o ciclo for que invoca 5 vezes 2 8 o método println(). Por sua vez, o método println 3 27 invoca o método cubo(), passando o valor do argumento i 4 64 para o parâmetro n. O cabeçalho (linha 8) indica que o 5 125 método cubo() devolve um resultado do tipo int e recebe um parâmetro n do tipo byte. 6

Exemplo2: Este programa testa o método chamado factor() que implementa o calculo de factorial dos números de 0 a 8. O método declara uma variável local factor do tipo long. public class TestarFactorial { public static void main(string[] args) { for (byte i = 0; i <= 8; i++) System.out.println ("f("+i+")= "+factor(i)); public static long factor (byte n) { long fact = 1; //fact é a variavel local while (n > 1) fact *= n--; // ou fact *= n; n--; return fact; O output: f(0)= 1 f(1)= 1 f(2)= 2... f(8)= 40320 7

Num método pode haver mais do que uma instrução return. Por exemplo, encontrar o valor maior entre 3 valores inteiros. public class AcharMaior { public static int maior3 (int v1,int v2,int v3) { if (v1>v2 && v1>v3) return v1; else if (v2>v3) return v2; else return v3; Ø Ø public static void main(string[] args) { int a=5,b=2,c=8; System.out.print("O maior valor entre "+a+","+b+"e"+ c+"= "+maior3(a,b,c)); Os métodos podem retornar no máximo um valor! Definir um método dentro de outro método é um erro de sintaxe! 8

Referência bibliográfica: António José Mendes; Maria José Marcelino. Fundamentos de programação em Java 2. FCA. 2002. Elliot Koffman; Ursula Wolz. Problem Solving with Java. 1999. John R. Hubbard. Theory and problems of programming with Java. Schaum s Outline series. McGraw-Hill. H. Deitel; P. Deitel. Java, como programar. 4 edição. 2003. Bookman. Rui Rossi dos Santos. Programando em Java 2 Teoria e aplicações. Axcel Books. 2004 9