CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Débutant]Besoin d'aide java algorithme

Supagoku_v10
Supagoku_v10
Niveau 7
24 juillet 2011 à 20:17:39

Bonjour tout le monde alors voilà je suis très très faible en programmation java et on a un cours la dessus cette année.

J'ai bien évidemment raté mon examen en juin et je dois le repasser :cool:

Je me souviens d'un algorithme qu'on nous avait demandé de faire et dont encore aujourd'hui je n'arrive pas à faire.

Alors l'algorithme en question:

Il faut écrire une méthode qui lit un fichier texte contenant différents prix de pétrole, afficher la plus longue chaine de prix en augmentation et ensuite retourner la moyenne des chiffres prix

exemple:

si on lit: 12 8 17 16 18 20 22 23 21 22....

Alors le programme affichera: " 16, 18, 20 ,22 ,23"

il nous dira ensuite la longueur de la chaine et la moyenne des (ici 5) chiffres pris.

Voilà merci beaucoup de prendre la peine de me lire :-)

tbop2
tbop2
Niveau 10
24 juillet 2011 à 21:34:05

C'est quoi tes études, c'est où que tu bloques ? Personne va faire tes devoirs à ta place ici garçon.

Supagoku_v10
Supagoku_v10
Niveau 7
24 juillet 2011 à 22:45:21

Tbop2===>2ème bac Ingé commercial.

Bah moi si quelqu'un demandait me demandait un truc basique en économie,finance... ça me dérangerait franchement pas de l'aider. Surtout que pour quelqu'un de doué en programmation (et jsuis sur qu'y en a pas mal sur ce forum) ça doit prendre maximum 5 minutes à tout casser.

PS: Comme dit dans mon premier post c'est loin d'être un simple "devoir", ça fait d'ailleurs bien longtemps que j'en ai plus eu. Il s'agit d'un des algorithmes qu'on nous demandait d'écrire pour notre examen

godrik
godrik
Niveau 30
25 juillet 2011 à 02:27:26

j'ai pas compris le probleme exactement, mias ca me fiat penser a la prog dyn the plus longue chaine croissante.

_skip
_skip
Niveau 10
25 juillet 2011 à 12:31:39

Commence par ça pour la lecture de fichier :
http://www.xinotes.org/notes/note/647/

Puis avec chaque chaine la méthode split :
http://download.oracle.com/javase/1,5.0/docs/api/java/lang/String.html

Puis enfin, conversion string vers entier :
avec la méthode Integer.parseInt(String)

Supagoku_v10
Supagoku_v10
Niveau 7
25 juillet 2011 à 17:29:47

_skip===>Merci bien. je vais checker ça

Odolwan
Odolwan
Niveau 10
26 juillet 2011 à 12:32:47

Godrik :d) Je pense que l'auteur veut tout simplement effectuer un tri à bulles.

Supagoku_v10
Supagoku_v10
Niveau 7
26 juillet 2011 à 18:26:57

Odolwan====>Non c'est pas un tri à bulle vu que les chiffres restent à leur place.

On demande juste d'afficher la plus longue chaine croissante

PaulAimik
PaulAimik
Niveau 10
26 juillet 2011 à 19:02:38

0) Pour lire le fichier tu trouvera plein de ressources sur le net

1) Tu convertis ta chaine de caractères en quelque chose de plus pratique à manipuler, comme un tableau (ou une List peu importe) de BigDecimal (plus adapté aux données financières que les nombres à virgule flottante).

2) Tu parcours ce tableau pour trouver la plus longue séquence d'augmentation.
Pour ca tu as besoin d'au moins 4 variables :
- une pour stocker la taille de la plus grande séquence trouvée jusqu'à présent (appelons la maxSeqLen)
- une pour la taille de la séquence en cours de comptage (curSeqLen).
- une pour l'index (correspondant au nombre dans le tableau/liste) du début de la séquence en cours de comptage (curSeqIndex).
- une pour l'index de la plus grande séquence trouvée (maxSeqIndex).

ce qui donne en pseudo-code:

prix précedent = prices[0]
POUR i allant de 1 à prices.length-1
prix actuel = prices[i]
SI prix actuel > prix précédent
SI curSeqLen==0 ALORS curSeqIndex=i FINSI
curSeqLen++
SI curSeqLen>maxSeqLen
maxSeqLen=curSeqLen
maxSeqIndex=curSeqIndex
FINSI
SINON
curSeqLen=0
FINSI
prix précédent = prix actuel
FINPOUR

3) normalement à la fin de la boucle maxSeqLen contiendra la taille de la séquence la plus longue et maxSeqIndex l'index du prix au début de cette séquence.

Et pour la moyenne il suffit de faire le total pendant que tu parcours ton tableau, et ensuite diviser ce total par la taille du tableau.

Je te laisse convertir ca en java et regarder comment utiliser BigDecimal...

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment