Vinnaren i pepparkakshustävlingen!
2017-10-12, 10:38
  #2893
Medlem
kaks avatar
Citat:
Ursprungligen postat av rudimentarperson
Hur menar du?

hur skulle det se ut då?
Kod:
#include <stdio.h>

int main() {
  for (
int i=20i>=1; --i) {
    
printf("%d\n"i);
  }
  return 
0;

Citera
2017-11-01, 18:36
  #2894
Medlem
Metoden tar in 2st. bool. Ifall en av dem är 'true' returneras 'true' - annars returneras 'false'.

if (a || b)
{
{
return true;
}
}

return false;

Detta har jag svarat, är det rätt?

Och hur får jag ut denna information i debuggern?
Citera
2017-11-01, 22:02
  #2895
Moderator
Protons avatar
Citat:
Ursprungligen postat av rudimentarperson
Metoden tar in 2st. bool. Ifall en av dem är 'true' returneras 'true' - annars returneras 'false'.

if (a || b)
{
{
return true;
}
}

return false;

Detta har jag svarat, är det rätt?

Och hur får jag ut denna information i debuggern?
Varför så många måsvingar?

Det hade räckt med
Kod:
if (|| b)
            {
                    return 
true;
            }
            return 
false
Dessutom ser jag ingen metod, bara en if-sats.

Sätt en breakpoint på iffen typ och starta debuggern är väl det enklaste svaret på andra frågan, eller vad menar du?
Citera
2017-11-01, 22:18
  #2896
Avstängd
Citat:
Ursprungligen postat av rudimentarperson
Metoden tar in 2st. bool. Ifall en av dem är 'true' returneras 'true' - annars returneras 'false'.

För minst en av dem (logical or) har du rätt operator. För exakt en av dem, alltså inte båda (logical xor) finns ingen operator. Kombinera några andra eller nästla if-satser.

Allt utom 0 räknas som sant i C/C++. I C++ kan bool vara bara 0 eller 1 så ^ (bitwise xor) fungerar som en logical xor, men gör onödiga konverteringar mellan bool och heltal, tror jag. != är hur som helst bättre.

Kod:
a != b

I C kan bool vara bara ett annat namn för en större heltalstyp, istället för en egen typ som i C++, och det går att lagra andra värden än 0/1 i dem. Om funktionen ska fungera korrekt även för sådana argument, kan du först normalisera värdena var för sig (allt utom 0 blir till 1) med !!x eller x != 0. Och eftersom du bara ska jämföra likhet/olikhet går det bra att plocka bort en ! från båda.

Kod:
!a != !b

Citat:
Ursprungligen postat av rudimentarperson
Och hur får jag ut denna information i debuggern?

Huh?
__________________
Senast redigerad av B-programmerare 2017-11-01 kl. 22:21.
Citera
2017-11-01, 23:59
  #2897
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av rudimentarperson
Metoden tar in 2st. bool. Ifall en av dem är 'true' returneras 'true' - annars returneras 'false'.

if (a || b)
{
{
return true;
}
}

return false;

Detta har jag svarat, är det rätt?

Och hur får jag ut denna information i debuggern?
Det enda den metoden borde göra är att omedelbart returnera a||b, ungefär:
Kod:
return (a||b);
Det bör vara likvärdigt med din if-sats som, beroende på betydelsen av den mänskliga frasen "Ifall en av dem...", inte behöver vara korrekt. Menar du kanske "ifall minst en av dem..."? Eller "ifall exakt en av dem"? Eller något annat?

Jag skulle säga att din algoritm är korrekt men onödigt komplicerad.
Citera
2017-11-02, 09:40
  #2898
Medlem
Citat:
Ursprungligen postat av Proton
Varför så många måsvingar?

Det hade räckt med
Kod:
if (|| b)
            {
                    return 
true;
            }
            return 
false
Dessutom ser jag ingen metod, bara en if-sats.

Sätt en breakpoint på iffen typ och starta debuggern är väl det enklaste svaret på andra frågan, eller vad menar du?

Exakt men jag vet inte vad metoden är för denna, kan du ge mig en hint,?
Citera
2017-11-02, 11:37
  #2899
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av rudimentarperson
Exakt men jag vet inte vad metoden är för denna, kan du ge mig en hint,?
Vad metoden är??
Nu kan jag inte syntaxen, men i ditt fall ungefär
Kod:
bool metodnamn (xxx){
  yyy;
  return zzz;
}
där xxx är metodens indata, i ditt fall sanningsvärdena a och b, yyy är eventuella loopar, ifsatser mm och zzz är det sanningsvärde som returneras. yyy-delen tror jag inte behövs i ditt fall, se mitt tidigare inlägg
Citera
2017-11-02, 12:37
  #2900
Medlem
Citat:
Ursprungligen postat av Neksnor
Vad metoden är??
Nu kan jag inte syntaxen, men i ditt fall ungefär
Kod:
bool metodnamn (xxx){
  yyy;
  return zzz;
}
där xxx är metodens indata, i ditt fall sanningsvärdena a och b, yyy är eventuella loopar, ifsatser mm och zzz är det sanningsvärde som returneras. yyy-delen tror jag inte behövs i ditt fall, se mitt tidigare inlägg


Alltså för att skriva ut detta statement i console.writeline, hur gör man då?
Citera
2017-11-02, 12:43
  #2901
Medlem
Hur tar man emot en integer och konverterar till en sträng där strängen returneras till text-from?
__________________
Senast redigerad av rudimentarperson 2017-11-02 kl. 13:04.
Citera
2017-11-02, 19:38
  #2902
Moderator
Protons avatar
Citat:
Ursprungligen postat av rudimentarperson
Alltså för att skriva ut detta statement i console.writeline, hur gör man då?
i Cpp används med fördel cout, men vad det har med en debugger att göra kan man ju verkligen fråga sig.
Citat:
Ursprungligen postat av rudimentarperson
Hur tar man emot en integer och konverterar till en sträng där strängen returneras till text-from?
Vad svamlar du om nu, det där är ju helt obegripligt.
Citera
2017-11-02, 19:53
  #2903
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av rudimentarperson
Alltså för att skriva ut detta statement i console.writeline, hur gör man då?
Osäker på vad du menar, men vad, alltså vilken datatyp, returneras av metodanropet
”metodnamn(a||b)” (se mitt exempel ovan)
?
Vad händer, se dokumentationen, om man anger den datatypen som argument till console.writeline?
Citera
2017-11-02, 20:37
  #2904
Medlem
lupacs avatar
Det är minst tio år sedan jag höll på med C++ så jag är ringrostig. Någon som vet vad denna c++ -sats gör och om det är nåt problem med den:

x =! - ~y;

Tack på förhand.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback