Templates e Pilhas. 1. Introdução
|
|
|
- Domingos Salvado Candal
- 10 Há anos
- Visualizações:
Transcrição
1 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. O foco do programador deverá estar no algoritmo e não no dado. O algoritmo gerado deverá ser capaz de ser executado para qualquer tipo de dado. Exemplo de seu emprego: Não seria interessante a existência de uma função max que retornasse o maior valor de dois números, independentemente do tipo do número? Se esse é o tipo de questão que precisa ser respondida, então utilizar templates é uma opção de solução. Uma outra aplicação bem interessante de templates é para a definição de Pilhas, Listas, Filas, Árvores e Grafos. Neste material, apenas Pilhas serão analisadas. Nas Figura 1a) e 1b), a seguir, dos exemplos de pilhas. Na Figura 1a), uma pilha de moedas de chocolate. Na Figura 1b), uma pilha de pratos. a) b) Figura 1 - Exemplos de Pilhas Curitiba, Thursday, April 24, page 1/12
2 Destaca-se que nas Figuras 1a) e 1b) o tipo de elemento que está na pilha não é o mesmo. Na Figura 1a) moedas de chocolate, na Figura 1b) pratos. Mesmo sendo elementos distintos, todos eles possuem a característica de estarem empilhados. Nesse contexto, poderíamos imaginar a existência de um template que represente uma pilha de elementos. Esse template se bem definido, deveria ser capaz de empilhar e desempilhar pratos, livros, jornais, moedas de chocolate, entre outros elementos. Nas próximas seções, apresenta-se o conceito de templates com implementações nas linguagens Java e C++. Na Seção 2, templates de função. Na Seção 3, apresenta-se como é a representação de Classes Templates na linguagem UML. Na Seção 4, por sua vez, representa-se o conceito de pilhas por meio de templates. 2. Templates de Função O Quadro 1, a seguir, apresenta um exemplo de implementação da função template max na linguagem C++. Essa função deverá retornar o maior valor entre dois números quaisquer. Esses números podem ser do tipo inteiro, double, float ou simplesmente char. Observe nesse quadro que: *Há a necessidade de iniciar o template com a instrução template <class ALIAS>. Nesse exemplo, o tipo do dado ou álias, foi definido apenas por T. *Qualquer referência a esse tipo de dado referenciado por T, deverá ser feita fazendo uma chamada a esse álias. Curitiba, Thursday, April 24, page 2/12
3 #include <iostream> Quadro 1 - Exemplo de função Template em C++ template <class T> T max(t left, T right) if (left < right) return right; else return left; int main()! std::cout << max(3,4) << std::endl;! std::cout << max(4.5, 6.7) << std::endl;! std::cout << max ('a', 'c') << std::endl;! return 0; O Quadro 2, por sua vez, apresenta um exemplo de implementação dessa função template na linguagem Java. Observe que: *Há a necessidade de inicar a declaração do template com a instrução <ALIAS> assinaturadafuncao( ). Nesse exemplo, o tipo do dado foi definido apenas por T. *Qualquer referencia a esse tipo de dado deverá ser feita fazendo uma chamada ao álias. public class Main Quadro 2 - Exemplo de função Template em Java! public static<n> N max(n left, N right)!! if (left.hashcode() > right.hashcode()) return left;! else return right;!! public static void main(string[] args)! System.out.println(">>" + max(3,4) ); System.out.println(">>" + max(9.8, 14.0) ); System.out.println(">>" + max('a','c') );! Curitiba, Thursday, April 24, page 3/12
4 Nas linguagens C++ e Java o nome do tipo do dado, ou álias, não possui significado associado algum. Por exemplo, em C++ e em Java, esse template, poderia também ser definido da seguinte maneira, mudando-se o álias de T para desconhecida : //CODIGO CPP template <class desconhecida> desconhecida max(desconhecida left, desconhecida right) if (left < right) return right; else return left; // CODIGO JAVA public static <desconhecida> desconhecida max(desconhecida left, desconhecida right) if (left.hashcode() > right.hashcode()) return left;! else return right; Apesar dessa liberdade na definição, [2] recomenda que a definição do tipo genérico seja feita iniciando-se com caracteres maiúsculos e que os seguintes caracteres sejam utilizados de acordo com o seu significado: * K : se for chave * N : se for número * T : se for um tipo * V : se for um valor 3 Representação UML de Templates A UML define uma maneira própria para representar graficamente um template. Na representação gráfica da classe deve-se adicionar um retângulo com o álias do template. A Figura 2, a seguir, ilustra esse representação. Esse diagrama informa que a classe deve ser definida como template e haverá um atributo denominado por Dado que armazenará esse tipo de dado. Figura 2 - Representação em UML de templates em Classe Curitiba, Thursday, April 24, page 4/12
5 4 Uso do Templates para implementar uma Pilha. Na Figura 3, a seguir, o Diagrama de Classes de um template que permite representar uma pilha de elementos. Na seção 4.1, esse diagrama é implementado em C++ e um pequeno exemplo é definido para testar as classes. Essas implementações e definições estão definidas nos Quadros 4, 5, 6 e 7. Na seção 4.2, o mesmo diagrama apresentado na Figura 3 é implementado na linguagem Java. Além disso, a seção 4.2 ainda apresenta um pequeno exemplo de uso desse template. Figura 3 - Diagrama UML de uma Pilha Genérica 4.1 Exemplo de Implementação em C++ do Diagrama da Figura 3 Nos Quadros 4, 5, 6 e 7, a seguir, um exemplo de template que implementa uma pilha que permite armazenar qualquer tipo de elemento. Curitiba, Thursday, April 24, page 5/12
6 Quadro 4 - Exemplo de Template que implementa a Pilha Genérica ilustrada na Figura 2 - C++ template <class N> class Pilha private: struct Node N *dado; Node *next; ; Node *topo; public: Pilha(N *v) topo=null; inserir(v); Pilha() topo = NULL; void inserir( N *v ) struct Node *novo = (struct Node*) malloc(sizeof(struct Node)); novo->dado = v; novo->next = topo; topo = novo; N givemetop() return *topo->dado; N retirar() if (this->quantidadedeelementos() > 0) N *saida = topo->dado; topo = topo->next; return *saida; else std::cerr << "Pilha Vazia! " << '\n'; throw std::out_of_range ("Pilha Vazia"); int quantidadedeelementos() Node* navegador = topo; int quantidade = 0; while (navegador!= NULL) quantidade ++; navegador = navegador->next; return quantidade; ; Curitiba, Thursday, April 24, page 6/12
7 #include <iostream> #include <stdexcept> #include "Ponto2D.h" Quadro 5 - Exemplo de Uso do Template Pilha - C++ /* template <class N> class Pilha... vide o código do Quadro 4 */ int main() /* primeiro exemplo: Pilha de Strings */ std::string t1 = "1 - oi"; std::string t2 = "2 - ola"; std::string t3 = "3 - como vai"; Pilha<std::string> pilha; pilha.inserir(&t1); pilha.inserir(&t2); pilha.inserir(&t3); std::string retirado; while( pilha.quantidadedeelementos() > 0) retirado = pilha.retirar(); std::cout << retirado << std::endl; /* segundo exemplo da Pilha: Pilha de Instancias de Classe */ Pilha<Ponto2D> pilhadepontos; Ponto2D *p1 = new Ponto2D(); p1->moveroponto(3,5); Ponto2D *p2 = new Ponto2D(); p2->moveroponto(7,8); Ponto2D *p3 = new Ponto2D(); p3->moveroponto(12,34); Ponto2D p4; p4.moveroponto(16,24); Ponto2D *aux = new Ponto2D(p4); pilhadepontos.inserir(aux); pilhadepontos.inserir(p1); pilhadepontos.inserir(p2);pilhadepontos.inserir(p3); Ponto2D pontoout; while( pilhadepontos.quantidadedeelementos() > 0) pontoout = pilhadepontos.retirar(); std::cout << pontoout << std::endl; std::cout << "fim";! return 0; Curitiba, Thursday, April 24, page 7/12
8 Quadro 6 - Arquivo auxiliar ao exemplo: Ponto2D.h /* * Ponto2D.h * * Created on: Apr 19, 2014 * Author: robinsonnoronha */ #ifndef PONTO2D_H_ #define PONTO2D_H_ #include <ostream> class Ponto2D private:! int coordenada_x;! int coordenada_y; public:! Ponto2D();! virtual ~Ponto2D();! void moveroponto(int,int);! double calcularadistancia(ponto2d *);! friend std::ostream & operator <<( std::ostream &, Ponto2D &);! bool operator ==(Ponto2D &); ; #endif /* PONTO2D_H_ */ Curitiba, Thursday, April 24, page 8/12
9 #include "Ponto2D.h" #include <cmath> Quadro 7 - Arquivo auxiliar ao exemplo: Ponto2D.h Ponto2D::Ponto2D() this->coordenada_x = 0; this->coordenada_y = 0; Ponto2D::~Ponto2D() void Ponto2D::moverOPonto(int nx, int ny) this->coordenada_x = nx; this->coordenada_y = ny; double Ponto2D::calcularADistancia(Ponto2D *outro)! int DeltaX = this->coordenada_x - outro->coordenada_x;! int DeltaY = this->coordenada_y - outro->coordenada_y; return sqrt( (double) (DeltaX*DeltaX + DeltaY*DeltaY)); bool Ponto2D::operator ==(Ponto2D &v) bool saida = false; if ( (v.coordenada_x == this->coordenada_x) && (v.coordenada_y == this->coordenada_y) ) saida = true;! return saida; std::ostream & operator <<( std::ostream &out, Ponto2D &v)! out << "(" << v.coordenada_x << ", " << v.coordenada_y << ")";! return (out); Figura 4 - Resultado da Execução dos Códigos C++ apresentados nos Quadros 4, 5, 6 e 7. Curitiba, Thursday, April 24, page 9/12
10 4.2 Implementação em Java Quadro 8 - Exemplo de Template que implementa a Pilha Genérica ilustrada na Figura 2 - Código Java class Pilha <T>! private class Node public T valor; public Node next; Node( T v) valor = v; next = null; ; Node topo; Pilha() topo=null; Pilha(T v) topo = null; inserir(v); public void inserir(t dado)! Node novo = new Node(dado);! novo.next = topo;! topo = novo; public T retirar()! T saida = topo.valor;! topo = topo.next;! return saida; public int quantidadedeelementos()! int saida = 0;! Node andarilho = topo;! while (andarilho!= null)! andarilho = andarilho.next; saida++;!! return saida; Curitiba, Thursday, April 24, page 10/12
11 Quadro 9 - Exemplo de Uso do Template Pilha - Java class NumeroComplexo! int real, imaginario;! NumeroComplexo(int r, int i) real = r; imaginario = i;! public String tostring() return "(" + real + ") + j(" + imaginario + ")"; public class Main! public static void main(string[] args) String nome[] = new String[5]; nome[0]= "Ana"; nome[1]= "Pedro"; nome[2]= "Carlos"; nome[3]= "Egberto"; nome[4] = "Maria"; Pilha <String> amigos = new Pilha(); for (int i = 0; i < nome.length; i++) amigos.inserir(nome[i]);! System.out.println("Nomes inseridos na Pilha. + Quantidade de elementos na pilha=" + amigos.quantidadedeelementos() ); for (int i = 0 ; i < nome.length; i++) System.out.println("> retirei " + amigos.retirar() + ". Resultado, pilha com " + amigos.quantidadedeelementos() + " elementos armazenados."); /* segundo exemplo de uso: Pilha de Numeros Complexos */ System.out.println("\n\n Segundo Exemplo da Pilha: Numeros Complexos."); // definicao da pilha de numeros complexos Pilha <NumeroComplexo> numeros = new Pilha(); // criacao dos elementos que serao guardados na pilha // definicao de array de objetos NumeroComplexo aux[] = new NumeroComplexo[3]; // instancias dos elementos do array aux[0] = new NumeroComplexo(4,5); aux[1] = new NumeroComplexo(7,8); aux[2] = new NumeroComplexo(9,13); for (int i = 0; i < aux.length; i++) numeros.inserir(aux[i]); System.out.println("Numeros Complexos inseridos na Pilha. + Quantidade de elementos na pilha=" + amigos.quantidadedeelementos()); for (int i = 0 ; i < aux.length; i++) System.out.println("> retirei " + numeros.retirar() + ". Resultado, pilha com " + numeros.quantidadedeelementos() + " elementos armazenados."); Curitiba, Thursday, April 24, page 11/12
12 Figura 5 - Resultado da Execução dos Códigos Java apresentados nos Quadros 8 e 9. Referências: [1] Budd, T. (2002). An introduction to Object-Oriented Programming. Third Edition. Addison Wesley. [2] Site: consultado em 19 de abril de Curitiba, Thursday, April 24, page 12/12
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
Pilhas. Profa Morganna Diniz
Pilhas Profa Morganna Diniz Pilhas Geralmente pilhas são úteis em situações em que dados devem ser recuperados em ordem inversa a do armazenamento É uma estrutura de dados linear que permite acesso por
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
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[]
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
2ª Lista de Exercícios
Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,
Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
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:...
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
Componentes da linguagem C++
Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras
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
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita
RELACIONAMENTOS ENTRE CLASSES
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 RELACIONAMENTOS ENTRE CLASSES Conteúdo Introdução...2 Tipos de Relacionamentos...3 O Relacionamento de Dependência ( precisa de )...5
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
ESTRUTURA BÁSICA DE UM PROGRAMA JAVA
ESTRUTURA BÁSICA DE UM PROGRAMA JAVA Prof. Angelo Augusto Frozza, M.Sc. // Primeiro programa em Java public class PrimeiroPrograma { public static void main(string [] args) { System.out.println("Programação
Introdução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
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
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
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
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
Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais
Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais
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)
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
Linguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
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
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
Programação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a
CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Pilhas Filas Deques Pilhas,,f filas e deques Vimos que as listas lineares admitem inserção e eliminação
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)
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
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
O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados O que é um algoritmo? Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 O que é um programa? 2009-1 Algoritmos Sequência de ações executáveis para
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
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
Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação
Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação LP: Laboratório de Programação Apontamento 3 Prof. ISVega Fevereiro de 2004 Estilo de Codificação CONTEÚDO 3.1 Regras
Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.
1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto
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
Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos
Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores e sobrecarga Variáveis de classe e de instância Reinaldo Gomes [email protected] Objetos
2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}
2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II Exercício : Construtores são métodos especiais sem tipo de retorno (nem mesmo void) e de mesmo nome que a classe que são invocados quando da criação
Aula 1 Tipo Abstrato de Dados
Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para
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
Tipo Abstrato de Dados
Tipo Abstrato de Dados David Menotti Algoritmos e Estruturas de Dados II DInf - UFPR Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados Algoritmo: Sequência de ações executáveis
Criar a classe Aula.java com o seguinte código: Compilar e Executar
Introdução à Java Prof. Bruno Gomes [email protected] 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
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
Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais:
Estruturas de Dados Pilhas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e traduções para C dos originais: disponíveis em http://ww3.datastructures.net/ cedidos
EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS
Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor
Encapsulamento de Dados
Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno [email protected] Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam
Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes
ITENS FUNDAMENTAIS Profª Angélica da Silva Nunes CONCEITOS BÁSICOS Hardware - é a parte física do computador, tais como: teclado, monitor de vídeo, etc. Software - são os programas e aplicativos que permitem
Persistência de Classes em Tabelas de Banco de Dados
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos
Introdução a Computação
Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para
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
NetBeans. Conhecendo um pouco da IDE
NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica
Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade
Orientação a Objetos Conceitos Iniciais Introdução a Linguagem Java Gil Eduardo de Andrade Conceitos: Orientação a Objeto Introdução Abordagem típica no desenvolvimento de sistemas complexos; Consiste
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
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.
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 ([email protected]) http://www.inf.ufes.br/~vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Computação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
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
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
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
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.
Lógica de Programação
Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...
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
Tipo de Dados em Linguagem C
Tipo de Dados em Linguagem C Principais tipos de dados em C int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.) float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.) Ocupa
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.
Pilhas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Pilhas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Fevereiro de 2011 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de
Programação Orientada a Objeto
Programação Orientada a Objeto Classes, Atributos, Métodos e Objetos Programação de Computadores II Professor: Edwar Saliba Júnior 1) Java é uma linguagem orientada a objetos. Para que possamos fazer uso
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.
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
UML Aspectos de projetos em Diagramas de classes
UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada
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
Programando em C++ Histórico da Linguagem C
Programando em C++ Joaquim Quinteiro Uchôa [email protected] DCC-UFLA, 2002 Programando em C++ p.1/38 Histórico da Linguagem C Linguagem C: 1972 - Laboratório Bells, por Dennis Ritchie, a partir da linguagem
INTRODUÇÃO AO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO AO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar a grande semelhança entre Java e C Apresentar a organização diferenciada
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
Como construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/3 Como construir um compilador utilizando ferramentas Java Aula 5 Análise Léxica com JavaCC Prof. Márcio Delamaro [email protected] Como
EAD Árvore árvore binária
EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore
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: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos
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;
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;
Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na
Utilizem a classe Aula.java da aula passada:
Introdução à Java Prof. Bruno Gomes [email protected] Programação Orientada a Objetos Código Exemplo da Aula Utilizem a classe Aula.java da aula passada: public class Aula { public static void main(string[]
Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus
Programação Orientada a Objetos: Lista de exercícios #1 Bruno Góis Mateus 1 Contents Programação Orientada a Objetos (Bruno Góis Mateus ): Lista de exercícios #1 Classes e Instanciação 3 A classe Circle...............................................
2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.
Geração de Código para Smallpascal a 1. Já estudamos como SableCC faz uso do design pattern visitor para construir compiladores modulares. Vimos também os principais componentes da máquina virtual Java
INF 1620 P1-10/04/02 Questão 1 Nome:
INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,
Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP
Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente
RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589.
Tutorial de Instalação e Uso do Eclipse Alexandre V. S. Lage, Caio de O. Leal, Eduardo A. F. da Silva, Felipe C. C. Trindade, Gutierre da C. Oliveira e Miguel G. P. de Carvalho. INTRODUÇÃO O Eclipse (2012)
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 [email protected] Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa
Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. [email protected]
Fundamentos de Programação Turma CI-240-EST Josiney de Souza [email protected] Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos
Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação
Java Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação 1 Tabelas para quê? As tabelas são utilizadas quando se pretende armazenar e manipular um grande número de
E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética
2 PARADIGMA IMPERATIVO 2.1 CONCEITO As linguagens que pertencem ao paradigma imperativo tomam por base a perspectiva da máquina. Ou seja, no modo como o computador executa programas em linguagem de máquina.
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 [email protected],
Listas Duplamente Encadeadas
Listas Duplamente Encadeadas! quando for preciso seguir a seqüência de elementos em ambos os sentidos! cada nó possui dois ponteiros: ant e prox ant prox a b c d Início Fim 1 Listas Duplamente Encadeadas
