Jump to content

Pascal para C++


s4muc4_!)0g@$
 Share

Recommended Posts

boas pessoal,

eu gostava que me ajudassem com uma pequena conversao de pascal para c++

este e o codigo

Type	Retangulo = Record
Comprimento : Real ;
Largura : Real ;
End ;

Type	Retangulo = Object
Comprimento : Real ;
Largura : Real ;
End ;

Type	Retangulo = Object
Comprimento : Real ;
Largura : Real ;
Function Area : Real ;
End ;
Function Retangulo.Area : Real ;
Begin
Retangulo.Area := Comprimento*Largura;
End ;

agradecia muito, visto que nao percebo nada de pascal, tambem agradecia o que e k esta a acontecer nesses 3 pedaços de codigo

Link to comment
Share on other sites

O primeiro declara (não aloca em memória, apenas declara) uma estrutura de nome Retangulo com dois campos de nome Comprimento (tipo númerico Real) e Largura (tipo numérico Real). Em C++ isto é feito com 'struct'. Procura exemplos com o Google.

O segundo declara (...) uma classe de nome Retangulo que é derivada da classe Object (a mais fundamental), com os mesmos campos acima. Em C++ isso é feito com 'class'.

O terceiro é idêntico ao segundo mas acrescenta um método chamado Area, que calcula a multiplicação dos campos Comprimento e Largura. Em C++ é declarado praticamente da mesma maneira mas o retorno do valor é feito com um 'return'.

Link to comment
Share on other sites

espera, ja sei

eu acho k e assim

struct (Retangulo){
        int Comprimento;
        int Largura;
}

class (Retangulo){
        int Comprimento;
        int Largura;
}

mas nao to a ver como e k faco a parte do function do terceiro

a nao ser k faça assim

class (Retangulo){
private:
        int Comprimento;
        int Largura;
        int Area;
public:
        Retangulo.Area = Comprimento*Largura;
}

ja agora tambem gostava k m explicassem estes

Var R1, R2 : Retangulo ;

R1.Comprimento = 10 ;

Write (R1.Area) ;
Link to comment
Share on other sites

Quanto às duas primeiras partes do codigo acho que nao e suposto pores struct/class (retangulo){}, mas sim struct/class retanculo{}. E tambem deverias por um; no final da classe. Assim:

struct Retangulo{
        int Comprimento;
        int Largura;
};
[/code=cpp]
[code]class Retangulo{
        int Comprimento;
        int Largura;
};

Na terceira deveria ficar assim:

class Retangulo{
private:
        int Comprimento;
        int Largura;
        int Area;
public:
        int getArea(){
                Area=Comprimento*Largura; //acede a variavel privada area
                return Area; //devolve uma copia da variavel privada area
        }
};

Var R1, R2 : Retangulo ;

Cria dois objectos da classe retangulo.

Em c++:

class Retangulo{
private:
        int Comprimento;
        int Largura;
        int Area;
public:
        int getArea(){
                Area=Comprimento*Largura; //acede a variavel privada area
                return Area; //devolve uma copia da variavel privada area
        }
};
int main(){
    Retangulo R1,R2;
}

R1.Comprimento = 10 ;

Faz com que o valor do comprimento do objecto R1 fique 10.

Em c++:

class Retangulo{
private:
        int Comprimento;
        int Largura;
        int Area;
public:
        int getArea(){
                Area=Comprimento*Largura; //acede a variavel privada area
                return Area; //devolve uma copia da variavel privada area
        }
        int setComprimento(int a){
                Comprimento = a;
                return a;
        }
};
int main(){
    Retangulo R1,R2;
    R1.setComprimento(10);
}

Write (R1.Area)

Escreve a area do objecto R1(R1.Area).

Em c++:

class Retangulo{
private:
        int Comprimento;
        int Largura;
        int Area;
public:
        int getArea(){
                Area=Comprimento*Largura; //acede a variavel privada area
                return Area; //devolve uma copia da variavel privada area
        }
        int setComprimento(int a){
                Comprimento = a;
                return a;
        }
        int setLargura(int a){
                Largura = a;
                return a;
        }
};
int main(){
    Retangulo R1,R2;
    R1.setComprimento(10);
    R1.setLargura(5);
    cout << R1.getArea();
}

Podes ainda adicionar um construtor ao retangulo.

Codigo final, com o construtor e com comentarios:

class Retangulo{
private:
        int Comprimento;
        int Largura;
        int Area;
public:
        Retangulo(int a, int b){ //constroi o retangulo
                Comprimento = a; //altera a variavel privada Comprimento
                Largura = b; //altera a variavel privada Largura
                Area=Comprimento*Largura; //altera a variavel privada Area
        }
        int getArea(){ //devolve a area
                Area=Comprimento*Largura; //altera a variavel privada Area
                return Area; //devolve uma copia da variavel privada Area
        }
        int setComprimento(int a){ //altera o comprimento
                Comprimento = a; //altera a variavel privada Comprimento
                return Comprimento; //devolve o novo valor do Comprimento
        }
        int setLargura(int a){ //altera a largura
                Largura = a;
                return Largura; //devolve o novo valor da Largura
        }
};
int main(){
    Retangulo R1; //var R1 : Retangulo
    R1.setComprimento(10); //R1.Comprimento = 10;
    R1.setLargura(5); //R1.Largura = 5;
    cout << R1.getArea() << endl; //write(R1.Area);
    Retangulo R2(5,6); //nao sei qual e o identico em Pascal
    cout << R2.getArea() << endl; //write(R1.Area);
}

<Signature goes here>

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • 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.