Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Clout
    Registrato dal
    Jan 2009
    Messaggi
    23

    Suggerimento riguardo le funzioni

    Ciao a tutti .Volevo sapere se è possibile in qualche modo,far lavorare parallelamente ,in contemporanea più funzioni in C++.

  2. #2
    Sì, devi usare i thread, ma tieni conto che non è un argomento banale. Come usare i thread dipende dal sistema operativo su cui stai lavorando.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Manca l'indicazione del linguaggio nel titolo, che dovrebbe comunque dare un'idea del contenuto della discussione. Lo aggiorno io.

    Ad ogni modo, per far lavorare "in parallelo" funzioni diverse sono stati inventati i thread. Per ciascuna piattaforma ci sono le API relative per la creazione dei thread.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    se vuoi generare più processi di un eseguibile, dipendendo dal tuo sistema operativo, puoi fare dei fork

  5. #5

    Re: Suggerimento riguardo le funzioni

    Originariamente inviato da Clout
    Ciao a tutti .Volevo sapere se è possibile in qualche modo,far lavorare parallelamente ,in contemporanea più funzioni in C++.
    Dipende dal sistema operativo e dalla macchina. A seconda dello stesso puoi fare delle fork e/o dei thread, prelativi o collaborativi, su multiprocessori (comprese eventuali ulteriori accelerazioni hardware ad esempio offerte da una una o piu' schede grafiche) reali o virtuali, senza escludere dalla conta delle possibiltà che hai.. il grid computing.
    ;-)

  6. #6
    Utente di HTML.it L'avatar di Clout
    Registrato dal
    Jan 2009
    Messaggi
    23
    Vi riporto in seguito il codiceMI SCUSO PER IL CODICE POCO CHIARO IN ALCUNI PUNTI)

    using namespace std;
    void pister(int i);
    void machine(int m);
    int main(int argc, char *argv[])
    {

    pister(10);





    getchar();
    return 0;
    }

    //Creazione della funzione pister per l'animazione del percorso
    void pister(int i)
    {
    for(i= i;i!=0 ; i=i-3)
    {

    cout<<"| |"<<" | |\n";
    cout<<"|------|"<<" |------|\n";
    cout<<"| |"<<" | |\n";

    }
    }

    // Crezione funzione machine per i movimenti della navetta
    void machine(int m)
    {
    for (m=m;m !=0;m= m-3)
    {
    cout<<" ___ \n";
    cout<<" _| |_ \n";
    cout<<" /_______\ \n";
    system("CLS");
    }
    }


    E sicuramente poco ortodosso ,ma in pratica dovrebbe essere un videogame in cui ci sono due funzioni la funzione piste(),e la funzione machine();
    La prima stampa con un ciclo infinito dei qudrati ai bordi dello schermo;ciò dà la senzazione di movimento;

    La seconda funzione invece stampa acnchessa all'infinito una navetta("non molto chiara")una macchina.

    il mio scopo è quello di far lavorare contemporanemamente le due funzioni per ottenere l'effetto di una navetta in corsa.


    P.S
    MI SCUSO PER IL CODICE POCO CHIARO IN ALCUNI PUNTI!

  7. #7
    Utente di HTML.it L'avatar di Clout
    Registrato dal
    Jan 2009
    Messaggi
    23
    Mi scuso per il codice in alcuni punti poco chiaro!

  8. #8
    Al di là del fatto che hai postato del codice non compilabile (mancano le inclusioni degli header), un programma del genere non può funzionare, visto che le operazioni di inserimento eseguite in contemporanea darebbero come risultato un output mescolato, e, anche se ciascuna operazione di inserimento fosse atomica, otterresti in output una linea appartenente a un thread e una all'altro (o cose analoghe).
    Dovresti "mescolare" da te i due output in maniera adeguata, e naturalmente inserire un qualche ritardo per ogni esecuzione del ciclo.
    Comunque le applicazioni console non sono le più adeguate per fare giochini grafici, o, se proprio vuoi, devi usare le apposite API per cambiare i singoli blocchi sullo schermo: iostream è pensata semplicemente per gestire l'output "normale" su schermo.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.