Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31



Documentos relacionados
Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Paradigmas da Programação APROG. Classes JAVA. Nelson Freire (ISEP DEI-APROG 2013/14) 1/43

A Linguagem Java. Alberto Costa Neto DComp - UFS

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

Sintaxe Básica de Java Parte 1

3 Classes e instanciação de objectos (em Java)

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

2 Orientação a objetos na prática

Programação Básica em Arduino Aula 2

Estrutura Condicional em Java

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

insfcanceof new public switch transient while byte continue extends for int null

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Roteiro 1: Dados, variáveis, operadores e precedência

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

Noções sobre Objetos e Classes

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Java Como Programar, 8/E

Algoritmos e Programação

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! sergio.ricardo.almagro@gmail.com

Resumo da Matéria de Linguagem de Programação. Linguagem C

Componentes da linguagem C++

Capítulo 2: Introdução à Linguagem C

INTRODUÇÃO À LINGUAGEM C++

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Organização de programas em Java. Vanessa Braganholo

ESTRUTURA BÁSICA DE UM PROGRAMA JAVA

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

JSP - ORIENTADO A OBJETOS

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

INF 1005 Programação I

Linguagens de. Aula 02. Profa Cristiane Koehler

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Tipos de Dados Simples

BC0501 Linguagens de Programação

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Conceitos Básicos de C

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Utilizem a classe Aula.java da aula passada:

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Programação de Computadores II TCC /Turma A 1

Instruções de controle: Parte by Pearson Education do Brasil

JAVA. Fabrício de Sousa

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

BSI UFRPE Prof. Gustavo Callou

BC0505 Processamento da Informação

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Programação de Computadores - I. Profª Beatriz Profº Israel

Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Técnicas de Programação II

UNIVERSIDADE FEDERAL DO PARANÁ

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Estruturas de Repetição. Programação em Java Estruturas de Repetição

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem de Programação Introdução a Linguagem Java

Programação Estruturada e Orientada a Objetos REVISÃO

Capítulo 2. Fundamentos de Java

Universidade Federal de Uberlândia

Programas simples em C

Java Como Programar, 8/E

Curso Java Starter. 1

Introdução a Computação

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

LINGUAGEM C. Estrutura básica de um programa

Equivale a um conjunto de if 's encadeados, porém mais estruturado.

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Introdução à linguagem

JAVA Orientação a Objetos. Usando diálogos com JOptionPane

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

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Módulo 06 Desenho de Classes

Aula 3 Desvio Condicional

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Linguagem de Programação JAVA

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Orientada a Objetos

Programação por Objectos. Java

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Características de Java

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

Java 2 Standard Edition Como criar classes e objetos

AULA DE JAVA 1 - CONCEITOS BÁSICOS

CURSO DE PROGRAMAÇÃO EM JAVA

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Conversão de Tipos e Arrays

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Transcrição:

APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados Primitivos Referências Interfaces com o Utilizador Consola Gráfica Sumário Operadores Tipos Atribuição Aritméticos Relacionais Lógicos Outros Precedências Instruções Entrada Saída Atribuição Decisão Repetição Conversão de Tipos Numéricos Strings Nelson Freire (ISEP DEI-APROG 2012/13) 2/31

Linguagem Java Estrutura Geral de um Programa Programa Java Constituído por uma ou mais classes Programa Classe 1 Classe 2 Classe Constituída por um ou mais métodos Método 1 Classe n Método 2 Método m Método Código que executa tarefa Exemplos raízquadrada fatorial Nelson Freire (ISEP DEI-APROG 2012/13) 3/31

Linguagem Java Classe Principal de um Programa Classe que contém o método main (principal) Método 1 Classe 1 Método 2 Método m Programa Método 1 Classe i Método 2 Método main Classe Principal (Main Class) Método main Controla execução do programa 1º método executado Nelson Freire (ISEP DEI-APROG 2012/13) 4/31

Linguagem Java Estrutura Básica de um Programa package nome; import nomecompletoclasse; public class NomePrograma { public static void main(string[] args){ // corpo do método // Classe principal ; nomeprograma c/ letra inicial maiúscula // cabeçalho do método main ; é imutável // significa comentário ( código fonte. Não é executado ) Java distingue letras maiúsculas das minúsculas Declaração package Especifica nome da package a que pertencerá nova classe Packages permitem organizar classes Semelhante às pastas dos sistemas de ficheiros que facilitam a gestão de ficheiros Concretamente, são pastas dos sistemas de ficheiros Declaração import Permite à nova classe usar classes pertencentes a outras packages Nome completo de uma classe nome da package seguido do nome da classe Exemplo: import java.util.scanner; // java.util é package da classe Scanner Modificador de acesso public Especifica se classe/método pode ou não ser usada por outras classes Classes/métodos públicos podem ser usados por outras classes Nelson Freire (ISEP DEI-APROG 2012/13) 5/31

Linguagem Java Estruturas de Dados : categorias 1/3 Categorias Variáveis // valor pode variar durante execução do programa Constantes // valor é constante durante execução do programa Nelson Freire (ISEP DEI-APROG 2012/13) 6/31

Linguagem Java Estruturas de Dados : variáveis 2/3 Declaração de Variáveis Sintaxe // para N variáveis do mesmo tipo Tipo_de_Dado variável_1[=valor inicial] [,, variável_n[=valor inicial] ] ; [...] = opcional Exemplos int x; // tipo int guarda inteiros; por omissão, variáveis numéricas inicializadas a 0 int z=5; int x=5, y, z=1; // variável declarada e inicializada; = é operador de atribuição // múltiplas variáveis, do mesmo tipo, declaradas na mesma linha Local Em qualquer parte do corpo do método Boa regra prática Mais perto da utilização package nome; import nomecompletoclasse; public class NomePrograma { public static void main(string[] args){ int x;... int y = 10;... Nelson Freire (ISEP DEI-APROG 2012/13) 7/31

Linguagem Java Estruturas de Dados : constantes 3/3 Declaração de Constantes Sintaxe // para N constantes do mesmo tipo final Tipo_de_Dado constante_1=valor [,, constante_n=valor] ; [...] = opcional Exemplos final int X=8; final int X=9, FATOR=20; // por convenção, nomes em maiúsculas // múltiplas constantes, mesmo tipo, declaradas na mesma linha Local Qualquer parte do corpo do método Boa regra prática Mais perto da utilização package nome; import nomecompletoclasse; public class NomePrograma { public static void main(string[] args){ final int X=8;... final int FATOR = 20;... Nelson Freire (ISEP DEI-APROG 2012/13) 8/31

Linguagem Java Tipos de Dados : classificação 1/3 Um Tipo de Dados Define Conjunto de dados Conjunto de operações possíveis sobre esses dados Tipos de Dados são Classificados como Primitivos // dados são valores simples // Ex: valores inteiros e valores reais Referências (ou Não-Primitivos) // dados são referências de memória de objetos // referência = endereço // definidos por classes // Ex: classe String - guarda texto Nelson Freire (ISEP DEI-APROG 2012/13) 9/31

Linguagem Java Tipos de Dados : primitivos 2/3 Categorias Inteiros: byte 1 byte (-128, 127) short 2 bytes (-32 768, 32 767) int 4 bytes (-2 147 483 648, 2 147 483 647) long 8 bytes (-9x10 18, 9x10 18 ) Reais: float 4 bytes (-/+ 3.4 x 10 38 ) Outros: char boolean double 8 bytes (-/+ 1.7 x 10 308 ) Nomes em minúsculas Exemplos char c = 'R', opcao= 'a'; boolean flag = false; double nota = 18.5; // carateres são delimitados por plicas // valores lógicos: false e true // separador decimal é o. (ponto) RAM... Variável de Tipo Primitivo Guarda um valor simples x 5... Ex: int x = 5; Conteúdo de variável de tipo primitivo Nelson Freire (ISEP DEI-APROG 2012/13) 10/31

Linguagem Java Tipos de Dados : referências 3/3 Definidos por Classes Exemplos String Scanner Formatter // guarda texto; ver slides Java - Classes // leitura do teclado da consola // escrita formatada na consola Nomes de classes iniciadas com letra maiúscula Variável de Tipo Referência Exemplos String cidade; String nome = "Nico"; String ave = "águia"; Guarda uma referência de objeto da classe declarada Referência = endereço de memória Considerada objeto Exemplos nome ave ave RAM... referência de objeto... águia... Objeto da Classe String Conteúdo de variável de tipo referência Nelson Freire (ISEP DEI-APROG 2012/13) 11/31

Linguagem Java Tipos Consola Interfaces com o Utilizador Interface Textual Interface Gráfica Caixas de Diálogo Entrada Saída Nelson Freire (ISEP DEI-APROG 2012/13) 12/31

Linguagem Java Entrada de Dados - Consola 1/2 Suportada por objeto da classe Scanner // classe da package java.util package nome; import java.util.scanner; public class NomePrograma { public static void main(string[] args){ int n; long y; double x; String nome, nome_composto; Scanner ler = new Scanner(System.in); n = ler.nextint(); y = ler.nextlong(); x = ler.nextdouble(); nome = ler.next(); nome_composto= ler.nextline(); // importa classe Scanner para usar em main // declara um objeto Scanner para ler do teclado // lê um int do teclado e guarda em n // lê um long do teclado e guarda em y // lê um double do teclado e guarda em x // lê uma string do teclado e guarda em nome // lê uma linha e guarda em nome_composto Mais pormenores Slide seguinte Nelson Freire (ISEP DEI-APROG 2012/13) 13/31

Linguagem Java Entrada de Dados - Consola 2/2 Classe Scanner Serve para ler ficheiros de texto Consola tratada como ficheiro de texto Declaração de objeto Scanner Scanner ler = new Scanner(System.in); Cria objeto (instância) da classe Scanner (objeto ler) Objeto System.in representa dispositivo de entrada standard (teclado) System é classe que representa sistema de computação in é objeto da classe System que representa dispositivo de entrada padrão Por omissão, teclado Leitura Preciso invocar método do objeto Scanner adequado ao tipo de dado a ler Sintaxe: nomeobjetoscanner.nomemétodo() Exemplo: ler.nextint() // para ler int Exemplos de instruções para ler um dado e guardá-lo numa variável Leitura de inteiro do tipo int: int num = ler.nextint(); Leitura de float: float num = ler.nextfloat(); Leitura de strings: String s = ler.next(); // ex: nome simples String s = ler.nextline(); // ex: nomes compostos Nelson Freire (ISEP DEI-APROG 2012/13) 14/31

Linguagem Java Suportada pelo método showinputdialog da classe JOptionPane package nome; import javax.swing.joptionpane; public class NomePrograma { Entrada de Dados Interface Gráfica // importa classe JOptionPane public static void main(string[] args){ // lê uma string e guarda em nome String nome = JOptionPane.showInputDialog("Insira um nome:");... // lê um int e guarda em i int i = Integer.parseInt(JOptionPane.showInputDialog("Insira um inteiro:")); // lê um long e guarda em l long l = Long.parseLong(JOptionPane.showInputDialog("Insira um inteiro:"));... // lê um double e guarda em d double d = Double.parseDouble(JOptionPane.showInputDialog("Insira um real:")); // lê um float e guarda em f float f = Float.parseFloat(JOptionPane.showInputDialog("Insira um real:")); Nelson Freire (ISEP DEI-APROG 2012/13) 15/31

Linguagem Java Suportada pelos métodos print, println e printf do objeto System.out System é classe que representa sistema de computação out é objeto da classe System que representa dispositivo de saída padrão Por omissão, ecrã Métodos de escrita System.out.print("mensagem"); printf - consultar o System.out.println("mensagem"); método String.format nos System.out.printf(string_formatação, lista_parâmetros) ; slides Java-Classes package nome; public class NomePrograma { public static void main(string[] args){ System.out.print("Operação impossível!"); // Escreve mensagem e coloca cursor no fim System.out.println("Divisão por zero!!");... System.out.printf("Média=%.1f",media); Também pode ser usada a classe Formatter Saída - Consola // Escreve mensagem e coloca cursor no início da // linha seguinte // Saída formatada; Escreve a media (double) // com uma casa decimal. Exemplo: Média=15.3 Nelson Freire (ISEP DEI-APROG 2012/13) 16/31

Linguagem Java Saída Interface Gráfica Suportada pelo método showmessagedialog da classe JOptionPane Sintaxe JOptionPane.showMessageDialog(null, "mensagem"); package nome; import javax.swing.joptionpane; public class NomePrograma { public static void main(string[] args){ // importa classe JOptionPane double media; JOptionPane.showMessageDialog(null, "Não foram encontrados números pretendidos"); JOptionPane.showMessageDialog(null, "Média=" + média); // Saída não formatada... String s = String.format("Média=%.1f",media); JOptionPane.showMessageDialog(null, s); // Saída formatada Nelson Freire (ISEP DEI-APROG 2012/13) 17/31

Linguagem Java Operadores 1/2 Atribuição = // Ex: x = x + z; Aritméticos + // Soma - // Subtracção * // Produto / // Divisão real ou inteira; Divisão inteira se ambos os operandos forem inteiros. % // Resto da divisão Relacionais > // Maior >= // Maior ou igual < // Menor <= // Menor ou igual!= // Diferente == // Igual Lógicos && // AND // OR! // NOT ; Ex:!(x<0 && y>10) Outros ++ // Incrementa variável de 1 unidade; Ex: contador++ ou ++contador -- // Decrementa variável de 1 unidade; Ex: contador-- ou --contador Nelson Freire (ISEP DEI-APROG 2012/13) 18/31

Linguagem Java Operadores 2/2 Precedências dos Operadores Precedência Operadores Associatividade no mesmo nível Exemplos Maior [ ]. () chamada_método! ++ -- (cast) new * / % a / b * c (a / b) * c + - < <= > >= instanceof ==!= &&?: Menor = += -= *= /= %= a -= b += c (a -= b) += c Nelson Freire (ISEP DEI-APROG 2012/13) 19/31

Linguagem Java Sintaxe variável = expressão; Instrução de Atribuição // expressão tem de ser do tipo da variável Exemplos package nome; public class NomePrograma { public static void main(string[] args){ int x, y; double z; int d, idade; x = 5; d = idade 12; // idade e d têm de ser do mesmo tipo z = x * 10 Math.pow(2,5); // Math.pow(2,5) = 2 5 Nelson Freire (ISEP DEI-APROG 2012/13) 20/31

Linguagem Java Instruções de Decisão 1/4 Sintaxe if (condição) { // = SE... ENTÃO // acção // bloco = {... ; obrigatório para acção com mais de 1 instrução if (condição) { // acção 1 else { // acção 2 // = SE... ENTÃO... SENÃO switch(expressão) { // = CASO... SEJA // expressão tem de ser do tipo inteiro, caracter ou string case valor_1[: case valor_2:...: case valor_m] : // acção_1; break; case valor_n[: case valor_o:...: case valor_v] : // acção_2; break;... default : // acção_por_omissão; // opcional; Última escolha; Pode não ser a última Nelson Freire (ISEP DEI-APROG 2012/13) 21/31

Linguagem Java Instruções de Decisão 2/4 Exemplos package nome; public class NomePrograma { public static void main(string[] args){ int x, y, z; if (x>5) y=4; if(x>5 && x<10){ y=10; z=100; if (x>0) { System.out.println(x + "é um nº positivo"); else { System.out.println(x + "não é um nº positivo"); // bloco {... não é obrigatório para uma instrução // bloco é obrigatório por haver mais de uma instrução Nelson Freire (ISEP DEI-APROG 2012/13) 22/31

Linguagem Java Instruções de Decisão 3/4 Exemplos package nome; public class NomePrograma { public static void main(string[] args){ int x, y, z; switch(x){ case 1: case 3: z = y * 2; break; case 6: z = 12; break; case 2: case 4: case 7: y = 45; z = 23; break; default: z=50; break termina execução do switch; senão, são executadas as instruções do caso seguinte Nelson Freire (ISEP DEI-APROG 2012/13) 23/31

Linguagem Java Instruções de Decisão 4/4 Exemplos package nome; public class NomePrograma { public static void main(string[] args){ char opcao; switch(opcao){ case '1': case 'a': break; case '2': case 'a': break; case '0': case 's': case 'S' : break; default: break termina execução do switch; senão, são executadas as instruções do caso seguinte Nelson Freire (ISEP DEI-APROG 2012/13) 24/31

Linguagem Java Instruções de Repetição 1/2 Sintaxe while (condição) { // = ENQUANTO // corpo do ciclo do { // = REPETIR... ENQUANTO // corpo do ciclo while (condição); // termina com ; for(inicialização contador; condição de funcionamento; passo){ // = PARA // corpo do ciclo Nelson Freire (ISEP DEI-APROG 2012/13) 25/31

Linguagem Java Instruções de Repetição 2/2 Exemplos package nome; public class NomePrograma { public static void main(string[] args){ int c, y; Scanner ler = new Scanner(System.in); c = 1; while(c<=25){ System.out.println(c); c++; do { y = ler.nextint(); while(y>0); for(c=1; c<=25; c++){ // é um PARA(c 1 ATÉ 25 PASSO 1) System.out.println(c); for(c=25; c>=1; c--) // for(); não terminar com ponto-e-vírgula System.out.println(c); Nelson Freire (ISEP DEI-APROG 2012/13) 26/31

Linguagem Java Conversão de Tipos Numéricos 1/4 Valores Numéricos Valor Sufixo Exemplo Considerado do Tipo Sem 123456789 int INTEIRO L 123456789L l 123456789l long Sem 12.34 double REAL F 12.34F f 12.34f float Nelson Freire (ISEP DEI-APROG 2012/13) 27/31

Linguagem Java Conversão de Tipos Numéricos 2/4 Tipos de Conversão Implícita Explícita (cast) Nelson Freire (ISEP DEI-APROG 2012/13) 28/31

Linguagem Java Conversão de Tipos Numéricos 3/4 Conversão Implícita Declarada implicitamente Exemplo: short x = 1389; long y = x; Usada Conversão para tipos maiores ou iguais Exceto long float Tipos Sem perda de precisão Possível perda de precisão char byte short int long float double Nelson Freire (ISEP DEI-APROG 2012/13) 29/31

Linguagem Java Conversão de Tipos Numéricos 4/4 Conversão Explícita Declarada explicitamente Através de um cast Exemplo: short x = 1389; long y = (long) x; Sintaxe de um cast (tipo_alvo) nome_variável Exemplo: double x = 13.89; int y = (int) x; // Parte decimal é truncada (y=13) Tipos Sem perda de precisão Possível perda de precisão char byte short int long float double Nelson Freire (ISEP DEI-APROG 2012/13) 30/31

Linguagem Java Inserir numa String Strings Newline "...\n... " TAB "...\t... " Aspas "...\"... " Exemplos package nome; public class NomePrograma { public static void main(string[] args){ System.out.println("\n MENU "); System.out.println("\t 1 Ler um nome"); System.out.println("\t 2 \"Eliminar\" elementos do array"); Nelson Freire (ISEP DEI-APROG 2012/13) 31/31