Pierwiastki równania kwadratowego

2011-10-11 17:07
0

Witam
mam program ktory powinien liczyc pierwiastki rownania kwadratowego.Kompiluje sie ,wyświetla wartości a,b,c oraz gdy delta<0 to rownanie nie ma rozwiązania w zbiorze liczb rzeczywistych i na tym koniec .
nie wyświetla mi obliczeń x1 oraz x2 i gdy delta=0
Mołgby ktos zerknąc na kod i zobaczyc gdzie cos ominąlem bądź poprawił co źle
Z góry dzieki


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pierwiastki
{
    class Program
    {
        static void Main(string[] args)
        {
            int liczbaA = 2, liczbaB =-3, liczbaC =4;

            Console.WriteLine("Liczby rownania kwadratowego:\n");
            Console.WriteLine("a: " + liczbaA + " b: "+ liczbaB + "c: " + liczbaC + "\n" );
            Console.ReadKey();

            if (liczbaA==0){
                    Console.WriteLine("To nie jest rownanie kwadratowe: a=0!");
                    Console.ReadKey();
                }
                else{
                        double delta = liczbaB* liczbaB - 4* liczbaA* liczbaC;
                        if (delta < 0)
                        {
                            Console.WriteLine("delta<0");
                            Console.WriteLine("to rownanie nie ma rozwiązania w zbiorze liczb rzeczywistych");
                            Console.ReadKey();
                        }
                        else
                        {
                            double wynik;
                            if (delta == 0)
                            {
                                wynik = - liczbaB / 2* liczbaA;
                                Console.WriteLine("x =" + wynik);
                            }
                            else
                            {
                                wynik = (- liczbaB + Math.Sqrt(delta)) / 2* liczbaA;
                                Console.WriteLine("x1 =" + wynik);                              
                                wynik = (- liczbaB - Math.Sqrt(delta)) / 2* liczbaA;
                                Console.WriteLine("x2 =" + wynik);

                       }
                 }
           }

        }
    }
}
edytowany 1x, ostatnio: madmike, 2011-10-11 19:15

Pozostało 580 znaków

2011-10-11 17:50
2

Obstawiam, że wypisuje, bo nie widzę żadnego błędu, lecz wyskakuje na ułamek sekundy i program się zamyka - nie masz nigdzie Console.ReadKey().


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".
A po co mu Console.ReadKey()? Może Ty nie, ale niektórzy potrafią uruchomić program z wiersza poleceń. ;] - somekind 2011-10-11 18:07
ewentualnie w Visual Studio nacisnąć Ctrl przy build+run. - Rev 2011-10-11 18:09
tylko że to uruchamia program bez debuggera - Azarien 2011-10-11 19:31
Umiem, ale skoro nie widzę innych błędów, a przy innych zakończeniach programu znajduje się ten ReadKey coś w tym może być. - Wronq 2011-10-11 20:13

Pozostało 580 znaków

2011-10-11 20:51
0

dalem Console.ReadKey(); ale nadal w ogóle mi nie wylicza x1 x2
wyswietla mi wartosci a,b,c delta<0 i komunikat i zatrzymuje sie na tym

a jak dam ze delta>0 to wyskakuje komunikat x1 nie jest liczbą i x2 nie jest liczbą

edytowany 1x, ostatnio: stoper, 2011-10-11 20:56
Jakich liczb używasz? Wkleiłem Twój kod nic nie zmieniając pod b wstawiłem -7, Ctrl + F5 i działa jak należy. - Wronq 2011-10-11 20:59
dobra juz działa trzeba zmienic liczby - stoper 2011-10-11 21:08
a jak bym chciałwklepac ręcznie liczby zeby nie były przypisane to zadeklarowac tylko zmienne a,b,c? bez podawania ich wartosci? - stoper 2011-10-11 21:09

Pozostało 580 znaków

2011-10-11 21:20
0

a jak bym chciałwklepac ręcznie liczby zeby nie były przypisane to zadeklarowac tylko zmienne a,b,c? bez podawania ich wartosci?

a mogl bys to napisac jak by to wyglądało?bo ja to zrobilem i teraz błędy wyskakuja

edytowany 1x, ostatnio: stoper, 2011-10-11 21:33
liczby masz zadeklarowane, usuń ich wartości i wprowadź nowe z konsoli - allocer 2011-10-11 21:21
a mogl bys to napisac jak by to wyglądało?bo ja to zrobilem i teraz błędy wyskakuja - stoper 2011-10-11 21:29

Pozostało 580 znaków

2011-10-11 21:23
double a, b, c;
string s;

Console.Write("Podaj a: ");
s = Console.ReadLine();
if (!Double.TryParse(s, out a)) Console.WriteLine("Podany tekst nie jest liczba");

Console.Write("Podaj b: ");
s = Console.ReadLine();
if (!Double.TryParse(s, out b)) Console.WriteLine("Podany tekst nie jest liczba");

Console.Write("Podaj c: ");
s = Console.ReadLine();
if (!Double.TryParse(s, out c)) Console.WriteLine("Podany tekst nie jest liczba");

Some people see things as they are, and say "why?". I dream things that never were and say "why not?".

Pozostało 580 znaków

2011-10-11 22:07
0

dzieki teraz juz działa dobrze:)

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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