Forum Liberty Basic France
• Index
Des profs, des matières des jours et des heures
C'est commencé, y reste plus qu'à continuer.
Et c'est là-->: Affectations.zip
C'est commencé, y reste plus qu'à continuer.
Et c'est là-->: Affectations.zip
____________________
Roro
Roro
Salut Roland !
Quelques petites explications préliminaires n'auraient pas été superflues.
J'ai capté que la rangée des textbox en haut à gauche permettaient d'ajouter des profs, matières et jours dans les tables en dessous:
textbox 1 : nombre d'heures de cours hebdo, nom du professeur et matière enseignée, séparé par un espace
textbox 2 : nombre d'heures de cours hebdo et nom de la matière
textbox 3 : nombre d'heures de cours journalier et nom du jour
Et que le clic sur "Lancer" génère un emploi du temps prenant en compte toutes ces données.
J'ai ajouté un Gélenormand, prof de musique, qui assure deux heures de cours par semaine, la modif est bien prise en compte dans les tables en dessous, mais apparemment pas pour l’établissement de l'emploi du temps. Toujours pour mon prof de musique, j'ai voulu ajouter deux heures de cours le samedi, mais la semaine s'affiche toujours du lundi au vendredi; modifier de 6 à 8 le nombre d'heures de cours du mercredi n'a pas plus de succès.
Maintenant, les petites choses qu'on ne sait pas comment dépatouiller :
* un prof qui assure plusieurs matières
* un prof qui n'est pas là le mardi matin ni le jeudi après-midi
* plusieurs professeurs enseignant la même matière (il y a bien un certain Lavache, en français, mais son nombre d'heures de cours est de 0)
* ...
Y'a-t-il plusieurs classes à assurer, ou le programme est prévu pour une seule classe ?
Quelques petites explications préliminaires n'auraient pas été superflues.
J'ai capté que la rangée des textbox en haut à gauche permettaient d'ajouter des profs, matières et jours dans les tables en dessous:
textbox 1 : nombre d'heures de cours hebdo, nom du professeur et matière enseignée, séparé par un espace
textbox 2 : nombre d'heures de cours hebdo et nom de la matière
textbox 3 : nombre d'heures de cours journalier et nom du jour
Et que le clic sur "Lancer" génère un emploi du temps prenant en compte toutes ces données.
J'ai ajouté un Gélenormand, prof de musique, qui assure deux heures de cours par semaine, la modif est bien prise en compte dans les tables en dessous, mais apparemment pas pour l’établissement de l'emploi du temps. Toujours pour mon prof de musique, j'ai voulu ajouter deux heures de cours le samedi, mais la semaine s'affiche toujours du lundi au vendredi; modifier de 6 à 8 le nombre d'heures de cours du mercredi n'a pas plus de succès.
Maintenant, les petites choses qu'on ne sait pas comment dépatouiller :
* un prof qui assure plusieurs matières
* un prof qui n'est pas là le mardi matin ni le jeudi après-midi
* plusieurs professeurs enseignant la même matière (il y a bien un certain Lavache, en français, mais son nombre d'heures de cours est de 0)
* ...
Y'a-t-il plusieurs classes à assurer, ou le programme est prévu pour une seule classe ?
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
Salut c'est encore moi,
Je me suis inspiré de vieux souvenirs de la fin du siècle dernier, qui m'avait vu m'initier à la méthode Merise. C'est une usine à gaz nécessitant une pratique certaine de l'analyse préalable d'une situation en données et traitements, avant d'appliquer six étapes successives pour arriver à une base de données cohérente. Donc autant dire que c'est parfaitement illusoire de vouloir l'utiliser comme ça, au pied levé.
Cependant il y a deux ou trois souvenirs qui m'ont permis d'avancer ce qui suit, avec pas mal de tâtonnements :
Dans ton programme tu as deux tableaux, prof$ et mat$, professeurs et matières. J'ai fait une liaison entre ces deux tables, pour pouvoir dire "tel professeur enseigne telle matière". Dansce le cas précis de nos 2 tables, cette liaison se transforme en une nouvelle table, que j'appelle Enseigne (les puristes diront sans doutes Enseigner, mais de toute façon, je suis déjà en train de m'éloigner de la méthode).
Par "table", je désigne un ensemble de tableaux : profID$(x), profNom$(x), profPrenom$(x),...
Je le livre comme ça, "tel quel" avec le cheminement logique en commentaires, parce qu'il est déjà tard et que c'est seulement pour démontrer ce qu'on peut faire.
Ensuite si j'ai un peu de temps cette semaine j'essaierai de faire des liaisons entre les matières, les profs, les salles et les cours, mais on n'en est pas encore là.
La liste des identifiants de matières déjà contenues dans la table Enseigne, pour tester qu'on retrouve bien les bons professeurs avec les bonnes matières :
Code VB :
Le programme (bien plus lisible dans l'éditeur JB/LB) :
Code VB :
*édité pour rectifier une tournure de phrase qui affirmait ce qui n'était pas, et rectifier une erreur qui donnait l'identifiant de Marcel Machin au lieu d'Alain Trucmuche (c'est le classique coup de la liste qui commence à 0 alors qu'on commence à 1 lorsqu'on compte les doigts de nos mains)
Edité par Christophe Le 21/05/2017 à 08h54
Je me suis inspiré de vieux souvenirs de la fin du siècle dernier, qui m'avait vu m'initier à la méthode Merise. C'est une usine à gaz nécessitant une pratique certaine de l'analyse préalable d'une situation en données et traitements, avant d'appliquer six étapes successives pour arriver à une base de données cohérente. Donc autant dire que c'est parfaitement illusoire de vouloir l'utiliser comme ça, au pied levé.
Cependant il y a deux ou trois souvenirs qui m'ont permis d'avancer ce qui suit, avec pas mal de tâtonnements :
Dans ton programme tu as deux tableaux, prof$ et mat$, professeurs et matières. J'ai fait une liaison entre ces deux tables, pour pouvoir dire "tel professeur enseigne telle matière". Dans
Par "table", je désigne un ensemble de tableaux : profID$(x), profNom$(x), profPrenom$(x),...
Je le livre comme ça, "tel quel" avec le cheminement logique en commentaires, parce qu'il est déjà tard et que c'est seulement pour démontrer ce qu'on peut faire.
Ensuite si j'ai un peu de temps cette semaine j'essaierai de faire des liaisons entre les matières, les profs, les salles et les cours, mais on n'en est pas encore là.
La liste des identifiants de matières déjà contenues dans la table Enseigne, pour tester qu'on retrouve bien les bons professeurs avec les bonnes matières :
Code VB :
'on recherche dans EnseigneMatiere$ l'identifiant du français : 001 (000=maths, 001=français, 004=arts plastiques, 006=philo) IDcherche$="001"
Le programme (bien plus lisible dans l'éditeur JB/LB) :
Code VB :
' à titre indicatif, tables en partie pompées sur le prog de Roland et ré-assaisonnées à ma sauce 'jours '8 Lundi '7 Mardi '6 Mercredi '7 Jeudi '8 Vendredi 'samedi 'dimanche [semaine] data "Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche" 'matières '6 Mathématiques '4 Français '3 Histoire-Géographie '1 Education Physique et Sportive '3 Arts plastiques '5 Physique '4 Philosophie [matieres] data "Mathématiques","Français","Histoire-Géographie","Education Physique et Sportive","Arts Plastiques","Physique","Philosophie" 'professeur '18 Trucmuche Alain Maths '18 Machin Marcel Français '19 Lapaille Jean-Benoît Hist-Géo '20 Lapoutre Ulysse E.P.S '20 Legendre Lucienne Arts-Plast '20 Lebianski Josianne Physique '18 Lavache Ernest Philosophie '20 Tuboeuf Adrienne Hist-Science '18 Sinclair Bratt Math '18 Rabeau Elisabeth Physique '19 Nun Elodie Français '0 Lavache Michel Français [profs] data "Trucmuche Alain","Machin Marcel","Lapaille Jean-Benoît","Lapoutre Ulysse","Legendre Lucienne","Lebianski Josianne" data "Lavache Ernest","Tuboeuf Adrienne","Sinclair Bratt","Rabeau Elisabeth","Nun Elodie","Lavache Michel" 'nomainwin 'mise en tableau 'on place les jours, les professeurs et les matières en tableau 'pour le moment tout est en "data", à terme ce seront des fichiers ' jours de la semaine print print "Jours de la semaine" dim joursID$(7),joursNom$(7) for a=0 to 6 read a$ joursID$(a)=right$("000"+str$(a),3) joursNom$(a)=a$ print joursID$(a);" ";joursNom$(a) next 'matières print print "Matières :" dim matieresID$(7),matieresNom$(7) for a=0 to 6 read a$ matiereID$(a)=right$("000"+str$(a),3) matiereNom$(a)=a$ print matiereID$(a);" ";matiereNom$(a) next 'professeurs print print "Professeurs" dim profID$(12),profNom$(12),profPrenom$(12) for a=0 to 11 read a$ profID$(a)=right$("000"+str$(a),3) profNom$(a)=word$(a$,1) profPrenom$(a)=word$(a$,2) print profID$(a);" ";profNom$(a);" ";profPrenom$(a) next 'maintenant on crée une liaison entre les tables "profs" et les tables "matières" 'Alain Trucmuche enseigne le Français et les maths : 'si on prend les identifiants du prof et des matières, on obtient un enregistrement unique liant ces deux tables 'la liaison prend l'identifiant 000 (et sera stockée dans EnseigneID$) 'et dans EnseigneLien$, on y ajoute: ' l'identifiant du professeur : 000 (Alain Trucmuche) ' l'identifiant de la première matiere enseignée : 001 (Français) ' l'identifiant de la seconde matiere enseignée : 000 (Maths) 'le premier enregistrement de Enseigne sera : EnseigneID$="000":EnseigneLien$="000001000" 'on sait qu'on a trois identifiants de trois chiffres chacun, et que le professeur est le premier, on devrait pouvoir s'en sortir ' 'admettons qu'un autre professeur, Lebianski Josianne, enseigne aussi le Français et les Maths 'la liaison prend l'identifiant EnseigneID$="001" ' l'identifiant du professeur : 005 (Lebianski Josianne) ' l'identifiant de la première matiere enseignée : 001 (Français) ' l'identifiant de la seconde matiere enseignée : 000 (Maths) 'ce second enregistrement de Enseigne sera : EnseigneID$="001":EnseigneLien$="005001000" 'comme dans le premier cas, on peut aisément retrouver le professeur et les matières ' 'nous avons deux professeurs qui enseignent les deux même matières, et cela donne deux enregistrements : ' EnseigneID$="000":EnseigneLien$="000001000" ' EnseigneID$="001":EnseigneLien$="005001000" 'n'y at-til pas redondance entre ces deux liaisons ? Pourrait-on s'arranger pour n'avoir qu'une liaison, qui s'écrirait : ' EnseigneID$="000":EnseigneLien$="001005001000" : on a bien les deux mêmes professeurs en premier, les deux mêmes matières en second ' mais rien qui permette de différentier matière et professeur : on peut ajouter un espace pour délimiter prof et matière : ' EnseigneID$="000":EnseigneLien$="001005 001000" : ' 'Mme Lebianski (id005) enseigne aussi les Arts Plastique (id004) ' EnseigneID$="001":EnseigneLien$="005004" ' par convention et pour rester logique, on sépare prof et matière par un espace (pour utilisation future avec l'instruction Word, par ex.) ' EnseigneID$="001":EnseigneLien$="005 004" 'Lavache Michel (id011) enseigne le Français ' EnseigneID$="000":EnseigneLien$="001005011 001000" 'Lavache Ernest (id006) enseigne la philosophie ' EnseigneID$="002":EnseigneLien$="006 006" 'La table Enseigne compte maintenant les entrées suivantes ' EnseigneID$="000":EnseigneLien$="001005011 001000" ' EnseigneID$="001":EnseigneLien$="005 004" ' EnseigneID$="002":EnseigneLien$="006 006" ' 'on peut aussi répartir ces informations en trois sous-tables: ' EnseigneID$="000":EnseigneProf$="001005011":"EnseigneMatiere$="001000" ' EnseigneID$="001":EnseigneProf$="005":"EnseigneMatiere$="004" ' EnseigneID$="002":EnseigneProf$="006":"EnseigneMatiere$="006" 'test : si on recherche qui enseigne le français 'on recherche dans EnseigneMatiere$ l'identifiant du français : 001 (000=maths, 001=français, 004=arts plastiques, 006=philo) IDcherche$="001" print print "Professeurs qui enseignent le ";matiereNom$(val(IDcherche$));" :" enseigneNb=3'nombre d'enregistrements contenus dans les tables Enseigne$ dim EnseigneID$(enseigneNb) dim EnseigneProf$(enseigneNb) dim EnseigneMatiere$(enseigneNb) 'pré-remplissage des grilles (normalement fait par l'utilisateur via des cases à cocher ou listes déroulantes ou etc...) EnseigneID$(0)="000":EnseigneProf$(0)="000005011":EnseigneMatiere$(0)="001000" EnseigneID$(1)="001":EnseigneProf$(1)="005":EnseigneMatiere$(1)="004" EnseigneID$(2)="002":EnseigneProf$(2)="006":EnseigneMatiere$(2)="006" 'recherche des professeurs en fonction de la matière qu'ils enseignent for a=0 to enseigneNb a$=EnseigneMatiere$(a) tours=len(a$)/3 for b=0 to tours-1 b$=mid$(a$,b*3+1,3) if b$=IDcherche$ then prof$=EnseigneProf$(a) nbprof=len(prof$)/3 for c=0 to nbprof-1 c$=mid$(prof$,c*3+1,3) d=val(c$) print profID$(d);" ";profNom$(d);" ";profPrenom$(d) next end if next next
*édité pour rectifier une tournure de phrase qui affirmait ce qui n'était pas, et rectifier une erreur qui donnait l'identifiant de Marcel Machin au lieu d'Alain Trucmuche (c'est le classique coup de la liste qui commence à 0 alors qu'on commence à 1 lorsqu'on compte les doigts de nos mains)

Edité par Christophe Le 21/05/2017 à 08h54
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
La combinatoire, ça devient vite très compliqué pour le cerveau.
Sans compter que pour les combinaisons, on atteint vite les grands nombres
Le challenge était de faire un truc multi-usage pour combiner n'importe quoi avec n'importe quoi.
Les contraintes éventuelles étant déclarées et traitées à part
Mais bon,si on y regarde bien, à la base, ce ne sont que des contraintes nombre de profs...ext
Je ne vois pas trop l'utilité des identifiants si on met tout en tableaux, il suffit de combiner jusqu'à épuisement des tableaux et d'éliminer ce qui ne répond pas aux contraintes
ça peut vite devenir vachement compliqué.
Sans compter que pour les combinaisons, on atteint vite les grands nombres
Le challenge était de faire un truc multi-usage pour combiner n'importe quoi avec n'importe quoi.
Les contraintes éventuelles étant déclarées et traitées à part
Mais bon,si on y regarde bien, à la base, ce ne sont que des contraintes nombre de profs...ext
Je ne vois pas trop l'utilité des identifiants si on met tout en tableaux, il suffit de combiner jusqu'à épuisement des tableaux et d'éliminer ce qui ne répond pas aux contraintes
ça peut vite devenir vachement compliqué.
____________________
Roro
Roro
Je n'avais pas capté le sens que tu donnais à "combinatoire" dans ton titre, Je comprend mieux ta démarche, mais tu aurais pu être plus explicite. Au moins l'avantage de ce flou a été de me laisser partir dans la direction que je souhaitais 
Citation:
Oui, on peut très bien s'en sortir en travaillant directement sur les tableaux, mais on se prive de toute la réflexion qui a abouti à la table intermédiaire, et on risque de faire davantage de liaisons hasardeuses. Et une concaténation d'identifiants c'est du costaud, tu peux savoir si ton prof de chimie a les yeux bleus simplement en entrant la matière enseignée : va donc lier manuellement 50 caractéristiques se rapportant au professeur, avec la matière qu'il enseigne
Bon, voici l'avancée, on peut dire que j'ai presque honte tellement c'est mal ficelé, mal commenté mais il faut que j'avance vite, et ça fonctionne quand même :
cliquer sur le bouton "professeur" pour choisir un prof et savoir ce qu'il enseigne
cliquer sur le bouton "matière" pour choisir une matière et savoir par qui elle est enseignée
(dans l'état actuel il est normal que le français et les maths soient enseignés par les trois même professeurs, c'est représentatif des identifiants concaténés dans la table "Enseigne")
Les accents seraient acceptés dans le nom des sous-programmes ??? Chez moi, oui, mais c'est une nouvelle...
Code VB :

Citation:
Je ne vois pas trop l'utilité des identifiants si on met tout en tableaux,
Oui, on peut très bien s'en sortir en travaillant directement sur les tableaux, mais on se prive de toute la réflexion qui a abouti à la table intermédiaire, et on risque de faire davantage de liaisons hasardeuses. Et une concaténation d'identifiants c'est du costaud, tu peux savoir si ton prof de chimie a les yeux bleus simplement en entrant la matière enseignée : va donc lier manuellement 50 caractéristiques se rapportant au professeur, avec la matière qu'il enseigne

Bon, voici l'avancée, on peut dire que j'ai presque honte tellement c'est mal ficelé, mal commenté mais il faut que j'avance vite, et ça fonctionne quand même :
cliquer sur le bouton "professeur" pour choisir un prof et savoir ce qu'il enseigne
cliquer sur le bouton "matière" pour choisir une matière et savoir par qui elle est enseignée
(dans l'état actuel il est normal que le français et les maths soient enseignés par les trois même professeurs, c'est représentatif des identifiants concaténés dans la table "Enseigne")
Les accents seraient acceptés dans le nom des sous-programmes ??? Chez moi, oui, mais c'est une nouvelle...
Code VB :
' à titre indicatif, tables en partie pompées sur le prog de Roger et ré-assaisonnées à ma sauce [semaine] data "Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche" [matieres] data "Mathématiques","Français","Histoire-Géographie","Education Physique et Sportive","Arts Plastiques","Physique","Philosophie" [profs] data "Trucmuche Alain","Machin Marcel","Lapaille Jean-Benoît","Lapoutre Ulysse","Legendre Lucienne","Lebianski Josianne" data "Lavache Ernest","Tuboeuf Adrienne","Sinclair Bratt","Rabeau Elisabeth","Nun Elodie","Lavache Michel" nomainwin 'mise en tableau 'on place les jours, les professeurs et les matières en tableau 'pour le moment tout est en "data", à terme ce seront des fichiers ' jours de la semaine print print "Jours de la semaine" dim joursID$(7),joursNom$(7) for a=0 to 6 read a$ joursID$(a)=right$("000"+str$(a),3) joursNom$(a)=a$ print joursID$(a);" ";joursNom$(a) next 'matières print print "Matières :" dim matiereID$(7),matiereNom$(7) for a=0 to 6 read a$ matiereID$(a)=right$("000"+str$(a),3) matiereNom$(a)=a$ print matiereID$(a);" ";matiereNom$(a) next 'professeurs print print "Professeurs" dim profID$(12),profNom$(12),profPrenom$(12) for a=0 to 11 read a$ profID$(a)=right$("000"+str$(a),3) profNom$(a)=word$(a$,1) profPrenom$(a)=word$(a$,2) print profID$(a);" ";profNom$(a);" ";profPrenom$(a) next enseigneNb=3'nombre d'enregistrements contenus dans les tables Enseigne$ dim EnseigneID$(enseigneNb) dim EnseigneProf$(enseigneNb) dim EnseigneMatiere$(enseigneNb) 'pré-remplissage des grilles (normalement fait par l'utilisateur via des cases à cocher ou listes déroulantes ou etc...) EnseigneID$(0)="000":EnseigneProf$(0)="000005011":EnseigneMatiere$(0)="001000" EnseigneID$(1)="001":EnseigneProf$(1)="005":EnseigneMatiere$(1)="004" EnseigneID$(2)="002":EnseigneProf$(2)="006":EnseigneMatiere$(2)="006" 'ajout fenetre graphique principale, censée afficher l'emploi du temps de la semaine (pas réalisé) 'taille de la fenêtre WindowWidth=800 WindowHeight=600 'définition des controles STATICTEXT #emploitps.info, "Emploi du temps", 20, 20, 200, 20 BUTTON #emploitps.prof, "Professeurs", [fprofs], ul, 20, 50,100,20 BUTTON #emploitps.mat, "Matières", [fmatieres], ul, 140, 50,100,20 BUTTON #emploitps.quitter, "Quitter", [quit_princip], ul, 260, 50,100,20 open "Emploi du temps" for graphics as #emploitps print #emploitps, "trapclose [quit_princip]" wait end 'sous programmes [quit_princip] close #emploitps if fenProfs then close #Profs if fenMat then close #Mat end wait [quit_Profs] close #Profs fenProfs=0 wait [quit_Mat] close #Mat fenMat=0 wait [fprofs] 'fenetre de gestion des professeurs COMBOBOX #Profs.nom, profNom$(), [ficheprofs], 20, 20, 100, 20 STATICTEXT #Profs.infonom, "", 20, 70, 600, 20 STATICTEXT #Profs.infomat, "", 20, 100, 600, 20 if fenProfs=0 then fenProfs=1 open "Gestion des Professeurs" for graphics as #Profs print #Profs, "trapclose [quit_Profs]" end if wait [ficheprofs] #Profs.nom, "selection? sel$" #Profs.nom, "selectionindex? index" 'notice "You chose ";sel$;"index=";index id=index-1 #Profs.infonom, "Professeur : ";profNom$(id)+", "+profPrenom$(id) gosub [recherche_matières_enseignées] #Profs.infomat, "Matières enseignées : "+matens$ wait [fmatieres] 'fenetre de gestion des matières COMBOBOX #Mat.cbnom, matiereNom$(), [fichemat], 20, 20, 100, 20 STATICTEXT #Mat.nom, "", 20, 50, 600, 20 STATICTEXT #Mat.prof, "", 20, 80, 600, 20 if fenMat=0 then fenMat=1 open "Gestion des Matières" for graphics as #Mat print #Mat, "trapclose [quit_Mat]" end if wait [fichemat] #Mat.cbnom, "selection? sel$" #Mat.cbnom, "selectionindex? index" id=index-1 #Mat.nom,"Matière : ";matiereNom$(id) gosub [recherche_professeur_enseignant_telle_matiere] #Mat.prof,"Professeurs : ";profens$ wait [recherche_matières_enseignées] matens$="" for a=0 to enseigneNb 'recherche des liaisons reliant le prof à une matière a$=EnseigneProf$(a) tours=len(a$)/3 for b=0 to tours-1 b$=mid$(a$,b*3+1,3) if b$=profID$(id) then mat$=EnseigneMatiere$(a) nbmat=len(mat$)/3 for c=0 to nbmat-1 c$=mid$(mat$,c*3+1,3) d=val(c$) matens$=matens$+matiereNom$(d)+", " next end if next next return [recherche_professeur_enseignant_telle_matiere] profens$="" for a=0 to enseigneNb a$=EnseigneMatiere$(a) tours=len(a$)/3 for b=0 to tours-1 b$=mid$(a$,b*3+1,3) if b$=matiereID$(id) then prof$=EnseigneProf$(a) nbprof=len(prof$)/3 for c=0 to nbprof-1 c$=mid$(prof$,c*3+1,3) d=val(c$) profens$=profens$+profNom$(d)+" "+profPrenom$(d)+", " next end if next next return
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
ça ressemble à une base de données à entrée-choix multiple
____________________
Roro
Roro
Je ne sais pas comment ça s'appelle
Je verrais bien "base de données relationnelle", sans certitude.
Viens-je de comprendre ta question concernant les identifiants : les index des tableaux sont déjà des identifiants, pourquoi prendre de la place et ajouter en complexité en créant soi-meme un système d'identifiants ? Bonne question à réponses multiples :
Je compte encore lier profs et matière à salle et heures de cours. A terme, on connectera cette mini BDD à l'affichage de ton emploi du temps, et dans chaque case on saura qui fait quoi à quelle heure et où.
(une petite édition pour mettre des mots que j'avais oublié, et dire que je ne sais pas si nous sommes toujours dans le cadre de ta chose universelle pour connecter n'importe quoi à n'importe quoi de manière sensée...)
Avant de connecter cette BDD, on simplifiera l'écriture (les sous-programmes liant prof et matière sont quasiment identiques, au nom des tables et de quelques variables près et on peut supposer qu'il en sera de même pour les autres liaisons). On regardera aussi si on peut utiliser directement les index de tableaux avec le même degré de sécurité.
Voili
Edité par Christophe Le 22/05/2017 à 09h41

Viens-je de comprendre ta question concernant les identifiants : les index des tableaux sont déjà des identifiants, pourquoi prendre de la place et ajouter en complexité en créant soi-meme un système d'identifiants ? Bonne question à réponses multiples :
- Parce qu'on est en pleine conception du programme, et qu'il est rassurant de pouvoir concevoir soi-même la gestion des identifiants.
- Parce qu'on est en pleine conception du programme, et qu'on n'a pas pensé que ça pouvait être plus simple d'utiliser directement les index des tableaux,
- Parce qu'en mes souvenirs, chaque table avait un champ "identifiant", et comme tout le système est basé sur la gestion des identifiants, c'est qu'il faut bien programmer cet identifiant quelque part,
- et réponse complète quand je serai plus aguerri
Je compte encore lier profs et matière à salle et heures de cours. A terme, on connectera cette mini BDD à l'affichage de ton emploi du temps, et dans chaque case on saura qui fait quoi à quelle heure et où.
(une petite édition pour mettre des mots que j'avais oublié, et dire que je ne sais pas si nous sommes toujours dans le cadre de ta chose universelle pour connecter n'importe quoi à n'importe quoi de manière sensée...)
Avant de connecter cette BDD, on simplifiera l'écriture (les sous-programmes liant prof et matière sont quasiment identiques, au nom des tables et de quelques variables près et on peut supposer qu'il en sera de même pour les autres liaisons). On regardera aussi si on peut utiliser directement les index de tableaux avec le même degré de sécurité.
Voili
Edité par Christophe Le 22/05/2017 à 09h41
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
L'avantage des identifiants, c'est que ça doit pouvoir faciliter la combinatoire par quelque tour de passe passe plus ou moins mathématique
Mais à condition de ne pas perdre le fil, parce que ça ajoute une couche d'abstraction
Un identifiant de 16 bits soit être chaud à manipuler et de 32, n'en parlons pas....
Au niveau combinatoire ça serait intéressant de fixer par exemple un temps pour la consultation de chaque combinaison, un temps de consultation total "raisonnable" (demie-journée ou journée)
Et de voir la limitation que ça implique pour le nombre de types d'entrées.
Le blème, c'est que dans le cas présent, il faut consulter l'ensemble de la semaine pour en extraire les combinaisons valables
Sauf à poser des contraintes éliminant les non valables, ce qui complexifie d'autant l'algo (les algos)
Y a pas de miracle, il faut se casser la tête, soit à l'arrivée soit au départ
Mais à condition de ne pas perdre le fil, parce que ça ajoute une couche d'abstraction
Un identifiant de 16 bits soit être chaud à manipuler et de 32, n'en parlons pas....
Au niveau combinatoire ça serait intéressant de fixer par exemple un temps pour la consultation de chaque combinaison, un temps de consultation total "raisonnable" (demie-journée ou journée)
Et de voir la limitation que ça implique pour le nombre de types d'entrées.
Le blème, c'est que dans le cas présent, il faut consulter l'ensemble de la semaine pour en extraire les combinaisons valables
Sauf à poser des contraintes éliminant les non valables, ce qui complexifie d'autant l'algo (les algos)
Y a pas de miracle, il faut se casser la tête, soit à l'arrivée soit au départ
____________________
Roro
Roro
Je vais regarder ton code de plus près.
J'étais parti sur une base de données mais je laisse tomber car elle s'avère longue à mettre en place si on la veut solide. Par contre, elle fera l'objet d'un sujet de discussion sur le forum, parce que, mine de rien, j'ai bien avancé dans mon analyse en quelques heures seulement, je ne m'attendais pas à ce que ce soit si "simple". Il peut être utile de savoir créer des tables et des liaisons en JB/LB
Donc je termine le hors sujet, on peut revenir à la procédure combinatoire
a+
J'étais parti sur une base de données mais je laisse tomber car elle s'avère longue à mettre en place si on la veut solide. Par contre, elle fera l'objet d'un sujet de discussion sur le forum, parce que, mine de rien, j'ai bien avancé dans mon analyse en quelques heures seulement, je ne m'attendais pas à ce que ce soit si "simple". Il peut être utile de savoir créer des tables et des liaisons en JB/LB
Donc je termine le hors sujet, on peut revenir à la procédure combinatoire
a+

____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie