Informatică, întrebare adresată de claudianastasiu, 8 ani în urmă

Darius, mare pasionat de jocuri, după ce a aflat că știi să programezi, te roagă să creezi un joc special pentru el. Pentru că nu prea te pricepi la grafică și în plus ești ocupat cu pregătirea pentru interviuri, ai ales să reprezinți obiectele din joc folosind dreptunghiuri.

Pentru a reține un dreptunghi, te-ai gândit să reții coordonatele carteziene ale colțului din stânga jos și cele ale colțului din dreapta sus.

În plus, ai decis să te folosești de următorul struct pe care l-ai scris deja în pregătirea pentru interviu:

struct Punct {
int x, y;
};

Cerință

Definește un struct Dreptunghi care să rețină coordonatele unui dreptunghi. Acesta trebuie să conțină două variabile de tip Punct denumite stangaJos și dreaptaSus.

După ce ai definit struct-ul, definește o funcție actualizareDreptunghi care primește un Dreptunghi prin referință și 4 numere întregi și actualizează dreptunghiul cu cele 4 numere în felul următor:

primele 2 numere reprezintă coordonatele pe OX și OY (în această ordine) ale colțului din stânga jos
următoarele 2 numere reprezintă coordonatele pe OX și OY (în această ordine) ale colțului din dreapta sus
Semnătură funcție

void actualizareDreptunghi(Dreptunghi& dreptunghi, int x1, int y1, int x2, int y2);

Atenție!
Soluția ta trebuie să conțină doar definiția struct-ului Dreptunghi și funcției menționate.
Limbaj C++

Răspunsuri la întrebare

Răspuns de Apollyon
0

Răspuns:

#include <iostream>

struct Punct

{

 int x, y;

};

struct Dreptunghi

{

 Punct stangaJos, dreaptaSus;

};

void actualizareDreptunghi(Dreptunghi& dreptunghi, int x1, int y1, int x2, int y2);

int main()

{

/* creăm cele două puncte */

 Punct stangaJos{ 1, 2 };

 Punct dreaptaSus{ 3, 4 };

 /* creăm dreptunghiul cu cele două puncte */

 Dreptunghi dreptunghi{ stangaJos, dreaptaSus };

/* actualizăm coordonatele punctelor */

 actualizareDreptunghi(dreptunghi, 5, 6, 7, 8);

/* și afișăm */

 std::cout << "stangaJos = {" << dreptunghi.stangaJos.x << "," << dreptunghi.stangaJos.y << "}\n"

     << "dreaptaSus = {" << dreptunghi.dreaptaSus.x << "," << dreptunghi.dreaptaSus.y << "}\n";

 return 0;

}

void actualizareDreptunghi(Dreptunghi& dreptunghi, int x1, int y1, int x2, int y2)

{

 /* creăm două puncte cu noile cordonate */

 Punct noulStangaJos{ x1, y1 };

 Punct noulDreaptaSus{ x2, y2 };

/* schimbăm punctele dreptunghiului cu cele noi */

 dreptunghi.stangaJos = noulStangaJos;

 dreptunghi.dreaptaSus = noulDreaptaSus;

}

Alte întrebări interesante