Néhány mértani feladat

Az alábbi feladatokban mértani fogalmak (leginkább) távolságok jelennek meg. Szükség lesz valós számtípusok alkalmazására.

1.

Beolvasunk 4 valós számot, melyek két pont x és y koordinátái a síkban (x1 y1 x2 y2). Milyen messze van a két pont egymástól?

Példák:

     0 0  11   -->  1.41...
     0 0  0    -->  2
    -1 0  1 0  -->  2
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;

    double dx = x1 - x2;
    double dy = y1 - y2;

    cout << sqrt(dx*dx + dy*dy) << endl;

    return 0;
}

2.

Adott három valós szám, melyek szakaszok hosszai. Szerkeszthető-e háromszög ezekből a szakaszokból?

Példák:

    3 3 3  -> igen
    3 4 5  -> igen
    1 2 4  -> nem
    2 3 5  -> nem
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double a, b, c;
    cin >> a >> b >> c;

    if (a < b+c && b < a+c && c < a+b)
        cout << "igen" << endl;
    else
        cout << "nem" << endl;

    return 0;
}

3.

Adott 6 valós szám, amik egy háromszög csúcsainak korrdinátái (x1 y1 x2 y2 x3 y3). Szám. ki a háromszög kerületét és területét! (segítség: Heron képlete)

Példák:

    0.5 0   1 2   2 1   ->  kerület: 5.28...
                            terület: 1.25...
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double x1, y1, x2, y2, x3, y3;
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

    double dx = x1 - x2;
    double dy = y1 - y2;
    double a = sqrt(dx*dx + dy*dy);

    dx = x1 - x3;
    dy = y1 - y3;
    double b = sqrt(dx*dx + dy*dy);

    dx = x2 - x3;
    dy = y2 - y3;
    double c = sqrt(dx*dx + dy*dy);

    cout << "kerulet: " << a + b + c << endl;

    double p = (a+b+c)/2;

    cout << "terulet: "
        << sqrt(p * (p-a) * (p-b) * (p-c))
        << endl;

    return 0;
}

4.

Adottak egy egyenes állású téglalap (olyan téglalap, aminek oldalai párhuzamosak a tengelyekkel) bal felső és jobb alsó sarkának koordinátái x1 y1 x2 y2 sorrendben.

  1. Írjuk ki a bal alsó, majd a jobb felső pont koordinátáit.
  2. Írjuk ki, a téglalap kerületét és területét.
  3. Írjuk ki, hogy négyzet-e a téglalap (igen/nem).

Példák:

    bemenet: 1 3    3 2
    
    bal also:  1 2     jobb felso   3 3
    kerulet: 6    terulet: 2
    nem négyzet
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    double x1,x2,y1,y2;
    cin >> x1 >> y1;
    cin >> x2 >> y2;

    cout << "bal also: " << x1 << " " << y2 << endl;
    cout << "jobb felso: " << x2 << " " << y1 << endl;

    double oldal1 = x2 - x1;
    double oldal2 = y1 - y2;

    cout << "kerulet: " << 2*oldal1 + 2*oldal2 << endl;
    cout << "terulet: " << oldal1 * oldal2 << endl;

    if (oldal1 == oldal2) {
        cout << "negyzet" << endl;
    }
    else {
        cout << "nem negyzet" << endl;
    }

    return 0;
}