Hogy kell? : Kérj be 3 számot, és ellenőrizd le, hogy lehetnek-e 1 háromszög oldalai. Ha igen írd ki melyik szöge mekkora?
A háromszög egyenlőtlenséget kell megvizsgálni. Tehát ha az oldalak hosszát az a, b, c változóban tároljuk, akkor a+b>c és b+c>a és a+c>b. A szögeket koszinusztételel ki lehet számolni.
Most leszek tizedikes így a szögfüggvényt még nem tudom, de: Háromszögnél bármely két oldal összegének nagyobbnak kell lennie a 3. oldal hosszúságánál.
Sajnos én c++ nem tudok, ezért c#-ban:
int oldal1 = int.Parse(Console.ReadLine());
int oldal2 = int.Parse(Console.ReadLine());
int oldal3 = int.Parse(Console.ReadLine());
bool haromszog = false;
if (oldal1 + oldal2 > oldal3)
{
if (oldal1 + oldal3 > oldal2)
{
if (oldal2 + oldal3 > oldal1)
{
haromszog = true;
Console.WriteLine("A háromszög megrajzolható!");
}
}
}
if (haromszog)
{
//Szögfüggvényt kiszámóló kód
}
Console.ReadKey();
"Most leszek tizedikes így a szögfüggvényt még nem tudom, de: Háromszögnél bármely két oldal összegének nagyobbnak kell lennie a 3. oldal hosszúságánál.
Sajnos én c++ nem tudok, ezért c#-ban:
int oldal1 = int.Parse(Console.ReadLine());
int oldal2 = int.Parse(Console.ReadLine());
int oldal3 = int.Parse(Console.ReadLine());
bool haromszog = false;
if (oldal1 + oldal2 > oldal3)
{
if (oldal1 + oldal3 > oldal2)
{
if (oldal2 + oldal3 > oldal1)
{
haromszog = true;
Console.WriteLine("A háromszög megrajzolható!");
}
}
}
if (haromszog)
{
//Szögfüggvényt kiszámóló kód
}
Console.ReadKey();"
Egyébként itt felesleges a háromszög vizsgálatra egy logikai változó. Hiszen, ha a te kódodban eljut a legbelső if-be, akkor háromszög. Elég csak egy metódushívás ott.
Gondolom még nem házi feladat :)
C++:
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
double a, b, c, alfa, beta, gamma, PI = atan(1.0) * 4;
setlocale(LC_ALL, "Hun");
cout << "Kérem az 'a' oldalt: ";
cin >> a;
cout << "Kérem az 'b' oldalt: ";
cin >> b;
cout << "Kérem az 'c' oldalt: ";
cin >> c;
if ((a + b) > c && (a + c) > b && (b + c) > a)
{
alfa = (pow(b, 2) + pow(c, 2) - pow(a, 2)) / (2 * b * c);
beta = (pow(a, 2) + pow(c, 2) - pow(b, 2)) / (2 * a * c);
gamma = (pow(a, 2) + pow(b, 2) - pow(c, 2)) / (2 * a * b);
cout << fixed << setprecision(2) << "a oldal: " << a << " alfa szög: " << acos(alfa) * 180 / PI << " fok" << endl;
cout << "b oldal: " << b << " béta szög: " << acos(beta) * 180 / PI << " fok" << endl;
cout << "c oldal: " << c << " gamma szög: " << acos(gamma) * 180 / PI << " fok" << endl;
}
else
cout << "A háromszög nem szerkeszthető meg !" << endl;
system("PAUSE");
return 0;
}
Pascal:
program Project2;
uses SysUtils, Math;
var a, b, c, alfa, beta, gamma: double;
begin
Write('Kérem az "a" oldalt: ');
ReadLn(a);
Write('Kérem az "b" oldalt: ');
ReadLn(b);
Write('Kérem az "c" oldalt: ');
ReadLn(c);
if ((a + b) > c) and ((a + c) > b) and ((b + c) > a) then
begin
alfa := (Sqr(b) + Sqr(c) - Sqr(a)) / (2 * b * c);
beta := (Sqr(a) + Sqr(c) - Sqr(b)) / (2 * a * c);
gamma := (Sqr(a) + Sqr(b) - Sqr(c)) / (2 * a * b);
WriteLn('a oldal: ', a: 6: 2, ' alfa szög: ', RadToDeg(ArcCos(alfa)): 6: 2, ' fok');
WriteLn('b oldal: ', b: 6: 2, ' béta szög: ', RadToDeg(ArcCos(beta)): 6: 2, ' fok');
WriteLn('c oldal: ', c: 6: 2, ' gamma szög: ', RadToDeg(ArcCos(gamma)): 6: 2, ' fok');
end
else
WriteLn('A háromszög nem szerkeszthető meg !');
ReadLn;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!