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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

Linguagens de Programação -- Compilação e Execução -- Compilação. Paulo Marques. Compilador. Tecnologia dos Computadores 2004/2005

Linguagens de Programação -- Compilação e Execução -- Compilação. Paulo Marques. Compilador. Tecnologia dos Computadores 2004/2005 Linguagens de Programação -- Compilação e Execução -- Paulo Marques Moth found trapped between points at Relay # 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

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

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

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

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

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

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

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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

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 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

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

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

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

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

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 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

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

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

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

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

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

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

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

De Arte a Ciência: Regras para o Desenho de Software

De Arte a Ciência: Regras para o Desenho de Software De Arte a Ciência: Regras para o Desenho de Software Neste artigo é apresentado um conjunto de regras de desenho um padrão de desenho universal associado ao princípio fundamental e aos requisitos axiomáticos.

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

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Programa do Módulo 2. Fundações do Modelo Objeto

Programa do Módulo 2. Fundações do Modelo Objeto 2.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) Processo Unificado (RUP) Fundações do Modelo Objeto 2.2 Programação Orientada a Objetos: é um método de

Leia mais

Micro Mídia Informática Fevereiro/2009

Micro Mídia Informática Fevereiro/2009 Micro Mídia Informática Fevereiro/2009 1 UML Introdução Fases de Desenvolvimento Notação Visões Análise de Requisitos Casos de Uso StarUML Criando Casos de Uso Orientação a Objetos Diagrama de Classes

Leia mais

É uma linguagem portável.(bom... desde de que siga algum padrão: ISO, ANSI)

É uma linguagem portável.(bom... desde de que siga algum padrão: ISO, ANSI) Capítulo 1 Introdução aturalmente, você como leitor, deve estar esperando que eu faça uma intro- repleta de elogios ao C e que justifiquem o tempo gasto com a leitura Ndução desse texto. Bom, infelizmente,

Leia mais

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados Aula 1 Tipo Abstrato de Dados O que é um algoritmo? Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 O que é um programa? 2009-1 Algoritmos Sequência de ações executáveis para

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

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

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

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 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

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

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

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Aula 1 Tipo Abstrato de Dados

Aula 1 Tipo Abstrato de Dados Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para

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

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

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

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

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

QUITETURA AVANÇADA DE SISTEMAS

QUITETURA AVANÇADA DE SISTEMAS QUITETURA AVANÇADA DE SISTEMAS ICARDO MENDÃO SILVA RMSILVA AT UAL DOT PT MARÇO 2015 AAS OUTLINE INTRODUÇÃO COMENTÁRIOS VARIÁVEIS OPERADORES IF STATEMENT FUNÇÕES CICLO FOR CICLO WHILE STRINGS LISTAS TUPLAS

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

UML Linguagem de Modelagem Unificada

UML Linguagem de Modelagem Unificada Modelagem de Sistemas UML Linguagem de Modelagem Unificada Prof. Mauro Lopes 1-25 Objetivos Nesta aula iremos apresentar os elementos conceituais da Linguagem de Modelagem Unificada (UML). Boa aula a todos.

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: PROGRAMAÇÃO ORIENTADA A OBJETOS PROFESSOR: REINALDO GOMES ASSUNTO: REVISÃO DA INTRODUÇÃO A ORIENTAÇÃO

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

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

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite Pessoal, fiz uma coletânea das questões mais recentes de concursos públicos de TODO o Brasil de várias bancas diferentes sobre os assuntos Orientação

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

LEI Sistemas de Computação 2014/15. Níveis de Abstração. TPC4 e Guião laboratorial. Luís Paulo Santos e Alberto José Proença

LEI Sistemas de Computação 2014/15. Níveis de Abstração. TPC4 e Guião laboratorial. Luís Paulo Santos e Alberto José Proença LEI Sistemas de Computação 2014/15 Níveis de Abstração TPC4 e Guião laboratorial Luís Paulo Santos e Alberto José Proença ------------------------------------------------------------------------------------------------------------------------------------------------

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