Zdravím, mám malý dotaz. Neví někdo náhodou jak napsat vzorec pro výpočet obsahu trojúhelníku, pokud znám všechny tři strany a, b, c ? Trošku si nevím rady :) . Předem díky.
Fórum › C / C++
Obsah trojúhelníku
#3 DB
Tak tohle jsme zplodil, nedalo by se to udělat ještě nějak efektivněji nebo si myslíte, že mi to projde ve škole ? :D
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a = 0, b = 0, c = 0;
double s = 0, S = 0;
cout << "Zadejte delky stran:\n";
cin >> a >> b >> c;
if (!cin.good() || a<=0 || b<=0 || c<=0) {
cout << "Špatný vstup.\n";
return 0;
} //if (!cin.good() || a<=0 || b<=0 || c<=0)
s = (a+b+c)/(2);
S = sqrt(s*(s - a)*(s - b)*(s - c));
if (S <= 0 || (a+b<c) || (a+c<b) || (b+c<a) ) {
cout << "Trojuhelnik nelze sestrojit.\n";
return 0;
} //if (S <= 0 || (a+b<c) || (a+c<b) || (b+c<a) )
else {
cout << "Trojuhelnik lze sestrojit, obsah je: " << S << endl;
} //else
return 0;
} //int main()
#4 DB
Nebudu ti psát celý kód, ale našel sem to během 2 min na Googlu
výpočet trojúhelníku c++, dokonce i s kontrolou. Chtít po někom aby ti napsal domácí úkol je přece hloupost nemyslíš ? Btw: Nepochopil sem proč do poznámek píšeš znova testovací podmínku... Poznámky ti mají napovědět proč to tak je a co by to mělo dělat. Zbytečná Anarchie ;)
#4 DB
Jenom poznámka: (k matematické části programu)
Podmínku (trojúhelníková nerovnost) if ((a+b<c) || (a+c<b) || (b+c<a) ) { cout << "Trojuhelnik nelze sestrojit.\n";
je potřeba dát před výpočet obsahu trojúhelníka, jinak při jejím nesplnění ti program spadne právě při výpočtu obsahu. Obsah je vždy větší než nula.
#5 Kenvelo
Presne tak:
if (!cin.good() || a<=0 || b<=0 || c<=0) {
cout << "Špatný vstup.\n";
return 0;
} //if (!cin.good() || a<=0 || b<=0 || c<=0)
Ten komentár je zbytočný a len znepriehľadňuje kód. Zmysel by dával ak by bolo telo podmienky tak veľké že by sa nezmestilo na monitor (používa sa to napr. pri namespace-och a veľkých switch-och) alebo pri neprehľadných vnorených blokoch.
Nechtěl jsem po někom kód, pokud jsi si všiml tak jsem ho tu dal a chtěl jsem jenom připomínky k efektivnosti. A proto jsem tu dál svůj kód. Ok poznámky jsou přehnané ale každý má svůj styl, pro mně je to tak přehlednější :-) ale ok vezmu to jako kritiku, která není adekvátní tématu. Celkem mi komentář od Honzc přijde od věci, protože mi to stroj zhodnotil na 100%. Ale i tak díky všem za čas. Mějte se...
#8 DB
Však sem ti hodil odkaz kde se můžeš kouknout kompletně na celý kód + si k tomu měl kontrolu. Ano každý má svůj styl, to ti neberu ale když se přece něco učím tak aspoň trošku důsledně. Zeptal ses jestli by si s tím prošel ve škole, mě by stačilo vidět ten komentář a vyhodil bych tě. =) Kdyby ses koukl co sem ti poslal přišel by si na to ještě dřív než ti to "Honzc" poradil.
#8 DB
Můj komentář rozhodně není od věci. Stroj ti to může nakrásně zhodnotit na 100%, on totiž posuzuje pouze jestli tam nemáš syntaktické chyby, a to jaké hodnoty za a,b,c dosazuješ samozřejmě neví.
Ono stačí si do tvého programu dosatit např. a=1, b=2, c=10 a uvidíš jak ti to spadne na výpočtu S.
A ještě ke komentářům: Komentáře slouží ktomu, aby někdo jiný, který čte tvůj kód věděl co právě děláš. Když mu ovšem za podmínku do komentáře napíšeš tu samou podmínku, tak z toho určitě nebude moudřejší. Ovšem, kybys mu tam napsal, že se vyhodnotí, zda jsou např. všechny strany větší než nula, pak by to smysl mělo.
Tam jde právě o to, že ten stroj ověřuje i vstupy a výstupy :) (jen pro informaci jmenuje se progtest) a také efektivitu a všelijaké jiné kraviny. Kdo by řekl, že může být tak chytrý :) .
BTW.
Ono stačí si do tvého programu dosatit např. a=1, b=2, c=10 a uvidíš jak ti to spadne na výpočtu S.
Strany trojúhelníku splňují trojúhelníkové nerovnosti:
Součet dvou libovolných stran je vždy delší než strana třetí, neboli
a + b > c
.
.
.
Takže by to logicky nemělo jít ne? :)
při a = 1, b =2 a c= 10 je a+b = 3. Podmínka a+b > c splněna není, proto ti tu ten příklad Honzc dal
hu
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Konstrukce trojúhelníku — založil check
Výplň trojúhelníku v c — založil miklel
Uhly trojuhelniku — založil Bay
Pomoc s obsahem trojuhelníku — založil Mr.Joke
Vytvoření trojúhelníků v jazyce C — založil Vorteox
Moderátoři diskuze