[C#] Methods - 14 задача


2

14.Write methods to calculate minimum, maximum, average, sum and product of given set of integer numbers. Use variable number of arguments.

Решение:

http://pastebin.com/3QYB4V9G




Отговори



1
Аз направих един масив и методи за min,max,sum,average,product, но ми се стори прекалено лесна задачата, което ме кара да си мисля, че не съм разбрал правилно условието
http://pastebin.com/ffFKHtd3

от iwitass (3695 точки)


0
Average не се ли смята като разделиш сумата на общия брой ? Ти си разделил на 2 ;)

от N_Kolev (194 точки)

0
Да вярно :D ами била ми е гръмнала главата явно.. мерси за забележката

от iwitass (3695 точки)



2

Коментар:

И аз мисля, че е много лесна като за предпоследна задача. Но всъщност това е само началото на 15, която си е доста интересна :)

Решение:

http://pastebin.com/GW6cLVQN

Обяснение:

Направих 5 метода - Min, Max, Average, Sum and Product.

Използвам params за да не си заделям предварително масив, и да го мисля колко трябва да е дълъг и т.н. По този начин той ще е дълъг колкото на мен ми харесва всеки път, щом извикам някой от методите.


от Assi.NET (3050 точки)


0
това params не беше ли просто, че може да има масив и може да няма масив, а не че колко е дълъг :) масива колкото и дълъг да го пуснеш винаги ще го обработи.

от ScorpS (1542 точки)


1
Задачата е прекалено лесна за това ниво, но като цяло е подготвителна за следващата :)
http://pastebin.com/uP2U9YEZ
Решението ми е елементарно. Различни методи за различните аритметични операции и последващо печатане в Main метода.
Поздрави

от Tsanko (139 точки)


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

от pdrenovska (2196 точки)


0
Използвах params от лекцията за методи, защото задачата вероятно има за цел някаква последователност - да изучим и начин за предаване на променлив брой аргументи.
Използвам резултата от метода за изчисляване на сума в метода за средно аритметично:
http://pastebin.com/WcujeygN

от ellapt (6303 точки)


0
Само да ви подсетя, че в условието пише given set of integer numbers.Вие сте задала и реален тип променливи.


0
Ах,да! Как съм го направила! Коригирах, на същия линк. Благодаря!

от ellapt (6303 точки)



0

Искам и аз да дам едно решение и да подчертая нещо! Гледам, че повечето хора тук са намерили минималното число, максималното число и т.н.! Аз смятам, че условието казва да се намерят: минималните, максималните, средните, сбор и произведения. Май има нещо като скрита уловка и не знам аз ли съм прав, другите ли?! Кажете, за да оправям решения докато е у време :))) Ето моето решение:

http://pastebin.com/T6TdvY3a

 


от stoyankm (5 точки)


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


0
Ok, ще го преправям сега :)

от stoyankm (5 точки)


0

Към решението на автора на темата-когато изчисляваш average не е подходящо метода да връща променлива от тип int и в тялото му да ползваш само променливи от тип int защото се извършва целочислено делене и резултата за average не е верен.




2
http://pastebin.com/aEhcazz1
По един метод за всеки от търсените резултати- Min, Max, Average, Sum, Product, като за Product връщам BigInteger, понеже аргументите може да са големи и да са повечко на брой /като например такива от голям масив/. За Sum връщам long, защото тогава резултата може да е голям, но не чак толкова колкото при Product. При Average връщам decimal, за да е коректен резултата при делението и намирането на средно аритметично.

от Vlado_XXX (944 точки)


0

Click

нищо особено, просто с params


от Rokata (397 точки)


2

И на мен ми се стори доста лесна, но наистина целта е да се опражнят различните възможност , иначе ще ги забравим :)

Мисля, че няма нужа от деклариране на масив със стойностите, освен ако той няма да се чете през конзолата. В противен случай най-добре директно да се подават на param метода. Аз понеже в 99% от случай избирам първия вариант, сега си избрах втория за разнообразие.

Решение


от atodorova (1273 точки)


1
Колеги, според мен нещата могат малко да се оптимизират.
При изчисляване на произведението, ако елемент е 0, няма смисъл да се продължава с калкулациите. 0 * Х = 0. Ако трябва да се задълбае повече, подобни неща могат да се направят и за минималната и максималната стойност. Примерно ако елемент = Int.MinValue, очевидно това е минималната стойност и не е нужно да се продължава в цикъла.



0
Колега, за MinValue не мисля, че е удачно, защото колко е шанса да имаш подобно число...а трябва да допишеш няколко реда код,само заради него и не си заслужава. Поне според мен :)

от ZliaShnur (132 точки)