nanoant20 |
» 2017-10-29 10:16:04 #include <stdio.h> #include <stdlib.h> #include <time.h>
int main( void ) { int z, suma; clock_t start, stop; double czas; for( int i = 0; i < 10; i++ ) { printf( "%d + %d ", i, z = 1 ); start = clock(); suma = i + z; z++; stop = clock(); czas =( double )( stop - start ) / CLOCKS_PER_SEC; printf( "= %d czas %lf s.\n", suma, czas ); } return 0; }
|
|
cybernetykpl Temat założony przez niniejszego użytkownika |
» 2017-10-29 10:22:59 A jeszcze aby operacje były na zmiennych typu całkowitego typu long. Jak dam to daje 0, 1 ,2,3 itp a long ma wrtości -2'147'483'648 do 2'147'483'647 long int z, suma; [ / code ] |
|
nanoant20 |
» 2017-10-29 10:33:40 czy chodzi Ci o formatowanie? printf( "%d + %ld ", i, z = 1 );
|
|
cybernetykpl Temat założony przez niniejszego użytkownika |
» 2017-10-29 10:38:44 #include <stdio.h> #include <stdlib.h> #include <time.h>
int main( void ) { long int z, suma; clock_t start, stop; double czas; for( int i = 0; i < 10; i++ ) { printf( "%lf + %d ", i, z = 1 ); start = clock(); suma = i + z; z++; stop = 1; czas =( double )( stop - start ) / CLOCKS_PER_SEC; printf( "= %lf czas %lf s.\n", suma, czas ); } return 0; }
jak zmieniłem na %lf to nie odaje o 1 tylko 0.000000 + 0 = -0.000711 czas 1000000.000000 s. -0.000711 + 1 = -0.000726 czas 1000000.000000 s. -0.000726 + 2 = -0.000733 czas 1000000.000000 s. -0.000733 + 3 = -0.000740 czas 1000000.000000 s. -0.000740 + 4 = -0.000746 czas 1000000.000000 s. -0.000746 + 5 = -0.000752 czas 1000000.000000 s. -0.000752 + 6 = -0.000758 czas 1000000.000000 s. -0.000758 + 7 = -0.000764 czas 1000000.000000 s. -0.000764 + 8 = -0.000770 czas 1000000.000000 s. -0.000770 + 9 = -0.000776 czas 1000000.000000 s. |
|
nanoant20 |
» 2017-10-29 10:46:45 #include <stdio.h> #include <stdlib.h> #include <time.h>
int main( void ) { long int z, suma; clock_t start, stop; double czas; for( int i = 0; i < 10; i++ ) { printf( "%d + %ld ", i, z = 1 ); start = clock(); suma = i + z; z++; stop = 1; czas =( double )( stop - start ) / CLOCKS_PER_SEC; printf( "= %ld czas %lf s.\n", suma, czas ); } return 0; }
A tutaj link http://cpp0x.pl/dokumentacja/standard-C/difftime/109 #include <stdio.h> #include <stdlib.h>
int main( void ) { long int z = 1; alarm( 1 ); while( 1 ) { printf( "Liczba: " ); printf( "%ld -> ", z ); z++; printf( "pid %d ppid %d\n ", getpid(), getppid() ); } return 0; }
A tak wogóle to bym napisał to tak #include <stdio.h> #include <stdlib.h> #include <time.h>
int main( void ) { long int z = 1; time_t start, stop, seconds = 1; start = time( NULL ); stop = start + seconds; printf( "start time : %s", ctime( & start ) ); while( start < stop ) { start = time( NULL ); printf( "z = %ld -> %s\n", z, ctime( & start ) ); z++; } printf( "stop time : %s", ctime( & stop ) ); return 0; }
|
|
cybernetykpl Temat założony przez niniejszego użytkownika |
» 2017-10-29 12:52:06 Bo ja mam tu użyć funcji alarm, więc wystarczy, że dopisze alarm(1); kolejna sprawa to wyświetlenie liczby współbieżnych procesów. printf( "pid tty %d ppid %d\n ", getpid(), getppid() );
Ale tu wyświetla id procesu tego któy się wykonuje, a nie współbieżnych. |
|
nanoant20 |
» 2017-10-29 18:19:23 co masz na myśli mówiąc o procesach współbieżnych?
Chyba, ze za 1 watek uznamy proces alarm(1), a za 2 to co się dzieje w pętli while. Poczytaj sobie o funkcjach związanych z procesami: fork, exec, wait, getpid, getppid
|
|
cybernetykpl Temat założony przez niniejszego użytkownika |
» 2017-10-29 20:33:22 Dziękuje nanoant20. Pomogłeś mi dużo.
Powiedzmi tylko ostatnią rzecz. Jeśli wywołując alarm za pomocą sygnału sigalrm, to jeśli w kodzie wpiszę: alarm(1); to co niżej się wykonuje np. dodawnaie - wykonuje się tyle sekund co jest w nawiasie po alarm? |
|
1 « 2 » 3 |