Program liczący deltę i pokazujący liczbę rozwiązań

0

Tak jak w temacie prośba o pomoc w napisaniu programu liczącego deltę i pokazującego liczbę rozwiązań równania kwadratowego,jednak ma on nie wyświetlać jakie to są rozwiązania(ma wyświetlać jedynie ich liczbę).Nie może zawierać instrukcji warunkowych tj.if,else itp.

0

No próbowałem,jednak nie wychodzi mi to bez instrukcji warunkowych,to chyba musi być jakoś opisane na operatorach logicznych (delta>0||delta>=0||delta<0),ale utknąłem jak możesz to napisz bede wdzieczny : )

0

Wdzięczność okaż zleceniobiorcy, bo taką "prośbę" powinieneś umieścić w dziale oferty pracy. Wdzięcznością powinno być konkretne wynagrodzenie pieniężne. Nie piszemy gotowców za kogoś przy zerowym wysiłku własnym. No chyba, że to płatne zlecenia.

0

...

0

Ale ja potrzebuję trzech warunków z tego co słyszałem to operator ? : warunek1:warunek2;
ale ok poszukam poszperam,może coś jeszcze podpowiecie?jakieś tipy inne?
Endrju cóż ma oznaczać twoja emotka ; d?
Poza tym mam jakieś krzaki w kodzie bo przy kompilacji są błędy,ja pierdziele...

0
rozw=(((delta>0)*2)+delta==0);

poza tym robisz błąd taki jak większość początkujących. Zapis a = b nie jest regułą, a instrukcją. Wykona się w miejscu jego postawienia i nigdzie indziej. Chodzi o twoje wyliczanie delty, które jest przed wczytaniem danych.

dodanie znaczników <code class="c"> - fp

0

...

0

Teraz z kolei ilość rozwiązań wyliczasz zanim wyliczysz deltę. Idź się porządnie poucz podstaw, bo na zgadywaniu daleko nie zajdziesz.

0

Tia... najpierw korzystasz float rozw=(((delta>0)*2)+delta==0); a dopiero parę linijek dalej to liczysz delta=b*b-4*a*c;... A jakbyś tak zmienił tę kolejność :D

0

Zmieniłem to może faktycznie głupi błąd,no ale co z resztą?

0
float delta = b*b-4*a*c;
unsigned int liczba_rozwiazan = 1 + (delta > 0) + (delta < 0);
// lub
unsigned int liczba_rozwiazan = 1 + (delta != 0);

I po problemie (przyjmując, że wliczamy w to rozwiązania znajdujące się w dziedzinie liczb zespolonych).

0

Dzięki za chęć pomocy,lecz po pierwsze mają to być rozwiązania w zbiorze liczb rzeczywistych,po drugie wyskakuje coś na chwile i od razu gaśnie,.

0

...

0

Problem rozwiązany : ),ostateczna wersja.Nie bede zmieniał na long itd.jak ktos bedzie chciał obliczać jakieś mega liczby to mu wywali,to jest czepialstwo,to jest zwykły amatorski program,który liczy równania tylko w zbiorze liczb rzeczywistych,jak bym chciał full professional to bym dodał jeszcze rozwiązania w zbiorze liczb zespolonych,tyle w temacie : )
Oto rozwiązanie:

#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<conio.h>

int main(void)
{
double a;
double b;
double c;
double rozw;



	printf("Program liczacy delte i pokazujacy ilosc rozwiazan rownania kwadratowego w zbiorze liczb rzeczywistych\n\n");

	printf("podaj a\n");
	scanf("%lf",&a);
	a==0?printf("Przerywam obliczanie,gdyz a nie moze byc rowne 0\n"):printf("podaj b\n")&&scanf("%lf",&b)&&printf("podaj c\n")&&scanf("%lf",&c);

	a==0?getch():printf("");
	a==0?exit(EXIT_FAILURE):printf("");
	
				
	
	double delta=b*b-4*a*c;
	printf("Delta wynosi %.0lf\n",delta);
	rozw=((delta>0)*2)+(delta==0);
	a!=0?printf("Liczba rozwiazan:%.0lf\n",rozw):printf("");
	

system("pause");
return 0;

	
}


0

Rozwiązania równania kwadratowego są ZAWSZE 2, czasem jest jednak podwójne (czyli oba są takie same).

0

Edytowałem,teraz chyba dobrze ; )

0

Ja bym nie męczył użytkownika programu pytaniami o b i c gdy a jest zerem.

0

@bogdans, a jeżeli b jest też zerem zaś c nie jest?

0

a co jesli uzytkownik poda liczbe wieksza niz moze zmiescic sie w floatcie?

http://images.wikia.com/theamazingworldofgumball/images/f/f9/Famous-characters-Troll-face-Troll-face-poker-45046.png
(musialem :()

0

Po pierwsze niektórzy z was się czepiają-float mogę zmienić na double,ależ takiej dokładności nie trzeba,jak dla mnie jest to szczegół,po drugie nie mogę używać instrukcji warunkowych,jedynie operatorów,lecz pokombinuje może za pomocą nich i faktycznie dodam może jakoś sytuację a=0-przerwanie dalszego obliczania.Poza tym trochę wyluzujcie ludzie,bo się za bardzo spinacie,piszę w dziale newbie nie jestem masterem ; ).

0

Powyżej napisany program,którego nie będę już zmieniał,poprawiłem i jest ok.Wg mnie bez sensu jest dalsza jego modyfikacja,to sa mało istotne detale.

0

wersja by program ochraniał przed wpisaniem za duzej liczby dla double ;) jezeli bedzie ktos chcial skorzystac to musi dopisac klasy + obsluzyc wyjatki w razie w

http://ideone.com/B4MGju
http://ideone.com/iSXgpR

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