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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

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

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

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

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

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

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

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br Java - Introdução Professor: Vilson Heck Junior vilson.junior@ifsc.edu.br Agenda O que é Java? Sun / Oracle. IDE - NetBeans. Linguagem Java; Maquina Virtual; Atividade Prática. Identificando Elementos

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

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

Pesquisa em Memória Primária. Prof. Jonas Potros

Pesquisa em Memória Primária. Prof. Jonas Potros Pesquisa em Memória Primária Prof. Jonas Potros Pesquisa em Memoria Primária Estudo de como recuperar informação a partir de uma grande massa de informação previamente armazenada. A informação é dividida

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

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

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

Lição 9 Trabalhando com bibliotecas de classes

Lição 9 Trabalhando com bibliotecas de classes Lição 9 Trabalhando com bibliotecas de classes Introdução à Programação I 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Explicar o que é programação orientada a objetos e alguns de seus

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

Á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

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º

Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) R. P. António Viera, 23. R. Carlos Seixas, 9, 6º Pesquisa Pesquisa: localização de um Registo num Ficheiro (para aceder ao registo: ler/alterar informação) Ficheiro (ou tabela) Campos Nome Endereço Telefone Antunes, João A. R. P. António Viera, 23 720456

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

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

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

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01 Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01 Objetivos: Modelar um sistema orientado a objetos simples a partir

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

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

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

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

ALGORITMO I VARIÁVEIS INDEXADAS

ALGORITMO I VARIÁVEIS INDEXADAS VARIÁVEIS INDEXADAS Array Auxiliadora Freire Slide 1 Array: Conjunto de informações do mesmo tipo, cada informação é representada na memória do computador por uma variável. O nome de qualquer variável

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

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

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

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

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

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

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

Í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

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

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguinte propriedade: Para todo nó da árvore, se seu valor é X, então: Os nós pertencentes

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

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

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

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 de Computadores I. Ponteiros

Programação de Computadores I. Ponteiros Ponteiros Prof. Edwar Saliba Júnior Outubro de 2012 Unidade 13 Ponteiros 1 Identificadores e Endereços Na linguagem C, uma declaração de variável faz associação entre um identificador e endereços de memória;

Leia mais

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java Capítulo 1 Conceitos Básicos do Java INTRODUÇÃO O objectivo deste tutorial é ensinar as regras básicas de programação em Java e facilitar a aprendizagem dos capítulos que se seguem. Qualquer dúvida sobre

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

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

Leia mais

Pragmática das Linguagens de Programação 2004/2005

Pragmática das Linguagens de Programação 2004/2005 Instituto Superior Técnico Pragmática das Linguagens de Programação 2004/2005 Segundo Exame 11/2/2005 Número: Turma: Nome: Escreva o seu número em todas as folhas do teste. O tamanho das respostas deve

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

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com. Aula 04 Operadores e Entrada de Dados Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Operadores: Aritméticos; Atribuição; Concatenação;

Leia mais

Métodos de Pesquisa 472

Métodos de Pesquisa 472 472 Métodos de Pesquisa 473 Objetivos e Caracterizações Para que se possa falar em algoritmos de pesquisa, é necessário inicialmente introduzir a noção de mapeamento que é uma das mais primitivas em programação.

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

BC0501 Linguagens de Programação

BC0501 Linguagens de Programação BC0501 Linguagens de Programação Aula Prática: 03 Assunto: Comandos de Seleção 1. Introdução Um comando de seleção define uma condição em um programa, que permite que grupos de comandos sejam executados

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

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

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

Threads e Concorrência em Java (Material de Apoio)

Threads e Concorrência em Java (Material de Apoio) Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto

Leia mais

Arrays. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Arrays. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul Professor: Ricardo Luis dos Santos IFSUL 2015 Arrays ou vetores são estruturas de dados que armazenam usualmente uma quantidade fixa de dados de um determinado tipo Também são conhecidos como estruturas

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

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Processamento da Informação Teoria. Algoritmos e Tipos de dados Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo

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

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando

Leia mais