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

C wykonanie dodawania przez kilka sekund

Ostatnio zmodyfikowano 2017-11-02 11:27
Autor Wiadomość
nanoant20
» 2017-10-29 10:16:04
C/C++
#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;
}
P-166176
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

C/C++
long int z, suma;
[ / code ]
P-166177
nanoant20
» 2017-10-29 10:33:40
czy chodzi Ci o formatowanie?

C/C++
printf( "%d + %ld ", i, z = 1 );
P-166178
cybernetykpl
Temat założony przez niniejszego użytkownika
» 2017-10-29 10:38:44
C/C++
#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.
P-166179
nanoant20
» 2017-10-29 10:46:45
C/C++
#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

C/C++
#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

C/C++
#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;
}
P-166180
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.

C/C++
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.
P-166184
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
P-166222
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?
P-166225
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona