Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di joker06
    Registrato dal
    Dec 2006
    Messaggi
    782

    esercizio per universita sullle funzioni

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        
    <
    html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <
    head>
        <
    title>Quadrato Magico</title>
        <
    script  type="text/javascript" src="quadrato.js" ></script>
    </head>
    <!--,x21,x22,x23,x31,x32,x33 
    quad.c21,quad.c22,quad.c23,quad.c31,quad.c32,quad.c33,-->
    <body>
    <form action="" name="quad">
    <input type="text" name="c11" />
    <input type="text" name="c12" />
    <input type="text" name="c13" />


    <input type="text" name="c21" />
    <input type="text" name="c22" />
    <input type="text" name="c23" />


    <input type="text" name="c31" />
    <input type="text" name="c32" />
    <input type="text" name="c33" />


    <input type="text" name="ris" />
    <input type="button" value="verifica" onclick="
    verifica(quad.c11,quad.c12,quad.c13,quad.c21,quad.c22,quad.c23,quad.c31,quad.c32,quad.c33,quad.ris);
    " />
    <input type="reset" />



    </form>
    </body>
    </html> 
    Codice PHP:

    function verifica(x11,x12,x13,x21,x22,x23,x31,x32,x33,r) {
        if ( 
    VerificaTripla (x11.value,x12.value,x13.value) && (x21.value,x22.value,x23.value) && (x31.value,x32.value,x33.value)
                           (
    x11.value,x21.value,x31.value) && (x12.value,x22.value,x32.value) && (x13.value,x23.value,x33.value))
                                  
    r.value="valore corretto"
                                 
    else
                                  
    r.value="valore non corretto";

    }

     function 
    VerificaTripla(a,b,c){
        return ((
    a>=1) && (a<=3)) && ((b>=1) && (b<=3)) && ((c>=1) && (c<=3)) ; 
    questo e' un esercizio che stiamo facendo. pero il problema e; che a volta mi da valore errato se sbaglio pero se e' giusto no mi scrive assolutamente valore corretto

  2. #2
    codice:
    function verifica(form, inputs){
    	var	i = 0,
    		x11 = form[inputs[i++]].value,
    		x12 = form[inputs[i++]].value,
    		x13 = form[inputs[i++]].value,
    		x21 = form[inputs[i++]].value,
    		x22 = form[inputs[i++]].value,
    		x23 = form[inputs[i++]].value,
    		x31 = form[inputs[i++]].value,
    		x32 = form[inputs[i++]].value,
    		x33 = form[inputs[i++]].value;
    
    	return	VerificaTripla(x11, x12, x13) &&
    		VerificaTripla(x21, x22, x33) &&
    		VerificaTripla(x31, x32, x33) &&
    		VerificaTripla(x11, x21, x31) &&
    		VerificaTripla(x12, x22, x32) &&
    		VerificaTripla(x13, x23, x33) ?
    		"valore corretto" :
    		"valore non corretto";
    };
    
    function VerificaTripla(a,b,c){
    	// le parentesi in questo caso servono a te che leggi il codice e non al codice stesso
    	return	(a >= 1 && a <= 3) && (b >= 1 && b <= 3) && (c >= 1 && c <= 3);
    
    	/** versione alternativa con parametri arbitrari, da 1 a N
    	for(var	result = true, i = 0; i < arguments.length && result; i++)
    		result = arguments[i] >= 1 && arguments[i] <= 3;
    	return	i > 0 && result;
    	*/
    };
    ...

    codice:
    <input type="button" value="verifica" onclick="quad.ris.value = verifica(quad, 'c11.c12.c13.c21.c22.c23.c31.c32.c33'.split('.'));" />

    [edit] ... poi mi dici quanto ho preso ?



    [edit 2]
    la versione alternativa della funzione VerificaTripla può servire, in questo caso, per ridurre drasticamente il codice (JavaSrcipt pesa ... dove si può togliere si toglie, inutile far scaricare ad ogni client più codice di quello che serve)

    esempio
    codice:
    function verifica(form, inputs){
    	for(var	i = 0, args = new Array(inputs.length); i < inputs.length; i++)
    		args[i] = form[inputs[i]].value;
    	return	VerificaValoriTra1e3.apply(this, args) ? "valore corretto" : "valore non corretto";
    };
    
    function VerificaValoriTra1e3(){
    	for(var	result = true, i = 0; i < arguments.length && result; i++)
    		result = arguments[i] >= 1 && arguments[i] <= 3;
    	return	i > 0 && result;
    };
    queste 8 linee di codice fanno esattamente quello che vuoi fare tu perchè controllare le triple in quel modo è assolutamente ridondante ... il succo di questa operazione è sapere se ogni valore sia compreso tra 1 e 3 ... tutto il resto è, imho, superfluo ... soprattutto a livello logico, magari serve più a livello didattico
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di joker06
    Registrato dal
    Dec 2006
    Messaggi
    782
    iontanto grazie per la risposta... si lo so che il metodo utilizzato e' molto ma molto sempliciotto pero per l'apprendimento utilizza questi concetti anche perche c'e molta gente che non ha mai visto un programma.

    dovendo proseguire sulla mia strada secondo te cosa ha che non va questo segmento di codice? e' sicuro una merda di parentesi ma guardandolo da 1 ora consecutivamente non riesco piu ad avere occhio per l'error

    Codice PHP:
     function VerificaTripla(a,b,c){
        return ((
    a>=1) && (a<=3)) && 
                 ((
    b>=1) && (b<=3)) && 
                 ((
    c>=1) && (c<=3)) && 
                (
    a!=b) && (a!=c)  && (b!=c);
            
         
        } 
    che sia compreso tra 1 e 3 lo verifica pero che siano uguali i numeri inseriti su una stessa riga o una stessa colonna non lo fa

  4. #4
    azz ... hai aggiunto una condizione che prima non c'era ...
    (a!=b) && (a!=c) && (b!=c)
    ... la mia shortcut non va più bene ... detto questo non è li il problema ma nella funzione verifica, dato che richiami l'altra solo una volta poi accodi una serie di parentesi con valori totalmente inutili ...


    if ( VerificaTripla (x11.value,x12.value,x13.value) && (x21.value,x22.value,x23.value) ...


    if(funzioneConParametrI(a,b,c) && (a,b,c) ...

    non manca la chiamata alla funzione?


    if ( VerificaTripla(x11.value,x12.value,x13.value) && VerificaTripla(x21.value,x22.value,x23.value) ...


    comunque resta un modo poco utile di imparare il js, imho ... procedurale di dubbia utilità / portabilità (non è una critica a te quanto al libro che usate)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di joker06
    Registrato dal
    Dec 2006
    Messaggi
    782
    concordo a pieno con te. quello che mi fa girare le palle e' il fatto che quel frocio lo non sa spiegare una sega. ora me ci sto dando di fuori perche son coglione pero ora basta che mi ricontrollo la funzione e lo sistemo ma mi immagino quelli che son usciti dal classico

  6. #6
    Originariamente inviato da joker06
    mi immagino quelli che son usciti dal classico
    ... non dirmi niente, io ho fatto l'istituto d'Arte ... e sono pure mezzo daltonico
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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 © 2025 vBulletin Solutions, Inc. All rights reserved.