Loading...
bojankacarski avatar bojankacarski 19 Точки

[Homework] C# Basics - "Математика за програмисти" (Enthusiast)

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

 

п.с. ето ги направо всички форматирани:

http://pastebin.com/76TTDmSm

http://pastebin.com/zEyM9KMT

 http://pastebin.com/j4k26UVa

http://pastebin.com/Q6y5DS3t

http://pastebin.com/wY6Ast04

 http://pastebin.com/3HaEVDp4

Тагове:
5
Programming Basics 19/01/2015 10:38:24
RoYaL avatar RoYaL Trainer 6849 Точки

Давай, тенденция е от предните курсове да се постват решенията на домашни, за да се обсъждат :)

1
bojankacarski avatar bojankacarski 19 Точки

Радвам се , че има заинтересован :) ето за 1вото условие http://pastebin.com/76TTDmSm (formated)

имах затруднение с това как точно да задам да търси праймовете и за това импровизирах малко в началото :)

0
19/01/2015 10:14:29
RoYaL avatar RoYaL Trainer 6849 Точки

Пусни цзялото решение с юзингите и т.н., че така се форматира доста лошо :) (ако си отвориш линка ще видиш, че почти не се чете кода).

Иначе за намирането на простите числа може да провериш в гугъл - хората вече са открили топлата вода :) Похвално е, че си се опитал да измислиш свой начин всъщност.

2
bojankacarski avatar bojankacarski 19 Точки

Тук нещата са малко по-добре според мен http://pastebin.com/zEyM9KMT (formated), ще се радвам да ги изкоментираме и да чуя предложения за по-добър код , защото ми стана доста интересно и отделих бая време , за да измисля решения ако стане разговор ще кача и останалите решения за сега благодаря :)

0
19/01/2015 10:12:53
Filkolev avatar Filkolev 4482 Точки

И от мен поздравления за инициативността още на този етап да поемаш предизвикателства.

Нещо, което ще бъде обяснено съвсем скоро на лекция - имената на променливите трябва да са по-описателни. Това важи и за класовете, методите и т.н.

Трябва на всеки, който чете кода, да му е ясно какво съдържа дадена променлива. В случая голяма част от твоите променливи са с имена "x", "y" и т.н., което ми пречи да схвана бързо какво точно правят програмите ти, т.е. влошава се така четимостта на кода. Не е изключено ако пишеш и по-дълга програма сам да се объркаш в даден момент.

Освен да избягваш имена като "х", няма също смисъл да съкращаваш думи, примерно result => res или да "изяждаш" гласни (не мога да се сетя точно сега за хубав пример, но е често срещано). Това са по-скоро наследства от по-далечни времена в програмирането, когато всеки символ е бил от значение за performance-a на програмите, т.е. правят го по-опитни хора, които са се учили да програмират на по-стари езици. 

Разбира се, има изключения. В контекста на дадена задача може името "х" да е адекватно, например ако смяташ квадратно уравнение или нещо подобно. Но в повечето случаи има доста по-добри алтернативи за именуване.

3
bojankacarski avatar bojankacarski 19 Точки

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

1
greedy1988 avatar greedy1988 21 Точки

Браво за старанието :) Само ако може повече коментари към примерите, за да знаем по-босите в това число и моя милост кое-как става и съответно, както Filkolev е отбелязал "имената на променливите да са по-описателни".
Поздрави :)))

0
19/01/2015 17:00:58
Filkolev avatar Filkolev 4482 Точки

Ако кодът е добре написан и имената на променливите - описателни, няма да има нужда от коментари, които да го обясняват. Всичко трябва да е в максимална степен self-explanatory.

1
Mironov avatar Mironov 4 Точки

Реших и аз да дам едно предложение за Фибоначи cool. Написано е директно за вкарване на число (не проверява дали е просто и прочие...)

Това е кода, като проверява дали е от редицата или не и на коя позиция е.

http://pastebin.com/Nb13NKSR

Ще се радвам на коментари!

1
20/01/2015 23:07:24
greedy1988 avatar greedy1988 21 Точки

Според мен, не трябва да тръгваш от нулата --->ако тръгнеш от 1 ще се променят позициите с една надолу, но това си е мое мнение  :) Не е лошо и да зачистиш ненужните редове, да не се захласва четящият :)
Поздрави за старанието !

 
 
1
bojankacarski avatar bojankacarski 19 Точки

Mironov супер е браво , проверката дали е просто - не е сложна така че лесно би могъл да я прибавиш ако искаше 

1
ugabugaman avatar ugabugaman -1 Точки

на първата задача не с ти вярни отговорите да знаеш :) 

-2
Viktor_Boyanov avatar Viktor_Boyanov 21 Точки

Искам да попитам(напълно начинаещ съм в С#) защо в решението на bojankacarski на 3ти проблем е нужно да се въвеждат 2 BigInteger - num и temp. Не може ли отдолу в цикъла да се използва "num" вместо "temp" и ще се получи: "num = num * x;" и по този начин няма нужда от втория BigInteger?

1
Kamigawa avatar Kamigawa 750 Точки

num се използва като горна граница на for loop-а и ако се променя стойността му ще повлияе на for loop-a - т.е. няма да се изпълнява желания брой пъти, ами повече или по-малко. Затова е използвана втора променлива - temp.

0
21/01/2015 16:14:54
bojankacarski avatar bojankacarski 19 Точки

Kamigawa всъщност Viktor_Boyanov е прав сложил съм излишен big integer - temp защото num не се променя през цялото време има x в for цикъла който се опитва да стане колкото нъм

 

п.с. благодаря на всеки който дава мнение , за да помогне както на мен така и на останалите заинтересовани , да си намирам грешките , които не са малко и са елементарни като гледам :)

1
21/01/2015 16:28:21
Kamigawa avatar Kamigawa 750 Точки

Не мога да се съглася (освен ако не ви разбирам погрешно идеята).Пробвах го(за да бъда не пиша наизуст) и никога не спира loop-a(погледнато реално ще спре като си препълни паметта де), понеже num се увеличава геометрично (заради умножението), докато x се увеличава аритметично(или там както се наричаше, заради събирането с 1).

1
21/01/2015 16:40:02
GogoK avatar GogoK 80 Точки

Здравейте,
Опитах се да реша задачата; "10.Напишете програма, която принтира фигура във формата на сърце със знака 'o' ". На пръв поглед работи, но с числа по малки от 18 и 8,16,32.. докъдето хваща конзолата, иначе се деформира. В кода съм коментирал един вариант, който ще пробвам утре, но реших да попитам по напредналите, дали съм на прав път и за малко насока ако не съм. Опитвам се от въвеждане на произволно число да се изрисува формата(19,41..). 1-ви вариант е сегашния, а 2-ри е който ще пробвам утре. 1в. е на принципа проба грешка, ако имате желание да коментирате имайте го предвид :).

А иначе ми повлия много темата "risuvane-na-konzolata" , който има желание може да погледне... постарали са се много ;)

1
bojankacarski avatar bojankacarski 19 Точки

Супер е аз го преработих съвсем малко сложих един "if" и ти поправих една от сметките на последния "for" цикъл  за четно и нечетно и мисля , че се получи това , което търсиш ето го http://pastebin.com/iayMbmhC с рисуването повечето пъти става проблем именно при условие , че може да е четно или нечетно - говоря за "size" пробвай го мисля , че с този код се получава 

2
GogoK avatar GogoK 80 Точки

Снощи бях зациклил в циклите.. направо си бях влезнал в тях. Но в момента и аз това правя, четни и нечетни, ще ти погледна кода след като се опитам да се справя, защото ми остана само основата на последната част и за да не се повлиая, после ще сравним :). Благодаря за помощта!

0
bojankacarski avatar bojankacarski 19 Точки

няма проблем пусни си твойто решение да видим какво си сътворил :)

0
a_tifonoff avatar a_tifonoff 26 Точки

Здравейте,

струва ми се, че във форума постват основно хора, които са повече или по-малко напред с материала. Аз съм съвсем начинаещ и след 4 дена четене и опити родих това нещо:http://pastebin.com/XP6We7zg . Имам два въпроса

1. Много ли е тъпо?

2. Защо не можах да подкарам "biginteger" ?  Не ми се получава задачата с факториела бе него.

p.s. Първа и втора задача се опитах да ги вържа, ама не ми стигна вътък.

1
GogoK avatar GogoK 80 Точки

На 1 въпрос е лесен отговора - тъпо е само ако не опитваш да направиш нещо след като си имал идея, а какво се е получило не е важно. Важно е според мен ако не ти хареса резултата на края да се опиташ да го подобриш ;)

А за другия въпрос погледни тази част от циклите Конструкция за цикъл do-while 

1
22/01/2015 16:22:37
a.angelov avatar a.angelov 1316 Точки

По втория ти въпрос - за да ползваш BigInteger е необходимо да добавиш референция в проекта към namespace-а System.Numerics.

Това се прави като кликнеш в Solution explorer-а върху References и избереш Add Reference - като напишеш в търсачката numerics ще ти излезе, маркираш и потвърждаваш.

ПС. Както колегата под мен е допълнил - трябва да сложиш и using System.Numerics; най-отгоре в кода. Ако пък не си го направил като напишеш BigInteger и натиснеш Ctrl+./контрол плюс точка/ Visual Studio ще те попита дали искаш да импортнеш този неймспейс.

2
22/01/2015 16:22:24
bojankacarski avatar bojankacarski 19 Точки

a_tifonoff според мен са супер задачките ти и пак според мен не въобще не е тъпо , "biginteger" се вкарва от менюто горе project , add reference търсиш и избираш System.Numerics и натискаш ок и най-горе на кода вкарваш  : "using System.Numerics;"

2
22/01/2015 16:16:35
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.