Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação

Tamanho: px
Começar a partir da página:

Download "Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação"

Transcrição

1 Java Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação 1

2 Tabelas para quê? As tabelas são utilizadas quando se pretende armazenar e manipular um grande número de dados do mesmo tipo Exemplo: analisar a temp. máxima de cada um dos últimos 100 anos float ano1; float ano2; float ano3;... float ano100; Impraticável O ideal seria termos uma estrutura de dados que nos permitisse armazenar os 100 valores utilizando uma única variável ultimoscemanos ano 1 ano 2 ano 3 ano 4 ano 99 ano 100 2

3 Declaração Em Java, as tabelas são tratadas como objetos. Assim, é necessário: Declarar uma variável do tipo tabela Instanciar a tabela utilizando o operador new A declaração de uma tabela tem a seguinte sintaxe: Dimensão Sintaxe Exemplos 1 Tipo[] nomedatabela; int[] vetorinteiros; ou Tipo nomedatabela[]; Ponto[] vetorpontos; 2 Tipo[][] nomedatabela; int[][] matrizinteiros; ou Tipo nomedatabela[] []; Ponto[][] matrizpontos; n Tipo[]...[] nomedatabela; ou Tipo nomedatabela[]...[]; 3

4 Instanciação: operador new Na declaração de tabelas não se especifica o tamanho de cada dimensão O tamanho de cada dimensão é indicado quando se instancia a tabela O tamanho máximo da dimensão pode ser qualquer expressão do tipo inteiro A instanciação de uma tabela tem a seguinte sintaxe: Dim. Sintaxe Exemplos 1 new Tipo[dimensão]; vetorinteiros = new int[23]; vetorpontos = new Ponto[5]; 2 new Tipo[dimensão1] [dimensão2]; matrizinteiros = new int[2][5] ; matrizponto = new Ponto[20][4]; n new Tipo[dimensão1]... [dimensãon]; 4

5 Instanciação: valores iniciais Os elementos de uma tabela de tipos primitivos são automaticamente iniciados com o valor por omissão boolean char Tipo Valor false \u0000 byte, short, int, long 0 float, double 0.0 Uma tabela de objetos comporta-se como uma tabela de referências Os elementos de uma tabela de objetos são automaticamente iniciados com a referência null 5

6 Instanciação: valores iniciais tabela de tipos primitivos int[] vetor = new int[3]; vetor double[] vetor = new double[3]; vetor

7 Instanciação: valores iniciais tabela de objetos Ponto[] vetor = new Ponto[3]; vetor... null null null... Objeto do tipo Ponto[] Dimensão 1 com tamanho 3 vetor... for (int i = 0; i < 3; i++) vetor[i] = new Ponto(i, i + 1);... x = 0 y = 1 x = 1 y = 2 x = 2 y =

8 Índices Os índices de uma tabela variam entre 0 e (tamanho da tabela -1) int[] vetor = new int[7]; vetor[0] = 5; vetor[1] = 7; vetor[2] = 2; vetor[3] = 1; vetor[4] = 5; vetor[5] = 0; vetor[6] = -1; Os elementos de uma tabela são indexados a partir do valor 0 O índice máximo é igual a (tamanho da tabela 1) vetor índices 8

9 Índices e Acesso Os elementos de uma tabela são indexados colocando entre parêntesis rectos o índice que se pretende aceder nomedatabela[índice] Atribuição de um valor a um elemento da tabela Exemplo: vetor[3] = 10; Aceder a um elemento da tabela Exemplo: x = vetor[0]; System.out.println(x); // mostra 5 System.out.println(vetor[3]); //mostra 10 9

10 Acesso O interpretador do Java verifica sempre se os índices são válidos Quando se utiliza um índice inválido o Java gera uma exceção (erro) do tipo ArrayIndexOutOfBoundsException O tamanho da tabela não pode ser alterado após a instanciação Para saber qual o tamanho da tabela utiliza-se o atributo especial length (atributo só de leitura) Exemplo: for(int i = 0; i < vetor.length; i++) vetor[i] = new Ponto(i, i + 1); 10

11 Instanciação na iniciação É possível criar uma tabela a partir de um conjunto de valores iniciais Exemplos: int[] notas = {10, 15, 2, 17, 8; double[][] matriz = {{1, 2, 3, {4, 5, 6; Ponto[] vetor = {new Ponto(0, 1), null, new Ponto(2, 3); O tamanho da tabela é determinado a partir dos seus valores iniciais 11

12 Tabelas multidimensionais Em Java, uma tabela com dimensão superior a 1 é considerada uma tabela de tabelas. Exemplo: Uma tabela bi-dimensional 2x3 é considerada como sendo uma tabela com um máximo de 2 elementos sendo cada elemento uma tabela de tamanho 3 Ponto[][] matriz = new Ponto[2][3]; Objeto do tipo Ponto[][] de dimensão 2 e com 2 elementos Objeto do tipo Ponto[] de dimensão 1 e com 3 elementos matriz Objeto do tipo Ponto[] de dimensão 1 e com 3 elementos 12

13 Tabelas multidimensionais public class TabelasDemo1 { public static void main(string[] args) { int[][] matriz = new int[3][4]; Determina o tamanho da 1ª dimensão int linhas = matriz.length; int colunas = matriz[0].length; Determina o tamanho da 2ª dimensão for (int i = 0; i < linhas; i++) for (int j = 0; j < colunas; j++) matriz[i][j] = (int)(math.random() * 100 % 100); 13

14 Tabelas multidimensionais public class TabelasDemo2 { public static void main(string[] args) { int[][] matriz = {{1, 2, {3, 4, 5, {6, 7, 8; for (int i = 0; i < matriz.length; i++) { for (int j = 0; j < matriz[0].length; j++) System.out.print(matriz[i][j] + \t ); System.out.println(); O resultado do exemplo não é o esperado. Onde está o erro? 14

15 Tabelas multidimensionais Exemplo do slide anterior corrigido public class TabelasDemo2 { public static void main(string[] args) { int[][] matriz = {{1, 2, {3, 4, 5, {6, 7, 8; for (int i = 0; i < matriz.length; i++) { for (int j = 0; j < matriz[i].length; j++) System.out.print(matriz[i][j] + \t ); System.out.println();

16 Tabelas multidimensionais O exemplo seguinte mostra uma forma pouco usual (mas possível) utilizada para instanciar uma tabela multidimensional public class TabelasDemo3 { public static void main(string[] args) { double[][][] m; m = new double[4][][]; for (int i = 0; i < m.length; i++) { m[i] = new double[i * 2 + 1][]; for (int j = 0; j < m[i].length; j++) m[i][j] = new double[(j + 1) * 2]; Qual a dimensão da tabela criada? Como se encontra organizada a memória após a execução do ciclo for? 16

17 Classe Ponto public class Ponto { private int x; private int y; public Ponto(int x, int y){ setx(x); sety(y); //Construtor por cópia public Ponto(Ponto p){ setx(p.x); sety(p.y); public int getx(){ return x; public int gety(){ return y; public void setx(int x){ this.x = x; public void sety(int y){ this.y = y; public boolean igual(ponto p){ return this.x==p.x && this.y==p.y; 17

18 Manipulação de tabelas Exemplo: leitura e escrita public class LeituraEscrita { public static void main(string[] args) { Ponto[]vetor = new Ponto[10]; //Leitura int x, y; for(int i = 0; i < vetor.length; i++) { System.out.print( Introduza o valor de X: ); x = UserInput.readInt(); System.out.print( Introduza o valor de Y: ); y = UserInput.readInt(); vetor[i] = new Ponto(x, y); //Escrita for(int i = 0; i < vetor.length; i++) { System.out.println( P( + vetor[i].getx() +, + vetor[i].gety() + ) ); 18

19 Manipulação de tabelas As tabelas são tratadas como se fossem objetos. Assim, é possível realizar: Atribuições entre tabelas do mesmo tipo Passar tabelas por parâmetro Devolver uma tabela como resultado de um método O que acontece na atribuição entre tabelas do mesmo tipo? public class TabelasDemo4 { public static void main(string[] args) { int[] v1 = {1, 2, 3, 4, 5; int[] v2 = new int[5]; v2 = v1; v1[0] = 3; v2[1] = -1; escrever(v1); escrever(v2); public static void escrever(int[] v){ System.out.print( Vetor = "); for (int i = 0; i < v.length; i++) System.out.print(v[i] + "\t"); System.out.println(); vetor = vetor =

20 Manipulação de tabelas Se pretendermos copiar todos os elementos de uma tabela para outra, devemos copiar elemento a elemento 20

21 Manipulação de tabelas Cópia de tabelas de tipos primitivos public class CopiaTabelasTiposPrimitivos { public static void main(string[] args){ public static void escrever(int[] v){ int[] vetor = new int[3]; for (int i=0; i < vetor.length; i++) vetor[i] = i + 1; System.out.print( vetor: "); escrever(vetor); for (int i = 0; i < v.length; i++) System.out.print( v[ +i+ ]= +v[i]); System.out.println(); int[] copia = new int[3]; for (int i=0; i<vetor.length; i++) copia[i] = vetor[i]; copia[2] = 100; System.out.print( vetor: "); escrever(vetor); System.out.print( Cópia: "); escrever(copia); vetor: v[0]= 1 v[1]= 2 v[2]= 3 vetor: v[0]= 1 v[1]= 2 v[2]= 3 Cópia: v[0]= 1 v[1]= 2 v[2]=

22 Manipulação de tabelas Cópia de tabelas de referências (objetos) public class CopiaTabelasReferencias { public static void main(string[] args){ Ponto[] vetor = new Ponto[3]; for (int i=0; i < vetor.length; i++) vetor[i] = new Ponto(0, i); System.out.println("vetor"); escrever(vetor); Ponto[] copia = new Ponto[3]; for (int i=0; i<vetor.length; i++) copia[i]= vetor[i]; copia[0].sety(100); System.out.println( vetor: "); escrever(vetor); System.out.println( Cópia: "); escrever(copia); public static void escrever(ponto[] v){ for (int i=0; i<v.length; i++) { System.out.print("V["+i+"]="); System.out.println( P( + vetor[i].getx() +, + vetor[i].gety() + ) ); vetor V[0]=P(0, 0) V[1]=P(0, 1) V[2]=P(0, 2) vetor: V[0]=P(0, 100) V[1]=P(0, 1) V[2]=P(0, 2) Cópia: V[0]=P(0, 100) V[1]=P(0, 1) V[2]=P(0, 2) É isto que pretendemos? 22

23 Manipulação de tabelas Alternativa ao exemplo anterior (método arraycopy) public class CopiaTabelasReferencias { public static void main(string[] args){ Ponto[] vetor = new Ponto[3]; for (int i=0; i < vetor.length; i++) vetor[i] = new Ponto(0, i); System.out.println("vetor"); escrever(vetor); Ponto[] copia = new Ponto[3]; System.arraycopy(vetor, 0, copia, 0, vetor.length); copia[0].sety(100); System.out.println( vetor: "); escrever(vetor); System.out.println( Cópia: "); escrever(copia); public static void escrever(ponto[] v){ for (int i=0; i<v.length; i++) { System.out.print("V["+i+"]="); System.out.println( P( + vetor[i].getx() +, + vetor[i].gety() + ) ); vetor V[0]=P(0, 0) V[1]=P(0, 1) V[2]=P(0, 2) vetor: V[0]=P(0, 100) V[1]=P(0, 1) V[2]=P(0, 2) Cópia: V[0]=P(0, 100) V[1]=P(0, 1) V[2]=P(0, 2) É isto que pretendemos? 23

24 Manipulação de tabelas Para facilitar a operação de cópia de tabelas, a classe System fornece o método: void arraycopy(object src, int src_pos, Object dst, int dst_pos, int length) No entanto, nos exemplos dos dois slides anteriores é realizada apenas uma cópia superficial do objetos: Apenas são copiadas as referências dos objetos Não é realizada uma cópia de cada objeto 24

25 Manipulação de tabelas Cópia de tabelas de referências (objetos) cópia efetiva dos objetos public class CopiaTabelasReferencias { public static void main(string[] args){ Ponto[] vetor = new Ponto[3]; for (int i=0; i < vetor.length; i++) vetor[i] = new Ponto(0, i); System.out.println("vetor"); escrever(vetor); Ponto[] copia = new Ponto[3]; for (int i=0; i<vetor.length; i++) copia[i]= new Ponto(vetor[i]); copia[0].sety(100); System.out.println( vetor: "); escrever(vetor); System.out.println( Cópia: "); escrever(copia); public static void escrever(ponto[] v){ for (int i=0; i<v.length; i++) { System.out.print("V["+i+"]="); System.out.println( P( + vetor[i].getx() +, + vetor[i].gety() + ) ); vetor V[0]=P(0, 0) V[1]=P(0, 1) V[2]=P(0, 2) vetor: V[0]=P(0, 0) V[1]=P(0, 1) V[2]=P(0, 2) Cópia: V[0]=P(0, 100) V[1]=P(0, 1) V[2]=P(0, 2) 25

26 Cópia de objetos for (int i = 0; i < vetor.length; i++) copia[i] = new Ponto(vetor[i]); O construtor por cópia é uma das formas possíveis de fazermos cópias de objetos Mais tarde abordaremos outras formas de realizar a cópia de objetos 26

27 Manipulação de tabelas Passagem de tabelas por parâmetro (passagem por referência) public class TabelasComoParametro { public static void main(string[] args){ public static void modificar(int[] v){ int[] vetor = new int[3]; for (int i=0; i < vetor.length; i++) vetor[i] = i + 1; for (int i = 0; i < v.length; i++) v[i] *= -1; System.out.print( vetor: "); escrever(vetor); modificar(vetor); System.out.print( vetor: "); escrever(vetor); public static void escrever(int[] v){ for (int i = 0; i < v.length; i++) System.out.print( v[ +i+ ]= +v[i]); System.out.println(); vetor: v[0]= 1 v[1]= 2 v[2]= 3 vetor: v[0]= -1 v[1]= -2 v[2]= -3 27

28 Manipulação de tabelas Devolução de uma tabela como resultado de um método public class DevolucaoTabelas { public static void main(string[] args){ public static void escrever(int[] v){ int[] vetor; vetor = iniciar(); System.out.print( main: "); escrever(vetor); for (int i = 0; i < v.length; i++) System.out.print( v[ +i+ ]= +v[i]); System.out.println(); public static int[] iniciar(){ int v[] = new int [3]; for (int i = 0; i < v.length; i++) v[i] = i + 1; System.out.print( inic: "); escrever(v); inic: v[0]=1v[1]=2v[2]=3 main: v[0]=1v[1]=2v[2]=3 return v; 28

29 Algoritmos de pesquisa em tabelas unidimensionais (vetores) Pesquisa sequencial Em vetores não ordenados Em vetores ordenados Pesquisa binária (apenas para vetores ordenados) 29

30 Pesquisa sequencial em vetores não ordenados Compara cada um dos elementos do vetor com o elemento a pesquisar A pesquisa termina quando o elemento for encontrado ou quando tiverem sido percorridos todos os elementos do vetor O método devolve a posição do elemento a pesquisar caso este exista e -1 em caso contrário 30

31 Pesquisa sequencial em vetores não ordenados //Versão 1 public static int pesquisar(int v[], int x){ int i = 0; while(i < v.length - 1 && v[i]!= x) i++; if(i < v.length && v[i] == x) return i; return -1; //Versão 2 public static int pesquisar(int v[], int x){ for(int i = 0; i < v.length; i++) if(v[i] == x) return i; return -1; 31

32 Pesquisa sequencial em vetores não ordenados public class PesquisaNaoOrdenada{ public static void main(string[] args){ int[] vetor = {4, 3, 6, 0, 2; int pos = pesquisar(vetor, 4); if(pos!= -1) System.out.println(pos); else System.out.println( Elemento não encontrado ); public static int pesquisar(int v[], int x){... 32

33 Pesquisa sequencial em vetores ordenados A pesquisa termina quando o elemento for encontrado, ou quando for encontrado um elemento superior ao elemento procurado Caso os elementos do vetor sejam todos inferiores ao elemento procurado, o algoritmo termina quando for alcançado o último elemento do vetor 33

34 Pesquisa sequencial em vetores ordenados //Versão 1 public static int pesquisar(int v[], int x){ int i = 0; while(i < v.length - 1 && v[i]< x) i++; if(i < v.length && v[i] == x) return i; return -1; //Versão 2 public static int pesquisar(int v[], int x){ int i; for(i = 0; i < v.length - 1 && v[i]< x; i++); if(v[i] == x) return i; return -1; 34

35 Pesquisa sequencial em vetores ordenados public class PesquisaOrdenada{ public static void main(string[] args){ int[] vetor = {1, 3, 4, 7, 8; int pos = pesquisar(vetor, 4); if(pos!= -1) System.out.println(pos); else System.out.println( Elemento não encontrado ); public static int pesquisar(int v[], int x){... 35

36 Pesquisa binária (vetores ordenados) Consiste em dividir sucessivamente o vetor ao meio, verificando se o elemento procurado é igual ao elemento que se encontra na posição central, e em caso contrário, verificar em que metade do vetor se deve continuar a procurar o elemento 36

37 Pesquisa binária vetores ordenados baixo = 0 alto = n - 1 enquanto baixo <= alto meio = (baixo + alto) / 2 se v[meio] == x devolve meio senão se x > v[meio] baixo = meio + 1 senão alto = meio - 1 devolve -1 37

38 Pesquisa binária vetores ordenados (exemplo 1) N = 7 Elemento a pesquisar x = 8 vetor x < vetor[meio] baixo meio alto vetor x > vetor[meio] baixo meio alto 38

39 Pesquisa binária vetores ordenados (exemplo 1) N = 7 Elemento a pesquisar x = 8 vetor baixo alto meio x == vetor[meio] devolve meio (2) 39

40 Pesquisa binária vetores ordenados (exemplo 2) N = 7 Elemento a pesquisar x = 35 vetor x > vetor[meio] baixo meio alto vetor x < vetor[meio] baixo meio alto 40

41 Pesquisa binária vetores ordenados (exemplo 2) N = 7 Elemento a pesquisar x = 35 vetor x > vetor[meio] baixo meio alto vetor Devolve -1 alto baixo 41

42 Pesquisa binária vetores ordenados public static int pesquisabinaria(int v[], int x){ int baixo = 0, alto = v.length - 1, meio; while(baixo <= alto){ meio = (baixo + alto) / 2; if(v[meio] == x) return meio; else if(x > v[meio]) baixo = meio + 1; else alto = meio 1; return -1; 42

43 Pesquisa binária vetores ordenados public class Pesquisa{ public static void main(string[] args){ int[] vetor = {1, 3, 4, 7, 8; int pos = pesquisabinaria(vetor, 4); if(pos!= -1) System.out.println(pos); else System.out.println( Elemento não encontrado ); public static int pesquisabinaria (int v[], int x){... 43

44 Ordenação de vetores O principal objectivo da ordenação de vetores é permitir pesquisas mais rápidas... Algoritmos de ordenação que abordaremos: Troca direta Seleção Borbulhamento (Bubble Sort) 44

45 Ordenação por troca direta Compara cada elemento do vetor com todos os que se encontram nas posições seguintes. Sempre que encontrar um elemento de menor valor troca os dois elementos Nota: estamos a assumir que se pretende ordenar os elementos por ordem crescente 45

46 Ordenação por troca direta Considerando um vetor v com n elementos para i = 0 até i < n - 1 para j = i + 1 até j < n se v[j] < v[i] então troca v[j] com v[i] 46

47 Ordenação por troca direta Exemplo i = 0 v j=1 j=2 j=3 j=4 Troca 47

48 Ordenação por troca direta Exemplo i = 0 v j=5 No final da 1ª iteração o menor elemento do vetor encontra-se na posição 0 48

49 Ordenação por troca direta Exemplo i = 1 v j=2 Troca 49

50 Ordenação por troca direta Exemplo i = 1 v j=3 j=4 Troca 50

51 Ordenação por troca direta Exemplo i = 1 v j=5 No final da 2ª iteração o 2º menor elemento do vetor encontra-se na posição 1 51

52 Ordenação por troca direta Exemplo i = 2 v j=3 Troca 52

53 Ordenação por troca direta Exemplo i = 2 v j=4 Troca 53

54 Ordenação por troca direta Exemplo i = 2 v j=5 No final da 3ª iteração o 3º menor elemento do vetor encontra-se na posição 2 54

55 Ordenação por troca direta Exemplo i = 3 v j=4 Troca 55

56 Ordenação por troca direta Exemplo i = 3 v j=5 Troca 56

57 Ordenação por troca direta Exemplo i = 3 v No final da 4ª iteração o 4º menor elemento do vetor encontra-se na posição 3 57

58 Ordenação por troca direta Exemplo i = 4 v j=5 Troca 58

59 Ordenação por troca direta Exemplo i = 4 v No final da 5ª iteração o 5º menor elemento do vetor encontra-se na posição 4 59

60 Ordenação por troca direta Nº de comparações = ( ) n n 1 2 Nº de trocas Nº de comparações 60

61 Ordenação por troca direta public static void ordenartrocadireta(int v[]){ int aux; for(int i = 0; i < v.length - 1; i++) for(int j = i + 1; j < v.length; j++) if(v[j] < v[i]){ aux = v[j]; v[j]= v[i]; v[i]= aux; Invocação: ordenartrocadireta(v); 61

62 Ordenação por seleção Procura o menor elemento do vetor e coloca-o por troca na posição 0 do vetor, a seguir procura o 2º menor elemento e coloca-o por troca na posição 1,... e assim sucessivamente Nota: estamos a assumir que se pretende ordenar os elementos por ordem crescente 62

63 Ordenação por seleção para i = 0 até i < n-1 posmenor = i para j = i+1 até j < n se(v[j] < v[posmenor]) posmenor = j; se(posmenor!= i) troca v[posmenor] com v[i] 63

64 Ordenação por seleção Exemplo i = 0 posmenor = 0 posmenor = 4 v j=1 j=2 j=3 j=4 j=5 v

65 Ordenação por seleção Exemplo i = 1 posmenor = 1 posmenor = 2 posmenor = 4 v j=2 j=3 j=5 j=4 v

66 Ordenação por seleção Exemplo i = 2 posmenor = 2 v j=2 j=3 j=4 66

67 Ordenação por seleção Exemplo i = 3 posmenor = 3 posmenor = 5 v j=4 j=5 v

68 Ordenação por seleção Exemplo i = 4 posmenor = 4 posmenor = 5 v j=5 v

69 Ordenação por seleção versus Ordenação por troca direta O número de comparações é o mesmo O algoritmo de ordenação por seleção é mais eficiente que o algoritmo de ordenação por troca direta uma vez que em cada iteração é realizada uma troca no máximo No algoritmo de ordenação por seleção o número de trocas é sempre menor do que n-1 69

70 Ordenação por seleção public static void ordenarselecao(int v[]){ int aux, posmenor; for(int i = 0; i < v.length - 1; i++){ posmenor = i; for(int j = i + 1; j < v.length; j++) if(v[j] < v[posmenor]) posmenor = j; if(posmenor!= i){ aux = v[posmenor]; v[posmenor] = v[i]; v[i] = aux; Invocação: ordenarselecao(v); 70

71 Borbulhamento (Bubble Sort) Compara cada um dos elementos do vetor com o que se encontra na posição seguinte. Sempre que dois elementos estiverem desordenados troca os seus valores, terminando o algoritmo quando ocorrer uma iteração sem trocas (o que significa que o vetor está ordenado) Nota: estamos a assumir que se pretende ordenar os elementos por ordem crescente 71

72 Bubble Sort i = n-1 trocou = verdadeiro enquanto i > 0 && trocou trocou = falso para j = 0 até j < i if (v[j] > v[j+1]) trocou = verdadeiro troca v[j]com v[j+1] i-- 72

73 Bubble Sort i = 5 trocou = false v j=0 j=1 trocou = true v j=2 trocou = true 73

74 Bubble Sort i = 5 v j=3 trocou = true v j=4 trocou = true 74

75 Bubble Sort i = v No final da 1ª iteração o maior elemento do vetor encontra-se na última posição (posição 5) 75

76 Bubble Sort i = 4 trocou = false v j=0 j=1 j=2 trocou = true v j=3 trocou = true 76

77 Bubble Sort i = v No final da 2ª iteração o 2º maior elemento do vetor encontra-se na penúltima posição (posição 4) 77

78 Bubble Sort i = 3 trocou = false v j=0 j=1 trocou = true v j=2 78

79 Bubble Sort i = v No final da 3ª iteração o 3º maior elemento do vetor encontra-se na posição 3 do vetor 79

80 Bubble Sort i = 2 trocou = false v j=0 trocou = true v j=1 80

81 Bubble Sort i = v No final da 4ª iteração o 4º maior elemento do vetor encontra-se na posição 2 do vetor 81

82 Bubble Sort i = 1 trocou = false v j=0 82

83 Bubble Sort i = v No final da 5ª iteração o 5º maior elemento do vetor encontra-se na posição 1 do vetor 83

84 Bubble Sort Nº de comparações ( ) n n 1 2 Nº de trocas máximas Nº de comparações 84

85 Algoritmos de ordenação Em termos globais a ordenação por seleção e o Bubble Sort são mais eficientes que a ordenação por troca direta Para escolher o algoritmo a utilizar pode adotar-se o seguinte critério: Se n 30: Ordenação por seleção Se n > 30: Bubble Sort 85

86 Bubble sort public static void bubblesort(int v[]){ int aux, i = v.length - 1; boolean trocou = true; while(i > 0 && trocou) { trocou = false; for(int j = 0; j < i; j++) if(v[j] > v[j + 1]){ trocou = true; aux = v[j]; v[j] = v[j + 1]; v[j + 1] = aux; i--; Invocação: bubblesort(v); 86

87 Bibliografia Thinking in Java 3rd Edition Iniciação de arrays - Capítulo 4 (pág ) P.O.O. Em Java 2 Arrays Capítulo 2 (pág. 60 a 63) 87

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,

Leia mais

Unidade IV: Ponteiros, Referências e Arrays

Unidade IV: Ponteiros, Referências e Arrays Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

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

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

Conversão de Tipos e Arrays

Conversão de Tipos e Arrays Conversão de Tipos e Arrays Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Conversão de Tipos Permite converter

Leia mais

POO Programação Orientada a Objetos. Classes em Java

POO Programação Orientada a Objetos. Classes em Java + POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos

Leia mais

Curso Java Starter. www.t2ti.com 1

Curso Java Starter. www.t2ti.com 1 1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

5 Caso de estudo O cartão fidelidade

5 Caso de estudo O cartão fidelidade 5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

Leia mais

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

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

public void setdata(data d) { data = d;

public void setdata(data d) { data = d; class Data... public class Compromisso private Data data; private int hora; private String descricao; /**java.lang.string*/ public Compromisso() public Compromisso(Data data, int hora, String descricao)

Leia mais

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

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

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

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos. import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

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

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 03 APRESENTAÇÃO: Hoje vamos conhecer o comando switch, o bloco try catch;

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Capítulo 2. Fundamentos de Java

Capítulo 2. Fundamentos de Java Capítulo 2. Fundamentos de Java 1/52 Índice 2.1 - Variáveis Tipos Escopo Inicialização Casting Literais 2.2 - Operadores Aritméticos Relacionais Bit a Bit De atribuição 2.3 - Expressões, statements e blocos

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível. Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

Leia mais

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

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 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

Leia mais

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

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre

Leia mais

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br JAVA Fabrício de Sousa fabbricio7@yahoo.com.br Agenda 2 Características Ambientes de Desenvolvimento Sintaxe Comentários Tipos de dados primitivos Caracteres especiais Variáveis Operadores Aritméticos

Leia mais

15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido PARTE III: Java e OO - detalhes Membros de classe e instâncias Pacotes Visibilidade Classes aninhadas Membros de classe e de instância De classe Static Método não necessita de objeto para ser chamado.

Leia mais

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

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Universidade Federal de Uberlândia

Universidade Federal de Uberlândia Universidade Federal de Uberlândia Programação Orientada a Objetos I Introdução a Java Sintaxe básica OO Prof. Fabiano Azevedo Dorça Em Java, cada classe dá origem a um arquivo.java contendo o código fonte.

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

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

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

Encapsulamento de Dados

Encapsulamento de Dados Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam

Leia mais

Implementação de Classe e Auto-Relacionamento em Java

Implementação de Classe e Auto-Relacionamento em Java UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida

Leia mais

Algoritmos e Programação II. Sobrecarga

Algoritmos e Programação II. Sobrecarga Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque

Leia mais

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos Departamento de Informática Prof. Anselmo C. de Paiva Classes O conjunto de requisições que um objeto pode cumprir é determinado

Leia mais

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

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Capítulo 3. Programação por objectos em Java

Capítulo 3. Programação por objectos em Java Capítulo 3. Programação por objectos em Java 1/46 Índice Indice 3.1 - Qualificadores de visualização 3.2 - Classe 3.3 - Objecto 3.4 - Métodos 3.5 - Herança 3.6 - Reescrita de métodos 3.7 - Classes abstractas

Leia mais

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario Projeto de sistemas em Java Algoritmos e Programação I Aula 25 Profa. Márcia Cristina Moraes mmoraes@inf.pucrs.br Profa. Sílvia M. W. Moraes silvia@inf.pucrs.br Agora que já estamos manipulando com mais

Leia mais

Métodos de Pesquisa em Memória Primária

Métodos de Pesquisa em Memória Primária Algoritmos e Estrutura de Dados II Métodos de Pesquisa em Memória Primária Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Pesquisa Por pesquisa (procura ou busca) entende-se o ato

Leia mais

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

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado

Leia mais

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

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Lab de Programação de sistemas I

Lab de Programação de sistemas I Lab de Programação de sistemas I Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Agenda Orientação a Objetos Conceitos e Práticas Programação OO

Leia mais

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) Prova de Java 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos) O programa consiste em uma aplicação que simula o comportamento de dois

Leia mais

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS Modificador static e Pacotes Alberto Costa Neto DComp - UFS 1 Roteiro Modificador static Pacotes 2 Modificador static Instanciando a classe Funcionário matricula nome cpf salario salario-min getmatricula()

Leia mais

Estruturas de Dados em Java

Estruturas de Dados em Java Estruturas de Dados em Java por Prof. Dr. Paulo Roberto Gomes Luzzardi e-mail: pluzzardi@gmail.com Home Page: http://infovis.ucpel.tche.br/luzzardi http://graphs.ucpel.tche.br/luzzardi Versão 1.08 13/04/2010

Leia mais

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

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 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha

Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha Esta apresentação ensinará os conceitos de Orientação a Objetos com C++, do mais básico para o mais avançado. É suposto que o aluno já tenha conhecimento avançado de C. Exemplo em C: Faça um programa que

Leia mais

Organização de programas em Java. Vanessa Braganholo vanessa@ic.uff.br

Organização de programas em Java. Vanessa Braganholo vanessa@ic.uff.br Organização de programas em Java Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Java! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados

Leia mais

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

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

DEFINIÇÃO DE MÉTODOS

DEFINIÇÃO DE MÉTODOS Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

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

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

Leia mais

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial Índice i Índice Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial 1. A Estrutura Abstrata de Dados Lista... 1 1.1. Definição... 1 1.2. Implementação de Listas utilizando armazenamento

Leia mais

Projeto de Software Orientado a Objeto

Projeto de Software Orientado a Objeto Projeto de Software Orientado a Objeto Ciclo de Vida de Produto de Software (PLC) Analisando um problema e modelando uma solução Prof. Gilberto B. Oliveira Estágios do Ciclo de Vida de Produto de Software

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Programação Visual TIC - 3PA. Lista de Exercícios 02

Programação Visual TIC - 3PA. Lista de Exercícios 02 Programação Visual TIC - 3PA Lista de Exercícios 02 Professor: Edwar Saliba Júnior 1) Elabore um programa para simular uma conta de poupança. Crie uma classe contacorrente com os seguintes atributos: saldo,

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS

PROGRAMAÇÃO ORIENTADA A OBJETOS PROGRAMAÇÃO ORIENTADA A OBJETOS MINISTÉRIO DA EDUCAÇÃO PRÓ-REITORIA DE ENSINO DEPARTAMENTO DE EDUCAÇAO À DISTÂNCIA ESCOLA TÉCNICA ABERTA DO PIAUÍ - ETAPI CAMPUS TERESINA CENTRAL PROGRAMAÇÃO ORIENTADA

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos

Universidade da Beira Interior. Sistemas Distribuídos Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra

Leia mais

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

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

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Disciplina: Programação III Conteúdo: Programação Orientada a Objetos Linguagem JAVA Página: 70

Disciplina: Programação III Conteúdo: Programação Orientada a Objetos Linguagem JAVA Página: 70 Conteúdo: Programação Orientada a Objetos Linguagem JAVA Página: 70 3.7 TRABALHANDO COM CLASSES E OBJETOS Origem: Capítulo 3 Introdução a classes e Objetos. Livro: Java Como Programar, Deitel & Deitel,

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Introdução à linguagem

Introdução à linguagem A Tecnologia Java 1 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória disponível Processadores fracos Arquitecturas muito diferentes

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

Leia mais

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

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código } Este documento tem o objetivo de demonstrar os comandos e sintaxes básicas da linguagem Java. 1. Alguns passos para criar programas em Java As primeiras coisas que devem ser abordadas para começar a desenvolver

Leia mais

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010 Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em

Leia mais

Desenvolvimento OO com Java Orientação a objetos básica

Desenvolvimento OO com Java Orientação a objetos básica Desenvolvimento OO com Java Orientação a objetos básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal

Leia mais

Capítulo 9. Vetores e Matrizes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 9. Vetores e Matrizes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 9 Vetores e Matrizes Objetivos do Capítulo Apresentar os dois tipos fundamentais de estruturas de dados estáticas disponíveis no Java: os vetores e as matrizes. Indicar como os vetores podem ser

Leia mais

Linguagem de Programação I. Orientação a Objetos em Java

Linguagem de Programação I. Orientação a Objetos em Java Linguagem de Programação I Orientação a Objetos em Java Roteiro Introdução Classes e Objetos Declaração de Classes e Instanciação de um Objeto de uma Classe Declarando métodos com parâmetros Atributos,

Leia mais

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

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica Vítor E. Silva Souza (vitor.souza@ufes.br) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade

Leia mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática Programação Orientada a Objectos - 28/29; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador

Leia mais

Threads e Sockets em Java. Threads em Java. Programas e Processos

Threads e Sockets em Java. Threads em Java. Programas e Processos Threads em Java Programas e Processos Um programa é um conceito estático, isto é, um programa é um arquivo em disco que contém um código executável por uma CPU. Quando este programa é executado dizemos

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

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

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE. PROGRAMAÇÃ ÇÃO COM OBJECTOS TUDO É UM OBJECTO Programação com Objectos ÍNDICE Introdução aos objectos Polimorfismo TUDO É UM OBJECTO Interface e classes internas Instruções de controlo Guardar os objectos

Leia mais

Capítulo 5 Reuso de Classes

Capítulo 5 Reuso de Classes Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Desenvolvimento Orientado a Objetos com Java Capítulo 5 Reuso de Classes

Leia mais

CONTEÚDO ORIENTAÇÃO A OBJETOS 1. INTRODUÇÃO PROGRAMAÇÃO ORIENTADA A OBJETOS 19/08/2014. 1. Introdução. 9. Encapsulamento 2. Lógica de Programação

CONTEÚDO ORIENTAÇÃO A OBJETOS 1. INTRODUÇÃO PROGRAMAÇÃO ORIENTADA A OBJETOS 19/08/2014. 1. Introdução. 9. Encapsulamento 2. Lógica de Programação CONTEÚDO 1. Introdução 9. Encapsulamento 2. Lógica de Programação 10. Herança 3. Variáveis 11. Polimorfismo 4. Operadores 12. Classes Abstratas PROGRAMAÇÃO ORIENTADA A OBJETOS Walderson Shimokawa 5. Controle

Leia mais

Programação de Computadores II TCC 00.174

Programação de Computadores II TCC 00.174 Programação de Computadores II TCC 00.174 Profs.: Leandro A. F. Fernandes (Turma A1) & Marcos Lage (Turma B1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage Conteúdo: Representação

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 02 APRESENTAÇÃO: Apresentação; conceitos básicos da linguagem java; estrutura

Leia mais

LINGUAGEM DE PROGRAMAÇÃO JAVA

LINGUAGEM DE PROGRAMAÇÃO JAVA LINGUAGEM DE PROGRAMAÇÃO JAVA Curso de Especialização em Tecnologia Java UTFPR Capítulo 1 Parte 1 Introdução à tecnologia Java Ambiente de desenvolvimento Java Introdução à Tecnologia Java O que é Java?

Leia mais

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this. Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como

Leia mais

17 - Funções e Procedimentos em C Programação Modular

17 - Funções e Procedimentos em C Programação Modular 17 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 17

Leia mais

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

Roteiro 1: Dados, variáveis, operadores e precedência 1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta

Leia mais

Vetores. Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br

Vetores. Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br Professor Dr Francisco Isidro Massettto francisco.massetto@ufabc.edu.br Nem sempre os tipos básicos: (inteiro, real, caracter e lógico) são suficientes para implementar um algoritmo. Por exemplo: Considere

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Templates e Pilhas. 1. Introdução

Templates e Pilhas. 1. Introdução Templates e Pilhas 1. Introdução Templates ou Generics é considerado uma forma de polimorfismo [1]. É uma forma de programar onde o tipo do dado não é considerado. Programa-se para um tipo de dado indefinido.

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 2 Visão Geral da Tecnologia Java Aplicação Hello

Leia mais