[C#] Using Classes and Objects - 4 задача


15

Условие: Write methods that calculate the surface of a triangle by given:

  • ­Side and an altitude to it
  • Three sides
  • Two sides and an angle between them.
Use System.Math.
 

Решениеsource.

Обяснение:

При Math.sin ъгълът трябва да е в радиани. За да можете да го използвате с градуси, трябва да ги умножите по пи и да разделите на 180.




Отговори



2
Според мен идеята на задачата е да се overload-не един метод за всички случай примерно Area(double,double) за страна и височина и Area(double,double,double) за 3 страни. И когато извикваш Area с различни по брой или тип параметри се вика правилния метод в който вече е приложена съответната формула. Било то херонова или някоя друга ...

от ivivanov (903 точки)


0
И така става, но ъгълът трябва да int в моя случай, затова реших така да го направя.

от jasssonpet (6814 точки)

0
И аз се чудих как да оправя последните 2 случая при overloading. Реших да сложа един bool hasAngle със стойност по поразбиране false.

от loloto (1073 точки)


5
Решение: http://pastebin.com/uJHWFsUb
Аз съм го направил с три метода за всеки от вариантите. Добавил съм и меню за избор.
Най-важното от цялата работа е въвеждането на ъгъла. Както е казал колегата по-горе, ако искате да е в градуси, трябва да е: Math.Sin(Math.PI*число/180).

от Mitko_Mitev (1276 точки)


1
Ето едно решение и от мен, но аз реших да пробвам да ги оверлоадна методите :) http://pastebin.com/ZXGqrvFG

от BorisPenev (230 точки)


2

Три метода за трите формули и System.Math . Първо ги бях направил с интове ама като ми излезнаха различни резултати за един и същ триъгълник и  на бързо ги смених с дабъли :)

Старал съм се да давам много описателни имена на методите, и така да няма нужда от допълнителни коментари по кода, които да разясняват какво правя.

SyrfaceOfATriangleThreeMethods


от zhelyazkovn (2949 точки)


2

Triangle area

В тази задача определено наблегнах повече на потребителското решение, отколкото на практичното използване на методите (въпреки, че пак могат да се ползват).

Методът Area() приема double[] и optional bool angle (с който указвам дали подавам ъгъл или не). Използвах булевата променлива angle, тъй като overload няма как да се получи при положение, че и ъгълът би трябвало да може да е double.

На GetData(params string[]) подавам като аргументи стрингове с въпросите към потребителя, като броя на стринговете определя и броя на променливите, които връща метода. Върнатият масив отива директно в Area().

Покривам и случаите, в които не съществува триъгълник по зададените входни данни.


от kdikov (3407 точки)


1

Код: http://pastebin.com/BWKxXbdN

-В началото изписвам на конзолата възможностите от които портебителят да избере
-в зависимост от избора въвежда нужните променливи или излиза съобщеение за грешка
-след като променливите са въведени викам съответния метод и той смята и изкарва резултата.
 


от son4etyyy (416 точки)


0
При мен работи нормално за 5, 2, 6.

от jasssonpet (6814 точки)

0
ОК мерси, аз май го обърках като си я проверявах :)

от son4etyyy (416 точки)



2
Представям и моето решение:
http://pastebin.com/Jk1VTJet
1. потребителя си избира начина за намиране на площа на фигурата.
2. според избора се прилагат различните методи.
3. в 1 и 2 варианат е използван decimal формат на стойностите а за 2 - double. Заради Math.Sqrt не приемаше decimal.
4. Стойността, която се извежда на конзолата е ограничена до втория знак след запетаята.
Поздрави.

от nada (0 точки)


0
Да, ще трябва да преправя ъгъла да е в радиани.

от nada (0 точки)

0
Но за целта ще трябва градусите да ги умножа по 180 и после разделя на Пи: http://pastebin.com/q7Q9KSkn

от nada (0 точки)



2
И моето решение: http://pastebin.com/QhdihU1K



1
http://pastebin.com/uW10ajTU Това е моето решение като аз съм написал три метода с различните формили и потребителя има право да си избере по кой от трите начина да получи лицето.

от Plamen.Minkov (216 точки)


1
http://pastebin.com/dhwmg8qH
мисля ,че от кода се разбира логиката без проблем. Смятам, че е необходимо да се добавят и проверки относно отношенията между страните за да има триъгълник, така че има още работа по този код , но основното е на лице :)

от aleahim (0 точки)


0
И аз мисля, че лицето е най-важно в тази задача, но има ли причина да използваш sbyte за избора.

от jasssonpet (6814 точки)