Programação Orientada para Objectos

Slides:



Advertisements
Apresentações semelhantes
Programação II Licenciatura de Ciências da Computação Padoca Calado
Advertisements

Estruturação de Linguagens (Pascal e C++)
TIPOS ABSTRATOS DE DADOS
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
Curso de aprofundamento na linguagem C
Programação em Java Prof. Maurício Braga
Introdução à Ciência da Computação Linguagens de Programação.
Capítulo II – Algoritmos e Programas
1 Programação Orientada aos COMponentes Quartas à Tarde no DEI 12 de Abril de 2000.
II – Análise léxica DEI lex: linguagem de especificação para analisadores léxicos Implementação de simuladores de autómatos finitos Bibliografia aconselhada:
I - Noções dum compilador Partes dum compilador Ferramentas de construção de compiladores Bibliografia aconselhada: –Aho, Sethi e Ullman – Cap. 1 LFA 1999/2000.
Rational Unified Process
Engenharia de Software
Capítulo 1 Introdução.
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
12 de Dezembro de 2002 Mestrado em Engenharia Electrotécnica e de Computadores Mestrando: Rogério Dias Paulo Orientador: Professor Doutor Adriano Carvalho.
Programação para Engenharia I
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Introdução à Programação
Cálculo Numérico Módulo I Ferramentas de Suporte
2002 LCG/UFRJ. All rights reserved. 1 Tópicos em C++ Claudio Esperança Paulo Roma Cavalcanti.
FACENS – Engenharia da Computação Lógica Computacional II
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
INTRODUÇÃO À PROGRAMAÇÃO
Linguagem de Programação C++
Projeto de Sistemas Operacionais
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
Universidade Federal do Espírito Santo
Introdução à Programação
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Vetores, Matrizes e Funções
Laboratório de Programação de Computadores I
2002/2003 Programação Orientada para Objectos 1 Aula 11: Genericidade Genericidade usando herança Conceito de rotina genérica Conceito de classe genérica.
Programação Orientada para Objectos
Introdução à Programação
Programação Baseada em Objectos Desenho de TAD
Aula 13 Tipos Abstractos de Dados IV. 2003/2004 Introdução à Programação 2 Estrutura global do programa (I) Construtores Inspectores.
Paulo J. Azevedo Departamento de Informática Universidade do Minho
Revisão da Linguagem C.
Introdução a Programação Orientada a Objetos
Algoritmos e Programação
DIAGRAMA DE COMPONENTES
O Portal do Estudante de Computação
Análise Semântica e Representação Intermédia
JAVA: Conceitos Iniciais
Sejam bem vindos! Arquitetura de Sistemas Operacionais.
PROGRAMAÇÃO I UNIDADE 1.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Aula prática - análise contextual
1 Funções (versão C) Funções são pedaços de código encapsulados para fácil acesso. Em C e C++ o processo de construção de uma função passa por 2 etapas.
Compiladores, Aula Nº 7 João M. P. Cardoso
Linguagens Orientadas a Objeto
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
UML – Diagrama de Classes
Modularização de um programa em C
LABORATÓRIOS DE INFORMÁTICA IV ENGENHARIA DE SOFTWARE: DA TEORIA À PRÁTICA GRUPO 13.
Tipos Abstratos de Dados
Programação em C++ Compiladores
Linguagem e Ambiente Scratch
02/08/2011 Professor Leomir J. Borba- –
Lógica Estruturada Aplicada
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Modularização Dividir um problema em subproblemas Módulos menores facilita a depuração Dividir o desenvolvimento entre vários programadores “Reutilização”
Princípios da Programação em Prolog
Paradigma Estruturado
Padrão- MVC Model, View, Controller
Programação de computadores Prof. Giovanni Castro.
Linguagem de Programação
Transcrição da apresentação:

Programação Orientada para Objectos ETI e IGE ISCTE

Informação http://iscte.pt/programacao/p2/ http://br.groups.yahoo.com/group/poo-iscte/ poo-iscte@yahoogrupos.com.br 2002/2003 Programação Orientada para Objectos

Avaliação Problema: 10% Trabalho final: 40% Frequência: 50% Em grupo Trabalho final: 40% Entrega intermédia: avaliação negativa = -3 valores Entrega final Em grupo com discussão individual Frequência: 50% Individual sem consulta: nota mínima 7 Grupos: 2 alunos 2002/2003 Programação Orientada para Objectos

Objectivos Conhecer os princípios básicos da resolução de problemas usando diversos paradigmas de programação. Ter conhecimentos sólidos da linguagem C++ e conhecimentos básicos da sua biblioteca padrão. Saber desenhar estruturas de dados e respectivos algoritmos em C++. Saber lidar com erros durante o desenvolvimento e fazer programas com um comportamento razoável face a erros. Ser capaz de planear a resolução dos problemas, analisando, desenhando e implementando correctamente os correspondentes programas. Ter conhecimentos elementares sobre a linguagem UML. 2002/2003 Programação Orientada para Objectos

Aula 1 Modularização: física e em pacotes Modularização física e compilação separada Modularização em pacotes e espaços nominativos 2002/2003 Programação Orientada para Objectos

Divisão de um programa Mais fácil dividir trabalho Permite divisão lógica do programa de acordo com objectivo das ferramentas Construção do executável acelerada Facilita reutilização de código 2002/2003 Programação Orientada para Objectos

Modularização Procedimental: rotinas De dados: classes Funções e procedimentos De dados: classes Classes Física: módulos físicos (ou módulos) Ficheiros Em pacotes: pacotes Espaços nominativos 2002/2003 Programação Orientada para Objectos

Construção de um executável Pré-processamento: pré-processador c++ -E programa.C –o programa.ii c++ -E matematica.C –o matematica.ii Compilação: compilador c++ [opções] –c programa.C c++ [opções] –c matematica.C Fusão (to link): fusor (linker) c++ -o programa programa.o matematica.o 2002/2003 Programação Orientada para Objectos

Pré-processamento Copia ficheiro de implementação (.C) para unidade de tradução (.ii) Directivas de pré-processamento (linhas iniciadas por #): Inclusões (#include) Macros (#define) Compilação condicional (#ifdef; #ifndef; #else; #endif) 2002/2003 Programação Orientada para Objectos

Compilação Tradução de unidade de tradução para linguagem máquina Fases da compilação: Análise lexical Análise sintáctica Análise semântica Optimização Geração de código máquina 2002/2003 Programação Orientada para Objectos

Fusão Ficheiros objecto fundidos num único executável Verifica que: Não há repetições Há uma função main() Para cada necessidade existe correspondente disponibilidade 2002/2003 Programação Orientada para Objectos

Exemplo «file» matemática.C «file» matemática.H «file» programa.C Ficheiros fonte Pré-processamento «file» matemática.ii «file» programa.ii Unidades de tradução Compilação «file» matemática.o «file» programa.o Ficheiros objecto Fusão «file» programa 2002/2003 Programação Orientada para Objectos

Modularização física Dois ficheiros fonte: Que colocar em cada módulo? Interface (.H) Implementação (.C) Que colocar em cada módulo? Que colocar em cada ficheiro fonte? 2002/2003 Programação Orientada para Objectos

Ficheiros de interface (.H) Definições de classes Declarações de rotinas não-membro e não inline Definições de rotinas e métodos inline Definições de constantes Declarações de variáveis globais (evitar!!!) 2002/2003 Programação Orientada para Objectos

Ficheiros de implementação (.C) Definições de tudo o que for apenas necessário dentro do módulo (classes, rotinas, ...) Definições de todas as rotinas e métodos que não sejam inline Definições de todas as variáveis globais 2002/2003 Programação Orientada para Objectos

Modularização em pacotes Evitar problema de colisão de nomes Agrupamento das ferramentas num nível mais elevado de modularização: os espaços nominativos (name spaces) Colocar ficheiros de interface em directórios correspondentes ao espaço nominativo a que pertencem 2002/2003 Programação Orientada para Objectos