Carlos Eduardo Batista. Centro de Informática - UFPB

Documentos relacionados
Linguagem de Programação I

Linguagem de Programação I

Carlos Eduardo Batista. Centro de Informática - UFPB

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

Introdução à Programação. Conceitos Básicos de Orientação a Objetos

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Fundamentos de Programação

Laboratório de programação II

Fundamentos de Programação 2

Aula 01 Algoritmos e lógica de programação e introdução ao C++

//conteúdo do arquivo pacote.h

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira

Aula 01 Algoritmos e lógica de programação e introdução ao C++

The Cyclops Project. Introdução: C++

Linguagem de Programação I

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

C com introdução a OO

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

Programação estruturada em C++: extensões ao C. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005)

Programação científica C++

Linguagem de Programação C++

PLANO DE UNIDADE DIDÁTICA- PUD

Linguagens compiladas: C++ Fora do livro adoptado

Fundamentos de Programação

Programação Estruturada em C++: Extensões ao C

Carlos Eduardo Batista. Centro de Informática - UFPB

Introdução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Prof. Marco Antonio M. Carvalho

Introdução a UML. Exercício:

Estrutura de dados 1. Ponteiros

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Aula 15: Introdução a Funções

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

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

Técnicas de Programação:

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

ESTRUTURA COM DECISÃO COMPOSTA

Entrad Entrada / Saíd a / Saída

Introdução e Conceitos

Programação Orientada a Objetos

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Aula 11: Laços e exercícios

Aula 26: Estruturas heterogêneas

Linguagem de Programação I

Linguagem de Programação C++

Puca Huachi Vaz Penna

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Introdução à linguagem C++

Overloading de Operadores

Fundamentos de Programação

CCO 016 Fundamentos de Programação

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Puca Huachi Vaz Penna / José Américo T. Messias

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

Aula 4: Introdução à Linguagem C++

Operações com Arquivos

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

Programação Orientada a Objetos CLASSES E OBJETOS

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Aula 8: Estruturas de Repetição: O comando while

Linguagem de Programação III

Preparatório OBI. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula 01 Introdução a C++

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Prof. Jhonatan Fernando

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Orientação a Objetos. Programação em C++

1 Introdução e Conceitos básicos

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Overloading de Operadores

Projeto de Linguagem. Linguagens de Programação

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

Aula 10 Comandos de Repetição

CPP. C plus plus versus Java

Física Computacional 11 Classes

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

ECT1203 Linguagem de Programação

Carlos Eduardo Batista. Centro de Informática - UFPB

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

12. SOBRECARGA DE OPERADOR

Sobrecarga de Operadores

Carlos Eduardo Batista. Centro de Informática - UFPB

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Olimpíadas de Informática

Introdução a Computação

//conteúdo do arquivo pacote.h

Programação Orientada a Objetos

Transcrição:

Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Motivação para o uso de C++ para o aprendizado de POO Quando usar C e quando usar C++ C++ versus Java Ambientes de desenvolvimento C++ C++ e POO 2

Motivação para o uso de C++ 3

Aprendizado incremental (a partir de C) Controle de recursos e desempenho Gerência de memória manual Abstrações POO + Responsabilidade Maior controle da compilação Aprender C++ facilita o aprendizado posterior de Java Mais fácil de se otimizar o desempenho C++ não é linguagem para preguiçosos Motivação para o uso de C++ 4

C Código de baixo nível (drivers, kernel) Dispositivos embarcados (suporte) Fortes requisitos de desempenho* C++ Sistemas de infraestrutura 90% dos jogos são em C++ Sistemas operacionais (Windows, *nix) Onde C/C++ não são populares... Dispositivos móveis (ios e Android) Web Quando usar C e quando usar C++ 5

Padronização C++ ISO/IEC 14882 ISO/IEC JTC1/SC22/WG21 committee C++ 11 Java Java Language Specification (Oracle) C++ versus Java 6

C++ Estende C (linguagem imperativa/procedural) Acrescenta suporte a POO de tipagem estática Tratamento de exceções Gerenciamento de escopo Metaprogramação (templates) Biblioteca padrão (STD) Write once, compile anywhere (WOCA) Java Sintaxe fortemente baseada em C/C++ Máquina virtual (JVM) Concorrência JNI Java Native Interface Write once, run anywhere (WORA) C++ versus Java 7

Assimilam alguns conceitos de POO de forma diferente http://en.wikipedia.org/wiki/comparison_of_java_and_c++ C++ versus Java 8

Hello World Declarações I/O De Structs em C a Classes em C++ 9

#include <iostream> // incluir biblioteca de IO int main() // função onde o programa é iniciado { cout << "Hello World"; // exibe "Hello World" return 0; // devolve ao SO. o valor 0 (sucesso) 10

Declarações Em ANSI C as declarações antecedem as instruções Em C99 e C++ as declarações e instruções podem se misturar Declarações na condição de uma instrução do tipo if Serve como uma restrição de escopo (o bloco definido pelo if) 11

double g(int a, double d){ return a * d; void f(double p){ int i = 0; double result; //... if (p <= 10.0) i++; //... result = g(i,p); int main(){ f(5.0); 12

double g(int a, double d){ return a * d; void f(double p){ int i = 0; //... if (p <= 10.0) i++; //... double result = g(i,p); //Declara e usa result int main(){ f(5.0); 13

Declaração dentro de if Atribuição deve iniciar condição // se get() retorna valor diferente de NULL // realiza instrução w->fire() if(weapon *w = get()) { w->fire(); Declaração em outras instruções/laços if(int i = value)...; for(...; int i = value;...)...; switch(int i = value)...; while(int i = value)...; 14

Entrada e Saída em C++ <ostream> e <istream> Operadores >> (pegar de) << (por em) printf e scanf Não são generalizáveis para tipos definidos pelo usuário 15

cin entrada padrão cout saída padrão cerr saída de erro padrão Estados stream.good() stream.eof() stream.fail() stream.bad() 16

#include <iostream> #include <string> using namespace std; int main(){ int i; while (cin >> i) // boolean - conversão implícita cout << 2*i << " "; cout << "The End"; 17

Manipuladores Aceitos pelos operadores de E/S << e >> Altera o estado do stream Ponteiro para uma função #include <iostream> #include <iomanip> #include <string> using namespace std; int main(){ cout << 17 << endl << showbase << hex << 17 << endl << oct << 17 << endl; //17 //0x11 //021 18

#include <iostream> #include <iomanip> #include <string> using namespace std; int main(){ double d = 3.12345678; cout << d << endl << scientific << d << endl << fixed << setprecision(10) << setfill('#') << setw(18) << d << endl; //3.12346 //3.123457e+00 //######3.1234567800 19

De estruturas a classes... Definir uma estrutura genérica que depois pode ter algumas de suas partes modificadas Hierarquia tipo de Ponteiros para funções Antes de nos aprofundarmos nos conceitos do paradigma OO... 20

Definindo classes/objetos em C++ Um objeto é uma instância de uma classe e referencia algo (delimitado) na memória Declarando classes em C++ Atributos Funções membro (métodos) 21

class Casa { public: int numero, numquartos; bool jardim; ; main() { Casa minhacasa; minhacasa.numero=500; minhacasa.numquartos=4; minhacasa.jardim=1; return 0; 22

class Retangulo { public: int altura, largura; int area() { return altura*largura; ; main() { Retangulo r; r.altura=5; r.largura=2; cout << r.area(); return 0; 23

class Retangulo { public: int altura, largura; int area(); ; int Retangulo::area() { return altura*largura; main() { Retangulo r; r.altura=5; r.largura=2; cout << r.area(); return 0; Sintaxe básica de C++ 24

Construtores e inicialização de variáveis de um objeto Variáveis necessárias para a realização de funcionalidades oferecidas pelo objeto Para cada membro (instância) uma inicialização distinta 25

class Retangulo { private: int altura, largura; public: Retangulo(int a, int l) { altura=a; largura=l; int area() { return altura*largura; ; main() { Retangulo r(5, 2); cout << r.area(); return 0; 26

Ambientes de desenvolvimento C++ Fundamentação de Orientação a Objetos (OO). Modelagem de sistemas orientada a objetos usando C++ Próxima aula 27

http://www.cplusplus.com/doc/tutorial/ http://gillius.org/ooptut/ http://people.cs.aau.dk/~normark/ap/bas ic-facilities.html http://linuxgazette.net/issue55/williams.h tml Referências 28

Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br