Física Computacional
|
|
|
- Raphaella de Vieira Espírito Santo
- 9 Há anos
- Visualizações:
Transcrição
1 Física Computacional 1. Funções: a. Inicialização de argumentos. b. Overloading. 2. Revisão de classes 3. Classes parte 2 a. Overloading de operadores. 4. Gestão de projectos com Dev-C++ 5. Gestão de projectos com GNU Make, Makefiles [email protected] Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 1
2 Em C++ é possível definir valores iniciais de argumentos dentro da declaração de uma função. Esta regra aplica-se também a métodos em classes. float Power(float x, int p=2){ if(p==0) return 1; else if(p==1) return x; for(int i=1;i<p;i++) x*=x; return x; int main(){ int x = 3; cout << x^2: " << Power(x) <<endl; cout << x^3: " << Power(x,3) <<endl; return 0; Funções - inicialização de argumentos Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 2
3 Contrariamente ao C, o C++ permite fazer a declaração múltipla de funções com o mesmo nome. A isto chama-se function overloading. Esta regra aplica-se também a métodos em classes (ex: constructores, ver aula anterior). Contudo, existem algumas regras: O overload não pode ser feito ao nível do retorno da função. Pelo menos o tipo de um argumento deverá ser diferente. Não pode haver ambiguidade com o número os argumentos: float Myfunc(float x, float y){return x*y; //permitido (float, float) int Myfunc(int x, int y){return x*y;// permitido (int,int) int Myfunc(int x){return x*3; //permitido (int) bool Myfunc(int x,int y=1){return x*y;//ambiguo com (int) e (int,int)!! Overloading de funções Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 3
4 Uma classe é constituída por membros e métodos. À instância de uma classe chamamos objecto. O operador de scope :: permite definir métodos fora da declaração da classe. Constructors e destructors são funções especiais numa classe: Chamadas automaticamente quando declaramos um objecto. Possibilidade de overloading de constructores e destructores default. Três tipos de construtores automáticos: default, cópia e atribuição. Assim que um constructor é definido, o compilador não cria o construtor automático: MyClass::MyClass(){; //declaracao de constructor default Três tipos de acesso: private, protected e public. As classes também possuem variáveis e métodos static e const. Classes - revisão Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 4
5 Já vimos operadores a serem utilizados em tipos normais de C++. Este operadores, tal como o nome indica, definem operações em tipos conhecidos. float a = 2.3, b=3.2; float c = a+b; //operacao conhecida 5.5 = Uma classe, uma vez que se comporta como um tipo, também pode ter operadores definidos ou redefinidos (overloaded). No entanto, é necessário explicar ao compilador como queremos que essas operações se façam. Também é possível redefinir operadores que poderiam ser criados automaticamente pelo compilador, como o operador de cópia. Lista de operadores que podem ser redefinidos: + - * / = < > += -= *= /= << >> <<= >>= ==!= <= >= % & ^! ~ &= ^= = && %= [] (), - >* -> new delete new[] delete[] Classes operator overloading Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 5
6 Para (re)definir operadores usa-se a sintaxe para funções de operador: tipo operator simbolo (parametros) { (instrucoes); Consideremos o caso em que o operador + (soma) é redefinido na classe Matrix (ver exemplo seguinte). As seguintes instruções são equivalentes: a = b + c; //Matrix a,b,c a = b.operator+(c); //Matrix a,b,c Em alguns casos, a forma como os operadores se relacionam com os parâmetros pode não ser trivial: Expressão operator Método na classe Operador + - * &! ~ A::operator@() operator@(a) a@ A::operator@(int) operator@(a,int) a@b + - * / % ^ & < > ==!= <= >= << >> &&, A::operator@ (B) operator@(a,b) a@b = += -= *= /= %= ^= &= = <<= >>= [] A::operator@ (B) - a(b, c...) () A::operator() (B, C...) - a->x -> A::operator->() - Classes operator overloading (cont.) Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 6
7 class Matrix{ private: int fnrows, fncols; void AllocateMatrix(); public: vector< vector <float> > fm; Matrix(){; Matrix(int nrows, int ncols); matrix.cpp Matrix Matrix::operator+ (Matrix b){ Matrix tmp(b.fnrows,b.fncols); for(int i=0;i< (signed int)fm.size();i++) for(int j=0;j< fm[i].size(); j++) tmp.fm[i][j] = fm[i][j] + b.fm[i][j]; return tmp; ; void SetNRows(int nrows){fnrows = nrows; int GetNRows() const {return fnrows; void SetNCols(int ncols){fncols = ncols; int GetNCols() const {return fncols; void Print() const; //operators Matrix operator+ (Matrix b); matrix.h int main(){ int nrows = 3, ncols = 3; Matrix m(nrows,ncols),n(nrows,ncols); for(int i=0;i<nrows;i++){ for(int j=0;j<ncols;j++){ m.fm[i][j] = i; n.fm[i][j] = j; m.print(); n.print(); const Matrix z = m+n; z.print(); return 0; main.cpp Operator overloading - exemplo Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 7
8 Programar usando modularidade garante que o código é reaproveitado nós e outras pessoas. Da mesma forma que um namespace agrupa funções e variáveis semelhantes, é conveniente guardar este tipo de containers em ficheiros de trabalho diferentes. Com ficheiros diferentes, é possível separar tarefas e ter várias pessoas a trabalhar no mesmo projecto, sem nos preocuparmos com alterações simultâneas. O Dev-C++ disponibiliza esta possibilidade. Basta começar/abrir um novo projecto. Terão inicialmente o file main.cpp com a função main. Para adicionar mais ficheiros, basta clicar com o botão direito no projecto ou abrir um ficheiro novo. Uma regra a não esquecer é que todos os nossos header files deverão ser incluidos nos correspondentes *.cpp. O compilador não compila header files! Gestão de projectos Dev-C Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 8
9 O programa GNU Make permite a utilização de makefiles. Um makefile não é parte integrante do GNU C/C++, podendo ser usando com outros programas. Antes de escrevermos um makefile, temos de perceber como funciona o linker. O linker cria object files (não confundir com objectos de programação!), código pré-compilado que pode ser incluido com outros do mesmo género: Cria automaticamente matrix.o e main.o g++ -Wall c matrix.cpp main.cpp Agora juntamos os 2 files no executavel matrix g++ -o matrix matrix.o main.o Gestão de projectos - Makefiles Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 9
10 matrix.o: matrix.cpp matrix.h g++ -c Wall matrix.cpp main.o: main.cpp g++ -c Wall main.cpp matrix: main.o matrix.o g++ -o matrix main.o matrix.o Desta forma, quando fazemos make matrix, apenas os códigos que foram alterados desde a última compilação é que serão recompilados. A sintaxe é a seguinte: <destino>: <ficheiros necessarios> <tab><comando(s) de compilacao/linkagem> Makefiles - exemplo Física Computacional - MEFT 2009/10 P. Bicudo & P. Martins 10
Laboratório de programação II
Laboratório de programação II Herança e Polimorfismo Edson Moreno [email protected] http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando
PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem
Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded
Programação Orientada a Objetos
Programação Orientada a Objetos Aula VIII Prof. Felício Bruzzi Barros Maio de 2008 Sobrecarga de operadores matriz A, B, C, D; multiplica(a,b,c); soma(a,b,d); escreve(d); matriz A, B, C, D; C=A*B; D=A+B;
Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN
Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
5 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... - Diz-se que o nome de um método foi sobrecarregado ( overloaded
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Técnicas de Programação:
Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.
C++ - Funções Virtuais (Polimorfismo) Base. Deriv0 Deriv1 Deriv2. print( ) print( ) print( ) dv0 dv1 dv2. p[0] = &dv0; p[1] = &dv1; p[2] = &dv2;
C++ - Funções Virtuais (Polimorfismo) Polimorfismo : (assumir várias formas) Em C++ indica a habilidade de uma única instrução chamar diferentes funções e portanto assumir formas diferentes. Veja isto
Redefinição de Operadores
Sobrecarga de Operadores em C++ Algoritmos e Estruturas de Dados 2008/2009 Mestrado Integrado em Engenharia Informática e Computação Redefinição de Operadores Quase todos os operadores podem ser redefinidos:
Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN
Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos
Conceito de classe em C++
Introdução à Programação com Classes em C++ João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Conceito de classe em
Programação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa
Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo
Anhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
C++ - Funções. Forma geral das funções C++
C++ - Funções Conjunto de instruções para executar uma tarefa particular, agrupadas numa unidade com um nome para referenciá-las. O código é agregado ao programa uma única vez e pode ser executado muitas
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos [email protected] Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
Orientação a Objetos e Java
Orientação a Objetos e Java Daves Martins [email protected] Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Algoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos
Programação com Objectos Processamento de Dados I 2. Classes, Atributos e Métodos 1 Classes, Atributos e Métodos Modificadores de acesso (visibilidade) Sobrecarga de métodos (method overloading) Variáveis
Classes e Encapsulamento
Classes e Encapsulamento Marcio Santi POO e C++ Tipo Abstrato de Dados (TAD) TAD atributos dados que o representam interface operações associadas como é manipulado 1 Exemplo: Editor Gráfico (classe círculo)
U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --
Ministério da Educação e Ciência p-fólio U.C. (21093) Programação por Objetos XX de Julho de 2015 -- INSTRUÇÕES -- O estudante deverá responder à prova na folha de ponto e preencher o cabeçalho e todos
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos picos Definição de estrutura Acessando membros de estruturas O tipo horario com struct Implementando horario com class Escopo
Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP
Templates BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Os templates ou gabaritos fornecem a base para existência da programação genérica
Programação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores
Física Computacional 17 STL
Física Computacional 17 STL 1. Contentores 2. Iteradores 3. Algoritmos [email protected] Física Computacional - MEFT 2009/10 P. Bicudo, P. Martins & M. Cardoso 1 A STL (standard template library)
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Fundamentos de Programação
Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação
PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA
PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA PÁTIO DE MATERIAIS Discente: Nielson Soares Disciplina: Algoritmo e Estrutura de Dados INTRODUÇÃO Orientação a objetos. Linguagem de programação JAVA. Pátio de matérias
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO SOBRECARGA DE OPERADORES (C++) A sobrecarga de operadores ocorre quando desejamos utilizar operadores jáj conhecidos (+,-,*,/,=,+=...)
Programação científica C++
Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador
Linguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Introdução à Linguagem C
Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria [email protected]
Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias
1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo
Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes
CI208 - Programação de Computadores Aula 12: Funções Prof. MSc. Diego Roberto Antunes [email protected] www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática
Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Programação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Linguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Análise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Programação Orientada aos Objectos I
Programação Orientada aos Objectos I UEM Fevereiro 2014 Docente: eng a Tatiana Kovalenko AULA TEÓRICA 1 Tema 1. Introdução à POO Ø Revisão: POO. Classes e Objectos. Elaborado por eng.tatiana Kovalenko,
Introdução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga
Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes
ESTRUTURA COM DECISÃO COMPOSTA
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO COMPOSTA Prof. Dr. Daniel Caetano 2018-1 Objetivos Entender o que são decisões compostas Compreender como implementar decisões compostas Capacitar
Introdução ao IDE Netbeans (Programação Java)
Universidade Federal do ABC Disciplina: Processamento da Informação (BC-05045) Assunto: Introdução ao IDE Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas
