Programação para GI. Subprogramas

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

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

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

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Programação de Computadores para GI

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

Aula 15 - Aula sobre Funções e Procedimentos

Fundamentos de Programação1

Sintaxe Básica do Java. João Paulo Q. dos Santos

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

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

Linguagem de Programação III

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

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

Eng. Alimentos PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO CÓDIGO DISCIPLINA PRÉ-REQUISITOS

Variáveis primitivas e Controle de fluxo

1 Da aula teórica ao Java

Vetores Unimensionais

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

Programação: Vetores

public class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here

Métodos. Utilizados para dividir o programa em subprogramas

INSTRUÇÕES DE REPETIÇÃO

Algoritmos I Aula 13 Linguagem de Programação Java

PROGRAMAÇÃO JAVA. Parte 3

Algoritmos e Programação

Aula prático/expositiva. Resolução de exercícios propostos e participação em sala de aula. 2h 08/05

Algoritmos II prof. Daniel Oliveira

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

Lógica de Programação e Algoritmos

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes

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

Algoritmos I Aula 14 Java: estruturas de seleção e repetição

Algoritmos e Programação

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

Elementos básicos das linguagens de programação

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Estrutura de Dados Funções e Procedimentos

Introdução a Programação de Jogos

Classes, instâncias e métodos de acesso. prática

Conceitos básicos de programação

Introdução à Programação

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

Sintaxe Básica de Java Parte 2

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

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação Orientada a Objetos

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Orientação a Objetos e Java

Linguagem de programação Java

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.

Programação Estruturada e Orientada a Objetos

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

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

Características da Linguagem C

PROGRAMAÇÃO JAVA. Parte 2

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Tipos de dados e comandos POO

Linguagem de Programação. Thiago Leite Francisco Barretto

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

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Introdução à Programação em C

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

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

JAVA. Professor: Bruno Toledo

Modularidade - Funções e Procedimentos

Vetores Unimensionais

Programação Estruturada

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

Linguagem C Princípios Básicos (parte 1)

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Transcrição:

nível 05/05/2015 Programação para GI Aula 08 Java é uma linguagem de programação orientada a objetos (POO). O objetivo desta aula é escrever programas em Java organizando o código em subprogramas (funções) sem nos preocupar ainda em explorar os recursos do paradigma de POO. Programação Orientada a Objectos Programação Estruturada Programação Procedural Encapsula dados (atributos) e subprogramas (métodos) em componentes (classes). Organiza o código em subprogramas, contendo: estruturas sequenciais, condicionais e de repetição. Programação por comandos ou ordens, ou seja, imperativa e que modifica variáveis. 2 1

Em Java existe um subprograma principal chamado main que marca o início da execução do programa Em aulas anteriores dentro do subprograma main chamamos a diferentes subprogramas pré-definidos ex: os subprogramas do pacote java.lang ou java.util Exemplo: o seguinte programa usa o subprograma abs da classe Math do pacote java.lang para calcular o valor absoluto de um número. 3 Podemos também definir os nossos próprios subprogramas e usá-los tal como usamos o subprograma/função Math.abs. 4 2

tipo do valor de retorno nome da função O corpo da função é uma espécie de mini-programa onde podemos declarar variáveis e usar quaisquer instrução elementar como instruções de atribuição, decisão e repetição. public static int fatorial(int n ) { int i,p; p = 1; for ( i=2; i<=n; i++ ) p = p * i; return p; valor de retorno parâmetro Um subprograma é comparável a uma caixa preta que recebe dados e produz resultados. A função fatorial recebe um valor inteiro n e devolve um outro valor inteiro que é o fatorial de n. Entrada n Fatorial Saída n! 5 Exemplo public static double max( double x, double y ) { if ( x > y ) return x; else return y; os parâmetros estão separados por vírgula e precedidos pelo tipo. Se não existirem parâmetros de entrada usamos apenas () public static double max3 ( double x, double y, double z ) { return max( x, max(y,z) ); A função max3 usa a função max para determinar o máximo entre dois números 6 3

Exemplo O conceito de função em Java é mais geral que as funções matemáticas. Em Java podemos definir funções que não retornam nenhum valor. Para isto usamos a palavra reservada void como tipo do valor de retorno. Esta função não retorna nenhum valor. Simplesmente executa uma instrução de atribuição public class Ex_6_4_par { int x = 70; muda(x); println( x = " + x ); public static void muda( int valor) { valor = 20; 7 Organização de um Programa Java Um programa é constituído por uma classe e contêm: Declarações de variáveis (globais) Um subprograma principal chamado main() Um conjunto de subprogramas definidos pelo programador Cada subprograma contém: Declarações de variáveis (locais) Instruções elementares (atribuição, seleção, repetição, etc.) Chamadas de subprogramas pré-definidos ou criados pelo programador 8 4

Exemplo de um programa em três subprogramas Este programa escreve os números inteiros entre 1 e um número n fornecido pelo usuário. A função principal main chama duas funções: a função lertotalnumeros e a função escrevernumeros. A palavra reservada void indica que esta função não retorna nenhum valor. Import java.util.scanner; public class Ex_6_5_imprimirNumeros { int n = lertotalnumeros(); escrevernumeros(n); public static int lertotalnumeros() { int n;... do System.out.print ( Quantos números vai imprimir? "); n = in.nextint(); while (n <=0); return n; public static void escrevernumeros (int n){ for (int i=1; i<=n; i++) System.out.print(4, i); 9 Exemplo de um programa em três subprogramas Esta variável n é uma variável local ao subprograma main e apesar de ter o mesmo nome, não tem nada que ver com a variável n declarada em lertotalnumeros, pois estão em funções diferentes. Esta variável n é uma variável local ao subprograma lertotalnumeros Import java.util.scanner; public class Ex_6_5_imprimirNumeros { int n = lertotalnumeros(); escrevernumeros(n); public static int lertotalnumeros() { int n;... do System.out.print ( Quantos números vai imprimir? "); n = in.nextint(); while (n <=0); return n; public static void escrevernumeros (int n){ for (int i=1; i<=n; i++) System.out.print(4, i); 10 5

Variáveis Locais em O resultado da execução é o seguinte: n = 5 antes da chamada n =10 dentro de muda n=5 depois da chamada public class Ex_6_6_variaveisLocais { int n = 5; // variável local ao subprograma main System.out.print ( n= + n + antes da chamada ); muda( ); System.out.print ( n= + n + após chamada ); public static void muda() { int n = 10; // variável local ao subprograma muda System.out.print ( n= + n + dentro de muda ); 11 Variáveis Globais em As variáveis declaradas fora de qualquer subprograma são chamadas variáveis globais. São criadas no início da execução do programa, só sendo destruídas quando o programa termina. Esta variável global aqui declarada é visível a partir de qualquer subprograma O resultado da execução é o seguinte: n = 5 antes da chamada n =10 dentro de muda n=10 depois da chamada public class Ex_6_7_variaveisGlobais { static int n // variável global declarada no inicio n = 5; System.out.print ( n= + n + antes da chamada ); muda( ); System.out.print ( n= + n + após chamada ); public static void muda() { n =10; System.out.print( n= + n + dentro de muda ); 12 6

Esquema de public class Exemplo { // declaração de variáveis globais // declaração de variáveis locais // instruções elementares e/ou chamadas de subprogramas // fecha subprograma main public static tipo_valor_retorno_ou_void nome-da-função_1 (parametros) { // declaração de variáveis locais; // instruções elementares e/ou chamadas de subprogramas incluindo // o comando return se tipo_valor_retorno não é void // fecha subprograma nome_da_função_1. public static tipo_valor_retorno_ou_void nome-da-função_n (parametros) { // declaração de variáveis locais; // instruções elementares e/ou chamadas de subprogramas incluindo // o comando return se tipo_valor_do_retorno não é void // fecha subprograma nome_da_função_n // fecha programa 13 Decomposição Em aulas anteriores foram desenvolvidos programas com um estilo de programação receita de bolo. Os programas estavam compostos por um único subprograma o subprograma main que podia ser executado passo a passo. A partir de agora vamos a decompor um programa em subprogramas segundo a seguinte metodologia: cada operação do algoritmo de primeiro nível deve ser implementada com um subprograma, sendo depois o programa principal (main) constituído pela invocação dos subprogramas. 14 7

Decomposição Os programas ficam mais legíveis e claros Os programas ficam mais fáceis de modificar e depurar Os programas não repetem instruções que fazem basicamente a mesma coisa 15 Exemplo de Converter Milhas para KM Formulação do problema: ler uma distância expressa em milhas a partir do teclado, convertê-la para quilómetros e apresentar o resultado na tela. Variável de entrada: Variável de saída: MILHAS (distância expressa em milhas) valor numérico positivo ou nulo KM (distância expressa em quilómetros) valor numérico positivo ou nulo Solução: KM = 1.6093 x MILHAS 16 8

Exemplo de Converter Milhas para KM Nome: Conversão de distâncias em milhas para km { Algoritmo (decomposição ao nível 1) lermilhas converter imprimir Leitura e validação de uma distância em milhas (MILHAS); Conversão da distância de milhas para km (MILHAS, KM); Impressão da distância em km (KM); Nome da Função Parâmetros (entrada) Tipo do valor de retorno lermilhas nenhum double converter double milhas double imprimir double km void (nenhum) 17 Exemplo de Converter Milhas para KM main leitura Import java.util.scanner; public class Pr_6_1_MilhasAkm { double milhas, km; milhas = lermilhas(); km = converter(milhas); imprimir(km); public static double lermilhas() { double milhas;... do milhas = in.nextdouble(); while (milhas <=0); return milhas; 18 9

Exemplo de Converter Milhas para KM converter imprimir public static double converter(double milhas) { double km; km = 1.6093 * milhas; return(km); public static void imprimir(double km) { System.out.println( Distância em kms= + km ); 19 Bibliografia Material da Professora Gladys: http://sweet.ua.pt/gladys/java/ Forbellone, André Luiz Villar, and Henri Frederico Eberspächer. Lógica de programação: a construção de algoritmos e estruturas de dados. Vol. 3. Makron Books, 1993. 20 10