Uma Introdução Usando C++

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

Download "Uma Introdução Usando C++"

Transcrição

1 Uma Introdução Usando C++» If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one? «Tom Cargill» C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. «Bjarne Stroustrup Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 3 Sobre o que é que vamos falar? Primeira parte... Linguagens de programação Conceitos de programação orientadas aos objectos Representação visual dos mesmos (UML) Como é que se exprimem em C++ Paradigmas de Programação Actualmente existem quatro paradigmas de linguagens de programação em uso comum: Imperativas (e.g. C, Pascal, Fortran) Funcionais (e.g. LISP, Scheme) Lógicas/Declarativas (e.g. Prolog) Orientadas-aos-Objectos (e.g. Java, C++, C#, Smalltalk) Segunda parte... Network Simulator, uma aplicação OOP Hoje em dia a indústria é dominada pelos paradigmas Imperativo e Orientado-aos-Objectos 2 4

2 Linguagens Imperativas Para programar um computador diz-se que PROGRAMA = ESTRUTURAS DADOS + ALGORITMOS Programação Orientada aos Objectos Em OOP (Object-Oriented Programming), as funções estão encapsuladas juntamente com os dados a que podem (e devem aceder) No programa existem variáveis que representam os dados Existe um conjunto de instruções que sucessivamente, a cada instrução, altera o valor das variáveis, manipulando os dados Segue de forma bastante próxima o modelo básico de funcionamento do processador Exemplos: C, Pascal, Fortran Dados h() f() g() Dados h() Dados q() f() g() l() m() 5 7 Programação Orientada aos Objectos Programação Orientada aos Objectos Os grandes problema da programação imperativa, estruturada: Grande Acoplamento! Baixa Coesão! f() g() h() f() f() j() f() f() m() f() l() f() f() f() k() p() A principal ideia das objectos é que: Apenas as funções relacionadas com os dados lhes podem aceder Reduzir o acoplamento e aumentar a coesão Isto é, permitir a construção de software em projectos de larga escala, de forma consistente e fácil de gerir Para além disso, é muito mais natural pensar em termos de objectos e suas relações do que em termos de dados e algoritmos Programação Imperativa Procedimental: PROGRAMA = DADOS + ALGORITMOS Estruturas de Dados Programação Orientada aos Objectos PROGRAMA = OBJECTOS + RELAÇÕES Temos os dados, e o programa é constituído por milhares de funções que -- Ou manipulam directamente esses dados -- Ou trocam imensos valores por parâmetro 6 8

3 Programação OOP e o C++ Fundamentos da OOP Ole-Johan Dahl e Kristen Nygaard, Noruegueses, inventam a linguagem Simula-67, para simulação. A motivação foi que ao realizarem simulações sobre o mundo real, com centenas de entidades, tornava-se inviável especificar explicitamente todas as interacções possíveis. Introduziu o conceito de classe/encapsulamento, objecto e uma forma de herança Noção de Classe e Objecto Encapsulamento Alan Kay, Americano, inventa a linguagem SmallTalk (circa 1972), considerada a primeira verdadeira linguagem OOP Tudo são objectos; Os objectos comunicam trocando mensagens. Fortemente associada ao GUI!...inventou o conceito de computador pessoal, GUI e Portátil, numa altura em que tal era... RADICAL! There is no reason anyone would want a computer in their home." (Ken Olsen, Digital Equipment Corp, 1977) Herança Polimorfismo 9 11 Programação OOP e o C++ Bell Labs, 1979, Bjarne Stroustrup queria ter classes e objectos na linguagem C Motivação: análise do Kernel do UNIX para possibilitar computação distribuída!... OOP facilitaria o processo Criou um pré-processador que compilava a sua linguagem C with Classes para C 1983, a linguagem é renomeada C : primeira versão comercial Primeira linguagem com suporte OOP largamente utilizada na indústria Dominou os anos 90. Última versão do standard: 2003 Devido à complexidade da linguagem, praticamente nenhum compilador implementa o standard completamente... Preliminares... (Temos de garantir os básicos!) // Importa biblioteca e passa a usar o espaço de nomes standard #include <iostream> #include <vector> using namespace std; // Programa principal int main() // Declara uma tabela de inteiros de tamanho variável vector<int> mytable; // Adiciona-lhe 10 números for (unsigned i=0; i<10; i++) mytable.push_back(i); // Imprime o seu conteúdo for (unsigned i=0; i<mytable.size(); i++) cout << mytable[i] << endl; return 0; 10 12

4 O resultado... Mais alguns exemplos Uma REDE possui NODOS. Cada NODO pode ser um COMPUTADOR ou um REPETIDOR Rede, Nodo, Computador e Repetidor são classes! Numa rede pode fazer-se um Broadcast Broadcast é um método! Um nodo pode enviar e receber PACOTEs Enviar e Receber são métodos! PACOTE é uma classe! Um LEITOR_DE_MP3 toca MUSICA! LEITOR e MUSICA são classes! Toca é um método! Noção de Classe e Objecto Uma classe representa um grupo (ou tipo) de coisas Exemplo: Pessoa, Automóvel É sempre um NOME Uma classe tem operações associadas: métodos Os métodos representam acções sobre uma entidade, logo são VERBOS Um objecto (ou instância) representa uma coisa em particular de um grupo. Exemplo: Paulo Marques, XM Toda a programação OOP baseia-se em encontrar classes e relações entre classes! Classe Pessoa Pessoa.h class Pessoa string _nome; int _idade; Pessoa(string nome, int idade); void imprime(); ; Basics.cpp #include "Pessoa.h int main() Pessoa aluno("carlos Manuel", 30); Pessoa professor("guilherme To", 23); aluno.imprime(); professor.imprime(); 14 return 0; 16

5 Classe Pessoa A implementação de Pessoa... Pessoa aluno("carlos Manuel", 30); Pessoa professor("guilherme To", 23); aluno.imprime(); professor.imprime(); Pessoa.cpp Pessoa::Pessoa(string nome, int idade) _nome = nome; _idade = idade; void Pessoa::imprime() cout << "[" << _nome << "/" << _idade << "]" << endl; Classe Pessoa Pessoa aluno("carlos Manuel", 30); Pessoa professor("guilherme To", 23); aluno.imprime(); professor.imprime(); classe objectos (instâncias) A existência de classes de coisas e as suas instâncias, permitem-me manipular e simular o mundo de forma abstracta! A noção de encapsulamento os dados estarem escondidos é fundamental! Herança É possível definir especializações de uma classe base. Chama-se a isso uma classe derivada A classe derivada contém tudo o que a base contém, mas com informação/métodos adicionais Um COMPUTADOR é um NODO de rede. Um REPETIDOR é um NODO de rede. Computador e Repetidor são tudo o que um Nodo de rede é, mas tendo funcionalidade específica! São classes derivadas de nodo! Um PATRÃO é uma PESSOA. Um EMPREGADO é uma PESSOA. Em qualquer caso, é possível encarar um Patrão ou um Empregado como sendo pessoas! Têm é mais funcionalidade. São classes derivadas! 18 20

6 Classes Patrão e Empregado Patrao.h class Patrao : public Pessoa string _codigoempresa; Patrao(string nome, int idade, string codigo); void abrecofre(); ; E agora, a execução... Patrao patrao("carlos Manuel", 30, "1234F"); Empregado empregado("guilherme To", 23); patrao.imprime(); patrao.abrecofre(); empregado.imprime(); empregado.abrebalcao(); Empregado.h class Empregado : public Pessoa Empregado(string nome, int idade); void abrebalcao(); ; Pessoa -_nome -_idade +Pessoa(in nome, in idade) +imprime() Patrao -_codigoempresa +Patrao(in nome, in idade, in codigo) +abrecofre() +imprime() Empregado +Empregado(in nome, in idade) +abrebalcao() +imprime() Classes Patrão e Empregado (2) Patrao.cpp Patrao::Patrao(string nome, int idade, string codigo) : Pessoa(nome, idade), _codigoempresa(codigo) Interlúdio... Antes de podermos examinar o que é polimorfismo, temos de lidar com alguns detalhes... void Patrao::abreCofre() cout << "Eheh, a abrir o cofre. Codigo: " << _codigoempresa << endl; Empregado.cpp Empregado::Empregado(string nome, int idade) : Pessoa(nome, idade) void Empregado::abreBalcao() cout << "Puff.. a abrir o balcao." << endl; 22 24

7 Passagem por Valor, Referência e por Ponteiro Passagem por Referência (C++) Em C++, os parâmetros das funções podem ser passados por valor, por referência ou por ponteiro. Na passagem por valor, apenas uma cópia do valor é passado. Dentro da rotina, alterações na variável não afectam a variável original. Na passagem por referência, a variável que se encontra no parâmetro representa a variável original. Alterações na variável são reflectidas na variável original. Na passagem por ponteiro, é passado o endereço de memória onde se encontra o dado original. É possível guardar informação sobre onde se encontram esse dado. #include <iostream> using namespace std; void lenome(string& nome) nome = Critical ; cout << nome << endl; void main() string nome = XSoft ; lenome(nome); cout << nome << endl; Ao chamar-se lenome(), nome em lenome() representa a variável original com a qual se chama o programa (note-se que não têm de ter o mesmo nome). Alterações feitas sobre variável na função reflectem-se na variável original! Imprime Critical Critical Passagem por Valor (C++) Ponteiros (C++) #include <iostream> using namespace std; void lenome(string nome) nome = Critical ; cout << nome << endl; void main() string nome = XSoft ; lenome(nome); cout << nome << endl; Ao chamar-se lenome(), o valor de nome é copiado para dentro da função. Não existe nenhuma relação entre a variável nome de lenome() e a variável nome do programa principal, excepto o seu valor inicial. Imprime Critical XSoft Em C++ moderno, a principal utilidade do uso de ponteiros é permitir guardar uma referência para um certo objecto. Notação... // Uma string string nome = Critical ; // Um ponteiro para uma string... string* ptrnome = 0; // Uma atribuição... ptrnome = &nome; // Acesso à string original... cout << *ptrnome << endl; nome (0x5490) Critical ptrnome (0x6000) 0 ptrnome (0x6000) 0x

8 Passagem de Ponteiros (C++) A classe Pessoa tem de ser modificada... string* ptrnome = 0; void guardanome(string* nome) ptrnome = nome; void imprimenome() cout << *ptrnome << endl; void main() string nome = XSoft ; Em C++ moderno, a principal utilidade do uso de ponteiros é permitir guardar uma referência para um certo objecto, para ser utilizado mais tarde. Imprime XSoft Critical Pessoa.h class Pessoa string _nome; int _idade; Pessoa(string nome, int idade); virtual void imprime(); ; A palavra chave virtual indica que o método foi pensado para ser modificado numa classe derivada. Quando se usa um ponteiro do tipo Pessoa*, o ambiente de execução tem de procurar saber qual é a verdadeira classe do objecto e chamar o método correcto guardanome(&nome); imprimenome(); nome = Critical ; imprimenome(); Sempre que se declara um método virtual, deve criar-se um destrutor virtual. Nós não iremos abordar esses tópicos neste crash course. Mas, no mundo real, se isto não for feito por levar a graves memory leaks! Polimorfismo Redefinição dos métodos imprime() Capacidade de objectos diferentes se comportarem de forma diferente quando recebem a mesma mensagem. Permite tratar da mesma forma todos os objectos. (uma mensagem é uma invocação de um método...) Um PATRÃO quando calcula o ordenado, calcula-o como sendo uma percentagem dos lucros da empresa. Um EMPREGADO, calcula-o como sendo um valor constante. Quando se chama imprime() em PATRÃO, deve dizer que é um patrão antes de dar os dados. Em empregado, deverá dizer que é um empregado. Patrao patrao( Sofia", 30, "1234F"); Empregado empregado( Carlos", 23); Pessoa* umapessoa; umapessoa = &patrao; umapessoa->imprime(); umapessoa = &empregado; umapessoa->imprime(); Imprime PATRAO[Sofia / 30] EMPREGADO[Carlos / 23] Comportamento diferente apesar de ser o mesmo código! 30 Patrao.h class Patrao : public Pessoa string _codigoempresa; Patrao(string nome, int idade, string codigo); void abrecofre(); virtual void imprime(); ; Empregado.h class Empregado : public Pessoa Empregado(string nome, int idade); void abrebalcao(); virtual void imprime(); ; Patrao.cpp void Patrao::imprime() cout << PATRAO ; Pessoa::Imprime(); Empregado.cpp void Empregado::imprime() cout << EMPREGADO ; Pessoa::Imprime(); 32

9 A execução... Winston Churchill 33 Questions? 35 Herança, Polimorfismo e Redefinição Um aspecto muito importante do uso da herança é que todas as partes comuns, mesmo em termos de algoritmos, devem ser agrupadas na classe base. As classes abaixo são especializações Quando se redefine um método, pode sempre invocar-se a funcionalidade que já se encontrava disponível. E.g. Pessoa::imprime() Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September The operators affixed the moth to the computer log, with the entry: First actual case of bug being found. They put out the word that they had debugged the machine, thus introducing the term debugging a computer program. In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia. 34 U.S. Naval Historical Center Photograph. 36

10 Simple Network B Network Simulator Um pequeno caso de estudo A E C D F Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 39 Aviso! O exemplo que se segue é limitado e serve unicamente para ilustrar os pontos anteriormente explorados Em C++ real, existem algumas coisas que são feitas neste código que não devem ser feitas Eventuais problemas com memory leaks Performance... péssima Porquê é que o fazemos? Infelizmente, nesta short session, não é possível estudar a linguagem a fundo... Simple Network (2) Temos NODOS Cada NODO pode ser um COMPUTADOR ou um REPETIDOR Os nodos enviam() e recebem() PACTOREs Os NODOS pertencem a uma SUBREDE Uma SUBREDE pode ter vários NODOS Um COMPUTADOR apenas pertence a uma SUBREDE Um REPETIDOR pode pertencer a várias SUBREDEs» It has been discovered that C++ provides a remarkable facility for concealing the trival details of a program such as where its bugs are «David Keppel 38 40

11 Diagrama UML Implementação Programa Principal (Network.cpp) Subnet -_nodes +addnode() +broadcast() * 1 1 * Node -_name +getname() +sendpacket() +receivepacket() +addtosubnet() «uses» Packet -_from -_to -_msg +getorigin() +getdestination() +getmessage() +print() int main() Computer computera("computer_a"); Computer computerb("computer_b"); Computer computerc("computer_c"); Computer computerd("computer_d"); Computer computere("computer_e"); Computer computerf("computer_f"); Bridge bridge("mybridge"); A B C E D F 1 Computer -subnet +sendpacket() +receivepacket() +addtosubnet() Bridge -subnets +sendpacket() +receivepacket() +addtosubnet() 1 Subnet subnet1; subnet1.addnode(computera); subnet1.addnode(computerb); subnet1.addnode(computerc); subnet1.addnode(bridge); Subnet subnet2; subnet2.addnode(computerd); subnet2.addnode(computere); subnet2.addnode(computerf); subnet2.addnode(bridge); 41 Packet p1("computer_a", "Computer_F", "Hello F!"); computera.sendpacket(p1); 43 Comportamento do Sistema O Resultado da Execução... COMPUTADOR: Se eu quero enviar um pacote faço broadcast para a minha sub-rede Se eu recebo um pacote caso seja para mim, imprimo-o caso contrário, descarto-o REPETIDOR: Se eu recebo um pacote caso seja para mim, imprimo-o caso contrário, envio-o para todas as redes a que estou ligado SUB-REDE Caso me peçam para fazer um broadcast de um pacote envio para todos os nodos excepto o de origem 42 44

12 Como implementar uma relação 1 para 1? Interface Node.h class Node string _name; Node(string name); string getname(); class Computer : public Node Subnet* _subnet; virtual void sendpacket(packet p) = 0; virtual void receivepacket(packet p) = 0; virtual void addtosubnet(subnet& net) = 0; ; void addtosubnet(subnet& s); ; void Computer::addToSubnet(Subnet& net) _subnet = &net; Como implementar uma relação 1 para N? Interface Computer.h e Bridge.h class Computer : public Node Subnet* _subnet; class Bridge : public Node vector<subnet*> _subnets; void addtosubnet(subnet& s); ; void Bridge::addToSubnet(Subnet& net) _subnets.push_back(&net); Computer(string name); virtual void addtosubnet(subnet& net); virtual void sendpacket(packet p); virtual void receivepacket(packet p); ; class Bridge : public Node vector<subnet*> _subnets; Bridge(string name); virtual void addtosubnet(subnet& net); virtual void sendpacket(packet p); virtual void receivepacket(packet p); ; 46 48

13 Interface Subnet.h e Packet.h Implementação Node.cpp class Subnet vector<node*> _nodes; Subnet(); void addnode(node& node); void broadcast(node& sender, Packet p); ; Node::Node(string name) : _name(name) string Node::getName() return _name; class Packet string _from; string _to; string _msg; Packet(string from, string to, string msg); string getorigin(); string getdestination(); string getmessage(); void print(); ; Implementação Packet.cpp Implementação Computer.cpp Packet::Packet(string from, string to, string msg) : _from(from), _to(to), _msg(msg) string Packet::getOrigin() return _from; string Packet::getDestination() return _to; string Packet::getMessage() return _msg; void Packet::print() cout << "[FROM: " << _from << ", TO: " << _to << ", MSG: \"" << _msg << "\"]" << endl; 50 Computer::Computer(string name) : Node(name), _subnet(0) void Computer::addToSubnet(Subnet& net) _subnet = &net; void Computer::sendPacket(Packet p) _subnet->broadcast(*this, p); void Computer::receivePacket(Packet p) if (p.getdestination() == getname()) cout << "[NODE " << getname() << "] RECEIVED MESSAGE: "; p.print(); else cout << "Node " << getname() << " Discarting packet: "; p.print(); 52

14 Implementação Bridge.cpp That s It! Bridge::Bridge(string name) : Node(name) void Bridge::addToSubnet(Subnet& net) _subnets.push_back(&net); void Bridge::sendPacket(Packet p) for (unsigned i=0; i<_subnets.size(); i++) _subnets[i]->broadcast(*this, p); void Bridge::receivePacket(Packet p) if (p.getdestination() == getname()) cout << "[BRIDGE " << getname() << "] RECEIVED MESSAGE: "; p.print(); else cout << "*Bridge " << getname() << "* Echoing packet: "; p.print(); sendpacket(p); 53 A B C D E F 55 Implementação Subnet.cpp Alguns exercícios... Subnet::Subnet() void Subnet::addNode(Node& node) node.addtosubnet(*this); _nodes.push_back(&node); void Subnet::broadcast(Node& sender, Packet p) for (unsigned i=0; i<_nodes.size(); i++) if (&sender!= _nodes[i]) _nodes[i]->receivepacket(p); O que é que acontece se forem colocadas dois repetidores na rede? Como é que resolve o problema? Considere uma rede com fios em que existem encaminhadores (routers). Modele e implemente um sistema que permita enviar pacotes de qualquer endereço para qualquer endereço. Considere um jogo de cartas (Poker, Sueca,...). Modele o sistema e simule o decorrer de um jogo: Pessoa contra Pessoa Pessoa contra Computador Computador contra Computador 54 56

15 Para saber mais... C++ How to Program, 4th Edition by Harvey M. Deitel, Paul J. Deitel Prentice Hall, Aug Uma introdução leve ao C++ C++ Primer, 4th Edition by Stanley B. Lippman et. al. Addison-Wesley Professional, Feb Para aprender ao pormenor tudo o que há a saber sobre C++ YOU ARE FREE TO USE THIS MATERIAL FOR YOUR PERSONAL LERNING OR REFERENCE, DISTRIBUTE IT AMONG COLLEGUES OR EVEN USE IT FOR TEACHING CLASSES. YOU MAY EVEN MODIFY IT, INCLUDING MORE INFORMATION OR CORRECTING STANDING ERRORS. THIS RIGHT IS GIVEN TO YOU AS LONG AS YOU KEEP THIS NOTICE AND GIVE PROPER CREDIT TO THE AUTHOR. YOU CANNOT REMOVE THE REFERENCES TO THE AUTHOR OR TO THE INFORMATICS ENGINEERING DEPARTMENT OF THE UNIVERSITY OF COIMBRA. (c) 2005 Paulo Marques, Para saber mais... Object-Oriented Analysis and Design with Applications, 2nd Edition by Grady Booch Addison-Wesley Professional, Sep Como fazer design orientado aos objectos! Notação desactualizada, mas uma referência; Muito educativo! The Unified Modeling Language User Guide, 2nd Ed. by Grady Booch, James Rumbaugh, Ivar Jacobson Addison-Wesley Professional, May 2005 Um tutorial extremamente claro sobre como fazer modelação usando a linguagem UML. 58

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos. Programação II Prof. Gustavo Willam Pereira e-mail: gustavowillam@gmail.com ENG10082 Programação II 1 Ementa Programação orientada a objetos: classes e objetos, atributos e métodos, especificadores de

Leia mais

Linguagem de Programação III

Linguagem de Programação III Clique para editar o estilo do subtítulo mestre Linguagem de Programação III Histórico Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Comparação com Java Histórico Desenvolvido por

Leia mais

Programação Orientada por Objectos - C++ jvo

Programação Orientada por Objectos - C++ jvo Aula 16 C++ Breve perspectiva histórica Diferenças entre o C++ e o C Generalidade sobre a programação em C++ Primeiros programas: entradas e saídas Breve perspectiva histórica O C++ é uma extensão do C

Leia mais

3. PARADIGMA ORIENTADO A OBJETOS

3. PARADIGMA ORIENTADO A OBJETOS Paradigmas de Linguagens I 1 3. PARADIGMA ORIENTADO A OBJETOS Este paradigma é o que mais reflete os problemas atuais. Linguagens orientada a objetos (OO) são projetadas para implementar diretamente a

Leia mais

Programação Avançada

Programação Avançada Índice 1.1 - Introdução História A plataforma Java 1.2 - Conceitos Fundamentais na programação por objectos Objectos Encapsulamento Classes Herança Polimorfismo Interfaces Pacotes 1/24 1.1 Introdução 1.1

Leia mais

Programação Orientada a Objetos C++

Programação Orientada a Objetos C++ Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs

Leia mais

Conceitos Básicos de C

Conceitos Básicos de C Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,

Leia mais

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas) ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

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

Leia mais

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

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

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Objectivos Indicação onde são utilizados os computadores Primeiro programa em C++ Etapas básicas do desenvolvimento de programas Projecto centrado nos objectos Classes e programação

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

Prof. Jhonatan Fernando

Prof. Jhonatan Fernando Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis

Leia mais

Mestrado em Matemática Financeira

Mestrado em Matemática Financeira Programação Mestrado em Matemática Financeira http://moodle.fc.ul.pt Luís Sequeira 03 de Janeiro de 2014 Bom dia! 2 Contactos......................................................... 3 Abstracção!.......................................................

Leia mais

Arquitectura de Sistemas Paralelos e Distribuídos

Arquitectura de Sistemas Paralelos e Distribuídos Docentes Arquitectura de Sistemas Paralelos e Distribuídos 0. Introdução Prof. Paulo Marques Dep. Eng. Informática, Univ. Coimbra pmarques@dei.uc.pt Prof. Luís Silva Dep. Eng. Informática, Univ. Coimbra

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

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

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

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

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2) Diagrama de Classes Diagrama de Classes Modelo de classes de especificação Perspectiva de Projeto Ilustra as especificações de software para as classes e interfaces do sistema. É obtido através da adição

Leia mais

Lab de Programação de sistemas I

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

Leia mais

Análise Orientada a Objetos

Análise Orientada a Objetos Análise Orientada a Objetos Breve Histórico: Fim da década de 80: amadurecimento da Orientação a Objeto Década de 1990: diversas proposições a partir de diversos autores, como Booch, Rumbaugh e Jacobson.

Leia mais

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

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Programação Orientada a Objetos Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 Histórico das linguagens de programação ENIAC (1944) Programação

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Curso de Linguagem C

Curso de Linguagem C Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso Casos de Uso O que é Casos de Uso Descrições narrativas de processos do domínio da aplicação Documentam a seqüência de eventos de um ator (um agente externo) usando o sistema para completar, do início

Leia mais

Conceito de classe em C++

Conceito de classe em C++ Introdução à Programação com Classes em C++ Ana Paula Rocha, Luís Paulo Reis, João Pascoal Faria FEUP - MIEEC Programação 2-2008/2009 Conceito de classe em C++ Classe em sentido lato: tipo de dados definido

Leia mais

Componentes da linguagem C++

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

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Operação

Leia mais

modelagem do negócio (processos e objetos do negócio) modelagem de requisitos alocados ao software modelagem da solução de software

modelagem do negócio (processos e objetos do negócio) modelagem de requisitos alocados ao software modelagem da solução de software POO com UML Java Uso da linguagem UML(Unified Modeling Language) A UML, ou Linguagem de Modelagem Unificada, é a junção das três mais conceituadas linguagens de modelagem orientados a objectos (Booch de

Leia mais

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language) Programação com Objectos Processamento de Dados I 3. UML (Unified Modeling Language) 1 Modelo UML Diagrama de classes Programação com Objectos / Processamento de Dados I 2 Modelo O desenvolvimento de programas

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

Programação Orientada a Objetos em Java

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

Leia mais

Capítulo 8. Introdução UML

Capítulo 8. Introdução UML Capítulo 8. Introdução UML 1/42 Índice Indice 8.1 - Introdução UML 8.2 - Modelação estrutural 8.2.1 - Representação de classes e objectos 8.2.2 - Relações entre objectos 8.2-3 - Relações de associação

Leia mais

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica 2015-2 Professor: Danilo A. Silva

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica 2015-2 Professor: Danilo A. Silva Programação Orientada a Objetos OOP IFES Campus Vitória Engenharia Elétrica 2015-2 Professor: Danilo A. Silva Sobre a disciplina Carga horária : 60 horas (30 teóricas e 30 práticas) Material do curso estará

Leia mais

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

UML Unified Modeling Language

UML Unified Modeling Language UML Unified Modeling Language Linguagem de Modelagem Unificada A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem para especificação, É uma linguagem para

Leia mais

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora OOP - Java Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora 1 Sumário Java Aviso! História do Java Programação Orientada à Objetos Os quatro pilares da OOP Abstração

Leia mais

PCS 3111 - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

PCS 3111 - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Computação e Sistemas Digitais PCS - LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA EXERCÍCIO PROGRAMA

Leia mais

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version 2012-11-08. 1 LibreOffice Productivity Suite

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version 2012-11-08. 1 LibreOffice Productivity Suite Orientação a Objetos Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version 2012-11-08 1 Abordagens História; ; Benefícios / Limitações; Referências; 2 História Tudo tem um começo...

Leia mais

Programação com Acesso a BD. Programação com OO Acesso em Java

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

Leia mais

Programação por Objectos. Java

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

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

Introdução. Capítulo 1. 1.1. Breve sinopse

Introdução. Capítulo 1. 1.1. Breve sinopse Capítulo 1 Introdução 1.1. Breve sinopse O C é uma linguagem de programação criada por Dennis Ritchie no início da década de 70 do século XX. É uma linguagem de complexidade baixa, estruturada, imperativa

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

Programação e Sistemas de Informação

Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Programação e Sistemas de Informação REVISÕES 1 Conteúdos Introdução Declaração de strings Atribuição de valores a strings

Leia mais

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo? O que é a UML? Introdução a UML Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário + regras de combinação

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO À PROGRAMAÇÃO Ano Lectivo 2014/2015

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTRODUÇÃO À PROGRAMAÇÃO Ano Lectivo 2014/2015 Programa da Unidade Curricular INTRODUÇÃO À PROGRAMAÇÃO Ano Lectivo 2014/2015 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Informática 3. Ciclo de Estudos 1º 4. Unidade Curricular

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Programando em C++ Histórico da Linguagem C

Programando em C++ Histórico da Linguagem C Programando em C++ Joaquim Quinteiro Uchôa joukim@comp.ufla.br 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

Leia mais

LINGUAGEM C UMA INTRODUÇÃO

LINGUAGEM C UMA INTRODUÇÃO LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Polimorfismo. Prof. Leonardo Barreto Campos 1

Polimorfismo. Prof. Leonardo Barreto Campos 1 Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções

Leia mais

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação O QUE É UM PROGRAMA? Para executar uma dada tarefa é geralmente necessário entender o sistema onde ela é realizada. Por exemplo, para fazer um bolo temos um sistema composto por: Ingredientes Cozinheiro

Leia mais

Programação orientada a objetos usando a linguagem C++ CDTN Centro de Desenvolvimento de Tecnologia Nuclear

Programação orientada a objetos usando a linguagem C++ CDTN Centro de Desenvolvimento de Tecnologia Nuclear Programação orientada a objetos usando a linguagem C++ CDTN Centro de Desenvolvimento de Tecnologia Nuclear Belo Horizonte, Setembro de 2000 1- Objetivo: Ministrar o curso de Treinamento em Programação

Leia mais

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

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 reinaldo@cefet-al.br Objetos

Leia mais

RELACIONAMENTOS ENTRE CLASSES

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

Leia mais

Diagrama de Classes. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Diagrama de Classes. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Diagrama de Classes Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 O que é? Diagrama mais utilizado da UML Representa os tipos (classes) de objetos de um

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Curso Engenharia Civil Modalidade Superior Professora Michelle Nery Agenda Introdução a Programação Algoritmos VS Programa 2 Algoritmos Um algoritmo pode ser definido como uma

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Guia e Utilização do Visual Studio 6.0

Guia e Utilização do Visual Studio 6.0 Guia e Utilização do Visual Studio 6.0 Objectivo Este guia acompanha-o através do processo de criação de uma aplicação C++ utilizando o ambiente de desenvolvimento Visual Studio 6.0. Passo 1: Criação de

Leia mais

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

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

Leia mais

AULA 1: PARADIGMAS DE PROGRAMAÇÃO

AULA 1: PARADIGMAS DE PROGRAMAÇÃO 1 AULA 1: PARADIGMAS DE PROGRAMAÇÃO Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme Ementa 2 Programação Imperativa. Programação Paralela e Concorrente. Programação Lógica. Programação Funcional.

Leia mais

ATENAS: Um Sistema Gerenciador de Regras de Negócio

ATENAS: Um Sistema Gerenciador de Regras de Negócio 1. Introdução ATENAS: Um Sistema Gerenciador de Regras de Negócio Geraldo Zimbrão da Silva (IM/UFRJ) Victor Teixeira de Almeida (COPPE/UFRJ) Jano Moreira de Souza (COPPE/UFRJ) Francisco Gonçalves Pereira

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos

Leia mais

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Programas e Linguagens Para executar uma tarefa

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 1 Linguagens de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto

Leia mais

Profº. Enrique Pimentel Leite de Oliveira

Profº. Enrique Pimentel Leite de Oliveira Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam

Leia mais

Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível

Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível 95 Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível 96 Aplicação dos conceitos de programação orientada a objeto em linguagens de alto nível Nesta etapa estudaremos

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... Funções Classes de armazenamento

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO Ano Lectivo 2013/2014

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular PROGRAMAÇÃO Ano Lectivo 2013/2014 Programa da Unidade Curricular PROGRAMAÇÃO Ano Lectivo 2013/2014 1. Unidade Orgânica Ciências da Economia e da Empresa (1º Ciclo) 2. Curso Engenharia Electrotécnica e de Computadores 3. Ciclo de Estudos

Leia mais

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO CURSO Engenharia Eletrônica MATRIZ FUNDAMENTAÇÃO LEGAL (Resolução do COEPP que aprovou a matriz curricular

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Notas de Aula 04: Casos de uso de um sistema

Notas de Aula 04: Casos de uso de um sistema Notas de Aula 04: Casos de uso de um sistema Objetivos da aula: Aprender os elementos básicos da modelagem por casos de uso Utilizar as associações entre casos de uso, atores e demais artefatos Compreender

Leia mais

Tópicos Especiais em Programação

Tópicos Especiais em Programação Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Universidade Federal do Espírito Santo CCA UFES Tópicos Especiais em Programação Sumário Metodologia;

Leia mais

Introdução. Sumários. Objectivos da cadeira. História das linguagens de programação. Classificação das Linguagens de programação

Introdução. Sumários. Objectivos da cadeira. História das linguagens de programação. Classificação das Linguagens de programação Introdução Sumários Objectivos da cadeira História das linguagens de programação Classificação das Linguagens de programação Aplicação das linguagens de programação Noção de compiladores Software à usar

Leia mais

Java 2 Standard Edition Como criar classes e objetos

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

Leia mais

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Métodos de Construção de Software: Orientação a Objetos Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes Problemas com Modelagem Funcional Falta de aproximação de conceitos com o mundo real

Leia mais

Introdução à Orientação a Objetos e UML

Introdução à Orientação a Objetos e UML Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação SSC 526: Análise e Projeto Orientados a Objetos Introdução à Orientação a Objetos e UML Profa. Dra. Elisa Yumi Nakagawa 2º semestre

Leia mais

TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I

TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I TRABALHO DE PROGRAMAÇÃO FUNCIONAL LINGUAGEM DE PROGRAMAÇÃO I Raimundo Alan F. Moreira, Antônio Victor C. Passos, Otavio R. Neto, José Almeida Júnior. Bacharelado em Ciências da Computação Centro de Ciências

Leia mais

Programação por Objectos. Java

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

Leia mais

Gestão de Projectos de Software - 1

Gestão de Projectos de Software - 1 Gestão de Projectos de Software Licenciaturas de EI / IG 2012/2013-4º semestre msantos@ispgaya.pt http://paginas.ispgaya.pt/~msantos Gestão de Projectos de Software - 1 Objectivos da Disciplina de Gestão

Leia mais

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres

Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres Manual de Docência para a disciplina de Algoritmia e Programação 2005/2006 Engenharia Informática, 1º ano José Manuel Torres Número de horas do programa: 60 horas Número de horas Semanal: 4 Horas Número

Leia mais

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

Vectores em C++ Classe vector: Introdução

Vectores em C++ Classe vector: Introdução Vectores em C++ FEUP - MIEEC Programação 2-2008/2009 Classe vector: Introdução A classe vector é uma alternativa à representação de array primitivo Template de classe necessário especificar o tipo dos

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos

Leia mais

OO Engenharia Eletrônica

OO Engenharia Eletrônica OO Engenharia Eletrônica - Programação em C/C++ Slides 18: Introdução à Multithreading. Introdução à Multithreading: execução concorrente de tarefas. Exemplos usando a biblioteca C Run-time library. Prof.

Leia mais

http://www.di.uminho.pt

http://www.di.uminho.pt Escola de Engenharia Departamento de Informática Desenvolvimento de Sistemas de Informação LESI 4º ano / 2º semestre (5308O7) LMCC 4º ano / 2º semestre (7008N8 Opção II) 2005/2006 José Creissac Campos

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

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

Leia mais

INF 1005 Programação I

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

Leia mais

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix. UNIP Sistemas de Informação Análise Essencial de Sistemas Prof.Marcelo Nogueira Análise Essencial de Sistemas 1 Introdução A produção de Software é uma atividade build and fix. Análise Essencial de Sistemas

Leia mais

Herança e Polimorfismo de Inclusão

Herança e Polimorfismo de Inclusão Herança e Polimorfismo de Inclusão Sérgio Queiroz de Medeiros sergio@ufs.br 29 de maio de 2012 1 Polimorfismo Ad-hoc Coerção Sobrecarga (Overloading) Universal Paramétrico Inclusão 2 Herança Herança é

Leia mais

Capítulo 9 Desenho de classes

Capítulo 9 Desenho de classes Capítulo 9 Desenho de classes Escolha de classes a implementar Coesão e acoplamento Minimização de efeitos colaterais Consolidação de conceitos: métodos e campos estáticos, abrangência de variáveis locais

Leia mais

Curso de C. Apresentação. Adriano Joaquim de Oliveira Cruz. Universidade Federal do Rio de Janeiro. 26 de outubro de 2015

Curso de C. Apresentação. Adriano Joaquim de Oliveira Cruz. Universidade Federal do Rio de Janeiro. 26 de outubro de 2015 Curso de C Apresentação Adriano Joaquim de Oliveira Cruz Universidade Federal do Rio de Janeiro 26 de outubro de 2015 Adriano Cruz (DCC-UFRJ) Apresentação 26 de outubro de 2015 1 / 33 Section Summary 1

Leia mais

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream> Aula 1 C é uma linguagem de programação estruturada desenvolvida por Dennis Ritchie nos laboratórios Bell entre 1969 e 1972; Algumas características: É case-sensitive, ou seja, o compilador difere letras

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais