Kimossab

[POO/TAP] Exame 2016

Feb 4th, 2016
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  1. #include <iostream>
  2. #include "Ponto.h"
  3.  
  4. using namespace std;
  5. //1
  6. class Ponto
  7. {
  8.     float x;
  9.     float y;
  10.     public:
  11.     Ponto()
  12.     {
  13.         x = 0;
  14.         y = 0;
  15.     }
  16.     Ponto(float cx, float cy)
  17.     {
  18.         x = cx;
  19.         y = cy;
  20.     }
  21.     ~Ponto();
  22.  
  23.     void SetCoord(float cx, float cy)
  24.     {
  25.         x=cx;
  26.         y=cy;
  27.     }
  28.  
  29.     bool operator==(Ponto *P)
  30.     {
  31.         return (x == P->x && y == P->y);
  32.     }
  33. };
  34.  
  35. void main()
  36. {
  37.     Ponto *arrpont;
  38.     int npont;
  39.     float x,y;
  40.     cout << "Indique o numero de pontos que quer: " << endl;
  41.     cin >> npont;
  42.  
  43.     arrpont = new Ponto[npont];
  44.     for(int i=0; i<npont; i++)
  45.     {
  46.         cout << "Indique a coordenada no eixo do x: " << endl;
  47.         cin >> x;
  48.         cout << "Indique a coordenada no eixo do y: " << endl;
  49.         cin >> y;
  50.         arrpont[i].SetCoord(x,y);
  51.     }
  52.  
  53.     for(int i=0; i<npont-1; i++)
  54.     {
  55.         for(int n=i; n<npont; n++)
  56.         {
  57.             if(arrpont[n] == &arrpont[i])
  58.                 cout << "Os pontos " << i << " e " << n << " são iguais." << endl;
  59.         }
  60.     }
  61.  
  62.     delete[] arrpont;
  63. }
  64.  
  65. //3
  66. Lista<Tabela<string,string>> CodigoPostal;
  67.  
  68. //4
  69. //http://i.imgur.com/LeimUX3.png
  70.  
  71. //5
  72. //a
  73. bool ArvoreBinaria::ProcuraObjecto(Ponto *P)
  74. { //seja dir e esq os nodos a esquerda e direita.
  75.     if(obj == P)
  76.         return true;
  77.     if(esq && esq->ProcuraObjecto(P))
  78.         return true;
  79.     if(dir && dir->ProcuraObjecto(P))
  80.         return true;
  81.     return false;
  82. }
  83. //b
  84. int ArvoreBinaria::ContarTerminais()
  85. { //Ponto *P está a mais...
  86.     if(!esq && !dir)
  87.         return 1;
  88.     int cont=0;
  89.     if(esq)
  90.         cont += esq->ContarTerminais();
  91.     if(dir)
  92.         cont += dir->ContarTerminais();
  93.     return cont;
  94. }
  95. //c
  96. bool Lista::ProcuraObjecto(Ponto *P)
  97. {
  98.     if(obj == P)
  99.         return true;
  100.     if(!next)
  101.         return false;
  102.     return next->ProcuraObjecto(P)
  103. }
  104. //d
  105. bool Lista::Remover(Ponto *P)
  106. {
  107.     if(obj == P)
  108.     {
  109.         next = next->GetNext();
  110.         free obj;
  111.     }
  112.     else
  113.         next->Remover(P);
  114. }
  115.    
  116. //6
  117. void Lista<T>::InsereFim(T *A)
  118. {
  119.     if(obj == A)
  120.         return;
  121.     if(!next)
  122.         next = new Lista<T>(A);
  123.     else
  124.         next->InsereFim(A);
  125. }
Advertisement
Add Comment
Please, Sign In to add comment