Programação Orientada a Objetos OUTROS MECANISMOS

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

Download "Programação Orientada a Objetos OUTROS MECANISMOS"

Transcrição

1 Programação Orientada a Objetos OUTROS MECANISMOS Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas

2 Unidade V Unidade IV Outros Mecanismos: Classes parametrizadas. A biblioteca padrão. Exceções. Identificação de tipo em tempo de execução. Hoje trabalharemos o tópico Classes Parametrizadas. Os demais tópicos serão estudados por vocês durante o desenvolvimento do Trabalho Prático IV. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 2/36

3 Templates Stroustrup inicialmente chamou os templates de tipos parametrizados: Uma classe ou uma função template serve como uma receita para a geração automática de classes e funções, com base na escolha de um tipo pelo usuário. As classes e algoritmos presentes na biblioteca padrão (vector<t>, list<t>, sort, find, etc ) são exemplos de classes e funções template. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 3/36

4 Exemplo Uma Pilha (Simples) de Inteiros class IntStack{ int* stack ; int top, ssize; public: IntStack(int size):top(0),ssize(size){stack = new int[size];; ~IntStack() { delete[] stack; void push(int i) { if(top >= ssize) { cout << Too many push()es ; exit(1); stack[top++] = i; int pop() { if (top <= 0) { cout << Too many pop()s ; exit(1); return stack[--top]; ; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 4/36

5 Pergunta Interessante E se o desejo for trabalhar com uma pilha de objetos de qualquer tipo? 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 5/36

6 Solução 1 (Horrorosa!) Copiar o código da pilha de inteiros e realizar os a- justes necessários para o novo tipo: uma pilha de a- viões. Desvantagens: Cansativo. Confuso. Propenso a erros. Deselegante. ECA! 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 6/36

7 Solução 2 (Não Muito Bonita...) Uma classe da biblioteca padrão é a base para as demais classes, não existindo mais do que uma árvore hierárquica. Utiliza-se a herança da classe base genérica: Classe base genérica: Object. As demais classes devem ser criadas a partir da classe base Object. Assim, seus objetos são armazenados no container de ponteiros para Object. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 7/36

8 Solução 3 Templates Em C++, tentou-se inicialmente implementar a solução apresentada no slide anterior: A utilização do mecanismo era complicada e confusa, especialmente porque todas as classes deveriam ser derivadas de uma única classe: Object! Em muitas situações era necessário introduzir herança múltipla... 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 8/36

9 Solução 3 Templates Inicialmente, Stroustrup propôs criar as classes containers como sendo grandes macros com argumento. Assim, ao se criar um container para um objeto, fazia-se uma dupla chamada da macro. Infelizmente, essa solução era mais confusa do que as soluções existentes até então... Finalmente, Stroustrup modificou essa macro original, simplificando-a e movendo-a do domínio do préprocessador para dentro do compilador. Esse novo dispositivo ele denominou de Templates. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 9/36

10 Solução 3 Templates Os Templates C++ permitem a execução de um molde genérico Stack<T> com parâmetro T de qualquer tipo, podendo esse tipo ser primitivo da linguagem ou definido pelo próprio usuário. Os Templates C++ fornecem uma maneira reuso do código fonte, ao contrário da herança e da composição, que fornecem uma maneira de reuso do código objeto. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 10/36

11 Solução 3 Templates Template é a palavra chave para o compilador identificar que a classe ou função manipulará um tipo não especificado: O mecanismo pode ser implementado na forma de classes template ou de funções template. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 11/36

12 Sintaxe para a definição: Funções Template template <class Tipo1 [,..., class Tipo2]> protótipo_função_template() { //código da função template Exemplo: template <class T> T soma(const T& p1, const T& p2) { return(p1+p2); 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 12/36

13 Funções Template Utilização: int i = 1, j = 2; double f = 3., g = 4.; Matriz A(20,20), B(20,20); // gera int soma(const int&, const int&) int k = soma(i,j); // gera double soma(const double&, const double&) double h = soma(f,g); // gera Matriz soma(const Matriz&, const Matriz&) // (se existir Matriz::operator+) Matriz C = soma(a,b); 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 13/36

14 Funções Template O código do slide anterior mostra claramente uma característica das funções template: elas só podem ser instanciadas (ter seu tipo genérico T substituído por um tipo de verdade ) caso o tipo de verdade satisfaça alguns pré-requisitos... No caso específico da função soma, quais seriam os prérequisitos? template <class T> T soma(const T& p1, const T& p2) { return(p1+p2); 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 14/36

15 Funções Template No caso específico da função soma, quais seriam os pré-requisitos? template <class T> T soma(const T& p1, const T& p2) { return(p1+p2); O tipo T: Tem que ter implementado o operator+! Deve possuir também um construtor de cópia (criado pelo programador ou sintetizado pelo compilador) para permitir o retorno por cópia. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 15/36

16 Funções Template Quando uma função template é chamada, os tipos dos argumentos da função determinam qual versão do template será utilizada, isto é, os parâmetros do template são deduzidos a partir dos argumentos da função. Cada vez que o compilador encontrar uma chamada de função template ainda não realizada para aqueles tipos, ele definirá um novo código (as várias funções terão endereços e códigos diferentes): esse processo é chamado de instanciação da função template. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 16/36

17 Funções Template Exemplo template< class T > void printarray( const T *array, const int count ){ for ( int i = 0; i < count; i++ ) cout << array[ i ] << " "; cout << endl; int main() { const int acount = 5, bcount = 7, ccount = 6; int a[ acount ] = { 1, 2, 3, 4, 5 ; double b[ bcount ] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 ; char c[ ccount ] = "HELLO"; // 6th position for null printarray( a, acount ); // integer template function printarray( b, bcount ); // double template function printarray( c, ccount ); // character template function return 0; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 17/36

18 Templates Argumentos Explícitos Em algumas situações, não é possível para o compilador deduzir qual é o tipo de argumentos do template. template <class T> T max (T t1, T t2) { return (t1 > t2? t1 : t2); unsigned int ui = 10; int ia = 1; // Erro! Deve instanciar max<unsigned int> ou max<int>? max(ui, ia); Solução: indicar explicitamente a instância desejada: max< unsigned int > (ui, ia); 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 18/36

19 Templates Especialização Explícita Nem sempre é possível escrever uma única função template que funcione bem para todos os tipos para os quais ela pode ser instanciada. Em alguns casos, pode-se tirar vantagem do conhecimento específico que se tem sobre algum tipo para escrever uma função mais eficiente do que a instanciada pelo template. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 19/36

20 Templates Especialização Explícita Em outros casos, a função é simplesmente uma função errada para o tipo: template <class T> T max (T t1, T t2) { return (t1 > t2? t1 : t2); Essa função não funciona corretamente para o tipo const char * (string do C) Para resolver esse problema, pode-se criar uma especialização explícita para a função para o tipo const char*! 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 20/36

21 Templates Especialização Explícita Especialização explícita para const char*: #include <cstring> typedef const char *PCC; template<> PCC max< PCC > (PCC s1, PCC s2) { return ( strcmp( s1, s2) > 0? s1 : s2 ) ; int main () { int i = max (10, 5); // chama int max<int> (int, int); // Chama a especialização max<pcc> (PCC, PCC); const char *p = max ( hello, world ) ; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 21/36

22 Classes Template Pilha template <class T> class Stack{ T* stack ; int top, ssize; public: Stack(int size):top(0),ssize(size){stack = new T[size];; ~Stack() { delete[] stack; void push(t i) { if(top >= ssize) { cout << Too many push()es ; exit(1); stack[top++] = i; T pop() { if (top <= 0) { cout << Too many pop()s ; exit(1); return stack[--top]; ; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 22/36

23 Classes Template Array template<class T> class Array{ private: T* A; int size; public: Array(int tam):size(tam) {A = new T[tam]; T& operator[](int index) { return A[index]; ; int main(){ Array<int> ia(20); Array<float> fa(20); for(int i=0; i<20; i++){ ia[i]=i*i; fa[i]=i*1.414; for(int j=0; j<20; j++) cout << j << : << ia[j] <<, << fa[j] << endl; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 23/36

24 Classes Template Funções não inline template<class T> class Array{ private: T* A; int size; public: Array(int tam); T &operator[](int index); ; // Funções não inline template<class T> Array<T>:: Array(int tam):size(tam){ A = new T[tam]; template<class T> T & Array<T>:: operator[](int index) {return A[index]; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 24/36

25 Classes Template Pilha com Constante template<class T,int sz=100> class Stack { private: T stack[sz]; int top; public: Stack() : top(0){; void push (const T &i); T pop(); int size() { return top ; T peek() const; ; template<class T, int sz> void Stack<T,sz> :: push(const T&i) { if(top >= sz){ cout<< Too many push()es ; exit(1); stack[top++] = i; template<class T, int sz> T Stack<T,sz> :: pop(){ if (top <= 0) {cout<< Too many pop()s ; exit(1); return stack[--top]; template<class T, int sz> T Stack<T,sz> :: peek() const { return stack[top-1]; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 25/36

26 Instanciação das Funções Template Uma função membro de uma classe template também é uma função template; A norma C++ exige que essa função membro somente seja instanciada quando chamada explicitamente ou quando o seu endereço é utilizado (por meio de um ponteiro para a função): Uma função membro de uma classe template não é instanciada automaticamente quando a classe template é instanciada! 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 26/36

27 Classes Template e Membros Static Uma classe template pode declarar membros de dados static. Cada instanciação da classe template vai possuir seu próprio conjunto de membros de dados static. Como todo membro static de dados, ele deve ser inicializado fora da classe: template <class T> class Ponto { T x; T y static int npontos; // etc... ; template <class T> int Ponto<T>::npontos = 0; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 27/36

28 Classes Template e Herança Os conceitos básicos associados à herança também podem ser utilizados em conjunto com classes templates: Além de gerar classes, podem ser geradas hierarquias de classes com templates, sendo que cada hierarquia é parametrizada. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 28/36

29 Classes Template e Herança Podem-se criar: Classes template derivadas de classes template. Classes comuns derivadas de instâncias de classes template. Classes template derivadas de classes comuns. Classes template derivadas de instâncias de classes template. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 29/36

30 Classes Template e Herança Funções virtuais são permitidas na hierarquia, o que permite a utilização de polimorfismo. Pode-se ter também classes template abstratas, etc... 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 30/36

31 Classes Template e Herança template <class T> class Base { // Classe template T b; ; template<class T> class D1 : public Base<T> { // template derivada de template T c; ; template <class T> class D2 : public Base <int> { // template derivada de instância T d; ; class D3 : public Base<float> { // classe comum derivada de instância int f; ; template <class T> class D4 : public D3 { // template derivada de classe comum T g; ; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 31/36

32 Templates e Header Files Existem duas maneiras de organizar o código fonte quando funções e classes templates são utilizadas: Colocar as declarações e definições das classes em um.h. Isso pode parecer que viola a regra normal dos arquivos de cabeçalho, mas definições de templates são especiais, pois o compilador necessita efetuar a substituição de código fonte. Compiladores teoricamente permitem a separação dos arquivos.h e.cpp, mas a palavra chave export deve ser utilizada. A palavra export significa: é acessível a partir de outra unidade de compilação. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 32/36

33 Classes Template e Funções Membro Template Uma função membro de uma classe template pode ser uma função template parametrizada por um outro tipo: template<class T, int size > class Array{ private: T A[size]; public: T &operator[](int index) { return A[index]; template <class Iter> void copy(iter first, Iter last) { for(int i=0; first!= last; ++first, ++i) A[i] = *first; ; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 33/36

34 Classes Template e Funções Membro Template A função membro template também pode ser definida fora da definição da classe: template<class T, int size > class Array{ private: T A[size]; public: T &operator[](int index) { return A[index]; template <class Iter> void copy(iter first, Iter last); ; template <class T, int size> template <class Iter> void Array< T, int size > :: copy(iter first, Iter last){ for(int i=0; first!= last; ++first, ++i) A[i] = *first; 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 34/36

35 Importante Esta apresentação é uma adaptação do material originalmente desenvolvido pelo professor Renato Cardoso Mesquita, do Departamento de Engenharia Elétrica da Universidade Federal de Minas Gerais. 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 35/36

36 That's All Folks! 24/08/15 Programação Orientada a Objetos Renato Dourado Maia 36/36

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Templates BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Os templates ou gabaritos fornecem a base para existência da programação genérica

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Polimorfismo Mais exemplos

Leia mais

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Template Templates Funções templates Especificam

Leia mais

Genéricos. Profa. Thienne Johnson EACH/USP

Genéricos. Profa. Thienne Johnson EACH/USP Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes e Objetos Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Em que Parte do Conteúdo Estamos? Da Unidade III Classes e Objetos, já

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Templates Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Introdução Templates são uma alternativa à sobrecarga de funções, quando estas envolvem lógicas

Leia mais

Programação Orientada a Objetos CLASSES E OBJETOS

Programação Orientada a Objetos CLASSES E OBJETOS Programação Orientada a Objetos CLASSES E OBJETOS Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Em que Parte do Conteúdo Estamos? Da Unidade III Classes e Objetos, já

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Sobrecarga de funções Mesmo nome Mesma semântica Diferentes tipos de dados As vezes a mesma sintaxe... int

Leia mais

Templates. Templates em C++ é o mecanismo que permite que um tipo seja parâmetro de uma classe ou função

Templates. Templates em C++ é o mecanismo que permite que um tipo seja parâmetro de uma classe ou função Templates Por que templates? C++ exige que variáveis, funções ou outras entidades sejam declaradas usando tipos específicos Pode-se acabar muito código que é essencialmente o mesmo, diferenciando-se apenas

Leia mais

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.

Leia mais

Física Computacional 15 Templates

Física Computacional 15 Templates Física Computacional 15 Templates 1. Templates de classes 2. Templates de Funções 3-12-2009 Física Computacional - MEFT 2009/10 P. Bicudo, P. Martins & M. Cardoso 1 Já vimos que através da herança e de

Leia mais

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.

Leia mais

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista == Laboratório 11 == 1. Escreva uma classe Carrinho para armazenar Itens

Leia mais

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Na Última Aula... Considere a definição de um tipo como Shape, a ser

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes e Objetos Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Lembrando Na Unidade II Modelagem Orientada a Objetos, vimos: Como utilizar

Leia mais

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO

Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Programação Orientada a Objetos HERANÇA E COMPOSIÇÃO Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Unidade IV Unidade IV Herança e Composição: Herança simples. Composição.

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Classes e Encapsulamento

Classes e Encapsulamento Classes e Encapsulamento Marcio Santi POO e C++ Tipo Abstrato de Dados (TAD) TAD atributos dados que o representam interface operações associadas como é manipulado 1 Exemplo: Editor Gráfico (classe círculo)

Leia mais

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural

Leia mais

Generics POO. Prof. Marcio Delamaro

Generics POO. Prof. Marcio Delamaro Generics POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/39 O que são Tipos genéricos São uma forma de definir e utilizar classes de forma genérica Dá flexibilidade

Leia mais

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos

Leia mais

//conteúdo do arquivo pacote.h

//conteúdo do arquivo pacote.h //conteúdo do arquivo pacote.h #ifndef PACOTE_H #define PACOTE_H #include #include class Pacote friend istream &operator>> (istream &, Pacote &); friend ostream &operator

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

Programação com genéricos

Programação com genéricos Programação com genéricos Laboratório de Programação Pedro Vasconcelos, DCC/FCUP Fevereiro 2015 Tipos genéricos tipos genéricos permitem definir classes ou interfaces que são parameterizadas por outras

Leia mais

The Cyclops Project. Introdução: C++

The Cyclops Project. Introdução: C++ The Cyclops Project Introdução: C++ Aula 1 Visão Geral Histórico da Linguagem Programa C++: header, source função main() GCC Arquivos objeto, bibliotecas dinâmicas e estáticas #include, #define, namespaces,

Leia mais

Paradigmas de Linguagens de Programação. Subprogramas

Paradigmas de Linguagens de Programação. Subprogramas Cristiano Lehrer Características Gerais dos Cada subprograma tem um único ponto de entrada Toda unidade de programa chamadora é suspensa durante a execução do programa chamado, o que implica na existência

Leia mais

DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação

DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação Funções DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / 07 1 Programação modular Programação modular: divir um programa em módulos mais pequenos Função: um conjunto de instruções que desempenham

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Atribuições: Valores, Ponteiros e Referências

Atribuições: Valores, Ponteiros e Referências Atribuições: Valores, Ponteiros e Referências Estruturas de Dados Prof. Vilson Heck Junior Sobre Variáveis Aprendemos, em introdução à programação, que possuem 3 partes mais importantes: Nome; Tipo de

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

3. Vectores: Algoritmos de Pesquisa. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006)

3. Vectores: Algoritmos de Pesquisa. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) 3. Vectores: Algoritmos de Pesquisa João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Introdução Algoritmo: conjunto

Leia mais

Básico: estrutura de programa, sintaxe Interface com linha de comando

Básico: estrutura de programa, sintaxe Interface com linha de comando Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

Leia mais

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de

Leia mais

Métodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci

Métodos Genéricos. Prof.: Michele Nasu Tomiyama Bucci Métodos Genéricos Prof.: Michele Nasu Tomiyama Bucci Introdução Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Complexidade dos sistemas de software Estrutura Decomposição Abstração Hierarquia Projeto de sistemas complexos

Leia mais

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU Aula 6 POO 1 Construtores Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET43I Aula 5 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens

Leia mais

Fundamentos de Programação 2

Fundamentos de Programação 2 Fundamentos de Programação 2 ET43G Aula 9 Prof. Daniel Cavalcanti Jeronymo e instâncias. Construtores, destrutores e operador de atribuição de cópia. Objetos, atributos, operações: mensagens e métodos,

Leia mais

Introdução a POO. Introdução a Linguagem C++ e POO

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

Leia mais

3.4. Programação Orientada a Objetos

3.4. Programação Orientada a Objetos Paradigmas de Linguagens I 1 3.4. Programação Orientada a Objetos Os conceitos de objetos e classes, vistos nas seções anteriores, são fundamentais na programação orientada a objetos. Complementando a

Leia mais

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos

Leia mais

Linguagem de Programação C++

Linguagem de Programação C++ O que acontecerá se um programa driver para a classe Matriz efetuasse a seguinte sequência de instruções: #include "Matriz.h" int main() char opcao; switch (opcao) case 1: } 201 } int l, c; cout

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 02 Prof. Thomás da Costa thomascosta@aedu.com Recordar é viver Lembrando Programação Estruturada: Estrutura de um programa em C++. Declaração de variáveis. Laços.

Leia mais

Relacionamentos entre objetos

Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores t e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software Estrutura de Dados Aula 01 -Tipos Abstratos de de Dados Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Motivação Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto

Leia mais

Genéricos by Pearson Education do Brasil

Genéricos by Pearson Education do Brasil 1 18 Genéricos 2 OBJETIVOS Neste capítulo, você aprenderá: Como criar métodos genéricos que realizam tarefas idênticas em argumentos de diferentes tipos. Como criar uma classe Stack genérica que pode ser

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Herança simples Composição Combinando composição e herança Polimorfismo e funções virtuais Classes abstratas

Leia mais

facilita o trabalho em equipe, com diferentes grupos trabalhando em cada módulo independente.

facilita o trabalho em equipe, com diferentes grupos trabalhando em cada módulo independente. Estruturação do Programa Queremos organizar um programa de forma a: dividi-lo em partes que realizem tarefas específicas, resumindo um problema complexo a vários problemas mais simples simplifica a elaboração

Leia mais

FICHA 8 PILHAS E FILAS

FICHA 8 PILHAS E FILAS ESTRUTURAS DE DADOS E ALGORITMOS Departamento de Engenharia Eletrotécnica e de Computadores Faculdade de Ciências e Tecnologia da Universidade de Coimbra FICHA 8 PILHAS E FILAS 8.1. Objetivos Objetivos

Leia mais

Controlo de Execução. K&R: Capitulo 3

Controlo de Execução. K&R: Capitulo 3 Controlo de Execução K&R: Capitulo 3 IAED, 2009/2010 Controlo de Execução Instruções e Blocos if else-if switch Ciclos: Instruçõeswhile e for Instruçãodo-while break e continue goto e labels 2 IAED, 2009/2010

Leia mais

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem

Leia mais

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes e Objetos Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Onde Estamos? Da Unidade III Classes e Objetos, já foram trabalhados

Leia mais

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Profa. Thienne Johnson EACH/USP

Profa. Thienne Johnson EACH/USP Profa. Thienne Johnson EACH/USP Declarando classes usando generics Métodos que usam um parâmetro de tipo como tipo de retorno Declaração da classe BasicGeneric: class BasicGeneric Contém o parâmetro

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C++ TRATAMENTO DE EXCEÇÕES

LINGUAGEM DE PROGRAMAÇÃO C++ TRATAMENTO DE EXCEÇÕES LINGUAGEM DE PROGRAMAÇÃO C++ TRATAMENTO DE EXCEÇÕES Roberto S. Bigonha UFMG 15 de setembro de 2008 TRATAMENTO DE EXCEÇÃO PROBLEMA: Bibliotecas têm meios para detectar muitas situações de erro de execução,

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 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

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO SOBRECARGA DE OPERADORES (C++) A sobrecarga de operadores ocorre quando desejamos utilizar operadores jáj conhecidos (+,-,*,/,=,+=...)

Leia mais

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

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

Leia mais

COMPORTAMENTOS - Observações

COMPORTAMENTOS - Observações COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para

Leia mais

Pilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Pilhas. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP Pilhas Algoritmos e Estruturas de Dados I Nesta aula veremos o ADT pilha Uma pilha é usada em muitas situações tais como avaliação de expressões aritméticas, chamada e retorno de procedimentos e funções

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 27 de setembro de 2018 Marco Antonio

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de

Leia mais

Introdução à Disciplina de. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Introdução à Disciplina de. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Disciplina de Estruturas de Dados Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2019 Software = Lógica + Dados Software Niklaus Wirth (1989). Lógica

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Lista de Linguagens de Programação 14

Lista de Linguagens de Programação 14 Lista de Linguagens de Programação 14 Nome: Matrícula: 1. Existem três formas de alocação de memória: memória estática, memória de pilha e alocação em heap. Enquanto endereços estáticos são conhecidos

Leia mais

Template de classe. class vetor { int *arranjo; int limite; public: vetor(int=100); int & operator[ ](int n); };

Template de classe. class vetor { int *arranjo; int limite; public: vetor(int=100); int & operator[ ](int n); }; Template de classe! Idéia é semelhante ao template de função! Usando a classe vetor que foi desenvolvida anteriormente: class vetor { int *arranjo; int limite; public: vetor(int=100); int & operator[ ](int

Leia mais

Ponteiros & tabelas (cont.) K&R: Capítulo 5

Ponteiros & tabelas (cont.) K&R: Capítulo 5 Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.5. Vetores 3.5.1. Vetores 3.5.2. Strings 3.5.3.

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira

# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira # Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira Na aula anterior... Ponteiros Funções Introdução 3 O que vamos aprender? Preparação do ambiente de testes Conceitos

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 7: Interfaces LEEC@IST Java 1/31 Interfaces revisão (1) Uma interface é um conjunto de protótipos de métodos (sem implementações) que especifica um serviço bem definido:

Leia mais

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Aula VIII Prof. Felício Bruzzi Barros Maio de 2008 Sobrecarga de operadores matriz A, B, C, D; multiplica(a,b,c); soma(a,b,d); escreve(d); matriz A, B, C, D; C=A*B; D=A+B;

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações

Leia mais

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância

Leia mais

Suporte a Programação Genérica em Linguagens

Suporte a Programação Genérica em Linguagens Suporte a Programação Genérica em Linguagens Leandro M. Barros UNISINOS Universidade do Vale do Rio dos Sinos Centro de Ciências Exatas e Tecnológicas São Leopoldo, RS, Brasil lmb@exatas.unisinos.br RESUMO

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Namespaces, Classes e Métodos.

Namespaces, Classes e Métodos. . Linguagem de Programação III Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Linguagem

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Linguagem de Programação C++

Linguagem de Programação C++ Exercício: Com base nos conceitos estudados, implemente uma classe que possibilite a instanciação de matrizes de números naturais, com qualquer quantidade de linhas e colunas. Especifique os membros de

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto

Leia mais

Classes, Métodos e Propriedades

Classes, Métodos e Propriedades Ambiente de Programação Visual Classes, Métodos e Propriedades Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos dar continuidade aos elementos de programação da Linguagem C#. Iremos apresentar de

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados Pilhas e Filas Algoritmos e Estruturas de Dados 009/00 Obs: slides marcados com (*) não foram apresentados na aula teórica, mas são parte da bibliografia a estudar! Pilhas Pilha estrutura de dados linear

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Generics - Java. Fernando Santos. Programação Orientada a Objetos

Generics - Java. Fernando Santos. Programação Orientada a Objetos - Java Fernando Santos Programação Orientada a Objetos Generics é uma funcionalidade incorporada ao Java a partir da versão 5.0 Permite aos programadores escreverem métodos genéricos Os parâmetros dos

Leia mais