Anonymní profil light_c_programator – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil light_c_programator – Programujte.comAnonymní profil light_c_programator – Programujte.com

 

Příspěvky odeslané z IP adresy 188.167.242.–

light_c_programator
C / C++ › fork() (multiprocessing in c)
6. 4. 2014   #189024

*ako predam HODNOTU z  child procesu do parent procesu

light_c_programator
C / C++ › fork() (multiprocessing in c)
6. 4. 2014   #189023

Chcel by som v C vytvorit program, ktory by vyuzival pri vypocte napr prvocisel, vsetky dostupne jadro -> cim by sa mal program zrychlit.

Bolo mi poradene pouzit funkciu fork(), ale nepochopil som uplne niektore veci:

1.ako predam funkciu z child procesu do parent procesu?

2.co vlastne funkcia fork() robi? vytvara nove procesy? ci threats? nie je to v podstate to iste?

Snazim sa o nieco taketo:

pid_t pid;

pid = fork();

if(pid >= 0){

if(pid == 0){

hladam prvocislo;

ak najdem prvocislo, chcem predat to prvocislo

}

else {

ak som hore nasiel prvocislo v tomto procese zistujem, ci prvocislo je aj mersennovo prvocislo

}

}

light_c_programator
C / C++ › Multicore vo Visaul Studiu 2…
31. 3. 2014   #188836

Rad by som na svojom pc spustil tento kod

#include <stdio.h>
#include <time.h>
#include <omp.h>
int main() {
    double start, end;
    double runTime;
    int num = 1,primes = 0;

    int limit = 1000000;

    start = omp_get_wtime();
#pragma omp parallel for schedule(dynamic) reduction(+ : primes)
    for (num = 1; num <= limit; num++) { 
        int i = 2; 
        while(i <= num) { 
            if(num % i == 0)
                break;
            i++; 
        }
        if(i == num)
            primes++;
//      printf("%d prime numbers calculated\n",primes);
    }

    end = omp_get_wtime();
    runTime = end - start;
    printf("This machine calculated all %d prime numbers under %d in %g seconds\n",primes,limit,runTime);

    return 0;
}

a vyuzil pri nom vsetky moje jadra avsak visualko mi zatazi iba jedno a to konkretne 2.

Nasiel som si nejaky rady tupu pridat /MP(project/properties/C/command line) ale zatial nic nefunguje

Preto budem rad, ak sa najde niekto, kto nieco take ma na svojom pc nastavene a povie mi ako to nastavit

light_c_programator
C / C++ › dynamicke 2rozmerne pole
27. 3. 2014   #188732

uz som vsetko pochopil  

light_c_programator
C / C++ › dynamicke 2rozmerne pole
27. 3. 2014   #188711

update nahradil som funkcia(&subor, &pocetzaznamov) na naplnanie pola  tvojou verziu pole2 = funkcia(&subor, &pocetzaznamov) a uz  mi to funguje, teraz len v com je rozdiel medzi funkcia(&subor, &pocetzaznamov) a pole2 = funkcia(&subor, &pocetzaznamov)?

light_c_programator
C / C++ › dynamicke 2rozmerne pole
27. 3. 2014   #188709

#9 z
*** pole je uz pre mne prilis komplikovane, ak mi nieco funguje/nefunguje tak uz ani netusim preco a zvrhava sa to len na tu pridam hviezdicku a skusim spustit/tu odoberem a skusim spustit...

s tou druhou moznostou sa uz hram asi 2h, ale este som neprisiel nato co a ako...

light_c_programator
C / C++ › dynamicke 2rozmerne pole
27. 3. 2014   #188703

#7 Romeritton
Tomu rozumiem, malo by to byt asi takto pole2D[][X], ale ja tie rozmery dopredu neviem, viem ich az po vykonani prikazov vo funkcii

z toho mi asi jedina moznost vychadza, v prvej funkcii kde pole alokujem a nacitavam donho prvky len ako lokalnu premennu predavat ho cez return?

proste ide mi o to, ze mam funkciu, v ktorej si definujem 2rozmerne pole, neskor mu alokujem pamat, nacitam don data a potrebujem ho predat inej funkcii, samozrejme s datami v nom

light_c_programator
C / C++ › dynamicke 2rozmerne pole
27. 3. 2014   #188696

a ked mam 2rozmerne pole ako parameter funkcie napr.

void funkcia (FILE **f, char **pole2D){

alokuje a naplnim pole2D

}

ako ho pouziijem v inej funkcii?  napr.

void vypis(char **pole2D){

vypis pole2D

}

Lebo nejak mi to nefunguje,  ani ak zmenim void funkcia na char funkcia a dam return **pole2D a potom toto pole chcem vypisat v ine funkcii, stale mi to pise, ze pole2D je prazdne...

light_c_programator
C / C++ › dynamicke 2rozmerne pole
26. 3. 2014   #188661

Vdaka, uplne presne si to trafil.

*navyse teraz uz viem, ze pole[10] = "string" nie je retazec, ako som sa to ucil ale pole charov 

light_c_programator
C / C++ › dynamicke 2rozmerne pole
26. 3. 2014   #188657

*len oprava chyb co som napisal

Preco, ked si necham vypisat pole2D[x] v ramci cyklu je tam spravny retazec, ale po skonceni cyklu su na vsetkych pole2D[X] rovnake retazce?

for (x = 0; x < i; i++)
        {
            printf("%s", pole2D[x]);
        }

light_c_programator
C / C++ › dynamicke 2rozmerne pole
26. 3. 2014   #188655

Zdravim vsetkych!

Chcel by som vas poprosit o pomoc s tymto problemom:

majme 2 rozmerne dynamicke pole definovane povedzme takto:

char **pole2D = NULL;

potom:

for (x = 0; x < i; x++){
            fgets(priezvisko_meno, 51, *f);
            pole2D[x] = (char*) malloc(strlen(priezvisko_meno) * sizeof(char));
            pole2D[x] = priezvisko_meno;
            fgets(ulica, 51, *f);
            fgets(domova_dan, 10, *f);
            fgets(odvoz_odpadu, 8, *f);
            fgets(datum, 10, *f);
            fgets(prazdny_riadok, 3, *f);
        }

Preco, ked si necham vypisat pole2D[x] v ramci cyklu je tam spravny retazec, ale po skonceni cyklu su na vsetkych X rovnake retazce?

for (x = 0; x < i; i++)
        {
            printf("%s", pole2D[i]);
        }

povedzme ze mam subor s 10 menami(i = 10). nacitam ich, alokujem pre ne pamat, ale vypise sa mi len 10x posledne meno...

Vdaka za rady a vysvetlenie

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý