Bonjour,
j'ai eu un problème en voulant ajouter une boucle for dans une boucle while
est ce que c'est normal où il s'agit d'une erreur sur mon code ?
Merci pour vos réponses![]()
Bonjour,
j'ai eu un problème en voulant ajouter une boucle for dans une boucle while
est ce que c'est normal où il s'agit d'une erreur sur mon code ?
Merci pour vos réponses![]()
Kei,
En ce moment, ça pose problème pour te donner une réponse : les boules de cristal sont en grève.
Plus sérieusement, comment veux-tu qu'on parle de ton code sans le connaître ? En lisant tes pensées pour le lire en même temps ?![]()
Bonjour,
@tchize_= Merci pour votre réponse.
@Droggo : Loool², je croyais que java n'accepte pas les boucles imbriquées (à vrai dire je ne voulais pas admettre que le problème vient de mon code (c'est ente nous:p ))
Bon, mon problème est la suivante : je veux faire une application qui permet de trouver une séance de rattrapage pour un enseignant donc si droggo s'absente de son classe le jour "j" à l'heure "x" il faudrait que l'application lui trouve 1 séance de rattrapage.
les contraintes sont :
l'emploi du temps de droggo (enseignant)
l'emploi du temps de la classe à qui il s'est absentée
+
une salle libre
mon algorithme est le suivant :
j'ai modélisé mon problème en déclarant 2 matrices( initialisées à 0 dès le départ), 1 pour l'emploi du temps de l'enseignant et une pour l'emploi du temps de la classe.En se connectant à la table emploi de mon BD les 0 seront remplacés par 1.
Rq :
nombre de ligne de la matrice est de 6 --> du lundi au samedi
nombre de colonne de la matrice est 9 --> l'horaire : Voir l'image
Exple :
si j'enseigne le lundi de 8 a 9hr et samedi de 17h à 18hr
mat1[0][0]=1 ;
mat2[5][7]=1;
Enfin je parcoure mes 2 tableaux dans le cas où mat_enseignant[l][c]=mat_classe[l][c]=0 --> séance de rattrapage trouvée
j'èspere que vous avez capté ce que j'ai écrit(je sais c'est pas évident XD)
PS : voir les images
je vous envoie le code dès que vous auriez assimiler tout ça.
Merci pour vos réponses)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 private void trouverActionPerformed(java.awt.event.ActionEvent evt) { Statement ste,ste2; connexion_base con ; ResultSet res_ens,res_c ; int[][] tab1,tab2 ; // j'ai dù les nommée en mat :roll: String cl = null ; String type = null ; try { // Connexion à la base con=new connexion_base(); con.connecte(); ste=con.getStatement(); ste2=con.getStatement(); // enregistrements des valeurs saisies dans des variables String a=id.getText(); Object x=jour.getSelectedItem(); String b=x.toString(); char ch=b.charAt(0); String c=debut.getText(); String d=fin.getText(); // déclaration des 2 matrices tab1=new int[6][8] ; tab2=new int[6][8] ; // String req2="select * from emploi where code_enseignant='"+a+"' and code_journee='"+ch+"' and h_deb='"+c+"' and h_fin='"+d+"' "; res_c=ste2.executeQuery(req2); while (res_c.next()) { cl=res_c.getString(2); // désigne le code_classe de la classe à qui // l'enseignant s'est absenté type=res_c.getString(5);// désigne le type de cours (TD,cours) // pas important pour mon problème !! } for (int i=0; i<=5; i++) { // insertion des zéros dans les 2 matrices : initialisation for (int j=0;j<=7;j++){ tab1[i][j]=0; tab2[i][j]=0; } // insertion dans la matrice enseignant int h=i+1; // remarque 1 désigne lundi,2 désigne mardi...jusqu'au samedi "6" String hh = Integer.toString(h); String req="select * from emploi where code_journee='"+hh+"' and code_enseignant='"+a+"' order by h_deb "; res_ens=ste.executeQuery(req); while (res_ens.next()) { String hr_deb=res_ens.getString(6); String hr_fin=res_ens.getString(7); int h1=Integer.parseInt(hr_deb); int h2=Integer.parseInt(hr_fin); if (h1 <= 12){ h1=h1-7;} else {h1=h1-9;}; if (h2 <= 12){ h2=h2-8;} else {h2=h2-10;}; while (h1<=h2) { tab1[i][h1]=1 ; h1++ ; /* le problème se situe ici !!! il ne veut pas faire l'insertion c'est comme s'il refuse l'insertion, j'ai du supprimer l'instruction d'insertion et la remplaçant par 1 instruction d'affiche System.out.print("test"); afin de s'assurer que la boucle tourne bien (ca marche ) */ } affiche(tab1,h1,h2); }; // insertion dans la matrice classe : PAS IMPORTANT le même principe // que celui de la matrice enseignant ne pas VOIR /* String req_cl = "select * from emploi where code_journee='" + hh + "' and code_classe='" + cl + "' order by h_deb "; res_c=ste2.executeQuery(req_cl); while (res_c.next()) { String hr_deb=res_c.getString(6); String hr_fin=res_c.getString(7); int h1=Integer.parseInt(hr_deb); int h2=Integer.parseInt(hr_fin); if (h1 <= 12){ h1=h1-7;} else {h1=h1-9;}; if (h2 <= 12){ h2=h2-8;} else {h2=h2-10;}; }*/ } }catch (SQLException ex){JOptionPane.showInternalMessageDialog(getContentPane(),ex.getMessage());} }
quelques remarques:
1) ton premier while est curieux. Tu ne prend que la dernière ligne.Je suppose qu'il n'y en a qu'une seule. Le code devrais donc être:
2) tu libère pas tes ressources (mais bon, on va partir de la supposition "code pas fini")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 String req2="select * from emploi where code_enseignant='"+a+"' and code_journee='"+ch+"' and h_deb='"+c+"' and h_fin='"+d+"' "; res_c=ste2.executeQuery(req2); if (res_c.next()) { cl=res_c.getString(2); // cl désigne le code de la classe type=res_c.getString(5); // type désigne type de cours } else { // erreur, a traiter }
3) dans ta dernière boucle tu ne met pas à jour la matrice
4) quel est ton problème? Le code de comparaison que tu mentionnait plus haut n'apparait nulle part dans ton code
et pitié, un effort pour avoir une indentation cohérente?
Partager