Strona 1 z 1

[c] zatrzymanie ekranu programu?

: 26 mar 2009, o 16:11
autor: marek12
jak zatrzymć ten program na ekranie w dev?

Kod: Zaznacz cały

#include <stdio.h>

// Prototypy funkcji uzytych w programie
float bisekcja(float, float, float);
float f(float);


int main(void)
  {
  // Program glowny
  
  float lewy,prawy,eps,wynik;

  // Wczytanie danych
  printf("Podaj lewy kraniec przedzialu,  lewy = ");
  scanf("%f", &lewy);

  printf("Podaj prawy kraniec przedzialu, prawy = ");
  scanf("%f", &prawy);

  printf("Podaj zadana dokladnosc, eps = ");
  scanf("%f", &eps);

  // Wywolanie funkcji obliczacej miejsce zerowe
  wynik = bisekcja(lewy,prawy,eps);
  printf("%f
",wynik);

  }


float bisekcja(float lewy, float prawy, float eps)
  {
  // Funkcja oblicza miejsce zerowe funkcji f metoda bisekcji

  float pierwiastek;

  if ( f(lewy)*f(prawy) < 0 ) 
    {
    pierwiastek = lewy;   // Pierwsze przyblizenie pierwiastka

    while( (prawy-lewy) >= eps )  // Liczymy do momentu osiagniecia zadanej dokladnosci
      {
      pierwiastek = (prawy + lewy) / 2.0;  // srodek przedzialu
      if ( f(lewy)*f(pierwiastek) < 0 )
        prawy = pierwiastek;
      else if ( f(pierwiastek)*f(prawy) < 0 )
        lewy = pierwiastek;
      else break;
      }
    }
  else 
    pierwiastek = -0.0;   // Nie ma pierwiastka w przedziale, zwracamy -0.0

  return(pierwiastek);
  }


float f(float x)
  {

  // Funkcja, ktorej miejsc zerowych szukamy
  return(x*x-9);

  }



[c] zatrzymanie ekranu programu?

: 26 mar 2009, o 17:05
autor: arecek
Nie jestem pewien , ale

getch();

lub

while(kbhit())
getch();

powinny zadziałać.

[c] zatrzymanie ekranu programu?

: 26 mar 2009, o 17:10
autor: marek12
a gdzie to mam wpisac ?

[c] zatrzymanie ekranu programu?

: 26 mar 2009, o 17:14
autor: 6hokage
Jak w main-ie wpiszesz gdziekolwie getch() to program będzie czekał aż wciśniesz jakikolwiek klawisz,
skoro chcesz zatrzymać program po wyświetleniu wyników to umieść getch() na końcu. Biblioteka w której jest definicja funkcji getch() to <conio.h>.

[c] zatrzymanie ekranu programu?

: 26 mar 2009, o 17:22
autor: matshadow

Kod: Zaznacz cały

#include <conio.h>
int main(void)
{
      .....
      getch();
      return 0;
}

[c] zatrzymanie ekranu programu?

: 26 mar 2009, o 17:24
autor: marek12
ok dzieki

[c] zatrzymanie ekranu programu?

: 19 lis 2010, o 23:24
autor: jush6
Ja tak zrobiłem jak poniżej i podaję epsilon np. 0.001 to jako wynik otrzymuje same zera 00000000 program nie odpowiada dobrze Czy ktoś wie dlaczego?

Kod: Zaznacz cały

// Znajdywanie miejsc zerowych metoda bisekcji

#include <stdio.h>
#include <conio.h>
// Prototypy funkcji uzytych w programie
float bisekcja(float, float, float);
float f(float);


int main(void)
  {
  // Program glowny
  
  float lewy,prawy,eps,wynik;

  // Wczytanie danych
  printf("Podaj lewy kraniec przedzialu,  lewy = ");
  scanf("%f", &lewy);

  printf("Podaj prawy kraniec przedzialu, prawy = ");
  scanf("%f", &prawy);

  printf("Podaj zadana dokladnosc, eps = ");
  scanf("%f", &eps);

  // Wywolanie funkcji obliczacej miejsce zerowe
  wynik = bisekcja(lewy,prawy,eps);
  printf("%f
",wynik);
  getch();
  return 0;


  }


float bisekcja(float lewy, float prawy, float eps)
  {
  // Funkcja oblicza miejsce zerowe funkcji f metoda bisekcji

  float pierwiastek;

  if ( f(lewy)*f(prawy) < 0 ) 
    {
    pierwiastek = lewy;   // Pierwsze przyblizenie pierwiastka

    while( (prawy-lewy) >= eps )  // Liczymy do momentu osiagniecia zadanej dokladnosci
      {
      pierwiastek = (prawy + lewy) / 2.0;  // srodek przedzialu
      if ( f(lewy)*f(pierwiastek) < 0 )
        prawy = pierwiastek;
      else if ( f(pierwiastek)*f(prawy) < 0 )
        lewy = pierwiastek;
      else break;
      }
    }
  else 
    pierwiastek = -0.0;   // Nie ma pierwiastka w przedziale, zwracamy -0.0

  return(pierwiastek);
  }


float f(float x)
  {
  // Funkcja, ktorej miejsc zerowych szukamy
  return(x*x - 9);
  }

[c] zatrzymanie ekranu programu?

: 20 lis 2010, o 20:41
autor: matshadow
A jakie wpisujesz końce przedziału?

[c] zatrzymanie ekranu programu?

: 23 lis 2010, o 02:41
autor: dpiotrow
Samo wpisanie system("pause"); przed return 0 też działa.

[c] zatrzymanie ekranu programu?

: 23 lis 2010, o 09:59
autor: tobix10
Program konsolowy przeznaczony jest do uruchamiania w konsoli. Jeżeli włączysz najpierw cmd, przejdziesz do folderu z programem i go odpalisz to nie musisz nic pauzować, bo okno nie zniknie.

Co do drugiego, nie analizowałem kodu, ale możesz spróbować użyć zmiennych double albo long double.