Autore Topic: l'angolo dell'informatico  (Letto 18147 volte)  Share 

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Lovercraft

  • *
  • Registrazione: Ott 2009
  • Post: 13507
  • Località: Canterbury - Kent
  • Sesso: Maschio
Re:l'angolo dell'informatico
« Risposta #40 il: 15 Luglio, 2010, 18:45:31 pm »
Tutto giusto, tutto sensato...una sola cosa non mi quadra...chi to ffa fa? :look:
:asd:
It's watermelón... INSIDE OF WATERMELÒN!


Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:l'angolo dell'informatico
« Risposta #41 il: 15 Luglio, 2010, 23:39:23 pm »
Tutto giusto, tutto sensato...una sola cosa non mi quadra...chi to ffa fa? :look:


me lo sono chiesto quando era troppo tardi  :look:

Puoi usare un albero di espressione e ti passa la paura. Vedi qui ad esempio com'è implementato, è in Python ma è talmente facile da capire che forse ti verrà  voglia di farlo in Python e non in C++! :P

PS: vedi il paragrafo 20.5 se vuoi andare al dunque ;)

PPS: puoi decidere di usare l'attraversamento inorder invece di postorder... ;)


 :alla:
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

falceEmarcello

Re:l'angolo dell'informatico
« Risposta #42 il: 16 Luglio, 2010, 09:42:49 am »
queste  :asd:


From:   Bancoposta@poste.it To: bianchi.m@poste.it
Sent: Wednesday, September 14, 2005 10:38 PM
Subject: Misure di sicurezza di cliente di BancoPosta ID 42501

Caro bianchi.m@poste.it, Recentemente abbiamo notato uno o più tentativi di entrare al vostro conto di
BancoPostaonline da un IP indirizzo differente.
Se recentemente accedeste al vostro conto mentre viaggiavate, i tentativi insoliti
di accedere a vostro Conto BancoPosta possono essere iniziati da voi.
Tuttavia, visiti prego appena possibile BancoPostaonline per controllare le vostre
informazioni di conto:

https://bancopostaonline.poste.it/bpol/bancoposta/formslogin.asp

Ringraziamenti per vostra pazienza.
BancoPostaon.

 :sisi: :sisi: :banca:


p.s tradotto con google rumeno - italiano .... e non sai a quanti di loro si sono fatti

falceEmarcello

Re:l'angolo dell'informatico
« Risposta #43 il: 16 Luglio, 2010, 09:53:53 am »
Java the Javatar

Offline kurz

  • *
  • Registrazione: Ott 2009
  • Post: 19018
  • Sesso: Maschio
  • IO HO PAGATO E NUN ME FANNO ENTRÀ
gesucrì

Offline peppe9

  • *
  • Registrazione: Ott 2009
  • Post: 14547
  • Località: Sant'Anastasia
  • Sesso: Maschio
  • PARTENOPEO!
Re:l'angolo dell'informatico
« Risposta #45 il: 16 Luglio, 2010, 13:28:43 pm »


Offline Lovercraft

  • *
  • Registrazione: Ott 2009
  • Post: 13507
  • Località: Canterbury - Kent
  • Sesso: Maschio
It's watermelón... INSIDE OF WATERMELÒN!


SpamMattia

Re:l'angolo dell'informatico
« Risposta #47 il: 16 Luglio, 2010, 14:57:51 pm »
ma già  avete una sezione sana tutta dedicata NERDONI DEL CAZZO

Offline mk89

  • *
  • Registrazione: Nov 2009
  • Post: 13489
Re:l'angolo dell'informatico
« Risposta #48 il: 16 Luglio, 2010, 20:19:12 pm »
ma già  avete una sezione sana tutta dedicata NERDONI DEL CAZZO

una non basta!!!  :ink:
Si abbufferà di psicofarmaci e anfetamine. Comunque visto lo stato mentale attuale, ha tutto per diventare amministratore di questo forum  :look:

Offline ciccio-s

  • *
  • Registrazione: Gen 2010
  • Post: 10189
Re:l'angolo dell'informatico
« Risposta #49 il: 16 Luglio, 2010, 22:16:33 pm »
una non basta!!!  :ink:
linguaggi, hardware & software, analisi  :jump:

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:l'angolo dell'informatico
« Risposta #50 il: 18 Luglio, 2010, 12:09:18 pm »
Spoiler
num eval (expression* token , int nodeopen , int nodeclose )
{
   
   
   //variabili per ricerca parentesi
   int ex_node = 0;

   
   //variabili per priorità  operatori
   num pri_type = 14;
   int pri_loc = nodeopen;

   //PASSO 1: RICONOSCIMENTO DEL NODO MINIMO
   //nodo minimo: formato dal solo operando, cardinalità  1...basta ritornare
   //l'operando!!!!!!!
   
   if (nodeopen == nodeclose && token[nodeopen].is_opd)
   {
                return token[nodeopen].val;
   }
   
   
   //PASSO 2: RICONOSCIMENTO DELL'OPERATORE DI MINIMA PRIORITA'
   //scansione del vettore-token, trova l'operatore del nodo-radice e lo
   //esegue al passo 3!
   //tabella delle priorità  (versione 1): () -> / e * -> + e -
   
   for (int i = nodeopen ; i <= nodeclose ; i++)
   {
       
       //-----------------algoritmo di ricerca parentesi------------------------
       if (token.val == nodeop && !token.is_opd)
       {
                        ex_node++;
       }
       
       if (token.val == nodecl && !token.is_opd)
       {
                        ex_node--;
       }
       
       
       //--------------------valutazione dell'operatore-------------------------
       
       //se il token è operatore E se non ci sono priorità  minori o simili
       //assegna al token-operando la minima priorità  e salva la locazione
       
       //priorità  '+' e '-'
       if ( !token.is_opd &&
             token.val < pri_type &&
             token.val < nodeop &&
             ex_node == 0 )
       {
                        pri_type = token.val;
                        pri_loc = i;
       }
       //-----------------------------------------------------------------------
   }
   
   //PASSO 3: COSTRUZIONE DELL'ALBERO OPERATIVO
   //esegue l'operazione prioritaria: se l'operando prioritario è (), chiama
   //ricorsviamente eval per valutare l'interno di ()
   //se è un operatore binario chiama ricorsivamente eval per valutare separatamente
   //le sottoespressioni ai lati
   //
   //ESEMPIO:
   //                 eval ((3+2)*5)
   //        eval (3+2)     *     eval (5)
   //     eval (3) + eval (2)      5
   //
   //       3          2
   
   if (token [nodeopen].val == nodeop && !token[nodeopen].is_opd &&
       token[nodeclose].val == nodecl && !token[nodeclose].is_opd)
   {
         return eval (token , nodeopen + 1 , nodeclose - 1 );
   }
    //sottonodi-operatori binari
   switch ((int) pri_type)
   {
          case pridiv:
          {
                return eval (token , nodeopen , pri_loc-1) / eval (token , pri_loc + 1 , nodeclose);
          }

          case primul:
          {
                return eval (token , nodeopen , pri_loc-1) * eval (token , pri_loc + 1 , nodeclose);
          }
           
          case prisub:
          {
               return eval (token , nodeopen , pri_loc-1) - eval (token , pri_loc + 1 , nodeclose);
          }
         
          case priadd:
          {
               return eval (token , nodeopen , pri_loc-1) + eval (token , pri_loc + 1 , nodeclose);
          }
   }
   
}

funziona, ma per espressioni del tipo ad es. (a+b)+(a+c) calcola solo il risultato della prima parentesi  :tafazzi:
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

Offline mk89

  • *
  • Registrazione: Nov 2009
  • Post: 13489
Re:l'angolo dell'informatico
« Risposta #51 il: 18 Luglio, 2010, 12:48:20 pm »
usa un albero di espressione! :)
Si abbufferà di psicofarmaci e anfetamine. Comunque visto lo stato mentale attuale, ha tutto per diventare amministratore di questo forum  :look:

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:l'angolo dell'informatico
« Risposta #52 il: 18 Luglio, 2010, 13:30:24 pm »
usa un albero di espressione! :)

l'ho fatto, ho letto l'articolo che hai postato  :sisi:  :bacino:

il problema è questo:

la mia funzione lavora così

scandisce il vettore in ingresso, trova l'operatore meno prioritario e lo esegue, se ad esempio l'operatore è + farà 

"tutto quello che sta a sinistra del piu" + "tuttoquello che sta a destra del piu"

e quindi vita ricorsivamente fino a sudividere l'espressione in tante sotto-espressioni formate dal solo operando. quando l'espressione è formata solo dall'operando, ritorna semplicemente tale operando

resta ovviamente da definidre l'operatore "()" che ha il ruolo di modificare la priorità  degli altri operatori

mi sono dato una definizione ricorsiva

-se l'espressione contiene parentesi, valuta solo gli operatori al di fuori delle parentesi (ovvero quando il numero di parentesi aperte trovate lungo la scansione eguaglia il numero di prarentesi chiuse)

-  se la sottoespressione ricavata è racchiusa tra parentesi, allora parsa il contenuto delle parentesi

nel caso (a+b)+(c+d), ad esempio, si verificano entrambe le condizioni, allora il parser dividerà  così l'espressione

A= a+b)
B= (c+d

return A + B

che ovviamente non ha senso  :wall: 
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

Offline raistlin980

  • *
  • Registrazione: Nov 2009
  • Post: 7296
  • Località: Napoli
  • Sesso: Maschio
Re:l'angolo dell'informatico
« Risposta #53 il: 18 Luglio, 2010, 13:51:28 pm »
ci sta il mitico esempio di celentano per spiegare che a volte e' necessario approssimare un numero reale ad intero ... GIUVINO' SI CHIST INVEC E ESSER NUMMARIELL ERAN SACCHET E GEMENT VUJE DIC NO QUANTI SACCHETT AVITA ACCATTA ????

Il Maestro
Citazione da: Aurelio De Laurentiis
Bisogna ripetere, ripetere, vincere, vincere

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:l'angolo dell'informatico
« Risposta #54 il: 21 Luglio, 2010, 21:01:27 pm »
l'ho fatto  :patt: :patt: :patt: :patt: :patt: :patt: :patt:

Spoiler
#include <cstdlib>
#include <iostream>
#include <string>

#define c_opts 4                //10 cifre + 4 operatori + 2 parentesi
#define add 0                   //+
#define sub 1                   //-
#define mul 2                   //*
#define div 3                   ///

using namespace std;
typedef float num;

struct expression
{
       num val;
       bool is_opd;
};

num eval (expression* token , int nodeopen , int nodeclose )
{
   
   

   
   //variabili per priorità  operatori
   num pri_type = 0xFFFF;
   int pri_loc ;


   //PASSO 1: RICONOSCIMENTO DEL NODO MINIMO
   //nodo minimo: formato dal solo operando, cardinalità  1...basta ritornare
   //l'operando!!!!!!!
   
   if (nodeopen == nodeclose && token[nodeopen].is_opd)
   {
                return token[nodeopen].val;
   }
   
   //PASSO 2: RICONOSCIMENTO DELL'OPERATORE DI MINIMA PRIORITA'
   //scansione del vettore-token, trova l'operatore del nodo-radice e lo
   //esegue al passo 3!
   //tabella delle priorità  (versione 1): () -> / e * -> + e -
   
   for (int i = nodeopen ; i <= nodeclose ; i++)
   {
       if (!token.is_opd)
       {
         
                         //----------------valutazione dell'operatore-----------
                         //se il token è operatore E se non ci sono priorità  minori o simili
                         //assegna al token-operando la minima priorità  e salva la locazione
                         if(token.val <= pri_type)
                         {
                                         pri_type = token.val;
                                         pri_loc = i;
                                         break;
                         }
                         //-----------------------------------------------------
          }
   }
   
   //PASSO 3: COSTRUZIONE DELL'ALBERO OPERATIVO
   //esegue l'operazione prioritaria: se l'operando prioritario è (), chiama
   //ricorsviamente eval per valutare l'interno di ()
   //se è un operatore binario chiama ricorsivamente eval per valutare separatamente
   //le sottoespressioni ai lati
   //
   //ESEMPIO:
   //                 eval ((3+2)*5)
   //        eval (3+2)     *     eval (5)
   //     eval (3) + eval (2)      5
   //
   //       3          2
   
 
    //sottonodi-operatori binari
   
    int opt = (int)  pri_type % c_opts;
   
   switch (opt)
   {
          case div:
          {
                return eval (token , nodeopen , pri_loc-1) / eval (token , pri_loc + 1 , nodeclose);
          }

          case mul:
          {
                return eval (token , nodeopen , pri_loc-1) * eval (token , pri_loc + 1 , nodeclose);
          }
           
          case sub:
          {
               return eval (token , nodeopen , pri_loc-1) - eval (token , pri_loc + 1 , nodeclose);
          }
         
          case add:
          {
               return eval (token , nodeopen , pri_loc-1) + eval (token , pri_loc + 1 , nodeclose);
          }
}       
}

int main(int argc, char *argv[])
{
    string func;                  //stringa da parsare
    getline (cin , func);


int riemp = 0;
     int k = 0;
     int nodelevel = 0;
     char alphopd[11] = "0123456789";     //stringa-alfabeto
     char alphopt[5] = "+-*/";
     
     for (int i = 0 ; i < func.length () ; i++)
     {
         if ( func != '('  && func != ')' && func != ' ')
         {
              riemp++;
         }
     }
     
    expression* token = new expression[riemp];
   
    //SCANSIONE DELLA STRINGA
     for (int i = 0 ; i < func.length () ; i++)
     {
         switch (func)
         {
                case '(':
                     {
                         nodelevel++;
                         break;
                     }
               
                case ')':
                     {
                         nodelevel--;
                         break;
                     }
                     
                default:
                {
                        for (int j = 0 ; j <= 10 ; j++)
                        {
                            if (func == alphopd[j])                      //associa numero a carattere di str
                            {
                               token[k].val = j;
                               token[k].is_opd = true;
                               k++;
                            }
                        }
         
                        //VALUTAZIONE OPERATORI
                        for (int j = 0 ; j <= c_opts ; j++)
                        {
                            if (func == alphopt[j])                      //associa numero a carattere di str
                            {
                               token[k].val = j + (nodelevel*4);
                               token[k].is_opd = false;
                               k++;
                            }
                        }
         }
                       
         }
     }
                     
     
     for (int i = 0 ; i < riemp ; i++)
     {
         if (token.is_opd == true && token[i+1].is_opd == true)
         {
                             token.val = ((token[i+1].val/10) + token.val)*10;
                             shift_l (token , i , riemp , 1);
                             i--;
         }
     }
« Ultima modifica: 21 Luglio, 2010, 21:04:30 pm da djcarmine »
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

Offline ciccio-s

  • *
  • Registrazione: Gen 2010
  • Post: 10189
Re:l'angolo dell'informatico
« Risposta #55 il: 22 Luglio, 2010, 16:49:06 pm »
stu megaupload e merd va solo a 400k oggi ma che caxx a passat?  :ink:

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:l'angolo dell'informatico
« Risposta #56 il: 26 Luglio, 2010, 23:19:52 pm »
ho comprato (  :look: ) il libro di charles petzold sulla programmazione gui......prima che inizi la prima di 1344 pagine rigorosamente in english , mi dite che è il caso di levare mano e buttarmi su qualcosa di piu semplice?
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia

Offline mk89

  • *
  • Registrazione: Nov 2009
  • Post: 13489
Re:l'angolo dell'informatico
« Risposta #57 il: 27 Luglio, 2010, 14:05:41 pm »
dj senti non conosco l'autore in questione però puoi dare un'occhiata, come minimo se usi il c++, alle qt e in particolare al libro ufficiale di mark summerfield :-)
Per il tuo libro  prova a dare un'occhiata alle recensioni su amazon.
Si abbufferà di psicofarmaci e anfetamine. Comunque visto lo stato mentale attuale, ha tutto per diventare amministratore di questo forum  :look:

Offline marcojak

  • *
  • Registrazione: Ott 2009
  • Post: 54
  • Sesso: Maschio
  • www.hightouch.it
    • High Touch
Re:l'angolo dell'informatico
« Risposta #58 il: 28 Luglio, 2010, 14:04:04 pm »
Java the Javatar


E' fantasticoo  :jump:

Il bello è che io ci lavoro pure in .NET  :patt:

Offline djcarmine

  • *
  • Registrazione: Nov 2009
  • Post: 39235
  • DIABLO VIVE
Re:l'angolo dell'informatico
« Risposta #59 il: 28 Luglio, 2010, 14:09:21 pm »
dj senti non conosco l'autore in questione però puoi dare un'occhiata, come minimo se usi il c++, alle qt e in particolare al libro ufficiale di mark summerfield :-)
Per il tuo libro  prova a dare un'occhiata alle recensioni su amazon.

che sono le qt??? ma io poi non ho capito uina cosa........so che esistono delle librerie (alcune fornite direttamente dal linguaggio come le java.awt di java) di classi che in pratica creano un livello di astrazione tra programmatore e api, ma i programmatori seri usano questi o gestiscono direttamente le chiamate alle api??
ed io mi sentii in quel momento come una prostituta sverginata dai suoi aguzzini

C. Pazzo 
Noi vinciamo in quanto esistiamo. Vinciamo quando siamo in 60.000 per Napoli-Cittadella e quando ci ricordiamo di Esteban Lopez o di Picchio Varricchio. Vinciamo odiando le strisciate e vivendo in funzione di questa maglia. Vinciamo andando con un paio di amici allo stadio e non guardando la partita in casa da soli in un salotto di Reggio Calabria. Vinciamo quando siamo migliaia ad ogni trasferta, vinciamo quando uno juventino nella nostra città viene additato come essere anormale e malato di scabbia