PDA

Afficher la version complète : JavaScript (encore !)



Bpat1
05/01/2006, 09h38
Bonsoir,

me revoilou encore une fois avec ces "foutus" exercices où je bloque depuis 5 semaines (non, je ne crie pas au secours directement, je cherche et cherche et recherche ) mais là

Voici les deux exercices:


Exercice 1
Ecrire le programme Javascript suivant :
1. Contruire une table des étudiants (10 étudiants fictifs) à 2 dimensions
2. Pour chaque étudiant, on stockera dans cette table :
a. son prénom,
b. son nom,
c. sa note d'évaluation
d. un témoin : 1 si l'étudiant habite paris intra-muros, 0 si l'étudiant n'habite pas paris intra-muros.
3. Construire une table 'zone' à deux dimensions
Ecrire un traitement afin d'obtenir :
1. La moyenne des notes d'évaluations de tous les étudiants confondus
2. Dans zone[0][0] le nombre d'étudiants n'habitant pas paris intra-muros,
3. dans zone[1][0] le nombre d'étudiants habitant paris intra-muros,
4. dans zone[0][1] la moyenne des étudiants n'habitant pas paris intra-muros,
5. dans zone[1][1] la moyenne des étudiants habitant paris intra-muros



Exercice 2

Toutes les images html sont répertoriées dans un tableau ou collection dont la syntaxe est curieuse, la voici :

Document.images[0] ->première image de la page

Document.images[1] ->deuxième image de la page

Document.images[2] ->troisième image de la page


Pour connaître la valeur de l'attribut « source » de l'image, on utilise l'attribut « .src », exemple :

Alert(document.images[0].src)

Qui affiche l'url de la source de l'image

a) lister à l'aide d'une boucle « for » toutes les url des sources des images d'une page contenant plusieurs images
b) l'attribut « length' donne aussi la longueur d'une chaîne de caractère : pourriez-vous n'afficher que les url dont la longueur est inférieur à 7
c) construire dynamiquement une nouvelle page contenant les images dont les url font moins de 7 caractères.



J'ai trouvé un site qui parle de ces exercices (http://linux22.cicrp.jussieu.fr/dam/p6_vis/Javascript/ (http://linux22.cicrp.jussieu.fr/dam/p6_vis/java_script/)), j'ai beau le tourner et retourner dans tous les sens, je n'y arrive pas !!!!!!!!!!!!!!

Il faut que j'arrive à faire le code JavaScript pour résoudre les exercices.

Qqn peut-il m'aider SVP ?

Un grand merci d'avance.

Bpat1
05/01/2006, 09h38
Bonsoir,

me revoilou encore une fois avec ces "foutus" exercices où je bloque depuis 5 semaines (non, je ne crie pas au secours directement, je cherche et cherche et recherche ) mais là

Voici les deux exercices:


Exercice 1
Ecrire le programme Javascript suivant :
1. Contruire une table des étudiants (10 étudiants fictifs) à 2 dimensions
2. Pour chaque étudiant, on stockera dans cette table :
a. son prénom,
b. son nom,
c. sa note d'évaluation
d. un témoin : 1 si l'étudiant habite paris intra-muros, 0 si l'étudiant n'habite pas paris intra-muros.
3. Construire une table 'zone' à deux dimensions
Ecrire un traitement afin d'obtenir :
1. La moyenne des notes d'évaluations de tous les étudiants confondus
2. Dans zone[0][0] le nombre d'étudiants n'habitant pas paris intra-muros,
3. dans zone[1][0] le nombre d'étudiants habitant paris intra-muros,
4. dans zone[0][1] la moyenne des étudiants n'habitant pas paris intra-muros,
5. dans zone[1][1] la moyenne des étudiants habitant paris intra-muros



Exercice 2

Toutes les images html sont répertoriées dans un tableau ou collection dont la syntaxe est curieuse, la voici :

Document.images[0] ->première image de la page

Document.images[1] ->deuxième image de la page

Document.images[2] ->troisième image de la page


Pour connaître la valeur de l'attribut « source » de l'image, on utilise l'attribut « .src », exemple :

Alert(document.images[0].src)

Qui affiche l'url de la source de l'image

a) lister à l'aide d'une boucle « for » toutes les url des sources des images d'une page contenant plusieurs images
b) l'attribut « length' donne aussi la longueur d'une chaîne de caractère : pourriez-vous n'afficher que les url dont la longueur est inférieur à 7
c) construire dynamiquement une nouvelle page contenant les images dont les url font moins de 7 caractères.



J'ai trouvé un site qui parle de ces exercices (http://linux22.cicrp.jussieu.fr/dam/p6_vis/Javascript/ (http://linux22.cicrp.jussieu.fr/dam/p6_vis/java_script/)), j'ai beau le tourner et retourner dans tous les sens, je n'y arrive pas !!!!!!!!!!!!!!

Il faut que j'arrive à faire le code JavaScript pour résoudre les exercices.

Qqn peut-il m'aider SVP ?

Un grand merci d'avance.

eldaura
05/01/2006, 09h56
Connais pas le javascript mais chaque fois que j'ai besoin de tut je passe sur http://java.developpez.com/ (mais tu dois connaître). Cherche les tuts sur le javascript, il y en a un qui met un plein chapitre sur les tableaux

Bon code !

Bpat1
05/01/2006, 10h09
Ben oui, je connais mais il ne me donne aucune aide pour ce que je dois faire et, depuis le nombre de semaines que je cherche, grrrrr

Merci pour ton message
http://forums.ubi.com/infopop/emoticons/icon_wink.gif

eldaura
05/01/2006, 10h14
désolé, je pourrais aider si c'était du java, mais ça a l'air bien différent...

Bpat1
05/01/2006, 13h06
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by eldaura:
désolé, je pourrais aider si c'était du java, mais ça a l'air bien différent... </div></BLOCKQUOTE>

Ben oui, je crois que tu pourrais m'aider. La façon de faire reste la même (algorithme)

Merci d'avance

Lyrendil
05/01/2006, 13h14
Oui mais Java est un code où on pourrais se servir des classes pour faire ce que tu fais (ca conviendrait même parfaitement), alors que toi on utiliserai plus un tableau new array() avec une boucle for je dirais...
Il faut que je ressorte mon vieux "JavaScript pour les nuls". http://forums.ubi.com/images/smilies/16x16_smiley-tongue.gif

Bpat1
05/01/2006, 13h37
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Lyrendil:
Oui mais Java est un code où on pourrais se servir des classes pour faire ce que tu fais (ca conviendrait même parfaitement), alors que toi on utiliserai plus un tableau new array() avec une boucle for je dirais...
Il faut que je ressorte mon vieux "JavaScript pour les nuls". http://forums.ubi.com/images/smilies/16x16_smiley-tongue.gif </div></BLOCKQUOTE>

C'est le but de l'exercice que d'utiliser un tableau new array avec une boucle for ...

Javascript pour les nuls ??? Tu crois que je pourrais trouver la solution ? Ben oui, je parle directement de solution car il y a tellement longtemps que je la cherche cette solution http://forums.ubi.com/images/smilies/cry.gif Si cela tombe, ce n'est qu'un détail qui me manque mais .... grrr

eldaura
05/01/2006, 13h38
Déjà je commencerais par faire une classe pour les Etudiants

class Etudiant{

protected String prenom;
protected String nom;
protected int note;
protected boolean parisien;

public Etudiant(String prenom, String note, int note, boolean parisien){

this.prenom = prenom;
this.nom = nom;
this.note = note;
this.parisien = parisien;
}

}

Ensuite, pour les traitement, je les mettrais dans le main. Attends, ça va pas être immédiat mais je regarde

Bpat1
05/01/2006, 13h52
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by eldaura:
Ensuite, pour les traitement, je les mettrais dans le main. Attends, ça va pas être immédiat mais je regarde </div></BLOCKQUOTE>

Oups, on doit travailler avec array mais pas en utilisant des classes http://forums.ubi.com/images/smilies/16x16_smiley-sad.gif

eldaura
05/01/2006, 14h25
voilà, au total, ça donnerait ça (pas testé, il peut y avoir de la syntax error...)

=====================
import java.io.*;

class Etudiant{

private String prenom;
private String nom;
private int note;
private boolean parisien;

public Etudiant(String prenom, String note, int note, boolean parisien){

this.prenom = prenom;
this.nom = nom;
this.note = note;
this.parisien = parisien;
}

public String getNom(){return nom;}
public String get prenom(){return prenom;}
public int getNote(){return note;}
public boolean isParisien(){return parisien;}
}

public class Prog{

final static int NB_ETUDIANTS = 10;

public static void main(String[] argv){

//création de la table des étudiants
Etudiant[] tabEtudiant = new Etudiant[NB_ETUDIANTS];

//Déclaration d'un lecteur de clavier
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String nom = "";
String prenom = "";
int note;
boolean parisien = false;

int moyenneGlobale = 0;

// saisie des infos pour 10 étudiants
for(int i=0 ; i&lt;NB_ETUDIANTS ; i++){
try{
System.out.println("Nom: ");
nom = br.readLine();
System.out.println("Prenom: ");
prenom = br.readLine();
}
catch(IOException e){System.out.pritnln("Erreur IO: "+e));}
try{
System.out.println("Note: ");
String n = br.readLine();
note = Integer.parseInt(br.readLine());
System.out.println("Parisien (oui ou non): ");
String p = br.readLine();
if(p.equals("oui")) parisien = true;
}
catch(RuntimeException e){System.out.pritnln("Erreur de cast: "+e));}
catch(IOException e){System.out.pritnln("Erreur IO: "+e));}

tabEtudiant[i] = new Etudiant(nom, prenom, note, parisien);
}

// création de la zone
private int[][] zone = new int[2][2];
// init de la zone
for(int i=0 ; i&lt;2 ; i++){
for(int j=0 ; i&lt;2 ; i++){zone[i][j] = 0;}
}
//remplissage de la zone
for(int i=0 ; i&lt;NB_ETUDIANTS ; i++){
Etudiant e = tabEtudiant[i];

boolean vitAParis = e.isParisien();

moyenneGlobale += e.getNote();

if(vitAParis){
zone[1][0]++;
zone[1][1] += e.getNote();
}
else {
zone[0][0]++;
zone[0][1] += e.getNote();
}
}

//divise le total des notes par le nbEtudiants pour avoir la moyenne
zone[0][1] /= NB_ETUDIANTS;
zone[0][1] /= NB_ETUDIANTS;
moyenneGlobale /= NB_ETUDIANTS;

//Affichage des résultats:
System.out.println("Moyenne globale: "+moyenneGlobale);
System.out.println("Etudiants extramuros: "+zone[0][0]);
System.out.println("Etudiants intramuros: "+zone[1][0]);
System.out.println("Moyenne extramuros: "+zone[0][1]);
System.out.println("Moyenne intramuros: "+zone[1][1]);

}

Chtinecureuil
06/01/2006, 01h23
Eldau, on parle de javascript et non de java..... http://forums.ubi.com/infopop/emoticons/icon_razz.gif


Voici par exemple l'exo 1


&lt;html&gt;
&lt;script language="javascript"&gt;
&lt;!--

// -----------------------------------------------------------

// Exo1
function doExo1(){

// -------------------------------------------------------
// ETUDIANTS

// Nbr total d'etudiants
var nbrEtudiants=10;

// Nbr total de champs par etudiants
var nbrChamps=4;

// Declaration table des etudiants
var etudiants=new Array(nbrEtudiants);

// Un etudiant
var etudiant;

// Construction tableau
for(i=0;i&lt;nbrEtudiants;i++){

// Instancier etudiant
etudiant=new Array(nbrChamps);

// Initialiser
etudiant[0]="nom"+i; // nom
etudiant[1]="prenom"+i; // prenom
etudiant[2]=i+((i+1)/2); // note (bidon mais &lt;20)
if( i%2==0 ) etudiant[3]=0; // temoin de zone
else etudiant[3]=1; // temoin de zone

// Ajouter ss-tableau
etudiants[i]=etudiant;

}

// -------------------------------------------------------
// RESULTATS

// SS tableaux
var pim=new Array(2); // Paris intra
var pem=new Array(2); // Paris extra

// Tableau resultats
var zone=new Array(2);

// Ajouter ss tableaux
zone[0]=pem;
zone[1]=pim;

// Initialiser le tableau des resultats
zone[0][0]=0;
zone[0][1]=0;
zone[1][0]=0;
zone[1][1]=0;

// -------------------------------------------------------
// CALCUL

// Moyenne des notes
var moyenne=0;

// Pour chaque etudiant
for(i=0;i&lt;etudiants.length;i++){

if( etudiants[i][3]==0 ) zone[0][0]++;
else zone[1][0]++;

// Moyenne
moyenne+=etudiant[2];

}

// Finir de calculer la moyenne
moyenne/=nbrEtudiants;

// Calculer les nbr moyens pim/pem
zone[0][1]=zone[0][0]*100/nbrEtudiants;
zone[1][1]=zone[1][0]*100/nbrEtudiants;

resultats=new String(
"Nbr total d'etudiants : " + etudiants.length + "&lt;br&gt;" +
"Moyenne des notes : " + moyenne + "/20&lt;br&gt;" +
"Nbr d'etudiants n'habitant pas Paris intra-muros : " + zone[0][0] + "&lt;br&gt;" +
"Nbr moyen d'etudiants n'habitant pas Paris intra-muros : " + zone[0][1] + "%&lt;br&gt;" +
"Nbr d'etudiants habitant Paris intra-muros : " + zone[1][0] + "&lt;br&gt;" +
"Nbr moyen d'etudiants habitant Paris intra-muros : " + zone[1][1] + "%&lt;br&gt;"
);

// Afficher
document.write(resultats);

}

// -----------------------------------------------------------

--&gt;
&lt;/script&gt;
&lt;body&gt;
&lt;a href=#" onClick="javascript:doExo1()"&gt;Exo1&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;

Chtinecureuil
06/01/2006, 04h08
Bon aller double post mais pour l'exo2 cette fois ci

&lt;html&gt;
&lt;script language="javascript"&gt;
&lt;!--

// -----------------------------------------------------------

// Exo2
function doExo2(){

// Longueur discriminante
var longueur=7;

// Nbr d'images du document
var nbrtotalImgs=document.images.length;

// Chaine a soustraire pour la taille des URL a prendre en compte
var debutURL="file://";

// Commencer a constituer la page resultante
var nellePage="";

nellePage+="&lt;html&gt;&lt;body&gt;";
nellePage+="Nbr total d'images : " + nbrtotalImgs + "&lt;br&gt;";

// -------------------------------------------------------
// Afficher les URL de toutes les images

// Pour chaque image
for(i=0;i&lt;nbrtotalImgs;i++){

nellePage+="URL image[" + i + "] : " + document.images[i].src + "&lt;br&gt;";

}

// -------------------------------------------------------
// N'afficher que les images dont l'url est &lt;7 en longueur
// sans le debut "file://" !!

// Petite pharase de transition
nellePage+="&lt;p&gt;Liste des images dont l'url est &lt; " + longueur + "&lt;p&gt;";

// Pour chaque image
for(i=0;i&lt;nbrtotalImgs;i++){

// Charger l'URL sans l'en-tete
url=document.images[i].src.replace(debutURL,"");

// longueur+1 ici car on a les caracteres "/" en plus a la fin
if( url.length&lt;=longueur+1 ){

nellePage+="Longueur url image[" + i + "] est " + (url.length-1) +" &lt; " + longueur + " : " + url + "&lt;br&gt;";
nellePage+='&lt;img src="' + document.images[i].src +'"&gt;&lt;br&gt;';

}

}

// finir de generer la page proprement
nellePage+="&lt;/body&gt;&lt;/html&gt;";

// Afficher
document.write(nellePage);

}

// -----------------------------------------------------------

--&gt;
&lt;/script&gt;
&lt;body&gt;
&lt;img src="file://ok0.jpg"&gt;&lt;br&gt;
&lt;img src="file://trop_long0.jpg"&gt;&lt;br&gt;
&lt;img src="file://ok1.jpg"&gt;&lt;br&gt;
&lt;img src="file://trop_long1.jpg"&gt;&lt;br&gt;
&lt;img src="file://ok2.jpg"&gt;&lt;br&gt;
&lt;img src="file://trop_long2.jpg"&gt;&lt;br&gt;
&lt;img src="file://ok3.jpg"&gt;&lt;br&gt;
&lt;img src="file://trop_long3.jpg"&gt;&lt;br&gt;
&lt;img src="file://ok4.jpg"&gt;&lt;br&gt;
&lt;img src="file://trop_long4.jpg"&gt;&lt;br&gt;
&lt;img src="file://ok5.jpg"&gt;&lt;br&gt;
&lt;img src="file://trop_long5.jpg"&gt;&lt;br&gt;
&lt;a href=#" onClick="javascript:doExo2()"&gt;Exo2&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;

(Sur mon poste document.images[0].src me rajoute "/" a la fin doonc un caractere supplementaire....)

Bpat1
06/01/2006, 13h30
Un tout gros merci pour votre aide. Je vais maintenant analyser le tout pour comprendre et être capable de les refaire

http://forums.ubi.com/images/smilies/11.gif http://forums.ubi.com/images/smilies/11.gif

Bpat1
29/01/2006, 12h42
Rebonjour (bonsoir)

Voici un exercice que je dois faire, le calendrier doit afficher le jour et la date du jour dans la même cellule. Le jour courant doit être affiché en rouge. Petit problème, comme on peut le voir, le calendrier, que j'arrive à faire, affiche 33 jours http://forums.ubi.com/images/smilies/blink.gif Je ne vois pas comment corriger le problème des 33 jours et de l'affichage en rouge http://forums.ubi.com/infopop/emoticons/icon_redface.gif.

Si quelqu'un avait une p'tite idée ...
D'avance, je vous remercie beaucoup.



&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Agenda&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script type="text/javascript"&gt;
&lt;!--
var date= new Date();
var annee = date.getYear();
var mois = date.getMonth();
var jour = date.getDay();
var datejour = date.getDate();
var nomjour;
var calcJour = datejour;
var calcJourRef;
var compteur = 0;

nbrmois = new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
joursemaine = new Array("Dim","Lun","Mar","Mer","Jeu","Ven","Sam");
nbrjoursmois = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
document.write("&lt;h1 align = center&gt;"+nbrmois[mois]+" "+annee+"&lt;/h1&gt;");

if (datejour!=1)
{
while(calcJour &gt; 7)
{
calcJour = calcJour-7;
}
calcJourRef = calcJour-1;
if (calcJour &lt; jour)
{
calcJourRef = jour - calcJourRef;
}
else
{
calcJourRef = calcJourRef - jour;
}
}
else
{
calcJourRef = jour;
}
nomjour = calcJourRef

document.write("&lt;table align=center border=1&gt;");
for(i=0;i&lt;5;i++)
{
document.write("&lt;tr&gt;");
for(j=0;j&lt;=6;j++)
{
if(nomjour==7)
{
nomjour = 0;
}
if(compteur &gt; nbrjoursmois [mois]+1)
{
compteur++;
document.write("&lt;td width = '50'&gt;&lt;center&gt;");
nomjour++;
}
else
{
compteur++;
document.write("&lt;td width = '50'&gt;&lt;center&gt;"+ joursemaine[nomjour]+ "&lt;br&gt;"+compteur);
nomjour++;
}
}
document.write("&lt;/tr&gt;");
}
document.write("&lt;/table&gt;&lt;br&gt;");
document.write("&lt;center&gt;Nous sommes le "+joursemaine[jour]+" "+datejour+" "+nbrmois[mois]+ " " +annee+" le premier jour du mois était un " +joursemaine[calcJourRef]);
//--&gt;
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;

Bpat1
30/01/2006, 09h35
Y a vraiment personne pour m'aider là ? http://forums.ubi.com/images/smilies/cry.gif

Mon examen, c'est pour demain. Tous les autres exercices sont faits et toute seule comme une grande http://forums.ubi.com/infopop/emoticons/icon_razz.gif.

Mais celui-là ... grrr Comprends pas comment j'arrive à ce résultat là moi http://forums.ubi.com/infopop/emoticons/icon_confused.gif

Un grand merci d'avance

Lyrendil
31/01/2006, 11h42
Euh, en changeant la ligne
if(compteur &gt; nbrjoursmois [mois]+1)
par
if(compteur &gt;= nbrjoursmois [mois])
Ca marche (ensuite faut voir demain si ca marche encore, le mois change justement)
Mais j'ai pas compris pourquoi tu avais mis ca...

EDIT: ah mince, j'avais aps vu, on est mardi et tu as posté lundi... ^^'
Sowy!

Bpat1
31/01/2006, 13h50
Merci de ta réponse,

j'ai changé le compteur comme indiqué, malheureusement, lorsque je change la date du système, il y a une différence, par exemple, le script me dit que le premier février commence un jeudi alors qu'en réalité février commence ce mercredi . Moi, c'est pas comprendre là !!?? http://forums.ubi.com/infopop/emoticons/icon_confused.gif

Mon examen est passé (je viens de rentrer, mais je ne connais pas encore la sentence, en tout cas, "c'était pas de la tarte" !!! http://forums.ubi.com/images/smilies/cry.gif) mais je suis quand même intéressée de connaître la solution à ce problème (par fierté personnelle) http://www.farcry-thegame.com/fr/images/smileys/comfort.gif

Et le fait d'être capable de ...

Bon, maintenant, c'est en grosse partie de ma faute s'il n'y a pas eu beaucoup de temps pour réagir à mon appel "Javascript (au secours".

Je veux, de base, être capable de réussir seule les exercices ET c'est en dernier ressort que je crie "au secours".

Maintenant, je vais commencer PHP au cours et ben ... on va tout faire pour http://forums.ubi.com/images/smilies/35.gif

Encore un tout gros merci pour la réponse http://forums.ubi.com/images/smilies/11.gif

Lyrendil
01/02/2006, 04h44
Bah moi aujourd'hui ca me met bien que ca commence par un mercredi, même en changeant la date...
En tout cas c'était bien trouvé ton truc là! http://forums.ubi.com/infopop/emoticons/icon_biggrin.gif
Et tu verras, le PHP c'est plus simple http://forums.ubi.com/infopop/emoticons/icon_razz.gif (là je pourais t'aider. j'ai toujours eu des problemes avec le javascript! http://forums.ubi.com/images/smilies/16x16_smiley-very-happy.gif).