Loading...

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

DHristoskov avatar DHristoskov 211 Точки

[Homework] Advanced C# - Methods - Problems {1} - {7}

Имам въпрос относно 6 задача, но тъй като съм решил и останалите поствам и тях

1.Bigger Number

2.Last Digit of Number

3.Larger Than Neighbours

4.First Larger Than Neighbours

5.Reverse Number

6.Number Calculations – Тъй като в условието е посочено, че ще ползваме само данни от тип double или integer съм ползвал dynamic, но не съм сигурен дали в този си вид решението е правилно въпреки, че работи.Брои ли се за коректно решение?

7.* Generic Array Sort

Тагове:
7
C# Advanced 11/05/2015 18:32:43
Filkolev avatar Filkolev 4482 Точки

Недей да ползваш dynamic, освен ако не е крайно необходимо. В условието е казано да се направят overloads на въпросните методи, т.е. трябва да направиш един метод Sum(), който приема аргументи тип int, и още един Sum(), който приема дабъли. Анаогично за останалите методи.

2
DHristoskov avatar DHristoskov 211 Точки

Благодаря много ще я напиша отново в такъв случай.А защо да избягвам ползването на dynamic по принцип?Ползвах го, защото се бях зачел в една от главите на тази книга, и ми се стори много лесно да си реша проблема като ползвам dynamic.

0
07/05/2015 13:41:22
Filkolev avatar Filkolev 4482 Точки

Мда, пази се от неща, които ти се струва, че могат да ти свършат работа навсякъде. Или т.нар. Golden hammer - примерно дават ти едно швейцарско ножче с 1000 приставки и почваш да го ползваш за всичко. По-хубаво е да ползваш специализирани инструменти за конкретните цели, които си си поставил.

Ако работиш с числа - ползваш числов тип данни; ако работиш със стрингове - ползваш стринг. Това е идеята на силно типизираните езици. dynamic може да държи всичко, но е опасно да се ползва, има си особености. Най-малкото compile-time не се знае какъв е типа на данните, които има в него, което ти позволява да правиш невалидни операции, за които ще разбереш чак runtime.

3
DHristoskov avatar DHristoskov 211 Точки

Благодаря много, ще го имам в предвид за напред, и ще избягвам ползването на dynamic.

1
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Здравейте,

Ето и от мен един 02. Methods-Homework. Наистина интересни задачи!

Както винаги всякакви съвети за оптимизация са мнооого добре дошли :)

(с поправките)

2
22/06/2015 14:05:00
enevlogiev avatar enevlogiev 1168 Точки

Здрасти, Катя, винаги разглеждам кода ти с интерес. Както очаквах, супер логика.

Понеже си отворена за съвети:

isLarger = nums[i - 1] < nums[i] && nums[i + 1] < nums[i] ? true : false -> тук няма смисъл от тернарен оператор, достатъчно е:

isLarger = nums[i - 1] < nums[i] && nums[i + 1] < nums[i]; това си връща true/false по дефиниция : )

Поздрави !

1
07/05/2015 21:15:51
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Прав си, това винаги го забравям! Благодаря :)

-1
npaunov avatar npaunov 51 Точки

В задача 6 пише "Do not use LINQ." До колкото разбирам (още се учим laughing) .Split() и .ToArray са методи на LINQ, т,е ако LiNQ го няма те няма да работят?

0
rulzzzbg avatar rulzzzbg 1 Точки

Здравейте колеги,

Това е моето домашно Methods. За първи път поствам..надявам се да съм се справил:)

1
onefen avatar onefen 27 Точки

На задача 3 Larger Than Neighbors  от теста даден в домашното редицата {1 3 4 5 1 0 5} и отговори:

False

False

False

True

False

False

True

Последното защо е true след като то няма комшия от дясно?

Не трябва ли да е False

0
enevlogiev avatar enevlogiev 1168 Точки

По-голям е от комшията вляво. Виж в условието (when such exists)

0
onefen avatar onefen 27 Точки

Да оправих го но си мислех, че ако съществуват такива в смисъл и двама комшии ако ги има, а не само единия, а то не било така.

0
Filkolev avatar Filkolev 4482 Точки

Колеги, има промяна в задача 6 Number Calculations - вместо с int и double (което правилно посочихте, че не е особено смислено), методите ви трябва да работят с double и decimal. Който я е направил вече задачата може да си я коригира.

Все пак, ще ви помоля при оценяването да не санкционирате хората, които са решили задачата по старото условие. Няма как да сме сигурни, че информацията за промените е стигнала до всички и не е правилно да се отнемат точки на хората, които са свалили условието преди корекцията.

0
malkstor avatar malkstor 348 Точки

Другия вариант е да се направи и за 3-те типа :) И без това като го направиш за единия, останалото е почти само copy/paste.

0
Filkolev avatar Filkolev 4482 Точки

Няма нужда да ви караме да копи-пействате излишно :)

0
ZlatinDimitrov avatar ZlatinDimitrov 11 Точки

Това са първите пет задачи и от мен.После ще довърша другите.Всяко едно мнение  ще ми е от полза.Приемам всякакви критики.Но като цяло са си приятни задачи.Със сигурност може и по оптимизирани да са ми решенията.

Methods-BiggerNumber

Methods-LastDigitOfNumber

Methods-LargerThanNeighbours

Methods-FirstLargerThanNeighbours

Methods-ReverseNumber

 

0
08/05/2015 15:15:41
Filkolev avatar Filkolev 4482 Точки

По последната задача - масивите по принцип се подават по референция, няма нужда да ползваш ref ключовата дума, това се прави само за value types.

0
nstanevski avatar nstanevski 37 Точки

Благодаря, поправих го.

0
milen.stefanov avatar milen.stefanov 40 Точки

Ето и моите решения за методи. Качил съм само .cs файловете. Като къмитвам целия проект към репозиторито в GitHub(TortoiseSVN), ми гърми със съобщението, че не е позволено да се къмитват празни папки. При вас така ли е и при ако да, кои файлове да къмитвам?

Поздрави :)

0
09/05/2015 17:21:04
petiahr avatar petiahr 31 Точки

@DHristoskov

Малка забележка относно зад.3 - от примерния sample code, който е даден, се вижда, че нa метода isLargerThanNeightbours се подават два параметъра - първият параметър е масива, а вторият е индекса на елемента, който ще проверяваме дали е по-голям от съседите си.

Твоят метод е само с един параметър - индекса на елемента :).

0
11/05/2015 17:47:48
DHristoskov avatar DHristoskov 211 Точки

Ако в кода има грешка то той няма да се компилира, в този случай въпросния масив е изкаран като статична променлива static int[] arr;, и няма нужда да бъде подавана допълнително към метода, защото тя е еднаква за всеки метод в дадения клас.

Успех!

0
11/05/2015 20:08:03
petiahr avatar petiahr 31 Точки

Аз не съм казала, че има грешка. Това, което имах в предвид, е че в примерния код към задачата се подават два параметъра на метода, а ти подаваш един. Но след пояснението, което направи разбрах каква ти е идеята. Благодаря!

0
angeldown avatar angeldown 7 Точки

Хитро решение на 7ма задача, но си използвал list, а по условие е масив.

Ето тази инициализация при мен свърши работа:

public static T[] SortArray<T> ( T[] arrayIn ) where T : IComparable
{

        Sort logic here

        ......................

        return arrayIn:

}

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