|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
Bonjour,
Je suis débutante en Javascript. Je me boque sur un exercice, déjà même dans la phase de conception, bon voilà l'énoncé de l'exercice: Créer un tableau qui contiendra des noms d'équipes tapés dans une fenêtre ou dans une zone de texte ainsi leur nombre de points dans le championnat. Ecrir une fonction de tri de ces tableaux par ordre décroissante des scores. Vous obtiendrez alors le classement de votre championnat. Si j'étais en C, j'allais créer drectement un tableau de structure. et comme Javascript est un langage Orienté Objet, alors structure = Classe. J'ai pensé d'abord à créer une classe "equipe" puis à chaque ajout d'une équipe j'instance un objet mais le problème c'est comment lier ces objet (le cas d'un tableau). Je serais très reconnaissante si quelqu'un pourriez m'aider . |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
Merci pour la réponse!
dites-mi s'il vous plait, est ce que classement joue le même rôle que "strucute" ? Là vous faites la saisie manuellement, alors que c'est l'utilisateur qui va entrer les donnée; pour lire un classement, je met classement.equipe ,c'est bien ça ? |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
et comment s'il vous plait identifier le ligne du classement => indice ?
|
|
|
00
|
|
|
#5 | |||||||||||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
Citation:
un tableau en javascript se déclare : ou Code :
var classement à laquelle j'ai assigné mon nouveau tableau. les éléments du tableau peuvent être (un peu prêt) n'importe quoi, du simple string ou des objects un objet javascript s'instancie soit via une instance d'une fonction(équivalent de classe) : Code :
pour lire le nième élément d'un tableau, il suffit de faire : tableau[n] dans notre cas : Code :
donc dans notre exemple après tri : Code :
pour le saisi manuelle faut voir de quelle façon tu désires "entrer" les valeurs. par exemple on peut concevoir que classement est par défaut un tableau vide : et que dans ta page html, tu aies un formulaire qui rajoutera les équipes et leurs scores : Code html :
Code js :
en conclusion: si c'est un projet pour un cours, t'as intérêt à rudement bien étudier avant ton examen ! |
|||||||||||||
|
|
00
|
|
|
#6 | |||
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
bonjour,
je vous remercie beaucoup pour avoir pris le temps de répondre de cette façon détaillé. Alors je ne vois pas qur vous avez utilisé le mot clé "array", pourquoi ? s'il vous plait, où est ce que on définit les champs de notre tableau, dans l'objet c'est ça ? voilà mon essaie, qui ne donne rien lorsque je l'exécute : Code :
Concernant votre fonction "tri', pourquoi vous avez appelé "fonction(a,b)" et à quoi sert cette dernière ? Citation:
Merci infiniment |
|||
|
|
00
|
|
|
#7 | |||||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
- "[]" correspond(+/-) à "Array()"
Citation:
Code :
Code html :
mais cette approche est moche car "ajouter" devrait être un prototype de "classement" plutot qu'une fonction isolée. et surtout tu as 2 tableaux distinct pour les équipes et les scores. les éléments ne sont donc "liés" que par leurs indices. alors qu'un unique tableau d'objets comme dans mon premier message est beaucoup plus adapté. |
|||||
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() |
en javaScript un tableau associatif est en réalité un objet et les champs monTab["champs"] sont des propriétés
Tu peux donc créer un "tableau associatif" de plusieurs manieres var monTab=new Array(); var monTab= new Object(); et les formes littérales var monTab=[]; var monTab={}; tu peux aussi créer une tableau d'objets au format json (forme literalle)donc une chaine de caractere et l'evaluer avec eval(); il est ansi trés facile de passer des données de php ou java à JavaScript mais Je n'utilise que la forme litterale plus rapide à ecrire et donc la forme var monTab={} car un tableau associatif est un objet c'est un hash. Vu que tu peux les lire avec la boucle for in c'est des objets donc à ne pas confondre avec les tableaux indicés
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#9 | ||
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
Bonsoir,
Merci pour vos réponses: Code :
mais cette approche est moche car "ajouter" devrait être un prototype de "classement" plutot qu'une fonction isolée. Dans votre première solution, je n'ai pas vue ou est-ce que vous avez défini les variables "equipe" et "score". Malgré ça chez moi le code ne fonctionne pas ! Code :
Franchement, je n'ai pas compris votre fonction de tri. D'autre part, pourquoi vous dites que les éléments sont liés juste par les indices. laurentg2003=> merci pour ces informations,j'aurais du utiliser les tableaux associatifs . Excusez-moi Amicalement. |
||
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
tu ne dois pas déclarer le type des variables en javascript, leurs types seront définis en fonction et leurs contenu et pourront changer durant l'exécution du programme.
Code :
|
||
|
|
00
|
|
|
#11 | |
|
Membre habitué
![]() |
Citation:
mais un element donc une valeur de ton tableau est accessible par son indice comme en C et tout langage qui reprend la syntaxe du C Java C# C++ Php et javaScript doc soit un int 0,1,2 pour un tableau indicé MonTab[1] soit une chaine de caractere pour un tableau associatif MonTab["machaine"] l'indice est la cléf du tabeau J'ai fais du C# et donc javaScript n'a pas de structure si je m'en souvient bien en c#c'est une classe qui n'implemente pas l'heritage et ou le passage de valeur se fait par valeur et non pas par refrence bref javaScript n'implemente pas ça mais pour créer une collection style Java même si ça pas vraiment la même chose tu utilise json [{ "nom" : "valeur"}, { "nom2" : "valeur2"}, etc et tu utilise eval qui "compile" le code sinon tu peux créer directement des classes avec une notation Json genre le framework prototype Mais je te conseil 4 livres qui m'ont ouvert les yeux sur la puissance de JS les meilleurs pour moi "Bien developper pour le web 2.0" de christophe porteneuve "JavaScript pour le web 2.0 " de thierry templier et arnaud Gougeon " Débuter en javaScript" de Shelley Power assez complexe pr un debutant ,mais riche sur les closures par exemple Javascript Précis et concis de david Flanagan (je l'ai toujurs a porté de main celui là=)) JavaScript est un langage trés puissant mais assez déroutant pour qui vient du C ou pire des langages à objets javaScript n'est pas veritablement un langage orienté objet Il est basé sur le prototypage il n'implémente pas les concepts de la poo mais il permet de les simuler voilà
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
|
00
|
|
|
#12 | |||||
![]() ![]() Inscription : janvier 2011 Messages : 2 933 ![]() |
Bonsoir, vite fait en passant
Citation:
Code javascript :
Code html :
|
|||||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
j'ai honte
|
|
|
00
|
|
|
#14 | ||
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
Bonjour,
Je vous remercie vous tous énormément Willpower=> Dans la fonction tableau.sort vous avez untilisé Function(a,b),pourquoi ? N’ayez pas honte c'est moi qui copie/colle les code bêtement laurentg2003=> Merci spécialement pour cette réponse très riche. j'ai cru que javascript c'est comme java orienté objet pur. J'avoue que j'ai besoin de ré-lire le cours sur javascript,et bien entendue les livres. NoSmoking=> Merci pour votre réponse "corrective" le code marche très bien mais lorsque j'ajoute les fonctions d'affichage et de tri, il cesse de fonctionne. De plus, en ajoutant une nouvelle équipe, il m'affiche dans "alert" la valeur précédant, la nouvelle valeur; pour y remédier j'ai vidé les champs avant de quitter la fonction, est-il correcte ce que j'ai fait. Code :
|
||
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 854 ![]() |
un code qui fonctionne :
Code :
|
||
|
|
00
|
|
|
#16 |
|
Membre habitué
![]() |
Java n'a rien a voir avec JavaScript si ce n'est qu'a l'origine c'est le langage de script de Java et d'ailleurs je l'utilise parfois pour ça avec une applet Java mais avec moi c'est java qui devient le langage de prog de Javascript
si tu as des cours sur Javascript comme j'ai eu tu vas pas aller loin c'etait des cours( pourtant c récent) avec des prompt etc genre JS 1.0... il y a de trés bon tutos ici sur javascript orienté objet sur Internet et là c'est un de mes cours de bts sur java et la poo surtout, je te le met c'est vraiment hyper bien fait http://www.webcreation-lg.fr/Java.pdf
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
Willpower => oui le code marche très bien, merci beaucoup.
laurentg2003=> maintenant les choses commence à éclaircir.Si j'ai bien compris, Javascript est la langage de script de java c'est ça, javascript permet de créer des applets, et l'alliance entre les deux s'arrêt ici Sinon, il me reste à faire "la recherche" mais je veux essayer de me débrouiller toute seule, ce n'est pas la peine de vous embêtez et de vous arrêtez chaque 2lignes sur une concepts. Merci pour vous tous. Amicalement. |
|
|
00
|
|
|
#18 |
|
Membre habitué
![]() |
javaScript permet de communiquer avec une applet petite précision
et javaScript c'est surtout ajax et le web 2.0 le coté langage de script de java c pour l'histoire
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
|
|
10
|
|
|
#19 |
|
Membre à l'essai
![]() Inscription : décembre 2009 Messages : 128 ![]() |
donc java utilise "parfois" du javascript pour la création applets.
java se base essentiellement sur POO alors que javascript se base sur prototypage => l'utilisation des fonction, c'est bien ca ? |
|
|
00
|
|
|
#20 | ||
|
Membre habitué
![]() |
JavaScript se base sur le prototypage oui et en particulier la propriété prototype de l'objet fonction
tout est un objet en javaScript JavaScript manipule des objets sans pour autant implémenté les concepts de la poo. Tu peux les simuler donc En java tu auras une classe ,un constructeur dans ces classes et tes objets seront des instances de cette classe. En javaScript tu emule tout cela Avec une fonction constructrice d'objet En js un objet est donc une instance d'objet tout objet derive de l'objet Object tout objet est une instance de l'objet Object donc avec la propriété prototype tu peux ajouter des proprités et des méthodes a tes objets personnalisés mais tu peux faire plus fort et c'est là toute la puissance de JS tu peux ajouter via prototype des proprités et des méthodes aux objets prédéfinies array string et même object et ton membre sera comme un membre natif en java tu peux les etendre mais si tu as une interface c'est plus possible javaScript pour moi est un langage orienté objet mais different des autres langages de poo le prototype est un modele d'objet en fait la ou une classe défini un objet c'est cette différence ce coté hors norme qui l'a longtemps fait passé pour le vilain petit canard de la prog mais en fait sa difference fait sa richesse comme souvent dans tous les domaines Citation:
Citation:
js accede aux methodes de java peut récuperer des valeurs et java accedent aux méthodes(aux fonctions de js donc) voilà
__________________
"Il n'existe que deux choses infinies, l'univers et la bêtise humaine... mais pour l'univers, je n'ai pas de certitude absolue." (Albert Einstein / 1879-1955) |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com