Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    aiuto algoritmo calcolo moduli geometrici possibilità

    salve a tutti. dovrei utilizzare uno script da linkare ad un foglio di calcolo.
    in parole povere ho creato una funzione myfunz(cip,ciop) dove cip è una lunghezza mentre ciop è un numero tra 0,1,2.
    ciop serve solo per aumentare di un tot cip a seconda di 0,1 oppure 2.
    quindi calcolo cipmassimo=cip+tot;
    a questo punto ho 2 moduli da 2,30 o 1,80.
    devo calcolare la miglior combinazione di N2,30 + N1,80 affinche sia il piu possibile vicino a cipmassimo ma inferiore. vi allego le mie funzioni ma il problema è che qualsiasi parametro gli passi il risultato mi da 0.

    P.S. le due funzioni sono identiche cambia solo il return per darmi una il numero di moduli da 1,80 e una da 2,30 e alcune cose sono inutili ma servono per una possibile modifica.
    grazie
    codice:
    function nCampate180(lung,sporto){
      var maxmultiplo180;
      var multiplosu230=0;
      var multiplogiu180=0;
      var l180=0;
      var l230=0;
      var lmin=0;
      var lmax=0;
      var lsomma=0;
      var migliorlsomma=0;
      var pezzi180;
      var pezzi230;
      
      if(sporto==0){
       lmax=lung+0,20;
      }else if(sporto==1){
        lmax=lung+1,60;
      }else if(sporto==2){
        lmax=lung+3;
      }
      maxmultiplo180=1,80;
      
      while(maxmultiplo180<lmax){                                 //calcolo multiplo massimo 1,80<lung
        maxmultiplo180=maxmultiplo180+1,80 ;
      }
      multiplogiu180=maxmultiplo180;
      
      while(multiplogiu180 < 0){                                  //inizio ciclo con massimo multiplo 180 finche' non negativo
        if(multiplogiu180+2,30<lmax){                                      //controllo possibilità aggiunta 230
          while( multiplogiu180+multiplosu230 < lmax){                   // controllo<lmax .. aggiungere >lmin se non necessario controllo migliorelsomma
          multiplosu230=multiplosu230+2,30;
          }
        }
        lsomma=multiplogiu180+multiplosu230;
        if(lsomma>migliorlsomma){                                //controllo miglior risultato
          migliorlsomma=lsomma;
          l180=multiplogiu180;
          l230=multiplosu230;
         }
        
        
      multiplosu230=0;
      multiplogiu180=multiplogiu180-1,80;
     }
      pezzi180=l180/1,80;
      pezzi230=l230/2,30;
      
      return pezzi180;
    }

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non usare la virgola per i dati decimali ma il punto.

    2,30 non va. Bisogna scrivere 2.30.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Devi usare il punto come separatore dei decimali, non la virgola

  4. #4
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non usare la virgola per i dati decimali ma il punto.

    2,30 non va. Bisogna scrivere 2.30.
    scusate..

  5. #5
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Devi usare il punto come separatore dei decimali, non la virgola
    ho sostituito la virgola con il punto ma ancora il risultato è sempre 0..ma dove cavolo ho sbagliato...qualche consiglio?

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Posta il codice che usi anche la parte html.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Quote Originariamente inviata da fenrir2312 Visualizza il messaggio
    ho sostituito la virgola con il punto ma ancora il risultato è sempre 0..ma dove cavolo ho sbagliato...qualche consiglio?
    Probabilmente quelli che per te sono numeri, per l'interprete javascript sono stringhe.

    Prova a mettere in cima alla funzione
    codice:
    lung=Number(lung);
    sporto=Number(sporto);

  8. #8
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Probabilmente quelli che per te sono numeri, per l'interprete javascript sono stringhe.

    Prova a mettere in cima alla funzione
    codice:
    lung=Number(lung);
    sporto=Number(sporto);
    ora mi da errore

  9. #9
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Posta il codice che usi anche la parte html.
    .

  10. #10
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    .
    non uso html ... è google script per google cloud.. Linka in automatico(credo)

Tag per questa discussione

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.