Zwracanie kilku zmiennych z metody

Odpowiedz Nowy wątek
2015-01-03 23:50
0

Cześć, mam taką treść zadania:

"Napisać program, który czyta liczbę i przekazuje ją do metody. Metoda zwraca tę liczbę wraz z jej kwadratem (potęga ^ 2) oraz pierwiastkiem. Wyświetlić w metodzie Main: wartość początkową, kwadrat oraz pierwiastek kwadratowy z tej liczby. (Skorzystać w obliczeniach z klasy Math)"

Wszystko musi być w jednej metodzie. Wygląda więc na to, że trzeba użyć referencji. Stworzyłem więc coś takiego:

static void Main(string[] args)
        {
            Console.Write("Wprowadź liczbę x = ");
            int x = int.Parse(Console.ReadLine());
 
            double sqrt = 0;
            double pow = 0;
 
            sqrt = oblicz(ref pow, x);
 
            Console.Write("\nWynik: \nWartość wprowadzona: " + x + "\nSQRT: " + sqrt + "\nPOW: " + pow);
 
            Console.ReadKey();
        }
 
        static double oblicz(ref double y, int z)
        {
            y = Math.Pow(z, 2);
            return Math.Sqrt(z);
        }

Czy to oby na pewno dobre rozwiązanie? Ja widzę to tak:

  1. Wprowadzam x
  2. Do metody przesyłam zmienną ref pow i wprowadzony x - dlatego, że w jednej metodzie muszą być wykonane dwa działania.
  3. Metoda więc obliczy pow = Math.Pow(x, 2) i do main prześle zmienioną wartość, a przez return przypiszemy Math.Sqrt(x) do zmiennej sqrt.

Może tłumaczenie nie za dobre, ale przez kod może skumacie co miałem na myśli. Tak na prawdę, nie wiem czy to dobre rozwiązanie i czy dobrze rozumiem referencje w metodach. Czy ktoś ma chwile i jest mi w stanie odpowiedzieć? Pozdrawiam!

Pozostało 580 znaków

2015-01-03 23:58
struct Position
{
  public double X { get { return Math.Sqrt(Z); } }
  public double Y { get { return (double)Z * Z; } }
  public double Z { get; set; }
}

EDIT (specjalnie dla @somekind):

struct Position
{
  public Position() {}
  public Position(double x, double y, double z) { X = x; Y = y; Z = z; }
  public static Position Oblicz(double z) { return new Position(Math.Sqrt(z), (double)z * z, z); }
  public double X { get; private set; }
  public double Y { get; private set; }
  public double Z { get; private set; }
}

░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2015-01-04 03:56
Tylko po co ten set... - somekind 2015-01-04 00:54
zeby mogl zmienic Z i dlatego ze nie chcialo mi sie konstruktora pisac - krwq 2015-01-04 01:20
No właśnie, po co zmieniać Z? Potem przez takie podejście traci się czas na szukanie głupich błędów. - somekind 2015-01-04 01:22

Pozostało 580 znaków

2015-01-04 00:03
0
krwq napisał(a):
struct Position
{
public double X { get { return Math.Sqrt(Z); } }
public double Y { get { return (double)Z * Z; } }
public double Z { get; set; }
}

nie za bardzo rozumiem, ale + za chęci

rozumiem, że moje rozwiązanie jest złe? Co prawda wynik jest dobry, chciałbym tylko wiedzieć jak wygląda ten kod pod kątem poprawności

edytowany 2x, ostatnio: dexxxx, 2015-01-04 12:16

Pozostało 580 znaków

2015-01-04 00:54
2
dexxxx napisał(a):

Co prawda wynik jest dobry, chciałbym tylko wiedzieć jak wygląda ten kod pod kontem poprawności

A poprawność ma już 18 lat skończone, że może konto założyć?

Możesz użyć ref czy out, ale lepiej tak, jak napisał @krwq, utwórz własną klasę i niech Twoja metoda zwraca obiekt tej klasy.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-01-04 01:19
1

Poprawne jest wszystko co zwraca poprawne wyniki. Napisz tak jak umiesz i bedzie git. Upieknianiem kodu zajmij sie jak juz ogarniesz podstawy, a poki co skup sie na ich ogarnianiu


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2015-01-04 08:17
1

Co do zwracania kilku wartości przez metodę, dzięki słowom kluczowym out i ref podsyłam swój artykuł Metody.
Przy okazji, będę wdzięczny za opinie pod artykułem osób niezaawansowanych czy jest dla nich zrozumiały a osób zaawansowanych o sprawdzenie go pod kątem merytorycznym.


Sterczące kolce Pondijusa, ostre grzebienie Daktyloskopei, Trygla i latający Wieprzoryb są niczym wobec Bestii która nas gnębi...
edytowany 1x, ostatnio: Varran, 2015-01-04 08:18

Pozostało 580 znaków

2015-01-04 12:20
0
somekind napisał(a):

A poprawność ma już 18 lat skończone, że może konto założyć?

Wybacz, mały błąd. Poprawione :)

Varran napisał(a):

Co do zwracania kilku wartości przez metodę, dzięki słowom kluczowym out i ref podsyłam swój artykuł Metody.
Przy okazji, będę wdzięczny za opinie pod artykułem osób niezaawansowanych czy jest dla nich zrozumiały a osób zaawansowanych o sprawdzenie go pod kątem merytorycznym.

Dziękuję. Sprawdzę na pewno :)

Wszystkim dziękuję. Zostawiam plusy. Pozdrawiam.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0