👤

pb info problema #1334 cu rombu nu stiu ce sa scriu pentru perimetru eu l am scris asa dar se pare ca nu este bine:
#include
using namespace std;
int main()
{
int d,D,x,a,p;
cin>> d >>D;
x*x=(d/2)*(d/2)+(D/2)*(D/2);
p=4*x;
a=(d*D)/2;
cout<< p <


Răspuns :

Rezolvarea de 100 de puncte:

-------------------------------------------------------

#include<iostream>

#include<cmath>  /* folosim radicalul si atunci avem nevoie sa introducem biblioteca) */

using namespace std;

int main ()

{

   float d1, d2;  /* declaram variabilele d1 si d2, ca numere reale care au o precizie de 6 zecimale */

   cin>>d1>>d2;  

   cout<<sqrt((d1/2)*(d1/2)+(d2/2)*(d2/2))*4<<" "<<(d1*d2)/2;

/* afisam direct rezultatele */

   return 0;

}

--------------------------------------------------------------------

In programul tau ai folosit

" x*x=(d/2)*(d/2)+(D/2)*(D/2);

p=4*x; "

In primul rand valoarea (d/2)*(d/2)+(D/2)*(D/2) trebuia data unei variabile. Dar x*x nu e o variabila, ci x.

Puteai folosi n= (d/2)*(d/2)+(D/2)*(D/2) si apoi sa scrii x=sqrt(n)

dar ca sa folosesti sqrt() , trebuie sa introduci biblioteca <cmath> .

Acel sqrt() reprezinta radicalul.

Programul nu isi poate da seama ce valoare are x

------------------------------------------------------------------------

Cerința

Cunoscând diagonalele unui romb, să se calculeze perimetrul și aria acestuia.

Date de intrare

Programul citește de la tastatură numerele reale d1 și d2, separate prin spații, reprezentând cele două diagonale ale rombului.

Date de ieșire

Programul va afișa pe ecran perimetrul și aria rombului, separate prin spațiu.

Restricții și precizări

0 < d1, d2 < 100

rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01.

Exemplu

Intrare

2 4

Ieșire

8.94427 4

Explicație

Valorile celor două diagonale sunt 2 și 4. Perimetrul este 8.94427, iar aria este 4.