Równanie kwadratowe - mała pomoc

0

Witam.
Mam pytanie. Program oblicza równanie kwadratowe:

using System;

public class Program
{
  public static void Main()
  {    
    //deklaracja zmiennych
    int A = 1, B = 1, C = -2;

    //wyświetlenie parametrów równania
    Console.WriteLine("Parametry równania:\n");
    Console.WriteLine("A: " + A + " B: " + B + " C: " + C + "\n");

    //sprawdzenie, czy jest to równanie kwadratowe

    //a jest równe zero, równanie nie jest kwadratowe
    if (A == 0)
    {
      Console.WriteLine("To nie jest równanie kwadratowe: A = 0!");
    }
    //A jest różne od zera, równanie jest kwadratowe
    else
    {
      //obliczenie delty
      double delta = B * B - 4 * A * C;

      //jeśli delta mniejsza od zera
      if (delta < 0)
      {
        Console.WriteLine("Delta < 0.");
        Console.WriteLine("To równanie nie ma rozwiązania w zbiorze liczb rzeczywistych");
      }
      //jeśli delta większa lub równa zero
      else
      {
        //deklaracja zmiennej pomocniczej
        double wynik;
        //jeśli delta równa zero
        if (delta == 0)
        {
          //obliczenie wyniku
          wynik = - B / (2 * A);
          Console.WriteLine("Rozwiązanie: x = " + wynik);
        }
        //jeśli delta większa od zera
        else
        {
          //obliczenie wyników
          wynik = (- B + Math.Sqrt(delta)) / (2 * A);
          Console.Write("Rozwiązanie: x1 = " + wynik);
          wynik = (- B - Math.Sqrt(delta)) / (2 * A);
          Console.WriteLine(", x2 = " + wynik);
        }
      }
    }
  }
}

Co muszę dodać/zmienić, aby zmienne były pobierane z jakieś danej bazy MsSQL ?

0

Dodać obsługę bazy danych, oczywiście.

0
Azarien napisał(a):

Dodać obsługę bazy danych, oczywiście.

To to wiem, ale jak to dodać, aby działało. Jakoś nie mogę nic wymyśleć.

0

To nie wymyślaj tylko zacznij używać google'a.

0
allocer napisał(a):

To nie wymyślaj tylko zacznij używać google'a.

szukałem i kompletnie nie mogę znaleźć jak do takiego równania kwadratowego dodać, aby wartości były pobieranej z jakieś danej bazy Mssql :/

0

Jesli masz juz baze danych i tabele odpowiednią, to wystarczy połączenie z bazą danych, a do tego wystarczy zwykły select by pobrać dane. Na google jest pomoc i lekka pomoc w klikaniu:
http://lmgtfy.com/?q=C%23+and+SQL+tutorial#

0

Próbowałem i nie wiem w którym miejscu dodać to, aby działało i zaczytywało dane z bazy MsSQL.
Bardzo proszę o podpowiedź gdzie to dodać.

Dzięki!

0

Nie nadajesz się do tej roboty, skoro nawet nie potrafisz używać google. Masz znaleźć jak połaćzyć się z bazą danych za pomocą C# oraz jak się tworzy bazy danych i wstawia do nich elementy, żeby w ogóle było na czym pracować.
Jak się dowiesz to wtedy pisz z konkretnym problemem, a nie z czymś, co zajmuje 3 minuty.

0
allocer napisał(a):

Nie nadajesz się do tej roboty, skoro nawet nie potrafisz używać google. Masz znaleźć jak połaćzyć się z bazą danych za pomocą C# oraz jak się tworzy bazy danych i wstawia do nich elementy, żeby w ogóle było na czym pracować.
Jak się dowiesz to wtedy pisz z konkretnym problemem, a nie z czymś, co zajmuje 3 minuty.

Jak się łączyć wiem, ale co tego co wkleiłem jak zintegrować, aby tutaj dane pobierał z bazy danych.

//deklaracja zmiennych
    int A = 1, B = 1, C = -2;

Aby te zmienne albo inne w bazie pobierało do rozwiązania równania.

0

Po pierwsze to wszystkie dane musisz trzymać w bazie. Następnie łączysz się z bazą i wykonujesz odpowiednie zapytania, które zwracają wynik.
Interesuje Cię SELECT z SQL w tym momencie oraz SqlCommand do obsługi tego wszystkiego z poziomu C#.

0
allocer napisał(a):

Po pierwsze to wszystkie dane musisz trzymać w bazie. Następnie łączysz się z bazą i wykonujesz odpowiednie zapytania, które zwracają wynik.
Interesuje Cię SELECT z SQL w tym momencie oraz SqlCommand do obsługi tego wszystkiego z poziomu C#.

To wiem, ale nie wiem jak tu w tym kodzie to zastosować. Nie chcę gotowców, ale pokazanie gdzie można tego użyć, aby zadziałało.

1

Ręce opadają.
Skoro wiesz jak się wykonuje zapytanie, to może poczytasz o tym jak to zrobić w C# - np. tak http://msdn.microsoft.com/en-us/library/9kcbe65k.aspx

0
try
{
 string connString = "data source=192.168.1.0;initial "
                   + "catalog=DB_NAME;integrated security=SSPI;"
                   + "persist security info=False;Trusted_Connection=Yes"; 
 SqlConnection conn = new SqlConnection(connString);
 conn.Open();

 SqlCommand comm = this.conn.CreateCommand();
 comm.CommandText = "SELECT * FROM table_test";

 SqlDataReader reader = comm.ExecuteReader();

 dataGrid.Rows.Clear();
 dataGrid.Columns.Clear();

 dataGrid.Columns.Add("id_object", "ObjectId");
 dataGrid.Columns.Add("name_object", "ObjectName");

 while (reader.Read())
 {
   dataGrid.Rows.Add(
   reader["id_object"].ToString(),
   reader["name_object"].ToString());
 }
 reader.Close();
 conn.Close();
}
catch (SqlException ex)
{
   MessageBox.Show(ex.Message);
}

Oczywiście odpowiednio zmienić i podać select na wybrane dane w bazie i będzie grać?
Kod daję na początek programu?

Jeżeli user i hasło to:

//Jeśli ktoś potrzebuje modyfikować connectionstringa
//można odczytać go w ten sposób:
String connStr = Properties.Settings.Default.appSQLConnectionString.ToString();

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connStr);
builder.DataSource = "localhost\SQLEXPRESS";
builder. InitialCatalog = "nazwa bazy danych";
builder.PersistSecurityInfo = true;
builder.UserID = "nazwa użytkownika";
builder.Password = "hasło";
0

Połaczenie z bazą danych możesz dać na początku programu, krotki ktore będziessz pobierał z bazy mozesz dać nawet przed liczeniem funkcji kwadratowych i nie zapomnij o używaniu wyjątków.

0

Jak chcesz sobie wszystko wpisać w DataGrid'a to użyj DataTable i DataAdapter - znacznie łatwiej niż takie tworzenie kolumn.
Ewentualnie, jeśli baza posiada tylko trzy pola możesz od razu za pomocą ExecuteReader() wczytać dane do odpowiednich zmiennych i nie bawić się w DataGrid.
Nie wiem czy na początek, zależy kiedy chcesz z niego skorzystać...

Polecam poczytać o klauzuli using dla ułatwienia i bez potrzeby pamiętania o ręcznym zamykaniu połączenia.

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