Wprowadzenie danych do tablicy z klawiatury ze string na int

0

Witam. Mam problem z wprowadzeniem do tablicy zmiennej x oraz y (ta sama funkcja). Chciałem zamienić string na int oraz odczytanie wpisywanej wartości poprzez dodanie funkcji

int.Parse(Console.ReadLine());

Program ma sprawdzać czy punkty x i y należą do koła o zadanym promieniu. Obecnie borykam się z tym problemem; czym mógłbym zastąpić powyższą funkcję?

    public static void wprowadzenie(xy[] tab)
    {
        for (int i = 0; i < 5; i++)
        {
            Console.Write("Punkt");
            Console.Write(i + 1);
            Console.Write(": ");
            Console.Write("Podaj wspolrzedna x do sprawdzenia: ");
            tab[i].x = int.Parse(Console.ReadLine());
            Console.Write("Podaj wspolrzedna y do sprawdzenia: ");
            tab[i].y = int.Parse(Console.ReadLine());
        }
    }
0
Convert.ToInt32(string value)

?

0

W dalszym ciągu widnieje problem. Potrzebuje wprowadzić daną liczbę z klawiatury (w kodzie dana liczba to x), a następnie wprowadzić ją do tablicy. Program pyta o x i y pięć razy i za każdym przejściem potrzebuje zadaną liczbę z klawiatury dodać do tablicy.

0

Nie napisałeś w czym masz problem, co nie działa.

0

Cały kod programu wygląda tak jak poniżej.

using System;

public static class okrag
{
    public static void wprowadzenie(xy[] tab)
    {
        int a, b;
        for (int i = 0; i < 5; i++)
        {
            Console.Write("Punkt");
            Console.Write(i + 1);
            Console.Write(": ");
            Console.Write("Podaj wspolrzedna x do sprawdzenia: ");
            tab[i].x = int.Parse(Console.ReadLine());
            Console.Write("Podaj wspolrzedna y do sprawdzenia: ");
            tab[i].y = int.Parse(Console.ReadLine());
        }
    }
    public static void sprawdzeniepunktu(int r, xy punkt, xy[] tab)
    {
        xy sprawdzenie = new xy();
        for (int j = 0; j < 5; j++)
        {
            sprawdzenie.x = tab[j].x - punkt.x;
            sprawdzenie.y = tab[j].y - punkt.y;
            if (sprawdzenie.x == r && sprawdzenie.y == r) 
            {
                Console.Write("Punkt ,{0:D}, znajduje sie na okregu\n", j); 
            }
            else
            {
                Console.Write("Punkt ,{0:D}, nie znajduje sie na okregu\n", j); 
            }
        }

    }
    static int Main()
    {
        Console.Write("Podaj wspolrzedne okregu oraz promien (r)\n");
        xy punkt = new xy();
        int r;
        Console.Write("Wspolrzedne srodka okregu.\nWspolrzedna x= ");
        punkt.x = int.Parse(Console.ReadLine());
        Console.Write("Wspolrzedna y= ");
        punkt.y = int.Parse(Console.ReadLine());
        bool sprawdzenie = false; 
        do 
        {
            Console.Write("Podaj promien(r)= ");
            r = int.Parse(Console.ReadLine());
            if (r > 0)
            {
                sprawdzenie = true; 
            }
            else
            {
                Console.Write("Promien musi byc wiekszy od zera");
                sprawdzenie = false;
            }
        } while (sprawdzenie == false); 

        Console.Write("Podaj 5 wspolrzednych");
        xy[] tab = new xy[5];
        wprowadzenie((tab));
        sprawdzeniepunktu(r, punkt, tab); 
        Console.ReadKey();
        return 0;
    }
}

public class xy
{
    public int x;
    public int y;
}
 

Podczas gdy wprowadzam zmienną x wyskakuje komunikat o błędnym odwołaniu do zmiennej.

0

No tak bo utworzyłeś tablicę, która ma przechowywać obiekty klasy xy, ale każdy element tej tablicy jest nullem.

0
some_ONE napisał(a):

No tak bo utworzyłeś tablicę, która ma przechowywać obiekty klasy xy, ale każdy element tej tablicy jest nullem.

W jaki sposób mógłbym to poprawić?

1

Przed użyciem tab[i].coś zainicjalizować obiekt za pomocą tab[i] = new xy(). Nie rozumiem, co pierwszy post ma z tym wspólnego.

0
ness napisał(a):

Przed użyciem tab[i].coś zainicjalizować obiekt za pomocą tab[i] = new xy(). Nie rozumiem, co pierwszy post ma z tym wspólnego.

Dziękuje za podpowiedź, pomyślę a w razie czego wrócę do tego tematu jak napotkam na problem.

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