Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Documentos relacionados
ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

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

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

Linguagem de Programação C++ Se analisarmos a manipulação do objeto c, efetuada no exercício anterior, e compararmos com o que acontece em um banco

Sobrecarga de Operadores

Aula 14: Funções Passagem de Parâmetros por Referência

Técnicas de Programação:

Fundamentos de Programação

Prof. Jhonatan Fernando

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015

LISTA DE EXERCÍCIOS 2

Programação Orientada a Objetos para Redes de Computadores

Linguagens de Programação

Programação Orientada a Objetos para Redes de Computadores

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS CURSO DE ENGENHARIA ELECTROTÉCNICA/INDUSTRIAL

Aula 25: Funções com Arrays

Strings e Arrays POO

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

final class UltimosDiasMeses{ static final int[] DIAS_DO_MES = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; }

Exercícios... Capítulo 15. if62c. prof. Robinson Vida Noronha. Monday, March 23, 15

Programação em Linguagem C

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções

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

Linguagem C: Introdução

Computação e Programação

Fundamentos de Programação

CIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes

Roteiro Prático Nº 13 Recursividade

Programação Orientada a Objetos CLASSES E OBJETOS

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

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

ITENS FUNDAMENTAIS Programando em C++

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

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

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 11: Exercício Integrador (parte 2)

Programação: Vetores

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

ponteiros INF Programação I Prof. Roberto Azevedo

Carlos Eduardo Batista. Centro de Informática - UFPB

ptraux = dynamic_cast <PacoteNoite *> (vetor[i]); if (ptraux) auxiliar += vetor[i]->calculacusto();

Manipulação de Arquivos Binários

Universidade Estadual de Santa Cruz

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

DAS5102 Fundamentos da Estrutura da Informação

Programação Orientada a Objetos em Java

Linguagens de Programação

Linguagem C. André Tavares da Silva.

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

COMPORTAMENTOS - Observações

5COP088. Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior. Laboratório de Programação. Aula 2 Linguagem Estruturada

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Linguagem de programação métodos/funções

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008

Disciplina de Algoritmos e Programação

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Material sobre Funções AEDS 1

GEQ Prof. Paulo R. Coelho. Lista para prova

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

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

Linguagem de Programação II Implementação

Programação Orientada a Objetos para Redes de Computadores

Herança. Algoritmos e Programação II. Aula 5 Herança

Aula 6: Comandos Estruturados Estrutura Condicional

Lição 7 Array em Java

CIC 111 Análise e Projeto de Algoritmos II

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

LISTA DE EXERCÍCIOS 05 (GABARITO)

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Programação Orientada a Objetos para Redes de Computadores

Overloading de Operadores

Vetores Unimensionais

Linguagens de Programação

Olimpíadas de Informática

Linguagem de Montagem. Objetos e classes. Métodos e parâmetros. Linguagem de Montagem. Profs. Marcelo Nogueira / Fábio Amaral 1

Programação Estruturada. Arrays

Caracteres e Strings

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

Programação Aplicada à Engenharia

Objetos e classes. Linguagem de Montagem. Métodos e parâmetros. Outras observações. Valores de retorno. Código-fonte. Linguagem de Montagem CC/SI 1

Encapsulamento de Dados

Conceitos Básicos da Programação OO

Técnicas de Programação II

Array em Java. Figura 1 - Exemplo de um array de inteiros

Linguagens de Programação

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

INF 1620 P1-04/10/03 Questão 1 Nome:

EXERC EXAME DISCIPLINA: ALG ESTRUTURA DE DADOS I

Construtores e Especificadores de Acesso

Linguagem de Programação. Thiago Leite Francisco Barretto

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

Transcrição:

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista == Laboratório 2 == 1. Escreva um programa em C++ para calcular o n-ésimo elemento da série de Fibonacci. O programa deve possuir um arquivo principal que solicita o índice n do elemento ao usuário e depois exibe na tela o resultado. Para isso, é necessária uma função para calcular o n-ésimo elemento que recebe a ordem e retorna o elemento calculado. O protótipo dessa função deve ser disponibilizado no arquivo fibonacci-sc.h e o código fonte da função, no arquivo fibonaccisc.cpp. Não há o uso de classes. 2. Repetir o exemplo anterior criando a classe Fibonacci. A função computefibonacci, entretanto, recebe o índice da série, mas não retorna o resultado. Assim, é necessária a criação de uma função de acesso private que calcule o elemento da série. O resultado é armazenado como um atributo privado da classe que só é acessado por meio de uma função do tipo get. 3. Escreva uma classe Agenda para receber e armazenar 3 nomes distintos. Os três nomes devem ser passados pelo usuário através de uma execução do método setnames, que interage com o usuário solicitando cada um dos nomes. Os três nomes devem ser armazenados em um atributo privado do tipo array de strings. Antes de inserir os nomes no array, um método para validação deve ser usado. Nesse teste, assegura-se que cada um dos nomes não tenha mais do que 10 caracteres. Caso possua, uma mensagem deve ser exibida ao usuário e o nome deve ser truncado para caber no limite máximo definido. A classe Agenda ainda deve oferecer um método público para que os usuários possam visualizar na tela todos os nomes inseridos. Use os métodos substr (string substr (size_t pos = 0, size_t n = npos) const;) e length (int length ()) definidos na biblioteca string. 4. Escreva um programa que calcule o volume de um paralelepípedo reto. Para isso, o usuário deverá passar as dimensões do paralelepípedo para um objeto da classe Paralelepipedo através do construtor da classe. Esse construtor inicializa as dimensões do paralelepípedo com os argumentos passados pelo usuário e calcula o volume invocando o método: void setvolume (double, double, double). Esse método pode ser também usado pelo usuário, caso ele queira alterar as dimensões. A classe Paralelepípedo ainda oferece um método do tipo get para recuperar o volume calculado. Assim, é necessária a definição de atributos privados que armazenem o valor de cada uma das dimensões do paralelepípedo e outro para armazenar o volume calculado. 5. Escreva um programa para calcular a distância de dois pontos no espaço. O programa deve oferecer a classe Distancia e a classe Ponto. A primeira classe, a classe Distancia, possui como atributos privados dois objetos da classe Ponto e um double para armazenar a distância entre os pontos. Ainda, a classe Distancia possui métodos set e get para atribuir e recuperar as coordenadas dos pontos, um método get para recuperar a distância entre os pontos e um método set para calcular a distância, que só precisa ser invocada de dentro da própria classe Distancia. Por fim, a classe Distancia ainda oferece um

construtor que inicializa o atributo distância com zero. A classe Ponto possui métodos do tipo set e get para cada uma das coordenadas. Além disso, a classe Ponto ainda oferece um construtor que inicializa o valor de todas as dimensões (x, y, z) com 0, que é definido na origem do espaço. == Respostas == 1. #include "fibonacci-sc.h" int idx; cout << "Entre com o índice da série de Fibonacci: "; cin >> idx; cout << "\n\no número eh: " << computefibonacci (idx) << endl; /************************** Arquivo fibonacci-sc.h ***************************/ int computefibonacci (int); /************************** Arquivo fibonacc-sc.cpp **************************/ #include "fibonacci-sc.h" int computefibonacci (int i) { if (i == 1) else if (i == 2) else return computefibonacci (i - 1) + computefibonacci (i - 2); 2. #include "fibonacci-cc.h" Fibonacci fib; int idx; cout << "Entre com o índice da série de Fibonacci: "; cin >> idx; fib.computefibonacci (idx); cout << "\n\no número eh: " << fib.getfibonacci () << endl;

/************************** Arquivo fibonacci-cc.h ***************************/ class Fibonacci { void computefibonacci (int); int getfibonacci (); int result; ; int setresult (int); /************************** Arquivo fibonacc-cc.cpp **************************/ #include "fibonacci-cc.h" void Fibonacci::computeFibonacci (int i) { result = setresult (i); int Fibonacci::getFibonacci () { return result; int Fibonacci::setResult (int i) { if (i == 1) else if (i == 2) else return setresult (i - 1) + setresult (i - 2); 3. #include <string> #include "agenda.h" usung namespace std; Agenda agenda; agenda.setnames (); agenda.getnames (); /************************** Arquivo agenda.h ***************************/ #include <string> class Agenda { void setnames (); void getnames (); string names [3];

; string checkname (string); /************************** Arquivo agenda.cpp **************************/ #include "agenda.h" void Agenda::setNames () { string name; for (int i = 0; i < 3; i++) { cout << "Entre com o novo nome: " << endl; getline (cin, name); names [i] = checkname (name); void Agenda::getNames () { for (int i = 0; i < 3; i++) cout << names [i] << endl; string Agenda::checkName (string name) { if (name.length () > 10) { name = name.substr (0, 10); cout << "Nome truncado para: " << name << endl; return name; 4. #include "paralelepipedo.h" Paralelepipedo p (1, 1, 1); cout << p.getvolume () << endl; p.setvolume (1, 2, 3); cout << p.getvolume () << endl; /************************* Arquivo paralelepipedo.h **************************/ #include <string> class Paralelepipedo { Paralelepipedo (double, double, double); void setvolume (double, double, double); double getvolume (); ; double altura, largura, comprimento; double volume; /************************ Arquivo paralelepipedo.cpp *************************/

#include <string> #include "paralelepipedo.h" Paralelepipedo::Paralelepipedo (double a, double l, double c) { setvolume (a, l, c); void Paralelepipedo::setVolume (double a, double l, double c) { altura = a; largura = l; comprimento = c; volume = altura*largura*comprimento; double Paralelepipedo::getVolume () { return volume; 5. #include "distancia.h" Distancia distancia; distancia.getpontos (); distancia.setpontos (1, 0, 0, 3, 0, 0); distancia.getpontos (); cout << distancia.getdistancia (); /*************************************************************************/ /************************** Arquivo ponto.h ******************************/ class Ponto { Ponto (); void setx (double) void sety (double); void setz (double); double getx (); double gety (); double getz (); ; double coord_x, coord_y, coord_z; /************************** Arquivo ponto.cpp ***************************/ #include "ponto.h" Ponto::Ponto () { setx (0); sety (0); setz (0);

void Ponto::setX (double x) {coord_x = x; void Ponto::setY (double y) {coord_y = y; void Ponto::setZ (double z) {coord_z = z; double Ponto::getX () {return coord_x; double Ponto::getY () {return coord_y; double Ponto::getZ () {return coord_z; /************************** Arquivo distancia.h *************************/ #include <cmath> class Distancia { Distancia (); void setpontos (double, double, double, double, double, double); void getpontos (); double getdistancia (); Ponto pontoa, pontob; double distancia; ; void setdistancia (); /************************** Arquivo distancia.cpp ***********************/ #include "distancia.h" Distancia::Distancia () {distancia = 0; void Distancia::setPontos (double xa, double ya, double za, double xb, double yb, double zb) { pontoa.setx (xa); pontoa.sety (ya); pontoa.setz (za); pontob.setx (xb); pontob.sety (yb); pontob.setz (zb); void Distancia::getPontos () { cout << "Ponto A (" << pontoa.getx () << "," << pontoa.gety () << "," << pontoa.getz () << ")" << endl; cout << "Ponto B (" << pontob.getx () << "," << pontob.gety () << "," << pontob.getz () << ")" << endl; double Distancia::getDistancia () { setdistancia (); return distancia; void Distancia::setDistancia () { distancia = sqrt (pow (pontoa.getx ()-pontob.getx (), 2) + pow (pontoa.gety ()-pontob.gety (), 2) + pow (pontoa.getz ()-pontob.getz (), 2));