Само не разбирам и защо ми давате минус 1 точка ?? на какво основание не разбрах ?
Според мен по - подходящото решение за конкретната домашна е:
static void Main()
{
int n = int.Parse(Console.ReadLine());
bool result = n % 2 != 0 ? true : false;
Console.WriteLine(result);
}
Мисля така, защото целта на домашното, според мен, е да решим задачите и да приложим нещата научени в материала, върху който е поставена конкретната домашна работа, където и когато е възможно. В случая - условния оператор " ?:". Надявам се да не намираш коментара ми за офанзивен. :)
P.S. : По - подходящо, що се отнася не до коректност , а до дължина :D
Твоето решение е оптимизиран код на моя ;))) харесва ми , но този тройния оператор ми е малко объркващ поне на мен.
Може и без "?:" в твоя случай е безмислено, така или иначе резултата ще е едно от двете.
int n = int.Parse(Console.ReadLine());
bool odd = (n % 2 != 0);
Console.WriteLine(odd);
За предпочитане е за по-кратки редове от код да използвате pastebin.com :)
Поздрави
Четвърта задача реших да я направя по следния начин,стана малко дълго,но все пак :
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);
}
Загледах се в десета задача и установих, че кодът ти е леко сгрешен. На една от проверките, x=0 и y = 1, ти дава грешен резултат. Грешката идва от следната проверка:
bool outOfRectngle = x > 1 && x <= 5 && y > -1 && y <= 1;
Там където проверяваш дали "x > 1", трябва да е "x < 1". За конкретната задача не са ти нужни 4 проверки, а само една :
bool outOfRectngle = y <= 1;
В задачата трябва да провериш дали точката ти е в окръжността И извън правоъгълника, ако беше ИЛИ извън правоъгълника четирите проверки щяха да имат смисъл, защото ако е изпълнено условието, точката да ти е в окръжностт-а, ти е нужна само проверка за горната стена, а именно за "y".
Задача 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. Погледнете колеги и дайте мнение :)
Не знам но 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);
Ето и моето предложение за задача шест, с добавено условие, да се работи с четирицифрено число:
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!");
}
}
Здравей,
Извинявай за глупавия въпрос, но можеш ли да опишеш действието с коментар на цитираната част от кода, за да си го представя по добре? И още нещо ако съм рзбрал правилно делим с оператора %, за да няма остатък нали.
Благодаря предварително
int firstNum = (abcd / 10) % 10;
int secondNum = (abcd / 100) % 10;
int thirdNum = (abcd / 1000) % 10;
Привет,
abcd е дадено четирицифрено число. За да намериш d - първата цифра от ляво на дясно делиш на 10 с % за да вземе точно остатъка от числото. За “ с“ делиш без остатък даденото число с “/“ , така получаваш трицифрено, което отново делиш отново на 10, но с процент, за да му вземеш остатъка, т.е последната цифра и така аналогично за останалите цифри. Като цяло деля с / цялото число на 10 100 и т.н за да стигна до желаната позиция и после деля с процент на 10 за да ми даде като остатък точно тази цифра.
Благодаря! Вече ми е доста по-ясно.
Здравейте колеги,
Искам да споделя с вас един доста полезен линк:
http://www.introprogramming.info/intro-csharp-book/other-resources/
Може би някои от вас вече са го открили. Но за тези, които не са - това са решенията на задачите от всички глави от книгата на Наков. "Въведение в програмирането със C#". А както повечето от вас са разбрали - домашните и упражненията са съставени от задачите в тази книга. Решенията са авторски. Информацията, която можете да свалите от там ще ви бъде доста полезна за подготовката за изпита.
Успех на всички.
Благодарим за споделянето :)
Браво колега!
тази първата задача ми се струва с потвеждащо решение...пита се дали числото е нечетно или четно:
int n = int.Parse(Console.ReadLine());
bool isOdd = true;
bool isEven = false;
if(n % 2 == 0)
{
Console.WriteLine(isEven);
}
else
{
Console.WriteLine(isOdd);
}
Ами да де , проверява се дали има остатък , има ли значи е нечетно , ако няма вади четно. Само че при твоя код , трябва да се сменят стойностите. на боолевите ти горе.
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);
}
Така според мен е по-правилно и разбираемо.
Принципно няма нужда от повече от 1 булеви.
Примерно сетваме булевата на true, и после правим проверка, само 1 проверка.
bool isOdd = true;
if (n % 2 == 0)
{
isOdd = false.
}
Console.WriteLine(isOdd)