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.
- Írjuk ki a bal alsó, majd a jobb felső pont koordinátáit.
- Írjuk ki, a téglalap kerületét és területét.
- Í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;
}
|