• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Napisz metodę, która zawsze zwróci przekazaną do niej liczbę jako dodatnią...

Object Storage Arubacloud
0 głosów
282 wizyt
pytanie zadane 8 września 2022 w C# przez Enzo1902 Użytkownik (510 p.)
zamknięte 15 września 2022 przez Enzo1902

Napisz metodę, która zawsze zwróci przekazaną do niej liczbę jako dodatnią, czyli jak się przekaże 120, to zwróci 120, a jak -68 to zwróci 68.

Strasznie się zaplątałam rozwiązując to zadanie i nie wiem co dalej :/

public static int ReturnPositiveNumber(int number)
        {
            if (number >= 0)
            {
                return number;
            }
            else if (number <= 0) 
            {
                return number;
            }

            return number;
        }

 

komentarz zamknięcia: Rozwiązane

4 odpowiedzi

+4 głosów
odpowiedź 8 września 2022 przez Wonderpol Gaduła (3,730 p.)

Rozwiązując problem instrukcją warunkową wystarczy zrobić tak:

    public static int returnPositiveNumber(int number) {
        if (number < 0) {
            return -number;
        }
        return number;
    }

 

+3 głosów
odpowiedź 8 września 2022 przez Whiskey_Taster Pasjonat (15,610 p.)

Ale sobie czasem ludzie życie komplikują. Przecież to zadanie to nic innego jak "napisz metodę zwracającą wartość bezwzględną podanej liczby". Wystarczy użyć samej definicji, by to rozwiązać:
|x| = x, jeśli x >= 0, |x| = -x, jeśli x < 0. Analogicznie tutaj wystarczy: 
 

return number >= 0 ? number : -number;

 

1
komentarz 8 września 2022 przez Velta Maniak (52,010 p.)

Ależ sobie ludzie niestandardowymi metodami życie komplikują! Rozwiązanie leży już we wbudowanej System.Math.Abs.

1
komentarz 8 września 2022 przez adrian17 Ekspert (344,860 p.)
Jak treść zadania brzmi "napisz metodę która zwraca wartość bezwzględną", to "po co cokolwiek pisać jak jest Abs" nie jest raczej sensowną odpowiedzią na takie zadanie :P
komentarz 9 września 2022 przez Szabranigdo Obywatel (1,370 p.)
edycja 9 września 2022 przez Szabranigdo
Dokładnie. Ja bym nawet pojechał po bandzie i przekonwertował na stringa, usunął minus i wiśta ToDouble :D A tak serio to skoro nie jest oznaczone przez pana profesora czy kto tam Enza inspiruje co powinna zawierać metoda to i faktycznie można tego stringa użyć. Samo zadanie wskazuje na to że osoba ma się wykazać umiejętnością napisania:

public double metoda(double liczba)

{

napisz co chcesz byle działało

return costam;

}

 

A jak jest inaczej to sama treść zadania jest skopana.

I właśnie Enzo zmień tego inta na double. To akurat będzie lepsze rozwiązanie.
0 głosów
odpowiedź 9 września 2022 przez Enzo1902 Użytkownik (510 p.)

Ja to zrobiłam tak...

public static int ReturnPositiveNumber(int number)
        {
            if (number < 0)
            {
                int positiveNumber = number * (-1);

                return positiveNumber;
            }

            return number;
        }

i wywołanie metody...

ReturnPositiveNumber(2);

 

0 głosów
odpowiedź 9 września 2022 przez VBService Ekspert (253,340 p.)
edycja 9 września 2022 przez VBService

Możesz też (do tego co już zostało napisane) np. spróbować tak

[ on-line ]

using System;

class HelloPositiveNumber {
    static void Main() {
        for (int x=1; x<=5; x++) {
            Console.WriteLine(ReturnPositiveNumber(x));
            Console.WriteLine(ReturnPositiveNumber(-x)); // lub x * -1
        }
    }
    
    public static int ReturnPositiveNumber(int number)
    {
        return number * ((2 * number + 1) % 2);
    }
}

lub

[ on-line ]

using System;

class HelloPositiveNumber {
    static void Main() {
        for (int x=1; x<=5; x++) {
            Console.WriteLine(ReturnPositiveNumber(x));
            Console.WriteLine(ReturnPositiveNumber(-x)); // lub x * -1
        }
    }
    
    public static int ReturnPositiveNumber(int number)
    {
        return (number >> 31 | 1) * number;
    }
}

 

Podobne pytania

0 głosów
1 odpowiedź 168 wizyt
pytanie zadane 26 sierpnia 2022 w C# przez Enzo1902 Użytkownik (510 p.)
0 głosów
0 odpowiedzi 246 wizyt
pytanie zadane 23 sierpnia 2022 w C# przez Enzo1902 Użytkownik (510 p.)
+1 głos
2 odpowiedzi 483 wizyt
pytanie zadane 17 maja 2020 w SQL, bazy danych przez Bartx Bywalec (2,120 p.)

92,572 zapytań

141,422 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...