Loading...
djc_bg2015 avatar djc_bg2015 923 Точки

[Homework] C# Basics - Loops

Здравейте, първо искам да се извиня ако някъде съществува отключена тема за това домашно, и не съм я намерил. (Заключена тема). Ако има такава, моля изтрийте поста.

 

Та ето ги моите решения на задачите от конкретното домашно. Ще се радвам да видя и други решения.
Поздрави!

Problem 1Numbers from 1 to N

Problem 2Numbers Not Divisible by 3 and 7

Problem 3Min, Max, Sum and Average of N Numbers

Problem 4Print a Deck of 52 Cards

Problem 5Calculate 1 + 1!/X + 2!/X2 + … + N!/XN

Problem 6Calculate N! / K!

Problem 7Calculate N! / (K! * (N-K)!)

Problem 8Catalan Numbers

Problem 9Matrix of Numbers

Problem 10Odd and Even Product

Problem 11Random Numbers in Given Range

Problem 12*: Randomize the Numbers 1…N

Problem 13Binary to Decimal Number

Problem 14Decimal to Binary Number

Problem 15Hexadecimal to Decimal Number

Problem 16Decimal to Hexadecimal Number

Problem 17*: Calculate GCD

Problem 18*: Trailing Zeroes in N!

Problem 19**: Spiral Matrix

 

Problem 20**: Exam Schedule

Problem 21**: Odd / Even Elements

Problem 22**: Arrow

Problem 23**: Five Special Letters

Problem 24**: Bit Roller

7
Programming Basics 22/06/2015 15:54:14
djc_bg2015 avatar djc_bg2015 923 Точки

Относно спиралната матрица, този клип ми помогна доста:

https://www.youtube.com/watch?v=siKFOI8PNKM

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

1
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Здравейте,

искам първо да ви поздравя за домашните и да изразя възхищението си към вас. Лично на мене циклите незнайно защо са ми много трудни и се опитвам да ги разбера, но все нещо пропускам. Много ще съм ви благодарен да ми споделите как ги разбрахте, каква информация сте ползвали, линкове относно цикли, ваши съвети и т.н.

Благодаря!

Поздрави,

 

0
djc_bg2015 avatar djc_bg2015 923 Точки

Преди около година се запалих по php, и от там понатрупах знания за цикли, масиви и други основни неща. В моя случай, много ми помогнаха уроци които гледах от lynda.com, но съм сигурен че в youtube има дори повече информация.

Моят съвете е да си пуснеш Visual Studio и да гледаш стъпка по стъпка, какво се случва в един for цикъл. Защото погледнато реално for и while правят едно и също нещо, и разбереш ли единия моментално ще си разбрал и другия (foreach е на същия принцип, просто се ползва за работа с колекции (array, list, dictionary)).

Поздрави!

1
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Здравей, 

мога ли да те попитам на Problem 4Print a Deck of 52 Cards какво прави вложения цикъл? гледах, мислих го, но не можах да измисля type защо е равно на 3 и трябва да е по-малък от 7. 

Благодаря!

0
djc_bg2015 avatar djc_bg2015 923 Точки

Ето нещо набързо с фотошопа, надявам се да помага:

Картите от 11-14 ги замествам с J, Q, K, A чрез switch-case

За боите ползвам 3, 4, 5, 6 (това са номерата на 4те бои в ascii таблицата)

// ще ти принтира пика
Console.WriteLine((char)3);

 

Поздрави!

1
23/06/2015 21:27:04
batemo avatar batemo 3 Точки

И аз изпитвам някакво затруднение с тези цикли. До преди този урок всичко ми вървеше гладко и тук "цикля" над домашното вече няколко дни. Относно задачата с картите ми дойде друго решение, което е доста лесно и приятно:

Използвам 

string [] CardDeck = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
            string[] ColorsDeck = { "♣", "♦", "♥", "♠" };

и след това  

foreach ( var card in CardDeck)
               foreach ( var color in ColorsDeck)
                    Console.Write("{0,3}{1}", card, color);

Доста е просто! Успех на всички, предполагам ,че ще се видим на изпита на 12ти! 

2
djc_bg2015 avatar djc_bg2015 923 Точки

Добро хрумване. Ако някой проверява домашното обаче е възможно да не ти зачете задачата.

Условие:

... Use 2 nested for-loops and a switch-case statement ...

Поздрави и успех с усвояването на циклите.

 

ПС. И дано на 12ти не само да се видим ами и да си вземем изпита с 450-500 точки (минимум) laugh

0
24/06/2015 21:11:18
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Колега искам да изразя своите благодарности към тебе, защото заради твоите решения, почти разбрах циклите. Можеш ли само да ми обясниш на задача 3 Min, Max, Average, Sum, защо min = Max.Value и max = Min.Value?

Хиляди благодарности,

Поздрави,

0
djc_bg2015 avatar djc_bg2015 923 Точки

Ами от нас се иска да кажем кое е най - голямото и най - малкото число от няколко.

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

 

След като сме получили числото, да кажем 3, започваме да въртим един цикъл до <3. На всяка итерация на цикъла ние проверяваме текущото число:

            if (currNum &gt; max)
            {
                max = currNum;
            }

            if (currNum &lt; min)
            {
                min = currNum;
            }

Задавайки стойности на Min и Мax да бъдат съответно, най високия възможен дабъл и най ниския такъв, се подсигуряваме че каквото и число да въведе потребителя то ще замести началните стойности.
С други думи , ако бяхме за почнали с Мин = 0; Макс = 0; и потребителя ни въведе -5  се случва следното:

if (-5 &gt; max) 
{
    max = currNum;
}
// Връща false. Това обаче е грешка, защото за момента това е най - високото число което имаме. 
// Следователно max трябва да бъде равно на -5 а не на 0. 
// Затова задаваме първоначално max да бъде възможно най - ниското число което потребителя ни може да въведе.



if (-5 &lt; min) // връща true
{
    min = currNum;
}


 

Дано си ме разбрал какво искам кажа, ако ли не, питай пак :)

1
25/06/2015 15:25:41
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Да, схванах защо се получава така. Ако съм разбрал правилно в случай, че задам max = Max.Value и min = Min.Value това означава, че декларираме двете макасимални граници в случая на double и така няма с какво да ги сравня. Тоест ако искам да направя сравнение, трябва да ги обърна за да мога да сравня стойностите. Нали така?

 

0
djc_bg2015 avatar djc_bg2015 923 Точки

Ами когато търсиш максимална стойност задаваш дефалтно най - ниската и обратно, когато търсиш минималната, задаваш най-високата.

min = double.MaxValue;
max = double.MinValue;

Така като правим двете проверки на първото число, то винаги Мин и Макс ще бъде то.

 

Ето как може да стане ако зададем нулеви стойности в началото на мин и макс:

http://pastebin.com/vPqnPzRg

1
djc_bg2015 avatar djc_bg2015 923 Точки

Ами не намерих такава опция при пействането на урл-а. Та затова щракам на "Source" и си го правя на ръка.

А относно решението ти, смея да кажа че otput-a е правилен (спатия, каро, купа, пика),  за разлика от моя (пика, купа, каро , спатия)  laugh

Поздрави!

1
26/06/2015 12:16:35
nikolaiweselinow avatar nikolaiweselinow 11 Точки

Оправих се, мерси.

0
26/06/2015 13:34:51
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Здравей,

може ли да ми дадеш малко разяснения по тази задача: Problem 10Odd and Even Product не мига да схвана синтаксиса с масива и цикъла на if (i % 2 == 0) // показва, числата, които са четни или нечетни, но така зададено не трябва ли след всяко завъртане currNum всеки път да приема нова стойност като изтрива старата?

Поздрави,

0
26/06/2015 16:09:03
djc_bg2015 avatar djc_bg2015 923 Точки

Ами да , на всяка итерация currNуm взима нова стойност от масива и я умножава към четния или нечетния продукт, в зависимост от позицията на текущия currNum.

1
Vetomirr avatar Vetomirr 1 Точки

Може ли условията ?

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