Loading...
dZf1aeA-KlimentHristov avatar dZf1aeA-KlimentHristov 56 Точки

Само не разбирам и защо ми давате минус 1  точка ?? на какво основание не разбрах ?

0
16/11/2015 18:00:16
inktech.n.kikov avatar inktech.n.kikov 42 Точки

тази първата задача ми се струва с потвеждащо решение...пита се дали числото е нечетно или четно:

int n = int.Parse(Console.ReadLine());
            bool isOdd = true;
            bool isEven = false;
            if(n % 2 == 0)
            {
                Console.WriteLine(isEven);
            }
            else
            {
                Console.WriteLine(isOdd);
            }

0
dZf1aeA-KlimentHristov avatar dZf1aeA-KlimentHristov 56 Точки

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

        bool isOdd = true;
        bool isEven = false;
        if( n % 2 == 1)
        { 
            isOdd = true;
            Console.WriteLine("Odd? {0}",isOdd);
        }
        else
        {

            isEven = true
            Console.WriteLine("Odd? {0}",isEven);
        }

Така според мен е по-правилно и разбираемо.

0
16/11/2015 20:45:23
alex.mitev avatar alex.mitev 20 Точки

Принципно няма нужда от повече от 1 булеви.

Примерно сетваме булевата на true, и после правим проверка, само 1 проверка.

bool isOdd = true;

if (n % 2 == 0)

{

isOdd = false. 

}

Console.WriteLine(isOdd)

 

 

0
Pete1 avatar Pete1 56 Точки

Според мен по - подходящото  решение за конкретната домашна е: 

 static void Main()
    {
        int n = int.Parse(Console.ReadLine());

        bool result = n % 2 != 0 ? true : false;
        Console.WriteLine(result);
    }

Мисля така, защото целта на домашното, според мен, е да решим задачите и да приложим нещата научени в материала, върху който е поставена конкретната домашна работа, където и когато е възможно. В случая - условния оператор " ?:". Надявам се да не намираш коментара ми за офанзивен. :) 

P.S. : По - подходящо, що се отнася не до коректност , а до дължина :D

4
16/11/2015 20:54:03
dZf1aeA-KlimentHristov avatar dZf1aeA-KlimentHristov 56 Точки

Твоето решение е оптимизиран код на моя ;))) харесва ми , но този тройния оператор ми е малко объркващ поне на мен.

1
yonko.petrov avatar yonko.petrov 11 Точки

Може и без "?:" в твоя случай е безмислено, така или иначе резултата ще е едно от двете.

int n = int.Parse(Console.ReadLine());

bool odd = (n % 2 != 0);
Console.WriteLine(odd);

2
justBeOk avatar justBeOk 194 Точки

За предпочитане е за по-кратки редове от код да използвате pastebin.com :)

Поздрави

1
inktech.n.kikov avatar inktech.n.kikov 42 Точки

Четвърта задача реших да я направя по следния начин,стана малко дълго,но все пак :

 static void Main(string[] args)
        {
            Perimter();
            Area();
        }
        static void Area()
        {
            Console.WriteLine("insert width:");
            double width = double.Parse(Console.ReadLine());
            Console.WriteLine("insert height:");
            double height = double.Parse(Console.ReadLine());
            double areaSum = width * height;
            Console.WriteLine("Area = {0}",areaSum);
        }
        static void Perimter()
        {
            Console.WriteLine("insert width:");
            double width = double.Parse(Console.ReadLine());
            Console.WriteLine("insert height:");
            double height = double.Parse(Console.ReadLine());
            double perimeterSum = 2 * width + 2 * height;
            Console.WriteLine("Perimeter = {0}",perimeterSum);
        }

0
Pete1 avatar Pete1 56 Точки

Загледах се в десета задача и установих, че кодът ти е леко сгрешен. На една от проверките, x=0 и y = 1, ти дава грешен резултат. Грешката идва от следната проверка:

bool outOfRectngle = x > 1 && x <= 5 && y > -1 && y <= 1; 

Там където проверяваш дали "x > 1", трябва да е "x < 1". За конкретната задача не са ти нужни 4 проверки, а само една : 

bool outOfRectngle =  y <= 1;

В задачата трябва да провериш дали точката ти е в окръжността И извън правоъгълника, ако беше ИЛИ извън правоъгълника четирите проверки щяха да имат смисъл, защото ако е изпълнено условието, точката да ти е в окръжностт-а, ти е нужна само проверка за горната стена, а именно за "y". 

 

0
17/11/2015 21:45:33
bety_1988 avatar bety_1988 49 Точки

Задача 7 може да се реши и без if и else:

using System;

class PointInACircle
{
    static void Main()
    {
        double x = double.Parse(Console.ReadLine());
        double y = double.Parse(Console.ReadLine());

        bool checkXY = (x * x + y * y) <= 4;

        Console.WriteLine("Inside: {0}", checkXY);
    }
}

Булевата проверка така или иначе връща true или false. Погледнете колеги и дайте мнение :)

0
inktech.n.kikov avatar inktech.n.kikov 42 Точки

Не знам но Math.Pow започва да ми става любим за ползване в решаването на подобни задачи :)

            double x = double.Parse(Console.ReadLine());
            double y = double.Parse(Console.ReadLine());
            bool insideCyrcle = (Math.Pow(x,2) + Math.Pow(y,2)) <= 4;
            Console.WriteLine(insideCyrcle);

0
minekova avatar minekova 3 Точки

Ето и моето предложение за задача шест, с добавено условие, да се работи с четирицифрено число:

class FourDigitNum
{
    static void Main()
    {
        Console.Write("Write four digit number:  ");
        int abcd = int.Parse(Console.ReadLine());
        bool someNum = (abcd >= 1000) && (abcd <= 9999);
        
        // the posiotions of digit is from left to right, starting from zero

        if (someNum)
        {
            int zeroNum = abcd % 10;

            int firstNum = (abcd / 10) % 10;
            int secondNum = (abcd / 100) % 10;
            int thirdNum = (abcd / 1000) % 10;

            Console.WriteLine("The sum of four digits is: {0}", zeroNum + firstNum + secondNum + thirdNum);
            Console.WriteLine("In revirsed order dcba: {0} {1} {2} {3}", zeroNum, firstNum, secondNum, thirdNum);
            Console.WriteLine("Put the zero digit in third position dabc: {0} {1} {2} {3}", zeroNum, firstNum, secondNum, thirdNum);
            Console.WriteLine("Exchange the first and second digit acdb; {0} {1} {2} {3}", thirdNum, firstNum, secondNum, zeroNum);

        }
        else
        {
            Console.WriteLine("Choose a correct number!");
        }


    }

0
Smoket avatar Smoket 1 Точки

Здравей,

 

Извинявай за глупавия въпрос, но можеш ли да опишеш действието с коментар на цитираната част от кода, за да си го представя по добре? И още нещо ако съм рзбрал правилно делим с оператора %, за да няма остатък нали. 

Благодаря предварително

 

  int firstNum = (abcd / 10) % 10;
  int secondNum = (abcd / 100) % 10;
  int thirdNum = (abcd / 1000) % 10;

0
minekova avatar minekova 3 Точки

Привет,

abcd е дадено четирицифрено число. За да намериш d - първата цифра от ляво на дясно делиш на 10 с % за да вземе точно остатъка от числото. За “ с“ делиш без остатък даденото число с “/“ , така получаваш трицифрено, което отново делиш отново на 10, но  с процент, за да му вземеш остатъка, т.е последната цифра и така аналогично за останалите цифри. Като цяло деля с / цялото число на 10 100 и  т.н за да стигна до желаната позиция и  после деля с процент на 10 за да ми даде като остатък точно тази цифра.

1
Smoket avatar Smoket 1 Точки

Благодаря! Вече ми е доста по-ясно. 

0
ruivmit avatar ruivmit 8 Точки

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

Искам да споделя с вас един доста полезен линк:

http://www.introprogramming.info/intro-csharp-book/other-resources/

Може би някои от вас вече са го открили. Но за тези, които не са - това са решенията на задачите от всички глави от книгата на Наков.  "Въведение в програмирането със C#". А както повечето от вас са разбрали - домашните и упражненията са съставени от задачите в тази книга. Решенията са авторски. Информацията, която можете да свалите от там ще ви бъде доста полезна за подготовката за изпита.

Успех на всички.

 

 

3
inktech.n.kikov avatar inktech.n.kikov 42 Точки

Благодарим за споделянето :)

0
GeorgiGenkov avatar GeorgiGenkov 2 Точки

Браво колега!

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