Cercles (1) P84786


Statement
 

pdf   zip   main.cc

Per resoldre aquest exercici us caldrà la definició de @Punt@ i de @distancia()@ del problema P46254.

Feu un procediment

    void desplaca(Punt& p1, const Punt& p2);

que mou el punt @p1@ segons indiquen les coordenades del punt @p2@.

Per exemple, sigui @p1@ el punt (2,1)(2, 1), i @p2@ el punt (0.5,4)(-0.5, 4). Llavors @desplaca(p1, p2)@ faria que @p1@ valgués (1.5,5)(1.5, 5).

Addicionalment, usant la definició

    struct Cercle {
        Punt centre;
        double radi;
    };

feu dos procediments,

    void escala(Cercle& c, double esc);

que escala el cercle @c@ proporcionalment al real estrictament positiu @esc@, i

    void desplaca(Cercle& c, const Punt& p);

que mou el cercle @c@ segons indiquen les coordenades de @p@.

Per exemple, sigui @c@ un cercle de centre (1,2)(1, 2) i radi 3. Llavors, @escala(c, 2)@ obtindria un cercle de centre (1,2)(1, 2) i radi 6. En canvi, si @p@ és (3.5,1)(3.5, -1), @desplaca(c, p)@ obtindria un cercle de centre (4.5,1)(4.5, 1) i radi 3.

Feu també una funció que indiqui si un punt @p@ és interior a un cercle @c@:

    bool es_interior(const Punt& p, const Cercle& c);

Suposeu que els radis són sempre estrictament positius, i que @p@ mai estarà exactament a la frontera de @c@.

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Seguiu estrictament la definició dels tipus de l’enunciat.

Information
Author
Salvador Roura
Language
Catalan
Other languages
English
Official solutions
C++
User solutions
C++