Programão C++

C++ dev

Membro
Boas...

Alguem percebe bem c++ ? Eu estou aqui enrascado para resolver este exercicio...


Código:
/*1- Considere a função PesquisaEmSequencia():

template <class> int PesquisaEmSequencia(const T v[], int n, T t) {
for (int i = 0; i < n; i++)
if (v[i] == t)
return i;
return -1;
}

a) Das seguintes frases:
A- O array v tem de estar ordenado para se usar PesquisaEmSequencia()
B- PesquisaEmSequencia() é um algoritmo de pesquisa de um valor t num array v
C- PesquisaEmSequencia() é um algoritmo de pesquisa de um valor inteiro t num array v
D- Nenhuma das anteriores

Escolha a que está correcta: ___


b) Altere o programa seguinte por forma a que escreva no ecrã a última posição do valor
de y no vector arrc (se lá não estiver, escrever "Não está!" no ecrã).
Nota: conte a posição a partir de 1.


#include <iostream>
using namespace std;

template <class> int PesquisaInversa(const vector<T> &v, T x) {
}

int main() {
vector<char> arrc;
arrc.push_back('P');
arrc.push_back('o');
arrc.push_back('r');
arrc.push_back('t');
arrc.push_back('o');
arrc.push_back('-');
arrc.push_back('P');
arrc.push_back('O');
arrc.push_back('R');
arrc.push_back('T');
arrc.push_back('U');
arrc.push_back('G');
arrc.push_back('A');
arrc.push_back('L');

char y = 'P';
int ret;


return 0;
}



2- Considere a classe Poligono:

class Poligono {
public:
virtual float area() const = 0;
virtual ~Poligono() {};
};

a) Das seguintes frases escolha a correcta:
A- area() não está correcta. Devia ser "virtual float area() const = {};"
B- area() implica que Poligono é uma classe abstracta
C- area() é uma função virtual, pelo que não devia ser "const"
D- nenhuma das anteriores

b) Altere o programa seguinte por forma a poder usar area() para mostrar no ecran
o valor da area do rectangulo;

#include <iostream>
using namespace std;

class Poligono {
public:
virtual float area() const = 0;
virtual ~Poligono() {};
};

class Rectangulo : public Poligono {
float base, altura;
public:
Rectangulo(float v, float h) { base = v; altura = h; }

};

int main() {
Rectangulo r(9.5, 5);
Poligono *p;
p = &r;

return 0;
} */



Se alguem conseguisse resolver agradecia...

obrigado.
 
Última edição pelo moderador:
1-a) B
Foi a mais imediata, agora as próximas talvez alguém que já tenha trabalhado com vectores te responda :P

a 1b) provavelmente um for a começar no fim do vector e acabar no inicio com um if a verificar se o valor dessa posição é o procurado. No fim do for mostras a mensagem "Não está!" porque é sinal que não foi encontrado xP essa seria a lógica, mas infelizmente não sei que código usar =(

no 2b) programar a área para mostrar os valores do rectângulo não parece muito difícil mas mais uma vez não tenho experiência com tais T.T

Espero sinceramente ter ajudado em alguma coisa mas duvido pois não disse nada de muito revelador xD
 
Última edição:
obrigado por teres ajudado ;)

ja agr vejam tb este ...


Código:
/* 1- Considere o excerto de código seguinte: 
  
    template <class> 
    void out(W x, int n = 1) 
    {  
        while (n--)  
            cout << x;  
    } 
  
a) Das seguintes frases escolha a correcta: 
    A- A definição da função 'out' não está correcta. 
    B- Na definição da função 'out' deveria ser 'class T' e não 'class W'. 
    C- A função 'out' só funciona para inteiros ou caracteres. 
    D- Nenhuma das anteriores 
 
 
b) Complete o código seguinte por forma a poder usar a função 'out' para   
    mostrar no ecran o texto "JJ666 666JJ". 
 
 
#include <iostream> 
using namespace std; 
 
    template <class> 
    void out(T x, int n = 1) 
    {  
        while (n--)  
            cout << x;  
    } 
 
    int main() 
    {  
        return 0;  
    }      
 
2- Considere a classe Solido: 
 
    class Solido { 
        public: 
            virtual float volume() const = 0; 
            virtual ~Solido() {}; 
    }; 
     
a) Das seguintes frases escolha a correcta: 
    A- volume() implica que Solido é uma classe abstracta 
    B- volume() é uma função virtual, pelo que não devia ser "const" 
    C- volume() não está correcta. Devia ser "virtual float volume() const = {};" 
    D- nenhuma das anteriores 
 
b) Altere o programa seguinte por forma a poder usar volume() para mostrar no ecran  
  o valor do volume do Cubo 
 
#include <iostream> 
#include <cmath> 
using namespace std; 
 
class Solido { 
    public: 
        virtual float volume() const = 0; 
        virtual ~Solido() {}; 
}; 
 
class Cubo : public Solido { 
        float lado; 
    public: 
        Cubo(float v) { lado = v; } 
 
}; 
         
int main() { 
    Cubo c(10); 
    Solido *p; 
    p = &c; 
 
    return 0; 
} */


fico à espera de sugestoes ou certezas ;)


obrigado
 
Última edição pelo moderador:
Back
Topo