Linguagem de Programação C++

Slides:



Advertisements
Apresentações semelhantes
TIPOS ABSTRATOS DE DADOS
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Redes de computadores II
Recursividade Função recursiva é aquela que chama a si própria.
Algoritmo e Programação
Programação de Computadores I Prof. Eduardo 2011
Programação II Estruturas de Dados
Vamos abordar o exemplo
Programação para Engenharia I
TADS – Tipos Abstratos de Dados
Funciona, porém está ilegível!
2002 LCG/UFRJ. All rights reserved. 1 Tópicos em C++ Claudio Esperança Paulo Roma Cavalcanti.
INTRODUÇÃO À PROGRAMAÇÃO
Introdução Linguagem C
Linguagem de Programação 1
Ponteiros em C.
LPG – I Prof. Flavio Marcello
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Curso de Programação em C++
Ponteiros.
Matrizes clássicas e vectores em C++
Modularização: funções e procedimentos (continuação)
Programação Orientada para Objectos
Programação Orientada para Objectos
INF 1771 – Inteligência Artificial
Algoritmos e linguagens de programação 1 (aula 05)
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Revisão /*======================================================*/
Objectos: Introdução O objecto ou classe é o conceito base de uma linguagem de programação por objectos como o C++. Tal como acontecia com as estruturas,
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
Informática e Computação Estrutura de Repetição aula 13
Exercício 1 Faça um programa que receba como entrada o nome e o salário de um funcionário de uma empresa e que calcule o novo valor do salário do.
Aula 07.
Metaprogramação – API Reflection da linguagem Java
CADEIA DE CARACTERES (Strings)
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Linguagem de Programação II
PROGRAMAÇÃO PROCEDIMENTAL
VETORES Roteiro da aula Referência ao Programa: Estrutura de Dados
Tipos Abstratos de Dados
Faculdade de Informática e Tecnologia de Pernambuco ESTRUTURA DE DADOS
Curso de C/C++ Aula 9 Instrutor: Luiz Felipe Sotero
Programação em C++ Compiladores
Procedural vs. OO (Figuras Geométricas: Área do triângulo)
1 Introdução a C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 15/08/2002 Autor: Marden Menezes Costa.
Roteiro Jogo de adivinhação Tarefa Desafio Algoritmo do jogo
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Informática e Computação Estrutura de Repetição aula 12
Uso de parâmetros na linha de comando. Parâmetros da função main:
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 07) Prof. Alessandro Bernardo.
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Tipos de dados inteiro caracter real logico
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 03) Prof. Alessandro Bernardo.
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Estruturas Revisando: tipos de dados simples
Programação de Computadores I – Arquivos
1Unidade – Estrutura Condicional CASE Algoritmos e Linguagens de Programação Estrutura Condicional CASE Faculdade INED – Abril 2007 Prof. Edwar.
Prof.: Francisco Heron Equipe: Israel Cavalcanti | Ricardo Ulisses | Marcos de Souza FFI - Foreign Function Interface Introdução Estrutura Léxica Declarações.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 08) Prof. Alessandro Bernardo.
Profa. Maria Augusta Constante Puget
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Algoritmo e Estrutura de Dados I Aulas 14 – Linguagem C Matriz Márcia Marra
Linguagem de Programação
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Ponteiros Parte III.
Orientação a Objetos - Programação em C++
Transcrição da apresentação:

Linguagem de Programação C++ Usando Makefiles

Problema: Colocar todas as classes em um único fonte: Pode tornar o fonte muito extenso e difícil de manipular; Dificulta a reutilização das classes em outros sistemas; Dificulta o trabalho em equipe.

Solução: modularização Agrupam-se as classes relacionadas em módulos; Para cada módulo dois arquivos: Declarações: Terminação “.h”; Contém apenas as declarações de classes e constantes; Implementação: Terminação “.cpp” Contém a implementação das classes definidas no “.h” correspondente; Inclui o “.h” correspondente. Para usar uma classe em outro módulo: Basta incluir o “.h” correspondente

Exemplo: teste.cpp usa Memoria #include <iostream> #include <stdlib.h> #include "Memoria.h" using namespace std; int main(int argc, char *argv[]){ mem.setDados(550); mem.setEnd(14); mem.write(); mem.read(); cout << mem.getDados() << endl; system("PAUSE"); return 0; }

Exemplo: Memória usa Registrador #include "Registrador.h" class Memoria{ public: Memoria(int umTamanho); void setDados(int umValor); void setEnd(int umValor); int getDados(void); void read(void); void write(void); private: Registrador16 endereco; Registrador16 dados; int tamanho; Registrador8 *memoria; }; Arquivo Memoria.h

Exemplo: Memoria.cpp #include <iostream> #include <stdlib.h> #include "Memoria.h" Memoria::Memoria(int umTamanho){ if (umTamanho < 0){ tamanho = 10; }else{ tamanho = umTamanho; } memoria = new Registrador8[tamanho]; void Memoria::setDados(int umValor){ dados.set(umValor); void Memoria::setEnd(int umValor){ endereco.set(umValor); int Memoria::getDados(void){ return(dados.get()); } void Memoria::read(void){ int aux = endereco.get(); if (aux >= tamanho-1) return; int low,high; high = memoria[aux].get(); low = memoria[aux+1].get(); dados.set(high*256+low); void Memoria::write(void){ int aux = dados.get(); int low = aux % 256; int high = aux / 256; memoria[endereco.get()] = high; memoria[endereco.get()+1] = low;

Exemplo: Registrador agrupa 2 arqs class Registrador8{ public: Registrador8(void); Registrador8(int umValor); int set(int umValor); int get(void); private: int consiste8(int umValor); int valor; }; class Registrador16{ public: Registrador16(void); Registrador16(int umValor); int set(int umValor); int get(void); private: int consiste16(int umValor); int valor; };

Exemplo: Registrador.cpp Registrador16::Registrador16(void){ valor = 0; } Registrador16::Registrador16(int umValor){ ... int Registrador16::set(int umValor){ if (consiste16(umValor)){ valor = umValor; return(1); return(0); int Registrador16::get(void){ return(valor); int Registrador16::consiste16(int umValor){ #include "Registrador.h" Registrador8::Registrador8(void){ valor = 0; } Registrador8::Registrador8(int umValor){ ... int Registrador8::set(int umValor){ int Registrador8::get(void){ return(valor); int Registrador8::consiste8(int umValor){ if ((umValor < 0)||(umValor > 255)) return(0); return(1);

Compilando vários módulos IDE: cria-se um projeto Comando de linha: Cria-se um makefile Makefile Roteiro de compilação Indica dependências e comandos de compilação Nome do arquivo: Makefile Ativação: make

Exemplo: Makefile all: teste teste: teste.o Memoria.o Registrador.o g++ -o teste teste.o Memoria.o Registrador.o teste.o: teste.cpp g++ -c teste.cpp Memoria.o: Memoria.cpp g++ -c Memoria.cpp Registrador.o: Registrador.cpp g++ -c Registrador.cpp

Exercícios: Faça dowload dos módulos Memoria e Registrador, crie uma aplicação teste, crie um makefile, compile e execute a aplicação teste.

Exercícios Crie uma classe MemoriaPipin. A memória do processador Pipinn é endereçada de 0 a 99 ou através dos mnemônicos “W”, “X”, “Y”, “Z”, “T1”, “T2”, “T3”, “T4”. Implemente esta classe usando a classe Memoria como “atributo”. Faça um exemplo de uso.

Exercício Crie uma classe ULA usando a classe Registrador16. Faça um exemplo de uso integrado com a classe MemoriaPipinn (por exemplo buscando valores na memória e armazenando o resultado das operações).