Влез

View Full Version : Задача за триъгълник в C++



jessie88
05-21-2013, 11:22
Здравейте!Госпожата по информатика ни даде следното домашно:Да се състави програма която да осигурява въвеждане от клавиатурата стойности за променливите a,b,c,ha(височина) и с тях да се изчислява S на триъгълник,като резултата се извежда след проверките:
1)съществува ли реален триъгълник с въведените стойности,ако се знае,че триъгълника съществува,ако сумата на 2 от страните е по-голяма от третата;
2)да се направи проверка със съобщение дали триъгълника е правоъгълен или не (т.е. дали една от страните (b;c) е равна на височината (ha);
3)програмата да осигури въвеждането 4 пъти на стойностите.
Отсъствах от училище доста дълго време и не съм наясно какво трябва да направя стигнах до тук:
#include <iostream>
#include <cmath>
#include <fstream>

{ int a,b,c,ha,s;
cin>>a;

cin>>b;

cin>>c;
if(a+b<c)
{
cout<<"nqma takyv triygylnik"<<endl;
}
if(a+c<b)
{
cout<<"nqma takyv triygylnik"<<endl;
}
if(c+b<a)
{
cout<<"nqma takyv triygylnik"<<endl;
}
else
{

s=sqrt(p*((p-a)*(p-b)*(p-c)));
}

cout<<"liceto na triygylnika e "<<s<<endl;

Дори не знам дали това което съм написала е вярно...Може би задачата е много лесна,но не мога да я реша.Бих се радвала ако някой ми помогне.Благодаря предварително!

P.S.Търсих из форума подобна задача,но не успях да открия.Все пак ако има такава тема се извинявам,че съм създала нова.

Chacho
05-21-2013, 12:20
Ми не е съвсем вярна, защото else-ът накрая важи за последния if. Тоест, ако не съществува триъгълник по условието на някой от първите два if-a, ще изпише, че няма такъв, но въпреки това може да влезе в else-a, щото може последното условие да е изпълнено. Така хем ще изпише, че няма такъв триъгълник, хем ще сметне някво лице.

Също така не си си задала главната функция/програма, а само тялото й.

За лицето ти може да не излезе цяло число, затова ще е хубаво да ползваш float или double.



Айде после може да се включа пак, че сега нямам много време. Виж int main() как се пише. #include <fstream> не ти трябва. Сложи на негово място обаче "using namespace std;" (без кавичките). За подточка б можеш да ползваш питагорова теорема, за да провериш дали a²+b²=c², като ще ти трябват 3 if-a да провериш дали някоя от страните е хипотенуза (а по-гъзарският начин е да намериш първо най-голямата страна и после един if само за нея). За подточка в) ще ти трябва всичко, което до момента си написала вътре в int main() след int a,b,c,ha,s (препоръчвам ти да декларираш всички като float) да го оградиш в:

for (int i=0; i<4; i++)
{
СЛОЖИ СИ КОДЪТ ТУК
}

като return 0;} ще е след този for цикъл.

Ако имам време, ще ти напиша цялата програма. И моля те, ползвай важната тема, щото ми е по-удобно като се пита на едно място.