Ottimizzazione del sw

di il
117 risposte

117 Risposte - Pagina 2

  • Re: Ottimizzazione del sw

    Il c non lo imparo dai libri perché a scuola non abbiamo un libro di informatica
    E allora vallo a comprare nella tua bibblioteca di fiducia.
    Se ricerchi un pò in internet troverai migliardi di thread che trattano l'argomento.

    Con il c (ma anche con altri linguaggi) è IMPOSSIBILE imparare il linguaggio senza uno o piu LIBRI.
    Il c usa tecniche di programmazione che richiedono decine di pagine per la spiegazione, come pretendi di capirlo leggendo il codice?
    Guarda ad esempio la mia firma, se studi un libro la capirai!
  • Re: Ottimizzazione del sw

    Ho ragionato su un bel po' di tempo e ho scritto il seguente codice
    
    //assegnare il valore ai caratteri dispari
        for (int i=0; i<strlen(dispari); i++) {
            if (strncmp(&dispari[i], "0", 1)==0)
                val_dispari+=1;
            if (strncmp(&dispari[i], "1", 1)==0)
                val_dispari+=0;
            if (dispari[i] >= '2' && dispari[i] <= '4')
                val_dispari+=(dispari[i] - '0') + (dispari[i] - '0' + 1);
            if (dispari[i] >= '5' && dispari[i] <= '9')
                val_dispari+=(dispari[i] - '0') + (dispari[i] - '0' + 3);
            if (strncmp(&dispari[i], "a", 1)==0)
                val_dispari+=1;
            if (strncmp(&dispari[i], "b", 1)==0)
                val_dispari+=0;
            if (dispari[i] >= 'c' && dispari[i] <= 'e')
                val_dispari+=(dispari[i] - 'a') + (dispari[i] - 'a' + 1);
            if (dispari[i] >= 'f' && dispari[i] <= 'j')
                val_dispari+=(dispari[i] - 'a') + (dispari[i] - 'a' + 3);
            if (dispari[i] >= 'k' && dispari[i] <= 'l')
                val_dispari+=(dispari[i] - 'a') + (dispari[i] - 'a' - 18);
            if (dispari[i] >= 'm' && dispari[i] <= 'n')
                val_dispari+=(dispari[i] - 'a') + (dispari[i] - 'a' - 6);
            if (strncmp(&dispari[i], "o", 1)==0)
                val_dispari+=11;
            if (strncmp(&dispari[i], "p", 1)==0)
                val_dispari+=3;
            if (dispari[i] >= 'q' && dispari[i] <= 'r')
                val_dispari+=(dispari[i] - 'a') + (dispari[i] - 'a' - 26);
            if (dispari[i] >= 's' && dispari[i] <= 'u')
                val_dispari+=(dispari[i] - 'a') + (dispari[i] - 'a' - 24 );
            if (strncmp(&dispari[i], "v", 1)==0)
                val_dispari+=10;
            if (strncmp(&dispari[i], "w", 1)==0)
                val_dispari+=22;
            if (strncmp(&dispari[i], "x", 1)==0)
                val_dispari+=25;
            if (strncmp(&dispari[i], "y", 1)==0)
                val_dispari+=24;
            if (strncmp(&dispari[i], "z", 1)==0)
                val_dispari+=23;
            if (strncmp(&dispari[i], "\0", 1)==0)
                val_dispari+=0;
    }
    
    Equivalente al codice precedente:
    
    //assegnare il valore ai caratteri dispari
        for (int i=0; i<strlen(dispari); i++) {
            if (strncmp(&dispari[i], "0", 1)==0)
                val_dispari+=1;   
            if (strncmp(&dispari[i], "1", 1)==0)
               val_dispari+=0;
            if (strncmp(&dispari[i], "2", 1)==0)
                val_dispari+=5;
            if (strncmp(&dispari[i], "3", 1)==0)
                val_dispari+=7;
            if (strncmp(&dispari[i], "4", 1)==0)
                val_dispari+=9;
            if (strncmp(&dispari[i], "5", 1)==0)
                val_dispari+=13;
            if (strncmp(&dispari[i], "6", 1)==0)
                val_dispari+=15;
            if (strncmp(&dispari[i], "7", 1)==0)
                val_dispari+=17;
            if (strncmp(&dispari[i], "8", 1)==0)
                val_dispari+=19;
            if (strncmp(&dispari[i], "9", 1)==0)
                val_dispari+=21;
            if (strncmp(&dispari[i], "a", 1)==0)
                val_dispari+=1;
            if (strncmp(&dispari[i], "b", 1)==0)
                val_dispari+=0;
            if (strncmp(&dispari[i], "c", 1)==0)
                val_dispari+=5;
            if (strncmp(&dispari[i], "d", 1)==0)
                val_dispari+=7;
            if (strncmp(&dispari[i], "e", 1)==0)
                val_dispari+=9;
            if (strncmp(&dispari[i], "f", 1)==0)
                val_dispari+=13;
            if (strncmp(&dispari[i], "g", 1)==0)
                val_dispari+=15;
            if (strncmp(&dispari[i], "h", 1)==0)
                val_dispari+=17;
            if (strncmp(&dispari[i], "i", 1)==0)
                val_dispari+=19;
            if (strncmp(&dispari[i], "j", 1)==0)
                val_dispari+=21;
            if (strncmp(&dispari[i], "k", 1)==0)
                val_dispari+=2;
            if (strncmp(&dispari[i], "l", 1)==0)
                val_dispari+=4;
            if (strncmp(&dispari[i], "m", 1)==0)
                val_dispari+=18;
            if (strncmp(&dispari[i], "n", 1)==0)
                val_dispari+=20;
            if (strncmp(&dispari[i], "o", 1)==0)
                val_dispari+=11;
            if (strncmp(&dispari[i], "p", 1)==0)
                val_dispari+=3;
            if (strncmp(&dispari[i], "q", 1)==0)
                val_dispari+=6;
            if (strncmp(&dispari[i], "r", 1)==0)
                val_dispari+=8;
            if (strncmp(&dispari[i], "s", 1)==0)
                val_dispari+=12;
            if (strncmp(&dispari[i], "t", 1)==0)
                val_dispari+=14;
            if (strncmp(&dispari[i], "u", 1)==0)
                val_dispari+=16;
            if (strncmp(&dispari[i], "v", 1)==0)
                val_dispari+=10;
            if (strncmp(&dispari[i], "w", 1)==0)
                val_dispari+=22;
            if (strncmp(&dispari[i], "x", 1)==0)
                val_dispari+=25;
            if (strncmp(&dispari[i], "y", 1)==0)
                val_dispari+=24;
            if (strncmp(&dispari[i], "z", 1)==0)
                val_dispari+=23;
            if (strncmp(&dispari[i], "\0", 1)==0)
                val_dispari+=0;
        }
    
    Si può migliorare ancora il primo codice che ho scritto secondo voi?
  • Re: Ottimizzazione del sw

    Enormemente ...

    1) devi abbandonare l'uso di strcmp

    2) devi usare una vettore numerico opportunamente inizializzato per individuare i numeri da sommare
  • Re: Ottimizzazione del sw

    1) Uso strcnmp e non strcm
    2) in che senso devo usare un vettore numerico?
  • Re: Ottimizzazione del sw

    1) Uso strcnmp e non strcm
    Nessuna funzione str....
    2) in che senso devo usare un vettore numerico?
    Non si sono molti modi di dirlo ... usa un vettore numerico (sai cosa è?) in cui inserisci i valori che devi sommare per ogni lettera e usa l'indice per trovare il numero da sommare.

    Questa è la dritta, adesso pensaci tu.
  • Re: Ottimizzazione del sw

    MI puoi fare un esempio col vettore numerico?
  • Re: Ottimizzazione del sw

    Perché non lo fai tu a me l'esempio?
  • Re: Ottimizzazione del sw

    int vettore [25];
    Non so come continuare
  • Re: Ottimizzazione del sw

    Ad esempio, per le lettere, assegna i valori che vuoi sommare ai singoli elementi ...


    P.S. Chiarisci una cosa .... questi esercizi te li lascia da fare il professore? E non ti hanno spiegato come farli ? SE è così, chiedi nuovamente al tuo professore altrimenti vedi quali lezioni hai saltato perché tu non hai una preparazione minima per farli. L'unica cosa è che qualcuno li scriva al posto tuo e che tu li copi. Ma ti renderai conto che non può essere ...
  • Re: Ottimizzazione del sw

    No questo esercizio non me lo ha assegnato nessuno, lo sto facendo da solo
  • Re: Ottimizzazione del sw

    oregon ha scritto:


    Ad esempio, per le lettere, assegna i valori che vuoi sommare ai singoli elementi ...
    In che senso?
  • Re: Ottimizzazione del sw

    Non puoi fare esercizi inventati di cui non hai basi teoriche. Prima si studia quello che c'è da sapere e poi si applica la teoria agli esercizi.

    O pensi che ti inventi gli esercizi e noi te li svolgiamo, dato che non saprai mai farlo?
  • Re: Ottimizzazione del sw

    Ma se la maggior parte del codice l'ho scritta io!
  • Re: Ottimizzazione del sw

    Fabio97 ha scritto:


    Ma se la maggior parte del codice l'ho scritta io!
    Stai scherzando?
  • Re: Ottimizzazione del sw

    Ho copiato solo il codice per la gestione dei file e quello per i caratteri pari, il resto l'ho scritto tutto io
Devi accedere o registrarti per scrivere nel forum
117 risposte