n° 193
Settembre/Ottobre 2014
Settembre 02, 2014, 08:42:28 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  



* Messaggi recenti
Messaggi recenti
Pagine: [1] 2 3 ... 10
 1 
 inserita:: Settembre 01, 2014, 02:53:49  
Aperta da gerry.b - Ultimo messaggio da michele.p
Dovresti essere un po' più preciso sul metodo utilizzato.

Ad esempio, vado a memoria, facendo click con il destro sulla cella dovrebbe apparire, nel menù contestuale, una voce del tipo "Collegamento ...." (non ricordo il seguito): dovresti riuscire a a specificare collegamento a file e/o cartella. Hai seguito questa strada oppure un'altra? Parli di una macro, qual è il nome di questa macro?

Bye 8-)

 2 
 inserita:: Settembre 01, 2014, 09:17:14  
Aperta da gerry.b - Ultimo messaggio da gerry.b
 Che?!? Che?!? Che?!? Che?!? Che?!? Che?!? nessuno puo aiutarmi

 3 
 inserita:: Agosto 30, 2014, 07:16:13  
Aperta da gerry.b - Ultimo messaggio da gerry.b
Salve a tutti vengo subito al mio dilemma
non ho molta dimestichezza con excell e vengo in vostro aiuto
esiste una macro che fa automaticamente tutto in maniera automatica
queste condizioni ho un file excell
dove ho un foglio "DATI" e nelle celle
B2 Ho il nome con cui vorrei salvare il file in questione
in J2 ho concatenato il percoso dove vorrei salvare il file
"la directory non esiste" e vorrei crearla automaticamente
ora vorrei sapere e e fattibile o e solo un mio sogno
nella cartella B2 e testo Concatenato
il file risiede in un hdd esterno es: I:\clienti\NOMEinJ2\NomeB2.xlx
in modo da creare cartella e file in una mossa sola

sempre se non chiedo troppo e possibile un tasto reset delle celle non bloccate.
grazie aticipatamente
IL NOME della cartella deve essere uguale al file

ALLEGO IL FILE....GRADIREI CHE NON VENISSERO FATTE DOMANDE IN MERITO ALL'USO MA NON DIVULGARE
CHI LO PUO RITENERE UTILE LO PUO' UTILIZZARE PER SE.

ALLEGATO

 4 
 inserita:: Agosto 29, 2014, 11:37:40  
Aperta da dennis87 - Ultimo messaggio da michele.p
P.S.: A meno che per processi client-server intendi quanto spiegato in questa lezione (slide) dell'Uni di Bo:

http://lia.deis.unibo.it/Courses/som1011/materiale/10.modello%20a%20scambio%20di%20messaggi.pdf

nel qual caso vedi se può esserti di aiuto...

 5 
 inserita:: Agosto 29, 2014, 11:31:17  
Aperta da dennis87 - Ultimo messaggio da michele.p
Presumo, vista la collocazione del messaggio, in C...

L'uso dei socket in questi casi dovrebbe essere "imperativo"...

Non so quale sia il tuo livello, ma intendo questi:

http://www.feelinglinux.com/articles/usosocket.jsp

con qualche esempio:

http://www.thegeekstuff.com/2011/12/c-socket-programming/

Dovresti essere un po' più preciso nella descrizione, però.

Bye 8-)

 6 
 inserita:: Agosto 28, 2014, 09:31:42  
Aperta da dennis87 - Ultimo messaggio da dennis87
Ciao a tutti,
per l'università devo realizzare questo programmino che permette lo scambio di messaggi tra processi client, il tutto gestito da un processo server.
Il server deve mantenere la lista dei client connessi e ricevere i messaggi da inoltrare ai client, mentre i client deve connettersi/disconnettersi dal server e inviare/ricevere messaggi testuali.
Le comunicazioni fra i processi devono essere realizzate usando segnali e pipe con nome.
Mi potreste aiutare a capire come realizzare questo programmino? Ancora non ho scritto nulla, mi farebbe comodo anche avere dei link a siti che spiegano alcuni punti.

Grazie mille a tutti.

 7 
 inserita:: Agosto 28, 2014, 02:09:44  
Aperta da Mind_the_Bit - Ultimo messaggio da M.A.W. 1968
1) Il programma deve terminare quando la lettera 'Z' è stata collocata nella matrice, oppure in caso di errore. Occorre e basta quindi un singolo loop di elaborazione.

2) In letteratura, la soluzione più ortodossa per la costruzione di cammini matriciali è universalmente basata sui seguenti elementi:
Codice:
enum {UP, RT, DN, LT};

struct {
    int R_ofs;
    int C_ofs;
} Moves[4] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};

Di norma l'array di strutture Moves è costante. La gestione dei bordi avviene tramite un array booleano, che di volta in volta (secondo la posizione corrente) costringe il prng ad una nuova estrazione se il valore fornito non è coerente con la posizione attuale.

Dunque, in sostanza, ad ogni iterazione:
- Si inizializzano le quattro locazioni dell'array booleano a TRUE o FALSE sulla base del fatto che la posizione corrente consenta o meno un movimento rispettivamente su, a destra, in basso o in alto;
- Si continua ad estrarre un valore pseudorandom tra zero e tre fino a che la relativa locazione nell'array booleano è TRUE;
- Sia dir la direzione pseudorandom così ottenuta. Si procede sommando alla riga e colonna correnti, rispettivamente, i relativi offset presi dalla locazione Moves[dir].

3) La gestione delle collisioni è sostanzialmente una seccatura, in ogni caso - data la blandezza dei vincoli esposti - pare che basti ricercare la prima cella libera, non importa se contigua all'attuale, con una qualsiasi strategia. Ma di questo, se del caso, parleremo magari in seguito.

Ecco un essenziale stralcio di codice che, nel modo più grezzo possibile, illustra una possibile parziale soluzione scolastica. Mancano del tutto una serie di ottimizzazioni nel bit counting sull'array booleano ed una raffinata strategia di startover, la sequenza della mosse viene memorizzata in modo esplicito e con grande spreco di spazio (basterebbe una notazione differenziale, memorizzando ad ogni iterazione il valore di dir in un char), ma tutto ciò è palesemente assai lontano dai limiti di campo di un simile esempio...
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#define ASIZE 10

typedef enum {FALSE, TRUE} boole_t;

enum {UP, RT, DN, LT};

struct {
    int R_ofs;
    int C_ofs;
} Moves[4] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};

struct {
    size_t row;
    size_t col;
} History[ASIZE*ASIZE];

boole_t Allowed[4];

void DumpHistory(const size_t moves)
{
    size_t i;

    printf("(0,0)");
    for (i = 1; i < moves; ++i)
    {
        printf(", (%d,%d)", History[i].row, History[i].col);
    }
    puts("");
}

void DisplayMatrix(char Mat[ASIZE][ASIZE])
{
    size_t i, j;

    for (i = 0; i < ASIZE; ++i)
    {
        for ( j = 0; j < ASIZE; ++j)
        {
            printf("%c ", Mat[i][j]);
        }
        puts("");
    }
    puts("");
}

int main(void)
{
    boole_t done = FALSE;
    size_t R = 0;
    size_t C = 0;
    size_t step = 0;

    /*
        "Ma si', fai vedere che abbondiamo..." cit. Antonio De Curtis
        Per codesta variabile sono sufficienti esattamente due bit.
    */
    size_t dir;

    char ch = 'A';
    char M[ASIZE][ASIZE];

    srand((unsigned) time(NULL));

    memset(M, '.', ASIZE * ASIZE);
    M[0][0] = ch++;
    History[step].row = R;
    History[step].col = C;

    do
    {
        Allowed[UP] = R >= 1;
        Allowed[RT] = C < ASIZE -1;
        Allowed[DN] = R < ASIZE -1;
        Allowed[LT] = C >= 1;

        do
        {
            dir = rand() & 3;
        } while (!Allowed[dir]);

        if ('.' != M[R + Moves[dir].R_ofs][C + Moves[dir].C_ofs])
        {
            unsigned char i, cnt = 0;

            for ( i = 0; i < 4; ++i)
            {
                if ((Allowed[i]) && ('.' == M[R + Moves[i].R_ofs][C + Moves[i].C_ofs]))
                {
                    ++cnt;
                }
            }

            if (cnt > 0)
            {
                continue;
            }
            else
            {
                printf("\n# ERROR: Out of moves at step %d (ch = '%c')\n\n", step, ch);
                DisplayMatrix(M);
                DumpHistory(step);
                return 1;
            }
        }

        History[step].row = R;
        History[step].col = C;
        ++step;

        R += Moves[dir].R_ofs;
        C += Moves[dir].C_ofs;
        M[R][C] = ch;
        ++ch;

        /*
        printf("> R = %d, C = %d, dir = %d, ch = %c\n", R, C, dir, ch);
        DisplayMatrix(M);
        */

        done = ('Z' < ch);

    } while (!done);

    DisplayMatrix(M);
    DumpHistory(step);

    return 0;
}


Ecco un run test:
Codice:
Y:\>randomwalk

# ERROR: Out of moves at step 15 (ch = 'Q')

A . . . . . . . . .
B O N . . . . . . .
C P M L . . . . . .
D I J K . . . . . .
E H . . . . . . . .
F G . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

(0,0), (1,0), (2,0), (3,0), (4,0), (5,0), (5,1), (4,1), (3,1), (3,2), (3,3), (2,3), (2,2), (1,2), (1,1)

Y:\>randomwalk

# ERROR: Out of moves at step 23 (ch = 'Y')

A D E . . . . . . .
B C F G J K . . . .
. . . H I L M N O P
. . . . . . . . R Q
. . . . . . . T S X
. . . . . . . U V W
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

(0,0), (1,0), (1,1), (0,1), (0,2), (1,2), (1,3), (2,3), (2,4), (1,4), (1,5), (2,5), (2,6), (2,7), (2,8), (2,9), (3,9), (3,8), (4,8), (4,7), (5,7), (5,8), (5,9)

Y:\>randomwalk
A . . . . . . . . .
B . . . . . . . . .
C . . . . . . . . .
D . . . . . . . . .
E . I J K . . . . .
F G H . L M P Q . .
. . . Z Y N O R . .
. . . . X W T S . .
. . . . . V U . . .
. . . . . . . . . .

(0,0), (1,0), (2,0), (3,0), (4,0), (5,0), (5,1), (5,2), (4,2), (4,3), (4,4), (5,4), (5,5), (6,5), (6,6), (5,6), (5,7), (6,7), (7,7), (7,6), (8,6), (8,5), (7,5), (7,4), (6,4)

Y:\>randomwalk
A B . . . . . . . .
. C . . . . . . . .
. D . . . . . . . .
. E . . . . . . . .
G F . . . . . . . .
H . . . . . . . . .
I . . Z . . . . . .
J K . Y X W V . . .
M L . . . T U . . .
N O P Q R S . . . .

(0,0), (0,1), (1,1), (2,1), (3,1), (4,1), (4,0), (5,0), (6,0), (7,0), (7,1), (8,1), (8,0), (9,0), (9,1), (9,2), (9,3), (9,4), (9,5), (8,5), (8,6), (7,6), (7,5), (7,4), (7,3)

Y:\>randomwalk
A . W X . . . . . .
B . V Y . . . . . .
C D U Z . . . . . .
. E T . . . . . . .
G F S . . . . . . .
H I R . . . . . . .
. J Q . . . . . . .
. K P . . . . . . .
. L O . . . . . . .
. M N . . . . . . .

(0,0), (1,0), (2,0), (2,1), (3,1), (4,1), (4,0), (5,0), (5,1), (6,1), (7,1), (8,1), (9,1), (9,2), (8,2), (7,2), (6,2), (5,2), (4,2), (3,2), (2,2), (1,2), (0,2), (0,3), (1,3)

Y:\>

 8 
 inserita:: Agosto 27, 2014, 06:17:59  
Aperta da Mind_the_Bit - Ultimo messaggio da Mind_the_Bit
Salve a tutti,
Devo creare un cammino casuale in una matrice che stampi le lettere dell'alfabeto e sto riscontrando delle difficoltà. Ecco il codice:
Codice:
#define N 10

#define GIU 0
#define DX  1
#define SU  2
#define SX  3

for(i = 0; i < N; i++)
    {
       for(j = 0; j < N; j++)
       {
          if(ch > 'Z')
             break;
          if(i + j == 0)
             m[i][j] = ch++;
          else
          {
              direzione = rand() % 4;
              if(direzione == GIU)
              {
                 if(i < 9 && m[i][j] == '.')
                    m[i++][j--] = ch++;
              }
              else if(direzione == DX)
              {
                 if(j < 9 && m[i][j] == '.')
                    m[i][j--] = ch++;
              }
              else if(direzione == SU)
              {
                 if(i > 0 && m[i][j] == '.')
                    m[i--][j--] = ch++;
              }
              else if(direzione == SX)
              {
                 if(j > 0 && m[i][j] == '.')
                    m[i][j--] = ch++;
              }
          }
       }
    }
1 - ch è inizializzata ad 'A'.
2 - non so se è corretto manipolare gli indici della matrice in quel modo per il movimento GIU, ma   funziona.
3 - il movimento a SX non funziona mai.
4 - spesso non c'è contiguità tra una lettera e l'altra(intervallo di un puntino).

E' corretto utilizzare i due cicli for per elaborare la matrice oppure sto utilizzando un approccio errato?
Non è consentito il wrap-around. Come controllo che non fuoriesca dai bordi??
In ultimo, se la posizione è occupata da una lettera deve cercare una posizione libera altrimenti il programma finisce prematuramente

 9 
 inserita:: Agosto 26, 2014, 08:29:25  
Aperta da bertolottipf - Ultimo messaggio da bertolottipf
Codice:
public int send(String string) {
String sentence = string;

try {
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

//http://www.massapi.com/class/da/DataOutputStream.html

outToServer.writeBytes(sentence);

serverResponse =  Integer.parseInt( inFromServer.readLine() );

outToServer.close();

return serverResponse;

} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}

return 1;

}

 10 
 inserita:: Agosto 25, 2014, 07:21:22  
Aperta da bertolottipf - Ultimo messaggio da michele.p
Se riporti come hai risolto non sarebbe male....  Ghigno

Bye  Fico

Pagine: [1] 2 3 ... 10
2: include(/mnt/host/www/ioprogrammo/footer.htm) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
File: D:\StorageVM\malphas\www\ioprogrammo\Themes\ioprogrammo\Recent.template.php (main_below sub template - eval?)
Riga: 800