Loading...
rosenrusev avatar rosenrusev 175 Точки

[Homework] C# Basics - Conditional Statements

Здравейте,

 

Отварям тема за новото домашно.

Решенията ми ще следват едно по едно след като съм готов с всяко от тях :)

1. Problem 1 - Exchange If Greater . Използвал съм  XOR алгоритъм за размяна на стойностите на две променливи без да е необходима трета. Повече инфо тук: XOR_swap_algorithm .

Така представено решението ми работи само за целочислен тип.

В тази задача третата проверка е объркана. Трябва резултата да е 4.5 5.5 (по условие). Втората грешка в условието е, че стойностите не са целочислени (третата проверка).

2. Problem 2 - Bonus Score . Използвал съм switch-case.

3. Problem 3 - Check for a Play Card. Използвал съм switch statement.

4. Problem 4 - Multiplication Sign. Допълнителна информация към задачата Subset_sum_problem . Така написана задачата обхваща 8 случая при комбинация на всички позиции с положителна и отрицателна стойност. Използвал съм if оператори.

5. Problem 5 - The Biggest of Three Numbers . Използвал съм if-else.

6. Problem 6 - The Biggest of Five Numbers. Използвал съм 5 условия if-else.

7. Problem 7 - Sort 3 Numbers with Nested Ifs . Използвал съм if-else.

8. Problem 8 - Digit As Word . Използвал съм switch statement.

9. Problem 9 - Play with Int, Double and String . Използвал съм switch statement.

10.//TODO. Как се парсва дата и време Инфо от msdn .

11.//TODO

12.//TODO

Тагове:
35
Programming Basics
jumparo avatar jumparo 26 Точки

Да да ,разбрах го ! Мислех си ,че е събиране,от колегата който е постнал от Wikipedia линк с пояснение и от там се обърках.Благодаря! 

0
Nexus avatar Nexus 119 Точки

Привет,

Решение на 9-та задача с използване на ++n:

http://pastebin.com/auNKVHEP

пс: начинаещ съм и се опитвам да стигна до решение преди да потърся решени отговори ( което никак не е лесно ) и ми е много приятно като намеря решение точно като моето :).

 

Поздрави,

А.

1
georgy.nedyalkov avatar georgy.nedyalkov 103 Точки

Ето е моето решение на 7-ма задача.

Решението на задачата се състой в следното (понеже не съм писал коментари ще го обясня накратко тук):

Намираме най-голямото от 3-те числа с Nasted Math.Max():

double result = Math.Max(Math.Max(numberA, numberB), numberC);

Това намира по-голямото от numberA и numberB, след което сравнява резултата (намира по-голямото) между него и numberC.

Така намираме най-голямото число от 3-те. След това правим 3 if case-а:

АКО най-голямото число е numberA (това е 1-вия case),

АКО най-голямото число е numberB (това е втория case)

и else (който ни се явява третия case, АКО най-голямото е numberC).

След това за всеки от case-овете правим по 2 под-case-а, за да намерим 2-рото и 3-тото число.

1
valerivk avatar valerivk 3 Точки

Кратко решение за 4-та задача:

 

if (a * b * c > 0) // +

else if (a * b * c == 0) // 0

else // -

 

0
Kamigawa avatar Kamigawa 750 Точки

По условие мисля, че имаше изискване да не се ползва умножение. Може да я напаравиш с if-ове.

0
Nadia.Hristova avatar Nadia.Hristova 41 Точки

Не изчетох всички коментари до сега, затова се извинявам ако повтарям кода.

Моето кратко решение на 4-тия проблем oт домашното:

if ((a < 0 ^ b < 0) ^ (c < 0))
{
    if (a==0 ^ b==0 ^ c==0)
    {
       Console.WriteLine("0");
    } else Console.WriteLine("-");
}
else
{
   if (a==0 && b==0 && c==0)
   {
      Console.WriteLine("0");
   } else Console.WriteLine("+");
}

Мого съм горда от себе си, открих предназначение на ^ оператор. :D

1
07/12/2014 18:18:08
GogoK avatar GogoK 80 Точки

Здравейте, Искам да отпечатам най голямата стойност от масива заедно с позицията която заема в него.. a,b,c. Не намирам решение, някой ако може да помогне, Благодаря!

 

Console.WriteLine("Enter three numbers");
double[] numbers = new double[3];

for (int i = 0; i < 3; i++)
{
char symb = Convert.ToChar(97 + i);
Console.Write("Enter {0}:\t", symb);
numbers[i] = double.Parse(Console.ReadLine());
}

double bigNumb = numbers.Max();
Console.WriteLine("Biggest number is {0} \r\n", bigNumb);

пп.  code

0
15/02/2015 00:41:41
GogoK avatar GogoK 80 Точки

Kamigawa проблема ми е с позицията, от 2ч се рова и не намирам решение. Искам да отпечатам примерно.. b = 5, а не само стойността

0
GogoK avatar GogoK 80 Точки

Здравейте,

леко позациклих на 'Number as Words", някой ако може да ми даде лека насока.. дали съм на прав път поне.

 

Edit: NumberAsWords  - решена е бачка яко laughing

Zero Subset

0
21/02/2015 14:05:02
enevlogiev avatar enevlogiev 1168 Точки

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

int нещоСи = 302;
firstDigit = 302 / 100;
thirdDigit = 302 % 10;
Console.WriteLine(HundredsAsWord(firstDigit) + " and " + TensAsWord(thirdDigit));

дано схващаш идеята ; )
Нямам време точно сега да ти дебъгна кода, а и на пръв поглед има много потенциални бъгчета : )

1
GogoK avatar GogoK 80 Точки

Изтрих всичко и започнах отначало, защото и аз това видях (освен switchs).Много метаморфози и превъртания имаше наистина... Много съм далеч от методите затова се опитвам да ги ползвам, поне малко да ги схвана. 

Благодаря ти все пак!

1
a1mbiser avatar a1mbiser 63 Точки

Ето ти едно решение с метод не е много сбито и може да има някои бъгове (и аз като теб още се уча) дано ти даде някои идеи :)

Numbers As Words

1
24/02/2015 21:21:57
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Моето решение на задача 10. Beer Time. Кодът е  сравнително кратък.

Тествах го и работи, но ако има нещо "куцо" очаквам корекции:)

using System;
class Program
{
    static void Main()
    {
        Console.WriteLine("Enter a time in format hh:mm tt:");
        DateTime beerTime = DateTime.Parse(Console.ReadLine());
        string partOfDay = beerTime.ToString("tt");
        if ((beerTime.Hour>1 && partOfDay=="PM") || (beerTime.Hour<3 && partOfDay=="AM"))
        {
            Console.WriteLine("beer time");
        }
        else
        {
            Console.WriteLine("non-beer time");
        }
    }  
}

 
 
0
a1mbiser avatar a1mbiser 63 Точки

Здравей пробвах кода на моята машина и не работи коректно(защото съм с българска локализация) за да работи на всякакви машини независимо от регионалните настройки добави това в кода си:

Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;

 

трябва да добавиш и:

using System.Threading;
using System.Globalization;

 

1
27/02/2015 01:08:31
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки

Много ти благодаря за прагматичния отговор. Оправих кода.

 
 
 
0
kalin.yorgov avatar kalin.yorgov 1 Точки

Въпрос:
А има ли начин да не вкарваш ти часа в конзолата а тя да взима current time
аз опитах нещо с DateTime.Now.ToString(&quot;h:mm:ss tt&quot;) но не ми се получи питам от любопитство иначе в условието на задача си пише че трябва да се въвежда

0
angel7 avatar angel7 1 Точки

Здравейте!

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

if(number_1 >= number_2 && number_1 >= number_3 ) за трите числа

 if(a >= b && a >= c && a >= d && a >= е)  за петте числа

 

0
18/06/2015 01:17:14
antonio_rtodorov avatar antonio_rtodorov 74 Точки

Здравейте,

това е моето решение на задача 4. Multiplication Sign. До колкото разгледах, никой не е използвал този принцип и се надявам идеята да е полезна и симпатична. https://gist.github.com/antoniortodorov/699f1d9e58c7e9fff70b 

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

0
kalin.yorgov avatar kalin.yorgov 1 Точки

Имам един въпрос защо в задача 6 (която и аз съм решил почти по същия начин) защо като сложа 2 наклонени черти пред последното if в "else if"  да стане "else //if" ми получава 4-тия пример където последните 2 числа са 5 и са съответно най-големи а когато не напиша 2 наклонени черти (както аз бях направил) тогава просто не ми го изкарва ... надявам се ми разбрахте въпроса ..... двете //наклонени // не са ли за коментар  ??

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