Jump to content

Search the Community

Showing results for tags 'c++'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 1,702 results

  1. InfernalStorm

    Jogo Snake

    boas dias. gostaria de saber se é possivel elaborar um joguito da snake em c++...
  2. theproject

    Bloodshed e DirectX [?]

    Boas pessoal, alguem me sabe dizer comek eu meto o bloodshed a compilar progs k usem directX ? Mais especificamente o Direct3D e o Direct3DX Tou finalmente a aprender directX , tou a seguir um livro k ensina a configurar tudo no visual c++ 6.0 e 7.0 . Obviamente k já sakei e instalei o directX SDK. o meu prob é k kuando tento compilar exemplos básicos do livro o linker dáme bue erros (os tipicos undefined reference to blablabla) . Pelo k vi do livro, é preciso configurar a pasta onde estao os .h e a pasta onde estao os .lib , eu faco isso no bloodshed nas opcoes do projecto , onde meto essas 2 pastas bem configuradas. Depois o livro diz também k para tudo bulir é preciso linkar com 3 ficheiros d3d9.lib d3dx9.lib e winmm.lib, eu sei onde estao os primeiros 2 e penso estar a configurar bem o linker para linkar isso mas nao faco ideia onde esta o winmm.lib... Mas de kualker maneira tenho erros do linker para funcoes do direct3D ... alguem sabe como fazer isto, ou pelo menos o que estou a fazer mal ? tnx ...
  3. johnny_martins00

    Save Dialog

    Pessoal tenho duvidas no save dialog... Como é que mando gravar para um ficheiro???como e k escolho as formatacoes para ele gravar po ficheiro? Cumps
  4. joninho

    C++ Simples

    Alguém me quer mostrar um codigo fonte, de um programa em c++ do mais simples que existe? Cumps... Joninho
  5. InfernalStorm

    Case

    boas noites. pessoal tou me a atrofiar tdo com isto. alguem me pode dizer o k tenho mal aki e o k tenho de alterar??? #include <iostream.h> void main() { int nota; cout<<"0 - 4 Mau\n"; cout<<"5 - 9 Mediocre\n"; cout<<"10 - 13 Suficiente\n"; cout<<"14 - 17 Bom\n"; cout<<"18 - 20 Muito Bom\n"; cout<<"Introduza a nota\n"; cin>> nota; switch (nota) { case 'nota': (nota >=0 && <=4); cout<<"Mau\n" <<endl;break; case 'nota': (nota >=5 && <=9); cout<<"Mediocre\n" <<endl;break; case 'nota': (nota >=10 && <=13); cout<<"Suficiente\n" <<endl;break; case 'nota': (nota >=14 && <=17); cout<<"Bom\n" <<endl;break; case 'nota': (nota >=18 && <=20); cout<<"Muito Bom\n" <<endl;break; default : cout<<"ERRO!!!\n"; } } agradeço as respostas obrigado
  6. Vou apresentar outro exemplo de classes... desta vez , tem a ver com números complexos, vou apresentar o que é elementar nos números complexos Começo por apresentar a classe Complex, que inclui tratamento de erros.. Complex.cpp: #include<iostream> #include<cmath> using namespace std; class ErroComplex{ public: ErroComplex(){}; virtual void print_erro()const{cerr<<"ERRO.....Imprimi da classe ErroComplex :P....\n";} }; class Complex{ private: double real; double imag; public: Complex(){real=0; imag=0;} Complex(double r, double i){real=r; imag=i;} virtual double obtem_real(){return real;} virtual double obtem_imag(){return imag;} virtual void muda_real(double r){ real=r;} virtual void muda_imag(double i){imag=i;} virtual Complex soma(Complex cc){ Complex p; p.muda_real( real+cc.obtem_real() ); p.muda_imag(imag+cc.obtem_imag() ); return p; } virtual bool ereal()const{ if(imag==0) { return true;} else {return false;} } virtual void puroreal()const{ if(ereal()) cout<<" e' um numero complexo real\n"; else cout<<" e' um numero complexo puro\n"; } virtual void escrevecomplex() { cout<<"o complexo em causa e' ("<<obtem_real()<<" + "<<obtem_imag()<<"i);"<<endl; } virtual Complex inverso(){ Complex a; a.muda_real( (double) obtem_real() /( pow( obtem_real(),2) + pow( obtem_imag(),2 ) ) ); a.muda_imag( (double) (-1)*obtem_imag() /( pow( obtem_real(),2 )+pow( obtem_imag(),2 ) ) ); return a; } virtual Complex multiplica(Complex a){ double x,y; x=real*a.obtem_real()-imag*a.obtem_imag(); y=real*a.obtem_imag()+imag*a.obtem_real(); Complex z(x,y); return z; } virtual Complex divisaosegura(Complex a){ Complex z; Complex o; if( a.obtem_real()==0 && a.obtem_real()==0 ) throw ErroComplex(); else { o=a.inverso(); z=multiplica(o); return z; } } virtual Complex divcomplex(Complex o){ try{ Complex z; z=divisaosegura(o); return z; } catch( ErroComplex &e ){ e.print_erro(); Complex z( obtem_real(), obtem_imag() ); return z;} } }; isto vai servir para usar a classe Complex UsarComplex.cpp: #include<iostream> #include "Complex.cpp" using namespace std; int main(){ Complex a(5,-5); a.escrevecomplex(); Complex b,c,r,s; b.muda_real(2); b.escrevecomplex(); b.puroreal(); c.escrevecomplex(); c.puroreal(); cout<<"\n\nQuero que de de erro....Pois c=(0+0i)\n\n"; s=a.divcomplex(c); s.escrevecomplex(); cout<<"Em frente...outros exemplos..\n\n SOMA ...\n"; c=b.soma(a); a.escrevecomplex(); b.escrevecomplex(); c.escrevecomplex(); cout<<"Em frente...outros exemplos..\n\n Inverso ...\n"; Complex d(-3,4); d.puroreal(); d.escrevecomplex(); cout<<"inverso de d\n"; r=d.inverso(); r.escrevecomplex(); cout<<"Em frente...outros exemplos..\n\n Divisao ->esta kero que seja possivel =P...\n"; a.escrevecomplex(); cout<<" a dividir por ";d.escrevecomplex();cout<<"e '="; r=a.divcomplex(d); r.escrevecomplex(); int sair; cin>>sair; return 0; } a próxima classe é um simples modificação da classe Complex, mas aqui vou uma superclasse ParComplex... ParComplex.cpp: #include<iostream> using namespace std; class ParComplex{ private: double real; double imag; public: ParComplex(){real=0; imag=0;} ParComplex(double r, double i){real=r; imag=i;} virtual double obtem_real()const{return real;} virtual double obtem_imag()const{return imag;} virtual void muda_real(double r){ real=r;} virtual void muda_imag(double i){imag=i;} }; class Complex: public ParComplex{ private: public: Complex():ParComplex(){}; Complex(double e, double i):ParComplex(e,i){}; virtual Complex soma(Complex cc){ Complex p; p.muda_real( obtem_real()+cc.obtem_real() ); p.muda_imag( obtem_imag()+cc.obtem_imag() ); return p; } virtual bool ereal()const{ if(obtem_imag()==0) { return true;} else {return false;} } virtual void puroreal()const{ if(ereal()) cout<<" e' um numero complexo real\n"; else cout<<" e' um numero complexo puro\n"; } virtual void escrevecomplex()const { cout<<"o complexo em causa e' ("<<obtem_real()<<" + "<<obtem_imag()<<"i);"<<endl; } }; UsarParComplex.cpp: #include<iostream> #include "ParComplex.cpp" using namespace std; int main(){ Complex a(5,-5); a.escrevecomplex(); Complex b,c,r,s; b.muda_real(2); b.escrevecomplex(); b.puroreal(); c.escrevecomplex(); c.puroreal(); cout<<"Em frente...outros exemplos..\n\n SOMA ...\n"; c=b.soma(a); a.escrevecomplex(); b.escrevecomplex(); c.escrevecomplex(); cout<<"\nEm frente...outros exemplos..\n"; Complex d(-3,4); d.puroreal(); d.escrevecomplex(); int sair; cin>>sair; return 0; } qualquer dúvida ou se encontrarem alguma gafe...avisem
  7. Vou apresentar outro exemplo de classes... desta vez , tem a ver com fracções, também implemento tratamento de erros... Começo por apresentar a classe Fraccao, que inclui tratamento de erros.. Fraccao.cpp: #include <iostream> #include <cmath> using namespace std; class Fraccao{ private: int num; int den; public: Fraccao(){num=0; den=1;} Fraccao(int n, int m){ int r=mdc(n,m); num=n/r; den=m/r;} ~Fraccao(){}; // destrutor... virtual void set_num(int n){num=n;} virtual void set_den(int m){den=m;} virtual int obtem_num()const{ return num;} virtual int obtem_den()const{ return den;} virtual int mdc(int x, int y) { if(x==0 && y==0) return 1; x=(int)fabs( (double)x); y=(int)fabs((double)y); while(true) { if(x== 0) return y; y = y % x; if(y == 0) return x; x = x % y; } } virtual Fraccao soma(Fraccao o) { int n, m, r; n=obtem_num()*o.obtem_den()+o.obtem_num()*obtem_den(); m=obtem_den()*o.obtem_den(); r=mdc(n,m); n=n/r; m=m/r; Fraccao p(n,m); return p; } virtual Fraccao simetrico() { Fraccao p; if(obtem_num()>0 && obtem_den()>0) { p.set_num( (-1)*obtem_num() ); p.set_den( obtem_den() );} else if(obtem_num()<0 && obtem_den()<0) {p.set_num(obtem_num()); p.set_den((-1)*obtem_den());} else if(obtem_num()<0 && obtem_den()>0) { p.set_num((-1)*obtem_num()); p.set_den(obtem_den());} else if(obtem_num()>0 && obtem_den()<0) { p.set_num(obtem_num()); p.set_den((-1)*obtem_den()); } else if(obtem_num()==0 ) {p.set_num(obtem_num()); p.set_den(obtem_den()); } return p; } virtual void inverso(){ int aux; aux=obtem_num(); set_num(obtem_den()); set_den(aux); } virtual void escrevefraccao()const{ if(num!=0 && den!=0) cout<<"A fraccao e' ("<<obtem_num()<<")/("<<obtem_den()<<").\n"; else if(num==0 && den!=0) cout<<"A fraccao e' ("<<obtem_num()<<")\n"; } virtual void pede(){ cout<<"o numerador->"; cin>>num; cout<<"\no denominador->";cin>>den; } };// fim da class isto vai servir para usar a classe Fraccao UsarFraccao.cpp: #include <iostream> #include "Fraccao.cpp" using namespace std; int main(){ Fraccao q,r,a; Fraccao p(-4,-2); cout<<"q->"; q.escrevefraccao(); cout<<"p->"; p.escrevefraccao(); cout<<"O numerador de q passa a ser -2\n"; q.set_num(-2); cout<<"q->"; q.escrevefraccao(); cout<<"r=p+q\n"; r=q.soma(p); cout<<"r->"; r.escrevefraccao(); a=q.simetrico(); cout<<"Simetrico de q\n"; a.escrevefraccao(); cout<<"Inverso de q\n"; q.inverso(); q.escrevefraccao(); int sair; cin>>sair; return 0; } a classe PosFrac é uma subclasse da classe Fraccao, e PosFrac, representa a classe das fracções positivas... PosFrac.cpp: #include <iostream> #include "Fraccao.cpp" using namespace std; class NegFracErro { public: NegFracErro(){}; virtual void print_erro() const {cerr<<"Fraccao Negativa...ERRO!!!!"<<endl;} }; class PosFrac: public Fraccao{ private: public: PosFrac():Fraccao(){}; PosFrac(int n, int m):Fraccao(n,m){senegativa();}; virtual void set_num(int n){Fraccao::set_num(n); senegativa();} virtual void set_den(int m){Fraccao::set_den(m); senegativa();} virtual void pede(){ int n, m; Fraccao::pede(); /*cout<<"o numerador->"; cin>>n; cout<<"\no denominador->";cin>>m; set_num(n); set_den(m);*/ senegativa(); } virtual void senegativa(){ if(obtem_num()<0 || obtem_den()<0) throw NegFracErro(); } }; UsarPosFrac.cpp: #include <iostream> #include "PosFrac.cpp" using namespace std; int main(){ PosFrac d,c; Fraccao t; try{ d.pede(); c.pede(); t=d.soma(c); d.escrevefraccao(); c.escrevefraccao(); t.escrevefraccao(); } catch(NegFracErro & E){E.print_erro();} cout<<"Ja terminei inserir as fraccoes....isto é so pra saber que ja passei o try-catch anterior...\n"; // testes..eheh funciona!! try{ PosFrac p(-2,1);} catch(NegFracErro &E){E.print_erro();} try{ PosFrac q(-2,-1);} catch(NegFracErro &E){E.print_erro();} try{ PosFrac r(2,1);} catch(NegFracErro &E){E.print_erro();} PosFrac a; try{ a.set_num(-2); a.set_den(3);a.escrevefraccao();} catch(NegFracErro &E){E.print_erro();} PosFrac b; try{ b.set_num(2); b.set_den(3); b.escrevefraccao();} catch(NegFracErro &E){E.print_erro();} int sair; cin>>sair; return 0; } qualquer dúvida ou se encontrarem alguma gafe...avisem
  8. Vou apresentar outro exemplo de classes... desta vez , tem a ver com polinómios, também implemento tratamento de erros... Começo por apresentar a classe Simpoli, polinomios simples da forma ax^n +b...(n>0) ... que inclui tratamento de erros. Simpoli.cpp: #include<iostream> #include<cmath> using namespace std; class ErroSimpoli{ public: ErroSimpoli(){} virtual void print_erro() {cerr<<"Erro..Voce quer somar dois polinomios com grau diferentes!! BURRO!!!! ehehhe\n";} }; class Simpoli{ private: double coef; int grau; double ti; public: Simpoli(){ coef=0; grau=0; ti=0;} Simpoli(double s, int r, double m){coef=s; grau=r; ti=m; } virtual int obtem_grau()const{return grau;} virtual double obtem_ti()const{return ti;} virtual double obtem_coef()const{return coef;} virtual void muda_coef(double n){coef=n;} virtual void muda_ti(double m){ti=m;} virtual void muda_grau(int n){grau=n;} Simpoli derivada(){ Simpoli s; s.muda_ti(0); s.muda_coef(obtem_grau()*obtem_coef()); s.muda_grau(obtem_grau()-1); return s; } virtual double valor(double x){ return (double) pow(x,obtem_grau()); } virtual void mult(double c){ muda_ti(ti*c); muda_coef(c*coef); } virtual Simpoli soma(Simpoli o){ Simpoli s; if( grau==o.obtem_grau() ) { s.muda_coef(coef+o.obtem_coef()); s.muda_ti(ti+o.obtem_ti()), s.muda_grau(grau); return s; } else throw ErroSimpoli(); } virtual void escrevepoli()const{ cout<<"O polinomio em causa... :"<<obtem_coef()<<"*x^"<<obtem_grau()<<"+"<<obtem_ti()<<endl; } virtual void pede(){ cout<<"\nIntroduza o polinomio da forma a*x^n+b.\n Coeficiente a de a*x^n-> "; cin>>coef; cout<<"\nGrau n do polinomio-> "; cin>>grau; cout<<"\nTermo independente, ti-> "; cin>>ti; cout<<"\n"; } }; UsarSimpoli.cpp: #include<iostream> #include "Simpoli.cpp" using namespace std; int main(){ try{ Simpoli g(2,3,4); g.escrevepoli(); Simpoli p,r; p.pede(); p.escrevepoli(); r=p.soma(g); r.escrevepoli(); } catch(ErroSimpoli &e){ e.print_erro();} int sair; cin>>sair; return 0; } a classe monom é uma subclasse de simpoli, e monom representa os monómios da forma ax^n (n>0) ...isto é b=0. Monom.cpp: #include<iostream> #include<cmath> #include "Simpoli.cpp" using namespace std; class Monom :public Simpoli{ private: public: Monom():Simpoli(){} Monom(double a, int n):Simpoli(a,(int)fabs(n),0){} virtual void muda_grau(int n){ muda_grau( (int)fabs(n) );} virtual void muda_ti(double m){muda_ti(0);} Monom derivada(){ Monom s; s.muda_coef(obtem_grau()*obtem_coef()); s.muda_grau(obtem_grau()-1); return s; } virtual Monom primitiva(){ // vou considerar que o b=0.. spr!! Monom p; p.muda_grau( obtem_grau()+1 ); p.muda_coef( obtem_coef()/(obtem_grau()+1) ); return p; } virtual void mult(double c){ muda_coef(c*obtem_coef()); } virtual Monom soma(Monom o){ Monom s; if( obtem_grau()==o.obtem_grau() ) { s.muda_coef(obtem_coef()+o.obtem_coef()); s.muda_grau(obtem_grau()); return s; } else throw ErroSimpoli(); } virtual void escrevepoli()const{ cout<<"O polinomio em causa... :"<<obtem_coef()<<"*x^"<<obtem_grau()<<endl; } virtual void pede(){ double a; int n; cout<<"\nIntroduza o polinomio da forma a*x^n.\n Coeficiente a de a*x^n-> "; cin>>a; muda_coef(a); cout<<"\nGrau n do polinomio-> "; cin>>n; muda_grau(n); } }; UsarMonom.cpp: #include<iostream> #include "Monom.cpp" using namespace std; int main(){ try{ cout<<"Vou originar um erro ...ehehe k giro...\n"; Monom g(2,3); g.escrevepoli(); Monom p(2,2); p.escrevepoli(); Monom r; r=p.soma(g); r.escrevepoli(); } catch(ErroSimpoli &e){ e.print_erro();} int sair; cin>>sair; return 0; } qualquer dúvida ou se encontrarem alguma gafe...avisem
  9. mais um conjunto de classes que criei, a classe Poligono, Poligono não herda a classe Ponto mas vais usar os seus métodos públicos. Nota: para os que tentarem usar estes ficheiros, nao se esqueçam que precisam da classe Par e Ponto, que também disponibilizo... (tópico sobre a classe Par e Ponto aqui ...) Comecei por criar a classe Poligono Poligono.cpp: #include <iostream> #include <cmath> #include "Ponto.cpp" using namespace std; class Poligono { private: int npontos; protected: Ponto p[100]; public: Poligono(){}; Poligono(int n){ int i; npontos=n; for(i=0;i<n;i++) { p[i].set_abc(0.0); p[i].set_ord(0.0); } } virtual double perimetro() { int i; double pm; for(i=0, pm=0.0; i<npontos-1; i++) { pm=pm+p[i].distance1(p[i+1]); } pm=pm+p[npontos-1].distance1(p[0]); return pm; } virtual char * tipo(){return "poligono";} virtual void printpm() { cout<<"o perimentro"<<tipo()<<"e' "<<perimetro(); } virtual Ponto ponto(int n){ return p[n-1]; } };// fim da classe poligono Criei 2 subclasses da classe Poligono: Triangulo e Quadrilatero Triangulo.cpp: #include <iostream> #include <cmath> #include "Poligono.cpp" using namespace std; class Triangulo : public Poligono{ private: public: Triangulo():Poligono(3){}; Triangulo(Ponto a, Ponto b, Ponto c):Poligono(3) { p[0]=a; p[1]=b; p[2]=c; } virtual char * tipo()const{ return "triangulo"; } };// fim da classe triangulo Quadrilatero.cpp: #include <iostream> #include <cmath> #include "Poligono.cpp" using namespace std; class Quadrilatero : public Poligono{ private : public: Quadrilatero():Poligono(4){} Quadrilatero(Ponto a, Ponto b, Ponto c, Ponto d):Poligono(4) { double d1,d2,d3; p[0]=a; p[1]=b; p[2]=c; p[3]=d; // kero que seja convexo.... //verifica qual a menor valor de d1, d2 ou d3, isto e', a menor distancia d1=p[0].distance1(p[1])+p[1].distance1(p[2])+p[2].distance1(p[3])+p[3].distance1(p[0]); d2=p[0].distance1(p[2])+p[2].distance1(p[1])+p[1].distance1(p[3])+p[1].distance1(p[0]); d3=p[0].distance1(p[1])+p[1].distance1(p[3])+p[3].distance1(p[2])+p[2].distance1(p[0]); //e alterar ou nao a ordem dos pontos, para termos o um caminho sem cruzamentos if ((d2<d1)&&(d2<d3)) { p[1]=c; p[2]=b; } else if ((d3<d2)&&(d3<d1)) { p[2]=d; p[3]=c; } } virtual char* tipo()const {return "quadrilatero";} };// fim da classe quadrilatero e ainda criei as classe Quadrado que é subclasse da classe Quadrilatero Quadrado.cpp: #include <iostream> #include <cmath> #include "Quadrilatero.cpp" using namespace std; class Quadrado : public Quadrilatero { private: double lado; public: Quadrado():Quadrilatero(){} Quadrado(Ponto a, double c):Quadrilatero() { lado=c; p[0]=a; p[1].set_left(a.get_left()+lado); p[1].set_right(a.get_left()); p[2].set_left(a.get_left()+lado); p[2].set_right(a.get_left()-lado); p[3].set_left(a.get_left()); p[3].set_right(a.get_left()-lado); } virtual void set_lado(double x){lado=x;} virtual double get_lado()const{return lado;} virtual char* tipo()const{return "quadrado"; } virtual double area1() { return p[0].distance1(p[1])*p[1].distance1(p[2])*p[2].distance1(p[3])*p[3].distance1(p[0]); } virtual double area2()const { return pow(lado,4); } };// fim da classe quadrado os próximos código servem para usar as classe criadas: UsarTriangulo.cpp: #include <iostream> #include <cmath> #include "Triangulo.cpp" using namespace std; int main() { Ponto a,b,c; cout << "Ponto 1: "; a.read(); cout << "Ponto 2: "; b.read() ; cout << "Ponto 3: "; c.read(); Triangulo t(a,b,c); cout << " O perimetro deste "<<t.tipo()<<" e' " << t.perimetro() << "." << endl; cout << " Os pontos deste "<<t.tipo()<<" sao: " << endl; Ponto x; x = t.ponto(1); x.print(); x = t.ponto(2); x.print(); x = t.ponto(3); x.print(); cout<<"\n\n\tPrima um numero inteiro para sair->"; int sair; cin>>sair; return 0; } UsarQuadrilatero.cpp: #include <iostream> #include <cmath> #include "Quadrilatero.cpp" using namespace std; int main() { Ponto a,b,c,d; cout << "Ponto 1: "; a.read(); cout << "Ponto 2: "; b.read() ; cout << "Ponto 3: "; c.read(); cout << "Ponto 4: "; d.read(); Quadrilatero q(a,b,c,d); cout << " O perimetro deste quadrilatero e' " << q.perimetro() << "." << endl; cout << " Os pontos deste quadrilatero sao: " << endl; Ponto x; x = q.ponto(1); x.print(); x = q.ponto(2); x.print(); x = q.ponto(3); x.print(); x = q.ponto(4); x.print(); cout<<"\n\n\tPrima um numero inteiro para sair->"; int sair; cin>>sair; return 0; } UsarQuadrado.cpp: #include <iostream> #include <cmath> #include "Quadrado.cpp" using namespace std; int main() { Ponto a; double c; cout << "Ponto 1: "; a.read(); cout <<"\n medida do lado:"; cin>>c; Quadrado q(a,c); cout << " O perimetro deste "<< q.tipo() <<" e' " << q.perimetro() << "." << endl; cout << " A area1 deste "<< q.tipo() <<" e' " << q.area1() << "." << endl; cout << " A area2 deste "<< q.tipo() <<" e' " << q.area2() << "." << endl; cout << " Os pontos deste "<<q.tipo()<<" sao: " << endl; Ponto x; x = q.ponto(1); x.print(); x = q.ponto(2); x.print(); x = q.ponto(3); x.print(); x = q.ponto(4); x.print(); cout<<"\n\n\tPrima um numero inteiro para sair->"; int sair; cin>>sair; return 0; } em resumo temos: Poligono Triangulo Quadrilatero Quadrado e os ficheiros para usar estas classes UsarTriangulo UsarQuadrilatero UsarQuadrado se tiverem alguma dúvida ou caso encontrem alguma gafe falem comigo...
  10. BT26

    pedido de ajuda

    peco desculpa se em c++ ja tiverem respondido a algo parecido mas ainda n consegi ler todo o forum. a minha pergunta e a seguinte utilizando por exemplo o comando ifstream doc_in("save.txt"); ofstream doc_out("save.txt"); doc_in.getline(nome,140) se ja n existir mais linhas no documento, nome vai aparecer como o que?(isto seria para utilizar num tipo de contagem de linhas num documento Do .. while (nome!=<qualquercoisa>) e ja agora o doc_out consegue introduzir num documento de texto algo com uma estrutura? struct clientes{ char nome[50]; int codigo; char senha[5]; }cliente; doc_out << cliente[0] << endl;[ou ter um tipo de doc_out.putline(cliente,struct clientes);] doc_in.getline(cliente, struct clientes); ?? se poderem ajudar agradecia muito ptt's
  11. HoNdAcTr

    [Resolvido] Noob and i need some help lol

    Boas pessoal...Queria-vos dar os parabens por todo este empenho que teem tido a responder a todas as questoes feitas pelo pessoal aki do forum... eu sou um "noob" por isso peço-vos que me tirem uma pekena duvida se for possivel... tipo eu estou a fazer um programa k nao tem muita utilidade ( se e k tem alguma ) mas apenas faço isto para ir treinando e ver se aprendo qualquer coisa de novo #include <iostream.h> #include <stdlib.h> int main() { char ch; cout<< ".....carrega na tecla S \n"; cin>> ch; if(ch=='S') cout<< ".... \n"; system("PAUSE"); eu sei k isto ta mal.. quer dizer mal nao esta mas nao esta como eu pretendo.. o que eu quero fazer era do tipo tinha de inserir a letra "S" para que ele me aparece-se um devido texto, se essa tecla nao fosse precionada queria k aparece-se nova mensagem.. sera k alguem me pode ajudar??? obrigado e continuem com o bom trabalho que estao a ter!! ;)
  12. saramgsilva

    o que significa usar static e o virtual

    boas, tenho uma duvida estou a estudar C++ pro exame de poo, e nao entendi muito bem pra que ser o sufixo static e o virtual...uso muito nas classes...humm ja andei a procura,mas ainda nao percebi.. obrigada
  13. watt

    Nao sei bem Por onde começar...

    Boa noite pessoal! Estou a pensar em fazer um game em c++, ainda nao percebo muito disto, mas gostava de saber o que é melhor pa fazer o game, se é o VC++ 2005 ou o C++ simples? 😳
  14. vbmaster

    Void on Linux

    Pois é... tenho gostado bastante de programar em linux, o ambiente é mais leve, os output's ocupam menos espaço (os meus projects em c++ feitos em vs.net 2003 já levavam uns bons 300MB) e em suma tem funcionado bem. Já sabia que 'voids' em linux não funcionavam, infelizmente, porque eu prefiro sempre declarar uma função como 'void' por calanzisse, mas cheguei agora a uma parte do meu livro em que começa a falar de void pointers, e penso que estes como no fundo não deixam de ser voids, continuam a não estar acessíveis em linux... O que me leva a fazer um post é no fundo, perguntar o porquê disto, e saber se há algum IDE ou compilador que aceite voids.... até agora só tenho usado para programar em linux, o gedit com modo de realce c++, e o g++ para compilar. Fiquem bem ;)
  15. vbmaster

    error: 'xxxx" not declared in the scope

    Pois é pessoal, ando aqui com a cabeça à nora a tentar perceber os códigos do meu bookzeco de c++, ainda por cima acompanhados de breves e "esclarecedoras" explicações.... Enfim, vou tentando sobreviver... Nesta código que o livro apresenta o g++ retorna erros maioritariamente de variáveis fora da scope... mas eu pensava que elas eram variáveis globais, porque está a dar este erro? Look at it: (este código basicamente, pede-nos que escrevamos palavras, e estas são auomaticamente adicionadas ao struct caso lá não estejam e depois são retornadas com o número de vezes que estiveram presentes no nosso texto... pelo menos foi o que percebi) :x #include <iostream> using namespace std; const int max = 25; struct pair { char name[max]; int val; }; const words = 1024; pair vec[words]; pair &find (const char* p) { for (int i = 0; vec[i].val && strcmp(p ,vec[i]name); ++i); return vec[i]; } void count (char* word) { pair& res = find(word); if (res.val == 0) strcpy(res.name, word); ++res.val; } int main () { char buf[max]; cout << "Escrever palavras, terminar com EOF (CTRL z)" << endl; while (cin >> buf ) count(buf); for (int i = 0; vec[i].val; ++i) cout << vec[i].name << ":" << vec[i].val << endl; while(cin.get () == '\0'); return 0; }
  16. Pnf

    prog de C++

    BOas alguem sabe algum programa pra programar em C++?
  17. watt

    Visual C++.Net 2005

    Boas pessoal! Hoje decidi começar a reaprender o pouco de sabia de VC++ mas comecei a ter umas ideias malucas para um amnésico C++. E já estou a ter problemas…. textBox1->Font->Underline; Como é que faço com que isto fique true Cumprimentos
  18. johnny_martins00

    [Resolvido] Reading Key Pressed

    Pessoal tenho uma duvida: Tou a fazer um trab com um AGV comunicacao wireless programndo o em C++ mas keria k me dissessem se ha alguma maneira de conseguir fazer com que apos entrar numa rotina (atraves de um botao na form ou outra coisa kk) conseguisse ler do teclado de maneira a ser eu a guiar o AGV?!?!? Sei k existem as funcoes KeyPressed mas nao tou a conseguir com que funcione como eu kero, se alguem tiver ideias ou me puder ajudar agradecia. Cumps Ps - Meu primeiro post mas muitos virao.Parabens pelo Forum
  19. saramgsilva

    distancia entre dois ponto usando classes

    ola pessoal, tenho que fazer um programa em c++, usando classes que calcule a distancia entre dois pontos...ponto do tipo (x,y)...se alguem me podesse ajudar :roll: agradecia...estou as aranhas com isto...
  20. Dabubble

    [Resolvido] Genericos (templates) em C++

    Boas ppl. Eu estou a agora a fazer um simulador em C++ e preciso de usar genericos acontece que apesar de estar familiarizado om genericos em java em C++ torna-se um pouco mais confuso por causa dos ponteiros. Por exemplo como fazer uma classe generica que aceite um ponteiro como template. Apesar de a classe ser normal o que se torna confuso e como manipular o ponteiro la dentro. Se algum de voces por acaso conhecer um (ou varios) bom tutorial agradecia. danka
  21. Deixo aqui as sources que usei para resolver um problema que surgiu na área de VB. Estão lá as instruções sobre o problema e sobre as respectivas regras... Sobre a resolução, decidi criar uma classe que resolve a questão... Dêem uma olhadela e alterem o que acharem por bem alterar... A maior parte do código está comentado, mas se tiverem algumas duvidas, não tenham problemas em perguntar... PS.: Demora um pedaço a apresentar o resultado... Se investigarem as sources percebem porquê, ou seja qual foi a minha ideia e porque demora tanto... Tem lá várias funções de Dump, para quem quiser investigar mais sobre o funcionamento... Se puder esclarecer sobre este ou qualquer outra duvida, estejam à vontade... Ajudo no que puder... Table.h #pragma once //------------------------------------------------------------------- #define ALTURA 10 #define LARGURA 10 #define TOTAL ALTURA * LARGURA #define CELULA_VAZIA -1 //------------------------------------------------------------------- enum DIRECTIONS { NORTE = 0, NORDESTE, //1 ESTE, //2 SUDESTE, //3 SUL, //4 SUDOESTE, //5 OESTE, //6 NOROESTE, //7 NUM_DIRS //8 }; class CTable { public: CTable(); ~CTable(); void PreencherTabela(); void DumpMainTable(); void DumpPossibilitiesTable(); private: void ResetMainTable(); void ResetPossibilitiesTable(); bool GetOffset(DIRECTIONS direction, int* x, int* y); void PutInTable(int x, int y, int value); int GetOfTable(int x, int y); bool FindInTable(int value, int* x, int* y); bool GetNextStart(int* x, int* y); private: int m_table[LARGURA][ALTURA]; int m_Possibilities[TOTAL][NUM_DIRS]; int m_startX; int m_startY; }; Table.cpp #include "stdafx.h" #include "Table.h" #include "f:\desenvolvimento\lib\rand.h" #define MAX_TRIES 100 CTable::CTable() { m_startX = 0; m_startY = 0; //------------------------------------------------------------------- Randomize(); ResetMainTable(); ResetPossibilitiesTable(); //------------------------------------------------------------------- //Do the stuff PreencherTabela(); //------------------------------------------------------------------- } CTable::~CTable() { } void CTable::PreencherTabela() { int curNumber; DIRECTIONS directionToGo; int x = -1; int y = 0; int tempX; int tempY; int mainCounter = 0; int startX = -1; int startY = 0; for (curNumber = 0; curNumber < 100 ; mainCounter++) { if (curNumber == 0 || mainCounter == 5000000) { curNumber = 0; mainCounter = 0; ResetMainTable(); ResetPossibilitiesTable(); GetNextStart(&startX, &startY); printf("\nStarting from %d, %d", startX, startY); x = startX; y = startY; PutInTable(x, y, curNumber); curNumber++; continue; } //------------------------------------------------------------------- //Run through the several possibilities and choose one that is good int curDirection; for (curDirection = 0; curDirection < (int)NUM_DIRS; curDirection++) { //Check if this is a good posssibilitie... if (m_Possibilities[curNumber][curDirection] == 0) { //Choose another... continue; } tempX = x; tempY = y; //------------------------------------------------------------------- //This is an available direction... Must check the bounds and //if the cell is empty if (GetOffset((DIRECTIONS)curDirection, &tempX, &tempY) == 0) { continue; } if (GetOfTable(tempX, tempY) != CELULA_VAZIA) { continue; } //------------------------------------------------------------------- //Weeee! We can insert the number!! PutInTable(tempX, tempY, curNumber); m_Possibilities[curNumber][curDirection] = 0; x = tempX; y = tempY; //if (curNumber == 98) //{ // DumpMainTable(); //} curNumber++; break; } //------------------------------------------------------------------- //Check if all directions were anavailable if (curDirection == NUM_DIRS) { //------------------------------------------------------------------- //Must say that all options of current number are available becouse //we are giving a step back... for (int i = 0; i < NUM_DIRS; i++) { m_Possibilities[curNumber][i] = 1; } //------------------------------------------------------------------- //Remove the previous number FindInTable(curNumber - 1, &x, &y); PutInTable(x, y, CELULA_VAZIA); //------------------------------------------------------------------- //Give the step backwards... curNumber--; FindInTable(curNumber - 1, &x, &y); continue; } } //------------------------------------------------------------------- //Hey Wake Up!! Beep(1000, 1000); DumpMainTable(); getchar(); return; } void CTable::DumpMainTable() { printf("\n//----------------------------------------\n"); for(int i = 0; i < ALTURA; i++) { for (int j = 0; j < LARGURA; j++) { if (GetOfTable(i, j) != CELULA_VAZIA) printf("%4d", GetOfTable(i, j)); else printf("%4s", " "); } printf("\n"); } printf("//----------------------------------------\n"); } //------------------------------------------------------------------- void CTable::DumpPossibilitiesTable() { for (int curDirection = 0; curDirection < NUM_DIRS; curDirection++) { for (int i = 0; i < TOTAL; i++) { printf("%d", m_Possibilities[i][curDirection]); } printf("\n"); } } //------------------------------------------------------------------- void CTable::ResetMainTable() { for(int i = 0; i < LARGURA; i++) { for (int j = 0; j < ALTURA; j++) { PutInTable(j, i, CELULA_VAZIA); } } return; } void CTable::ResetPossibilitiesTable() { for(int i = 0; i < TOTAL; i++) { for (int j = 0; j < NUM_DIRS; j++) { m_Possibilities[i][j] = 1; } } return; } //------------------------------------------------------------------- bool CTable::GetOffset(DIRECTIONS direction, int* x, int* y) { if (!x) return 0; if (!y) return 0; switch (direction) { case NORTE: *y -= 3; break; case NORDESTE: *x += 2; *y -= 2; break; case ESTE: *x += 3; break; case SUDESTE: *x += 2; *y += 2; break; case SUL: *y += 3; break; case SUDOESTE: *x -= 2; *y += 2; break; case OESTE: *x -= 3; break; case NOROESTE: *x -= 2; *y -= 2; break; default: return 0; } if ((*x < 0) || (*x >= LARGURA)) return 0; if ((*y < 0) || (*y >=ALTURA)) return 0; return 1; } void CTable::PutInTable(int x, int y, int value) { m_table[x][y] = value; } int CTable::GetOfTable(int x, int y) { return m_table[x][y]; } bool CTable::FindInTable(int value, int* x, int* y) { for(int curX = 0; curX < LARGURA; curX++) { for (int curY = 0; curY < ALTURA; curY++) { if (GetOfTable(curX, curY) == value) { *x = curX; *y = curY; return 1; } } } return 0; } bool CTable::GetNextStart(int* x, int* y) { if (*x < LARGURA - 1) { (*x)++; return 1; } if (*y < ALTURA - 1) { (*y)++; *x = 0; return 1; } return 0; }
  22. frm

    Decimal para Binário

    Boas.. É o seguinte, preciso de fazer um programa em c++ usando uma função que me pedindo um numero entre 1 e 1023 me diga qual a sua forma binária... Alguém sabe alguma maneira de resolver isto? É que eu não consigo :? .. Obrigado... EDIT: E já agora um que fizesse o contrário, binário para decimal...
  23. saramgsilva

    Números primos

    Eu era pra ter passado pra C++, so que nao tive tempo... e mas C esta contido em C++ ...e o codigo em sim nao tem grandes diferenças... agora o comentario que faço do j ser menor ou igual que i, esta correcto, é para reforçar a ideia...nao estejes a confundir que j seria divisor de i...pode ser ou nao!ainda bem que percebeste o programa...
  24. Dabubble

    RPC's em C++ CORBA e afins

    Boas! Alguem por ai ja mexeu em RPC's (remote procedure calls) em C++, para quem não sabe trata-se de chamar metodos de um determinado objcto através da rede. Precisava de uns exemplos fixes disso, e se alguem tiver exemplos de como fazer RPC's em CORBA pois queria por um programita que eu fiz em Java com RMI (versao Java dos RPC's) com um programa servidor em C++. Mesmo links para tutoriais serve. Desde já agradeço.
  25. mini

    pequenos projectos

    eu queria saber quem é que me podia ajudar em arranjar pequenos projectos em c++ tipo uma calculadora ou um programa tipo de fazer somas, subtracções , divisões e multiplicações.
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.