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

avec Java Discussion :

Exercice Algorithme


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Exercice Algorithme
    Pouvez-vous m'aider a faire un exercice d'algorithme sur java s'il vous plaît
    Il est à la page 26 du livre, c'est l'exercice 1.17 le premier point :
    http://www.editions-eyrolles.com/Cha...ap-1_Dowek.pdf

    J'ai éssayé de le faire mais je ne suis pas très bon et gallère pas mal pour trouver mes erreurs. Voici le résultat des mes éssais :
    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
    void main(){
    clear();
    // Toutes les variables
    int YearI = 1901;
    int MoisI = 01;
    int JourI = 01;
    println("Choisissez un jour compris entre le 1er  janvier 1901 et le 31 décembre 2099");
    int YearC = readInt("Année choisie");	
    int MoisC = readInt("N° Mois choisis" );
    int JourC= readInt("N° Jour choisis");
    int NbJourFinal ;
     
    NbJourFinal = (YearC - 1901) * 365 + (MoisC - 1) * 30 + JourC - 1 ;
    if (MoisC >= 1 &&  MoisC <= 2){
    MoisC = MoisC / 2 ;
    }else{
    MoisC =((MoisC + MoisC) /8) /2 + 2 ;
    }
    if (YearC % 4 = 0 ; MoisC >= 1 && MoisC <= 2){
    YearC = ( (a - 1900) / 4 ) - 1  ;
    }else{	
    YearC = (YearC - 1900) / 4	;		
    }
     
     
    println(NbJourFinal);
    }
    En éspérant que vous ayez la gentillessse de m'aider
    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Je n'ai pas tout vérifié, mais le // de ton exemple correspont au % en java, pas à /...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Donc les % sont équivalents aux % en Java ?
    Je pense que je me suis trompé dans mes if et else aussi car Je ne sais pas trop ce qu'il disent par termes correctifs

  4. #4
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Effectivement, ton second est faux, le ; devrait être && pour vérifier que les trois conditions sont vraies.
    Pour les modulos, tu devrait avoir par exemple moisC % 2, pas moisC / 2, ce qu'on veut c'est le reste de la division.
    Enfin, n'oublie pas que tes instructions sont exécutées dans l'ordre. Donc pour que les correctifs soient appliqué et que tu ai le nombre exacte, le calcul du nombre de jour doit être fait en dernier...
    Essai, et reposte ton code si tu n'as toujoirs pas le bon résultat.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 2
    Points
    2
    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
    void main(){
    clear();
     
    int YearI = 1901;
    int MoisI = 01;
    int JourI = 01;
    println("Choisissez un jour compris entre le 1er  janvier 1901 et le 31 décembre 2099");
    int YearC = readInt("Année choisie");	
    int MoisC = readInt("N° Mois choisis" );
    int JourC= readInt("N° Jour choisis");
    int NbJourFinal ;
     
     
    if (MoisC >= 1 &&  MoisC <= 2){
    MoisC = MoisC % 2 ;
    }else{
    MoisC =((MoisC + MoisC) / 8) /2 + 2 ;
    }
    if (YearC % 4 = 0 && MoisC >= 1 && MoisC <= 2){
    YearC = ( (a - 1900) / 4 ) - 1  ;
    }else{	
    YearC = (YearC - 1900) / 4	;		
    }
    NbJourFinal = (YearC - 1901) * 365 + (MoisC - 1) * 30 + JourC - 1 ;
     
    println(NbJourFinal);
    }
    Un message d'erreur s'affiche me disant :
    Erreur de syntaxe ligne 21 :
    unexpected type
    required: variable
    found : value
    if (YearC % 4 = 0 && MoisC >= 1 && MoisC <= 2){

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Le truc c'est que je vois pas ou j'ai faux dans la ligne 21

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Le =
    Quand il n'y en a qu'un, il sert à assigner une nouvelle valeur à une variable.
    Quand on veut comparer deux valeurs il faut autre chose.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 2
    Points
    2
    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
    void main(){
    clear() ;
     
    int YearI = 1901;
    int MoisI = 01;
    int JourI = 01;
    println("Choisissez un jour compris entre le 1er  janvier 1901 et le 31 décembre 2099");
    int YearC = readInt("Année choisie");	
    int MoisC = readInt("N° Mois choisis" );
    int JourC= readInt("N° Jour choisis");
    int NbJourFinal ;
     
     
    if (MoisC >= 1 &&  MoisC <= 2){
    MoisC = MoisC % 2 ;
    }else{
    MoisC = ((MoisC + MoisC) / 8) /2 + 2 ;
    }
    if ( YearC % 4 == 0  && MoisC >= 1 && MoisC <= 2  ){
    YearC = ( (YearC - 1900) / 4 ) - 1  ;
    }else{	
    YearC = (YearC - 1900) / 4 ;		
     
    }
    NbJourFinal = (YearC - 1901) * 365 + (MoisC - 1) * 30 + JourC - 1 ;
     
    println(NbJourFinal);
    }
    J'ai essayé cela. La compilation marche mais cela me donne a chaque fois un nombre négatif proche de -64000. Excusez moi d'autant vous dérangez je suis vraiment très très mauvais

  9. #9
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Il y a une erreur dans l'algo en fait. Les correctifs te donnent un nombre de jours en plus ou en moins, et ne remplace donc pas la variable de départ.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Donc je dois ajouter les correctifs comment dans l'algo ???

  11. #11
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    Quand tu as des moisC=quelque chose ou yearsC=quelque chose, il faut qu'à la place tu mette un truc du genre joursup +=, en ayant déclaré int joursup = 0 au début. Comme ca a chaque fois tu rajoute à ta variable. Et a la fin, tu ajoute joursup au reste.
    Par contre il y a des endroit où tu as laissé / au lieu de %...

Discussions similaires

  1. Exercices Algorithmes multiplication par jalousie
    Par Gtf-nike dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/10/2013, 08h53
  2. Exercice algorithme nouvelle adherent
    Par sonacos dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 15/02/2009, 19h44
  3. Exercices, algorithme, projet ?
    Par cellendhyll dans le forum Général Python
    Réponses: 8
    Dernier message: 03/05/2007, 09h00
  4. [TP] Demande de résolution d'un exercice en algorithme
    Par zogrom dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 14/03/2006, 23h25

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