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

Pierwiastki zespolone

VPS Starter Arubacloud
0 głosów
1,982 wizyt
pytanie zadane 27 lutego 2018 w C i C++ przez Ala123456 Użytkownik (760 p.)
/*Napisać program, do którego użytkownik wpisuje rzeczywiste wartości współczynników trójmianu kwadratowego,
zaś program wypisuje pierwiastki zarówno rzeczywiste, jak i zespolone, opatrując je odpowiednim komunikatem */
#include<stdio.h>
#include<math.h>
int main()
{
float a, b, c, delta, x1, x2, x;
printf("Podaj wspolczynniki trojmianu\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);
delta = b*b - 4*a*c;
if (a==0)
{
 printf("To nie jest funkcja kwadratowa.");
 return 0;
}
if (delta > 0 & a!= 0)
{
x1 = (-b - sqrt(delta))/(2*a);
x2 = (-b + sqrt(delta))/(2*a);
printf("Pierwiastkami są liczby %f, %f\n", x1, x2);
}
if (delta == 0 & a!= 0)
{x = -b/(2*a);
printf("Pierwiastkiem jest liczba %f\n",x);
}
else
printf("Trójmian ma pierwiastki zespolone\n");
return 0;
}

Ktoś wie jak w C obliczyc pierwiastki zespolone dla ujemnej delty? Niestety nie mam pojecia jak sie za to zabrać

2 odpowiedzi

+1 głos
odpowiedź 27 lutego 2018 przez Ehlert Ekspert (214,220 p.)
sqrt(-4) = sqrt(4) * sqrt(-1) = 2i

i oczywiście umownie bo nie zaokrąglisz tego do wartości rzeczywistej.
0 głosów
odpowiedź 28 lutego 2018 przez Chess Szeryf (76,710 p.)
edycja 28 lutego 2018 przez Chess

Nie wiem, czy dobrze rozwiązałem ten przykład:

i^2=-1

i=sqrt(-1)

4x^2+2x+1=0

a=4 b=2 c=1

delta=4-4*4*1

delta=4-16

delta=-12

sqrt(delta)=sqrt(-12)

i^2=-1/*12

12i^2=-12/sqrt

sqrt(12i^2)=sqrt(-12)

2sqrt(3)*i=sqrt(-12)

sqrt(delta)=2sqrt(3)*i

x1/x2=(-b+/-sqrt(delta))/2a

x1=(-2-2sqrt(3)*i)/8

x1=-1/4-1/4sqrt(3)*i

x2=(-2+2sqrt(3)*i)/8

x2=-1/4+1/4sqrt(3)*i

Rozwiązanie w Common Lisp:

(defun roots(a b c)
  (setq delta (- (expt b 2) (* 4 a c)))
  (setf sqrt-delta (sqrt delta))
  (setq x1 (/ (- (- b) sqrt-delta) (* 2 a)))
  (setq x2 (/ (+ (- b) sqrt-delta) (* 2 a)))
  (print x1)
  (print x2)
 NIL)


(roots 4 2 1)

=>

#C(-0.25 -0.4330127) 
#C(-0.25 0.4330127) 
NIL

Equation Delta

Podobne pytania

0 głosów
2 odpowiedzi 674 wizyt
pytanie zadane 3 lutego 2018 w C i C++ przez mn130496 Gaduła (3,530 p.)
0 głosów
0 odpowiedzi 592 wizyt
pytanie zadane 16 czerwca 2018 w C i C++ przez fruczka Użytkownik (570 p.)
0 głosów
1 odpowiedź 1,996 wizyt

93,020 zapytań

141,985 odpowiedzi

321,287 komentarzy

62,366 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...