[C++] Serwis podobny do ideone.com

kasiunia206
Użytkownik
Użytkownik
Posty: 37
Rejestracja: 7 lis 2011, o 14:43
Płeć: Kobieta
Lokalizacja: Gdańsk
Podziękował: 4 razy

[C++] Serwis podobny do ideone.com

Post autor: kasiunia206 »

Czy jest jakis program,czy strona podobne do ideone.com, gdzie mogłam bym skompilowac i uruchomić poniższy program? Bo na ideone.com nie mogę tergo zrobić , pokazuje ze\(\displaystyle{ n}\) jest za duże. a potrzebowałabym nawet \(\displaystyle{ n=30}\).


Kod: Zaznacz cały

#include <stdio.h>
#include <math.h>
 
double sine( double x ){         // przedstawienie sinusa za pomocą szeregu
   double s1, s=x, r=x, n=2;
   x *= x;
   do{   s1 = s;
      s += r=-r*x/(n*n+n);
      n += 2;
   } while( s != s1 );
   return s;}
 int main()  
    {                               // metoda x:=x+h
   double a=0, b= 1;                 
   double  x, h;
   int n, i;
   for( n=10; n<=1000000000000000; n *= 10 ) {
      h=(b-a)/n;
      x=0.0;
      for( i=1; i<=n; i++ ) {
          x+=h; }
     printf("%12d  %23.15e  %23.15e  %23.15e
" , n, x, sine(x));
   }
     return 0;
}
Ostatnio zmieniony 17 lut 2012, o 15:20 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
unK
Użytkownik
Użytkownik
Posty: 26
Rejestracja: 20 sty 2009, o 17:55
Płeć: Mężczyzna
Podziękował: 6 razy
Pomógł: 3 razy

[C++] Serwis podobny do ideone.com

Post autor: unK »

1000000000000000 wychodzi poza zakres typu int, więc ten program nie zadziała tak, jak chcesz żeby działał.
kasiunia206
Użytkownik
Użytkownik
Posty: 37
Rejestracja: 7 lis 2011, o 14:43
Płeć: Kobieta
Lokalizacja: Gdańsk
Podziękował: 4 razy

[C++] Serwis podobny do ideone.com

Post autor: kasiunia206 »

zmiana na long int coś pomoże?
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[C++] Serwis podobny do ideone.com

Post autor: adambak »

long int to to samo co int..
daj unsigned long long int, wtedy będzie ok.. to najwięcej co można wycisnąć z całkowitych liczb dodatnich w tym języku..

-- 17 lut 2012, o 18:32 --

co ja gadam...
faktem jest, że taka liczba się zmieści w long long int, ale co innego że nie można tak dużej liczby ustawić (tego nie wiem czemu)

alternatywą jest:

Kod: Zaznacz cały

#include <stdio.h>
#include <math.h>
 
double sine( double x ){         // przedstawienie sinusa za pomocą szeregu
   double s1, s=x, r=x, n=2;
   x *= x;
   do{   s1 = s;
      s += r=-r*x/(n*n+n);
      n += 2;
   } while( s != s1 );
   return s;}
int main() 
    {                               // metoda x:=x+h
   double a=0, b= 1;                 
   double  x, h;
   double n, i;
   for( n=10; n<=1e15; n *= 10 ) {
      h=(b-a)/n;
      x=0.0;
      for( i=1; i<=n; i+=1 ) {
          x+=h; }
     printf("%12d  %23.15e  %23.15e  %23.15e
" , n, x, sine(x));
   }
     return 0;
}
ale nie wiem czy zdajesz sobie sprawę ze złożoności tego algorytmu.. bo końca pętli:

Kod: Zaznacz cały

for( i=1; i<=n; i+=1 )
nie masz szans się doczekać dla \(\displaystyle{ n=10^{15}}\), będzie to trwać wieki, powaga..
Grzesio_
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 23 gru 2011, o 22:59
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 3 razy

[C++] Serwis podobny do ideone.com

Post autor: Grzesio_ »

285235.htm#p4877703
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Serwis podobny do ideone.com

Post autor: Afish »

Kod: Zaznacz cały

for( i=1; i<=n; i+=1 ) {
          x+=h; }
Może by tak pomnożyć?
Grzesio_
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 23 gru 2011, o 22:59
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 3 razy

[C++] Serwis podobny do ideone.com

Post autor: Grzesio_ »

to nie to samo-- 22 lut 2012, o 04:34 --i tak z innej beczki:

pobawić można się na
ale to tylko 5 lub 15 sekund

a wziąć EXE można np. z

Kod: Zaznacz cały

http://www.onlinecompiler.net/


ale

czeba wiedzieć co się bierze
ODPOWIEDZ