Loading...

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

miroLLL avatar miroLLL 95 Точки

Can i get the expression who returns true from boolean?

Здравейте,

питам се, дали мога да изкарам, самия израз от булева променлива, който има стойност true и евентуално как става номера?

ето какво имам предвид:

a = 5;

b = 6;

c = 7;

bool check =  (a % 2 == 0) || (b % 2 == 0) || (c % 2 == 0) ;

Както се вижда, булевата ще върне ИСТИНА, защото b се дели на 2 без остатък. Та въпроса ми е, вместо да изпиша само True на конзолата, да добавя и самия израз "6 % 2 = 0".

Възможно ли е тъй като булевата връща само true и false?

Тагове:
0
Programming Basics
Bojo96 avatar Bojo96 Trainer 147 Точки

Здравей , 

Можеш с if-ове да определиш какъв Output да ти изкара за различни резултати. Другият вариант е да принтираш нещо от сорта на "6%2==0 : {0}" и на мястото на placeholder - а стойността на булевата променлива. Но иначе нямаш вариант в който променливата ти да пази и израза от който се е evaluat-нала до съответния резултат. 

1
Filkolev avatar Filkolev 4482 Точки

Може да се направи и малко по-умно: $"{b} % 2 == 0 {check}", но няма как да стане при варианта с трите проверки, ще трябва да са отделни.

1
goodlifeinc avatar goodlifeinc 31 Точки

Ето какво ми идва на ум на мен:

                List<int> list = new List<int>();
                list.Add(1);
                list.Add(2);
                list.Add(3);
                list.Add(4);
                var evenList = list.Where(v=> v%2 == 0).ToList();
                evenList.ForEach(v => Console.WriteLine(v));

 

0
quickben avatar quickben 966 Точки

using System;
                    
public class Program
{
    public static void Main()
    {
        var a = 5;
        bool check = a % 2 == 0;
        Console.WriteLine("{0}, {1} % 2 == {2}", check, a, a % 2);
    }
}

Заповядай Точка :)

1
miroLLL avatar miroLLL 95 Точки

Благодарско на всички за реагираната обратна връзка! :)

Примерчето, което дадох беше просто нагледно. Разбира се, че за толокова проста програмка ще използвам нещо от сорта на  "Console.WriteLine("{0}, {1} % 2 == {2}", check, a, a % 2);"

Но не ми беше това мисълта, може би аз ви обърках и зададох грешно въпроса. Трябваше още при създаването на темата да дам пример със ситуацията в която съм в момента.

Ето я и нея.

Това е моето, не толкова професионално решение на задачата. Просто поне на пръв поглед съм предвидил всяка една възможна конкатенация с 2, 3, 4 и 5 числа, които евентуално накрая сбора им е 0. Предполагам, че има още възможностти, които не съм написал, защото мярнах някъде по форума, че общо възможностите са 31 или 32, а мойте са 26 на брой. Така, както и да е, ако наистина са повече от моите, нека някой, който ги знае да пише 1 ред в темата.

Мисълта ми беше следната както се вижда в условието на задачата на очаквания резултат, трябва да се принтират изразите, на които сбора им е 0. А в моя случай, поне до момента ако има Zero subset - се принтира "True" или че има операция с краен резутат 0 /един вид да има/. И отворих темата, точно по този въпрос. Мога ли да изкарам самите изрази, които връщат ИСТИНА от булевата, колкото и да са те, а в случая се вижда, че може да са 2 и 3 и 4 и ....? Че може да се предвиди всеки един резултат с принтиран израз, може (или поне така си мисля/, просто реших да се допитам до вас, така за по-умно решение. Защото мога да бутна там 20,30 if-а, и пак не съм сигурен, че ще стане, а и ще стане вече много грозно и предполагам неправилно. Поне за момента не искам да го правя, защото така или иначе съм написал програмката по битово и ако набутам 20-на if-a ще е "върха на сладоледа"...

numbers

result

3  -2  1  1 8

-2 + 1 + 1 = 0

3 1 -7 35 22

no zero subset

1 3 -4 -2 -1

1 + -1 = 0

1 + 3 + -4 = 0

3 + -2 + -1 = 0

1 1 1 -1 -1

1 + -1 = 0

1 + 1 + -1 + -1 = 0

1 + -1 + 1 + -1 = 0

0 0 0 0 0

0 + 0 + 0 + 0 + 0 = 0

Благодаря на всички!

0
29/09/2015 01:14:51
valiobar avatar valiobar 29 Точки

Колега ето моето решение дано ти е от полза http://pastebin.com/DhbqPb2t

1
miroLLL avatar miroLLL 95 Точки

Не трябва ли числата да се въведат всичките на 1 ред както е в примера?

numbers

 

3  -2  1  1 8

 

3 1 -7 35 22

 

1 3 -4 -2 -1

 

1 1 1 -1 -1

 

0 0 0 0 0

 

И мисля, че малко ти се чупи, погледни - Снимка

Иначе, програмката ти работи, поздравения за което! Мисля също така, да взема пример от нея за да довърша моята. Благодаря! :)

0
29/09/2015 10:26:59
Victuss avatar Victuss 18 Точки

В първия цикъл трябва да се принтират единичните нули(ако ги има). Иначе добра идея за избягване на пети цикъл с проверка в началото.

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