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

Să se rescrie exemplul de mai jos în care se defineşte o functie pentru citirea de la tastatură a unei date de tip punct, una pentru afişare şi o a treia care calculează distanta dintre două puncte preluate ca parametri. Apelurile lor se vor folosi în functia main. Ori in C ori in C++.

#include
#include
#include
#define N 4

struct punct { int x, y;};

void main()
{ punct p1, p2;
punct pct[N];
punct *pp;
int i;

double dist;

printf("Introduceti coordonate pentru p1:");
printf("\np1.x=");
scanf("%d", &p1.x);
printf("p1.y=");
scanf("%d", &p1.y);
printf("Introduceti coordonate pentru p2:");
printf("\np2.x=");
scanf("%d", &p2.x);
printf("p2.y=");
scanf("%d", &p2.y);
dist=sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
printf("\nDistanta dintre p1 si p2 este: %.2f\n", dist);
getch();

printf("Introduceti coordonate pentru cele 10 puncte:\n");
for(i=0 ; i {printf("\npct[%d]:", i);
printf("\nx=");
scanf("%d", &pct[i].x);
printf("y=");
scanf("%d", &pct[i].y);
}
printf("Coordonatele sunt:\n");
for(i=0 ; i printf("punctul %d - <%d , %d> \n", i, pct[i].x, pct[i].y);
pp=pct;
printf("Coordonatele sunt:\n");
for(i=0;i printf("punctul %d - <%d , %d>\n", i, (pp+i)->x, (pp+i)->y);
getch();
}


boiustef: Nu inteleg din enunt care este problema. Vad ca se introduc 10 puncte si care e cerinta? ce sa se afle???
am inteles ca se doreste aplicarea a 3 functii.
Deci, mai explicit te rog ...
cosmaandra2000: Asta este cerinta pe care o am, suntem la functii, si trebuie sa rescriem programul de mai sus creand cele 3 functii
cosmaandra2000: Se scrie un program în care se declară o structură pentru reprezentarea punctelor în plan prin coordonatele sale. Se exemplifică folosirea variabilelor de tip structura, tablouri si a pointerilor de structuri.
cosmaandra2000: aceasta este cerinta de la cel deja facut
cosmaandra2000: si mai erau comentarii pe parcurs la cateva linii de cod in care spunea ca "acum facem distanta" spre exemplu, dar le-am scos
boiustef: dar ce facem cu acele 10 puncte?

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <cmath>

using namespace std;

struct punct

{

   int x,y;

}pnct[20], P, P2;

void citire_punct(punct &P)

{

   cout << "Dati coordonatele punctului: " << endl;

   cout << "x="; cin >> P.x;

   cout << "y="; cin >> P.y;

}

void afisare_punct(punct P)

{

   cout << "coordonatele punctului: " << P.x << " " << P.y << endl;

}

double distanta(punct A, punct B)

{

   return sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));

}

int main()

{

   citire_punct(P);

   afisare_punct(P);

   citire_punct(P2);

   cout << "Distanta dintre puncte: " << distanta(P,P2);

   cout << "DAti coordonatele a 10 puncte: " << endl;

   for (int i=0; i<10; i++)

   {

       cout << "Punctul " << i << " : ";

       citire_punct(pnct[i]);

   }

   cout << "Coordonatele punctelor: " << endl;

   for (int i=0; i<10; i++)

   {

       afisare_punct(pnct[i]);

   }

   return 0;

}

Explicație:

am exersat...

sper sa-ti fie de folos. Nu am inteles ce facem cu vectorul de puncte...  

Poate modifici ceva....


cosmaandra2000: Multumesc
boiustef: cu placere... se poate aplica functia distanta pentru a determina perechea de puncte cu distanta maxima intre ele.... :)))
boiustef: din vector
Alte întrebări interesante