IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Avancement d'une boucle en %


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut Avancement d'une boucle en %
    à supprimer

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class NewClass {
     
        public static void main (String[] args){
            double x = 261;
            double pas = x/10;
            System.out.println("Pas de : "+pas);
            double temp=0;
     
            for(int i=0;i<x;i++){
     
     
                if(i>temp){
                    double a = (temp/pas)*10;//On recupère le pourcentage
     
                    //Si le pourcentage est par exemple 89%, on arrondi à 90%
                    a /= 10;
                    a = (int) (a+.5);
                    a *= 10;
     
                    //Affichage
                    System.out.println((int)a+"%"+" | temp = "+temp);
     
                    //On rajoute 10%
                    temp +=pas;
     
                }
     
                //Condition final
                if(i==x-1){
                    System.out.println("100% | temp = "+temp);
                }
     
            }
        }
    }
    Affichage : pour X = 261
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Pas de : 26.1
    0% | temp = 0.0
    10% | temp = 26.1
    20% | temp = 52.2
    30% | temp = 78.30000000000001
    40% | temp = 104.4
    50% | temp = 130.5
    60% | temp = 156.6
    70% | temp = 182.7
    80% | temp = 208.79999999999998
    90% | temp = 234.89999999999998
    100% | temp = 261.0
    Si c'est bien ça que tu demande?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    Exactement, je suis content d'avoir réussi à me faire comprendre Ton algo est nickel, sauf X qui est double, temp je ne l'affiche pas, je n'affiche que le taux en %.

    Un seul cas qui ne marche pas : quand le nombre X est <10 , mais il n'y pas grand chose à changer pour rectifier ça, je regarderai ça demain, là je vais aller me coucher

    Bonne nuit et encore merci

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut
    Citation Envoyé par jujusous3 Voir le message
    Bonjour à tous, j'ai besoin de votre aide :

    J'ai une bouecle qui va s'exécuter X fois. Je voudrais qu'à exécution(tour de boucle) j'ai un taux d'avancement sur 100 qui s'affiche.
    Exemple sur X=10 : 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% (le pas=100/10=10 donc +10 à chaque tour).

    Mais ça ne marche pas à tous les coups :

    Avec X=17 par exemple, le pas=100/17=5,88888… : je n'arrive jamais à 100% car le pas sera toujours tronqué

    Ensuite, si le nombre X est supérieur à 100, par exemple avec X=128 : le pas=100/128=0,78… , le pas va être tronquée aussi et j'aurais beaucoup trop de détails dans l'avancement.



    Ce que je voudrais c'est que peu importe le nombre X, le programme m'affiche seulement 11 nombres qui sont : 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% , qui me donneront donc un état sur l'accomplissement des X tours de boucles.

    J'essaie de nombreuses choses depuis ce midi mais il y a toujours un cas où ça ne marche pas…


    Si vous avez des questions n'hésitez pas !


    Merci merci merci d'avance ! En attendant je vais continuer d'essayer...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    quel est l'intérêt de ton message à part flooder ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    Je retire ce que j'ai dit hier soir à propos d'exemple <10 qui ne marchait pas. Il faut que je mette mon X en double et là ça marche. Mais en y regardant de plus près, ce n'est pas exactement ce que je voulais obtenir, en fait ce que je voulais c'est que pour n'importe quel X, j'ai les 11 étapes (0%,10%,20%...100%) qui s'affiche, même pour un nombre comme 3 par exemple, avec ton code pour 3 j'obtient : 0% , 10% , 100%. Je me demandais si il ne serait pas possible d'afficher 0% 10% 20%...100% même pour 3, je conçois que ça soit difficile puisque qu'on a que trois étapes donc on ne peut créer que 3 trucs : 0, 10, 100 par exemple avec ton code, mais peut être peut t'on créer 3 trucs qui sont 0 | 10 20 30 40 50 | 60 70 80 90 100 ...

    Enfin au moins ton code marche dans tous les cas

  7. #7
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Salut jujusous3,
    Pour l'affichage des temp c'était juste une vérification pour voir que ça marchait bien

    Après pour un x<3, afficher les 11 "%" ... J'ai pas d'idée précise là tous de suite, c'est le matin aussi

    Il faudrait mettre une seconde condition pour le temp+=pas.

    A méditer...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 44
    Par défaut
    C'est vrai que je chipote, c'est que dans ma tête je me dis que dans n'importe quel programme, quand il y a un chargement, même si c'est très court, on a un avancement de 0 à 100 dans tous les cas, ça avance juste plus ou moins vite...

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/07/2014, 16h18
  2. Print l'avancée d'une boucle, écraser l'affichage précédent
    Par bougnbie dans le forum Général Python
    Réponses: 3
    Dernier message: 10/04/2014, 12h12
  3. Barre de progression dans une boucle : impossible de modifier son avancement
    Par piero-la-lune dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/01/2012, 11h24
  4. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo