Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja kwadratowa

Ostatnio zmodyfikowano 2014-11-20 00:36
Autor Wiadomość
evogrego
Temat założony przez niniejszego użytkownika
Funkcja kwadratowa
» 2014-11-19 20:50:04
Witam.

Jestem świeżym użytkownikiem i potrzebuje szybkiej pomocy. Jako prace domową dostałem napisanie programu obliczającego funkcję kwadratową (delta, x1,x2,x0). Pomimo starań program nie działa poprawnie. Jako wynik delty zawsze wyświetla 0,0000, nie przechodzi do kolejnych obliczeń. Mógłby ktoś rzucić okiem i ewentualnie powiedzieć gdzie popełniłem błąd? :)

C/C++
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <math.h>

int menu( void );
float dane( void );
float delta( void );
float X1X2( void );
float X0( void );
float brak( void );



int main( void )

{
    menu();
    return 0;
}

int menu( void )
{
    textbackground( "0" )
    textcolor( "15" )
    printf( "\n\t Obliczanie funkcji kwadratowej" );
    dane();
    clrscr();
    return 0;
}

float dane( void )
{
    float a, b, c;
    printf( "\n\t Podaj a:" );
    scanf( "%f", & a );
    printf( "\n\t Podaj b:" );
    scanf( "%f", & b );
    printf( "\n\t Podaj c:" );
    scanf( "%f", & c );
    delta();
    return 0;
}
float delta( void )
{
    float a, b, c, wynik, d;
    d = pow( b, 2 );
    wynik = d -( 4 * a * c );
    printf( "\n\t Delta wynosi: %f", wynik );
   
    if( wynik > '0' ) X1X2;
   
    if( wynik < '0' ) brak;
   
    if( wynik == '0' ) X0;
    else menu();
   
    return 0;
}

float X1X2( void )
{
    float a, b, x1, x2, wynik, d;
    d = sqrt( wynik );
    x1 =( - b ) - d / 2 * a;
    printf( "\n\t x1 wynosi:%f", x1 );
    x2 =( - b ) + d / 2 * a;
    printf( "\n\t x2 wynosi:%f", x2 );
    getch();
    return 0;
}

float X0( void )
{
    float x0, a, b;
    x0 =( - b ) / 2 * a;
    printf( "\n\t x0 wynosi:%f", x0 );
    getch();
    return 0;
}
float brak( void )
{
    printf( "\n\t Funkcja nie ma rozwiazania" );
    getch();
    return 0;
}


P-121020
Tomek_z_W11
» 2014-11-19 21:50:15
Nie wkleiłeś implementacji funkcja pow() najprawdopodobniej to ona coś źle oblicza.

przepraszam, mój błąd, nieogarnąłem, że to funkcja z <math.h>

w takim razie funkcja delta jest źle napisana, bo deklarujesz zmienne a, b, c i ich nie inicjalizujesz, tzn mają jakieś randomowe wartości - kompilator oblicza delte z tych randomowych wartości, a ify są bez sensu, bo w ich ciele nie robisz nic konkretnego.
P-121028
michal11
» 2014-11-20 00:36:21
Czy to ci się w ogóle kompiluje ?
Masz tu strasznie dużo błędów. Powinieneś na początek poczytać o funkcjach.
A wynik ci wychodzi 0 bo w każdej funkcji zwracasz 0.
P-121038
« 1 »
  Strona 1 z 1