logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

funkcja - Funkcja kwadratowa podaje za duzo informacji

pag15 14 Paź 2015 00:54 957 6
REKLAMA
  • #1 15065595
    pag15
    Poziom 7  
    Posty: 38
    Mam taki problem, chcialem napisac program podajacy pierwiastki rownania kwadratowego, ale w zaleznosci od zmiennych mial sie pojawiac odpowiedni kominukat. W tym przypadku gdy podaje przykladowe a=0 b=2 c=2 gdzie funkcja jest liniowa, wyswietla mi takze pierwiastki z kwadratowej co powinno byc zabronione dla programu. Chcę miec 1 komentarz do wspolczynnikow. Gdzie lezy problem? (program powinien badac czy dwie wartosci sa prawdziwe, a on gdy zauwazy delte juz decyduje zeby wyswietlic napis)

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 15065636
    RometFan;p
    Poziom 26  
    Posty: 874
    Pomógł: 92
    Ocena: 26
    "if ((a != 0) && (delta>0));"
    tu masz bład, brak też warunku gdy ktoś poda funkcję stałą, lub same 0. Reszta wydaje mi się być ok, aczkolwiek lepiej było by w warunkach zamiast 0 zastosować jakiś epsilon, ponieważ jak wiemy reprezentacja binarna jest skończona. Zamiast pisać kolejne warunki "if", lepiej zastosować "else".
  • REKLAMA
  • #3 15065638
    pag15
    Poziom 7  
    Posty: 38
    Dalej nie rozumiem co mam zle, stosowalem else i tez nic, prosze o dokladne sprostowanie, jestem poczatkujacy
  • REKLAMA
  • REKLAMA
  • #5 15065642
    pag15
    Poziom 7  
    Posty: 38
    Dzięki wielkie :), ciekawe swoją drogą za co dokładnie srednik odpowiada, ze wprowadza takie wariacje
  • #6 15065646
    -psiak-
    Poziom 32  
    Posty: 1185
    Pomógł: 259
    Ocena: 107
    Sam średnik to pusta operacja która wykonywała się (lub nie) w ramach if'a
    Dalej miałeś blok który wykonywał się zawsze.
    Poczytaj o else.
    Nie wszystkie możliwości sprawdziłeś:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #7 15065649
    RometFan;p
    Poziom 26  
    Posty: 874
    Pomógł: 92
    Ocena: 26
    Bo ten średnik to pusta instrukcja która będzie wykonana jeśli warunek będzie spełniony, potem cały tan nawias nie podchodzi już pod tego ifa i wykona się zawsze. Twój program nadal będzie wywalał błędy gdy wpiszesz same 0. Pomyśl o tym sam już. Powodzenia.

Podsumowanie tematu

✨ Użytkownik napotkał problem w programie obliczającym pierwiastki równania kwadratowego, który nieprawidłowo wyświetlał wyniki dla funkcji liniowej (a=0). W odpowiedziach zasugerowano dodanie warunków sprawdzających, aby program nie obliczał pierwiastków dla funkcji stałej lub gdy wszystkie współczynniki są zerowe. Wskazano również na problem z użyciem średnika w instrukcjach warunkowych, co prowadziło do nieprawidłowego działania programu. Użytkownik został zachęcony do przemyślenia logiki programu oraz do użycia konstrukcji `else` zamiast wielu `if`.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA