LINGUAGEM DE PROGRAMAÇÃO C++ CLASSES E OBJETOS

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

Download "LINGUAGEM DE PROGRAMAÇÃO C++ CLASSES E OBJETOS"

Transcrição

1 LINGUAGEM DE PROGRAMAÇÃO C++ E OBJETOS Roberto S. Bigonha UFMG 4 de abril de 2012

2 ESTRUTURAS

3 ESTRUTURAS ESTRUTURAS Cada estrutura (struct) cria um novo tipo Dois tipos estruturas de nomes distintos são diferentes mesmo quando têm exatamente os mesmos membros Os componentes de uma struct podem ser públicos, privados ou protegidos Estruturas podem ser atribuídas, passadas a funções como parâmetros ou retornadas por funções c++/rsb 2

4 ESTRUTURAS ESTRUTURAS COM FUNÇÃO INLINE struct Date { int month, day, year; void display(){ // funç~ao inline cout << day <<" "<< month <<" "<< year <<" "<< era << "\n"; char era; ; int main(int argc, char *argv[]){ Date data = {5, 19, 1948, A ; data.display(); Saída: A c++/rsb 3

5 ESTRUTURAS ESTRUTURAS COM FUNÇÃO NÃO-INLINE struct Date { int month, day, year; void display(); char era; ; void Date::display(){ cout << day <<" "<< month <<" "<< year <<" "<< era << "\n" ; int main(int argc, char *argv[]){ Date data = {5, 19, 1948, A ; data.display(); Saída: A c++/rsb 4

6 ESTRUTURAS INICIAÇÃO DE ESTRUTURAS struct Date { int month, day, year; void display(){ cout << day <<" "<< month <<" "<< year <<" "<< era << "\n" ; private: char era; ; int main(int argc, char *argv[]){ Date data = {5, 19, 1948, A ; data.display(); Mensagem do compilador: constructor, not by... data must be initialized by c++/rsb 5

7 ESTRUTURAS ESTRUTURAS COM CONSTRUTORA struct Date { int month, day, year; Date(int m,int d,int y,char e){month=m;day=d;year=y;era=e;; void display(){ cout << day <<" "<< month <<" "<< year <<" "<< era << "\n" ; private: char era; ; int main(int argc, char *argv[]){ Date data(5, 19, 1948, A ); data.display(); Saída: A c++/rsb 6

8

9 Uma classe consiste em uma estrutura de dados com habilidade para ocultar alguns de seus componentes e membros funções para manipular esta estrutura Classes servem para definir novos tipos abstratos de dados Definição de classes é um um molde para fazer objetos Membros da classe podem ser: membros de dados, funções construtoras, funções destruidoras e membros funções (métodos) As operações da classe são definidas por membros que são funções Estruturas (struct) são classes em que membros sem especificação de visibilidade são públicos: struct A {... é equivalente a class A {public:... c++/rsb 8

10 VISIBILIDADE DOS MEMBROS Uma declaração de classe pode conter membros privados (private), protegidos (protected) e públicos (public) private: membros declarados como privados somente são acessíveis aos membros funcionais da classe public: membros declarados como públicos têm a mesma regra de escopo de membros de struct e podem ser referenciados via qualificação. Membros publics definem a interface da classe protected: membros protegidos são membros privados que são accessíveis nas subclasses No corpo de funções membros, todos os membros da classe podem ser referenciados diretamente, sem necessidade de qualificação c++/rsb 9

11 DEFINIÇÃO DE UMA CLASSE class Box{ private: int h, w, d; public: Box(int, int, int); void set(int, int, int); int volume(void); ; Box::Box(int ht, int wd, int dp) { h = ht; w = wd; d = dp; int Box::set(int a,int b,int c){h = a; w = b; d = c; int Box::volume(){ return h * w * d; c++/rsb 10

12 APLICAÇÃO DA CLASSE Box int main(){ // declara um cubo Box thisbox(4, 5, 2); Box* otherbox = new Box(1, 2, 3); // calculo & exibicao de volume cout << thisbox.volume() << " " << otherbox->volume(); return 0; c++/rsb 11

13 DECLARAÇÃO DE OBJETOS No momento da declaração dos objetos, memória para os membros é alocada, e a função construtora é chamada. A declaração de objetos pode ter parâmetros de inicialização, e.g.: Box thisbox(7, 8, 9) ; Box otherbox = Box(7, 8, 9); Declaração de Objetos da Memória Livre: Box* p = new Box(7, 8, 9); c++/rsb 12

14 PALAVRA CHAVE this class Box{ int h, w, d; public: Box(int, int, int); void set(int, int, int); int volume(void); ; Box::Box(int ht, int wd, int dp) { this->h = ht; this->w = wd; this-> = dp; int Box::set(int a,int b,int c){this->h=a;this->w=b;this->d=c; int Box::volume(){ return this->h * this->w * this->d; c++/rsb 13

15 APONTADOR this this é um apontador especial que existe em toda função não-estática membro de classe this aponta para o objeto para o qual a funcao membro está sendo executada this é um parâmetro formal que sempre corresponde ao objeto corrente Quando uma função membro é chamada, this recebe automaticamente o endereço do objeto correspondente Toda referência a membro de dados feita a partir de uma função membro usa implicitamente o operador this Função membro estática não pode usar this c++/rsb 14

16 IMPLEMENTAÇÃO DO this this tem tipo X*, onde X é a classe correspondente this não pode ser modificado A função Box::volume() é compilada como: int volume(box* const this){ return this->height * this->width * this->depth; int main(){ Box thisbox(4, 5, 2); Box* otherbox = new Box(1, 2, 3);... thisbox.volume(); // volume(&thisbox);... otherbox->volume(); // volume(otherbox);... c++/rsb 15

17 MEMBROS DE CLASSE ESTÁTICOS Membro de classe pode ser definido como static Um membro estático é comum a todos os objetos da classe, havendo sempre apenas uma instância do membro, que é compartilhado por todos os objetos da classe O membro estático (dado ou função) deve ser anunciado na classe e definido fora dela para que passe a existir Membros estáticos obedecem às regras de escopo usuais para qualquer membro de classe Função membro estática só pode ter acesso a outros membros estáticos da classe Função membro estática não pode usar o apontador this c++/rsb 16

18 MEMBROS DE CLASSE ESTÁTICOS... class List { static List *minhalista; <== declaraç~ao... public: static void display(); <== declaraç~ao... ; List *List::minhaLista; List *List::display( ){... ;... <=== definiç~ao <=== definiç~ao c++/rsb 17

19 EXECUÇÃO DE MEMBRO ESTÁTICO SEM OBJETO class Date { int mo, da, yr; public: static int format; // 1 = mm/dd/yy, 2 = dd/mm/yy Date(int m, int d, int y){ mo = m; da = d; yr = y; void display(); ; int Date::format; void Date::display() { if (format == 1)cout << mo << / << da; else cout << da << / << mo; cout << / << yr; c++/rsb 18

20 EXECUÇÃO DE MEMBRO ESTÁTICO SEM OBJETO... int main(){ char ch = 0 ; while (ch!= 3 ){ cout << "\n 1 = mm/dd/yy"; cout << "\n 2 = dd/mm/yy"; cout << "\n 3 = quit\n "; cin >> ch; if (ch == 1 ch == 2 ){ Date::format = ch - 0 ; Date dt(6, 24, 40); dt.display(); return 0; c++/rsb 19

21 FUNÇÃO CONSTRUTORA Tem o mesmo nome da classe e não tem tipo de retorno É opcional. Neste caso, declarações de objetos não implicam em chamadas de funções construtoras Pode haver mais de uma função construtora por classe, via overloading É chamada automaticamente na declaração de objetos c++/rsb 20

22 CONSTRUTORA DEFAULT int n = 0; class Par { int ordem; int nota; public: Par(int ordem = 1, int nota = 10 ){ this->ordem = ordem; this->nota = nota; n++; int f( ){return ordem; int g( ){return nota; ; int main(int argc, char *argv[]) { Par x(1,10); Par t; Par s(1); Par r[10]; Par u(1,10)[10]; //Erro:n~ao se aceitam par^ametros aqui! printf("%d %d % d\n", n, r[9].f(), r[9].g());// Saída: c++/rsb 21

23 FUNÇÃO CONSTRUTORA PRIVADA Construtora privada proíbe criação de objetos por terceiros class A { int x; A( ){ ; public: void f( ){ ; int main( ){ A a; Mensagem do Complilador: A::A() is private c++/rsb 22

24 FUNÇÃO DESTRUIDORA Tem sempre o nome da classe prefixada por No máximo uma por classe Não tem parâmetro e nada retorna Chamada implicitamente quando objeto da classe sai do escopo, isto é, no momento retorno de funções ou pelo uso do operador delete c++/rsb 23

25 TEMPO DE VIDA DE OBJETOS Objeto automático é alocado quando sua declaração é encontrada e liberado quando se sai do bloco que a contém Objetos criados pelo operador new existem até que sejam destruídos pelo delete O endereço retornado pelo new deve ser passado ao delete O tipo do objeto destruído depende do tipo do apontador passado ao delete c++/rsb 24

26 CONSTRUTORA/DESTRUIDORA E FREE STORE new chama a construtora delete chama a destruidora class Date{ int mo, da, yr; public: Date(); ~Date(); ; Date::Date(){cout << "\n Funcao construtora DATE "; Date::~Date(){cout << "\n Funcao destruidora DATE"; c++/rsb 25

27 CONSTRUTORA/DESTRUIDORA E FREE... int main(){ Date *dt = new Date; cout << "\nprocessa as datas "; delete dt; return 0; SAIDA: Funcao construtora Date Processa as datas Funcao destruidora c++/rsb 26

28 FUNÇÕES DESTRUIDORAS E FREE STORE class Date { int mo, da, yr; char *month; // default: private public: Date(); Date(int m, int d, int y); ~Date(); void display(); ; void Date::display() { if (month!= NULL) cout << \n << month << << da << ", " << yr; c++/rsb 27

29 FUNÇÕES DESTRUIDORAS E FREE STORE... Date::Date(){ mo = 0; da = 0; yr = 0; month = NULL; Date::Date(int m, int d, int y) { static char *mes[] = { "Janeiro","Fevereiro","Março","Abril","Maio", "Junho","Julho","Agosto","Setembro", "Outubro", "Novembro","Dezembro"; mo = m; da = d; yr = y; month = new char[strlen(mes[m-1])+1]; strcpy(month, mes[m-1]); Date::~Date() {if (month!= NULL) delete month; int main() { Date birthday(5,19,1948); birthday.display(); c++/rsb 28

30 FUNÇÃO MEMBRO CONSTANTE class A { int x; public: A(){x = 10; void setx(int x) { this->x = x; int getx( ) const {return ++x; //ERRO ; int main(int argc, char *argv[]){ A a; printf("a.x = %d ", a.getx()); const A c; printf("c.x = %d\n", c.getx()); c++/rsb 29

31 FUNÇÃO MEMBRO CONSTANTE... class A { int x; public: A(){x = 10; void setx(int x) { this->x = x; int getx( ) const {return x; // OK ; int main(int argc, char *argv[]){ A a; printf("a.x = %d ", a.getx()); const A c; printf("c.x = %d\n", c.getx()); Saída: a.x = 10 c.x = 10 c++/rsb 30

32 OBJETO CONSTANTE class A { int x; public: A() {x = 10; void setx(int x) { this->x = x; int getx( ) const {return x; ; int main(int argc, char *argv[]){ A a; a.setx(100); // OK const A c; c.setx(1000); // ERRO c++/rsb 31

33 FIM c++/rsb 32

LINGUAGEM DE PROGRAMAÇÃO C++ SOBRECARGA DE OPERADORES

LINGUAGEM DE PROGRAMAÇÃO C++ SOBRECARGA DE OPERADORES LINGUAGEM DE PROGRAMAÇÃO C++ Roberto S. Bigonha UFMG 6 de abril de 2009 Sobrecarregar significa definir mais uma função para o operador Não é possível mudar a sintaxe do operador Não é possível mudar

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C++ SOBRECARGA DE OPERADORES SOBRECARGA DE OPERADORES MOTIVAÇÃO PARA SOBRECARGA DE OPERADORES...

LINGUAGEM DE PROGRAMAÇÃO C++ SOBRECARGA DE OPERADORES SOBRECARGA DE OPERADORES MOTIVAÇÃO PARA SOBRECARGA DE OPERADORES... LINGUAGEM DE PROGRAMAÇÃO C++ Roberto S. Bigonha UFMG 6 de abril de 2009 MOTIVAÇÃO PARA MOTIVAÇÃO PARA char *month; Date(); Date(int m, int d, int y); ~Date(); void display(){ if (month!= NULL) cout

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C++ HIERARQUIA DE CLASSES

LINGUAGEM DE PROGRAMAÇÃO C++ HIERARQUIA DE CLASSES LINGUAGEM DE PROGRAMAÇÃO C++ HIERARQUIA DE CLASSES Roberto S. Bigonha UFMG 01 de abril de 2009 HIERARQUIA DE CLASSES HIERARQUIA DE CLASSES HERANÇA SIMPLES herança é uma técnica para construir novas classes,

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

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização

Leia mais

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis

Leia mais

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores

Leia mais

Funções. definição, declaração e chamada

Funções. definição, declaração e chamada Funções definição, declaração e chamada Funções Em C, um programa é uma coleção de FUNÇÕES. Uma função é um bloco de código que recebe um nome e que tem possivelmente PARÂMETROS. A partir do nome, o bloco

Leia mais

Técnicas de Programação:

Técnicas de Programação: Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.

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

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

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas

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

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15 Diagrama de Classes Conceitos Básicos prof. Robinson Vida (vida@utfpr.edu.br) 1 Função do Diagrama de Classes Permitir a visualização das classes que comporão o sistema com seus respectivos atributos e

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

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

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação

Leia mais

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto

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

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

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

LINGUAGEM DE PROGRAMAÇÃO C++ HIERARQUIA DE CLASSES HIERARQUIA DE CLASSES HERANÇA SIMPLES DEFINIÇÃO UMA CLASSE BASE

LINGUAGEM DE PROGRAMAÇÃO C++ HIERARQUIA DE CLASSES HIERARQUIA DE CLASSES HERANÇA SIMPLES DEFINIÇÃO UMA CLASSE BASE LINGUAGEM DE PROGRAMAÇÃO C++ HIERARQUIA DE CLASSES Roberto S. Bigonha UFMG HIERARQUIA DE CLASSES 01 de abril de 2009 HERANÇA SIMPLES HIERARQUIA DE CLASSES DEFINIÇÃO UMA CLASSE BASE HIERARQUIA DE CLASSES

Leia mais

Programação em C++: Introdução

Programação em C++: Introdução Programação em C++: Introdução J. Barbosa J. Tavares Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo (Knuth73v1) Ex: ordenação

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

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

Modificadores de Acesso JAVA

Modificadores de Acesso JAVA Modificadores de Acesso JAVA Definição Os modificadores de acesso são padrões de visibilidade de acessos às classes, atributos e métodos. Esses modificadores são palavras-chave reservadas do Java. E as

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

C++ Orientado a Objetos

C++ Orientado a Objetos flavio@facom.ufu.br flaviosilva@computer.org a@comp org 1 Declaração As variáveis em C++ podem ser de duas diferentes naturezas Uma variável pode conter um VALOR ou um ENDEREÇO VALOR A declaração de uma

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

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

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 3: Introdução à linguagem C++ Introdução à linguagem C++ Vetores Estruturas Objetos Arquivos-texto 1 Vetores Vetores são uma séria de

Leia mais

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node { Listas (cont.) K&R: Capitulo 6 Lista Simplesmente Ligada Conjunto de nós head NULL Cada nó contém Informação útil Ponteiro para o próimo nó typedef struct node Item item; struct node *net; *link; Item

Leia mais

UNIFEI Disciplina Professor

UNIFEI Disciplina Professor UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO02 Enganharia de Software II Enzo Seraphim Nota de aula de Java Encapsulamento

Leia mais

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Dinâmica de Memória David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

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

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

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Instituto de Informática Estrutura de Dados II

Instituto de Informática Estrutura de Dados II Instituto de Informática Estrutura de Dados II Revisão de Métodos em Classes Aplicada a Estrutura de Dados Básicas 20/08/2018 Profa. Lucília Gomes Ribeiro Prof. Dirson S Campos Programação em Java q O

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira

Linguagens de Programação Conceitos e Técnicas. Amarrações Prof. Tiago Alves de Oliveira Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Tiago Alves de Oliveira Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável

Leia mais

Aula 24: Ponteiros e Alocação Dinâmica

Aula 24: Ponteiros e Alocação Dinâmica Aula 24: Ponteiros e Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula anterior Memória Ponteiro Utilização

Leia mais

13/11/15. Incrementando C: C++ E na especificação de BigInt... Arquitetura da solução exemplo. O arquivo de declarações. Explorando a classe BigInt

13/11/15. Incrementando C: C++ E na especificação de BigInt... Arquitetura da solução exemplo. O arquivo de declarações. Explorando a classe BigInt Incrementando C: permite: Definir uma classe para números grandes; Manter o código bem parecido com o programa C. O mesmo programa em C (e até mesmo em Java) não são tão convenientes e elegantes. #include

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon Algoritmos e Programação Linguagem C Procedimentos e Funções Eliane Pozzebon Procedimentos e Funções Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento

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

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 Tópicos picos Definição de estrutura Acessando membros de estruturas O tipo horario com struct Implementando horario com class Escopo

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Funções. definição, declaração e chamada

Funções. definição, declaração e chamada Funções definição, declaração e chamada Funções Em C, um programa é uma coleção de FUNÇÕES. Uma função é um bloco de código que recebe um nome e que tem possivelmente PARÂMETROS. A partir do nome, o bloco

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos 1 Programação Orientada a Objetos A linguagem C, desde a sua primeira especificação, vem sendo desenvolvida com várias extensões. De uma dessas extensões foi criada a Linguagem C++ onde encontramos diversas

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

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 Introdução ao C++ Ambientes de Desenvolvimento Avançados 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 C++! Extensão ao c! Facilita a representação de tipos de dados abstractos (tipo classe)! Suporte

Leia mais

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,

Leia mais

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo

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

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

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

Passagem de parâmetros

Passagem de parâmetros Programação com Classes em C++ (cont.) João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) FEUP - LEEC - AED - 2004/2005 Passagem de parâmetros Três maneiras de passar parâmetros: Por

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 04 Prof. Thomás da Costa thomascosta@aedu.com O que é: Matrizes São vetores que possuem duas ou mais dimensões para armazenar valores. Uma matriz de duas dimensões,

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

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento Orientação a objetos Programação Orientada a Objetos Alexandre César Muniz de Oliveira Linguagens orientadas a procedimentos e linguagens orientadas a objetos Unidade de programação: funções e classes

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações

Linguagens de Programação Conceitos e Técnicas. Amarrações Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Luiz Chaimowicz, Raquel O. Prates, Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados II DCC UFMG Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática

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

Linguagem C (continuação)

Linguagem C (continuação) Linguagem C (continuação) Funções, arrays e ponteiros Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 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

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Elerson R. S. Santos elerson@dcc.ufmg.br Algoritmos e Estruturas de DCC UFMG Variáveis Uma variável representa um nome simbólico para uma posição de memória. Cada posição de

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

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 6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded

Leia mais

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros Métodos Computacionais Funções, Escopo de Variáveis e Ponteiros Tópicos da Aula Hoje vamos detalhar funções em C Escrevendo funções Comando return Passagem de argumentos por valor Execução de uma função

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013

Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013 Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança

Leia mais

C++ - Funções. Forma geral das funções C++

C++ - Funções. Forma geral das funções C++ C++ - Funções Conjunto de instruções para executar uma tarefa particular, agrupadas numa unidade com um nome para referenciá-las. O código é agregado ao programa uma única vez e pode ser executado muitas

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Classes e Objetos, Construtores e Desconstrutores, Atributos e

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

1 Introdução e Conceitos básicos

1 Introdução e Conceitos básicos 1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA

Leia mais

ALGORITMOS. Estruturas de Controle de fluxo

ALGORITMOS. Estruturas de Controle de fluxo ALGORITMOS Estruturas de Controle de fluxo O que veremos hoje? Introdução Estruturas de Controle de Fluxo em C Exercícios Estruturas de Controle de Fluxo Estruturas de controle de fluxo São estruturas

Leia mais

Classes e Objetos. Prof. Leonardo Barreto Campos 1

Classes e Objetos. Prof. Leonardo Barreto Campos 1 Classes e Objetos Prof. Leonardo Barreto Campos 1 Sumário Introdução; Escopo de Classe e Acesso a Membros de Classes; Exercício; Os Métodos get e set; Separação de Interface e Implementação; Construtores

Leia mais

Conceito de classe em C++

Conceito de classe em C++ Introdução à Programação com Classes em C++ 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 Conceito de classe em

Leia mais

1 - O que será impresso quando o seguinte programa escrito na linguagem JAVA for compilado e executado?

1 - O que será impresso quando o seguinte programa escrito na linguagem JAVA for compilado e executado? 1 - O que será impresso quando o seguinte programa escrito na int i; do i++; while(i < 0); System.out.println(i); a) O programa não compila pois a variável i não foi inicializada. b) O programa compila,

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

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição

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

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

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento. Introdução Atributos, métodos e encapsulamento joao@ecomp.uefs.br Atributos Ipos de acesso: private, public, protected e default Encapsulamento Métodos Construtores Criando objetos Departamento de Ciências

Leia mais

Diagramas Sintáticos

Diagramas Sintáticos Diagramas Sintáticos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Cada classe X pública é declarada num ficheiro

Leia mais

Cap. 3 Entrada e Saída e Controle de Fluxo

Cap. 3 Entrada e Saída e Controle de Fluxo Programação de Computadores II Cap. 3 Entrada e Saída e Controle de Fluxo Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

Aula 27: Estruturas heterogêneas e alocação dinâmica

Aula 27: Estruturas heterogêneas e alocação dinâmica Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

Linguagens de Programação Aula 11

Linguagens de Programação Aula 11 Linguagens de Programação Aula 11 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções

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 por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo

Leia mais

Listas Lineares Ordenadas

Listas Lineares Ordenadas Listas Lineares Ordenadas Algoritmos e Estruturas de Dados I Nesta apresentação será apresentado o ADT lista linear ordenada Uma lista linear ordenada, ou simplesmente lista ordenada há uma ordem entre

Leia mais

Módulo 7 Cadeias de Caracteres

Módulo 7 Cadeias de Caracteres Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais