(Cartes de contrôle)
(Dédié à l'Année internationale du tableau périodique des éléments chimiques)
(Les derniers ajouts ont été réalisés le 8 avril 2019. La liste des ajouts se trouve juste après le saut.)

(, )
Je me souviens que nous avons étudié le canard. Cela a été trois leçons : géographie, sciences naturelles et russe. En sciences naturelles, le canard a été étudié comme un canard, avec ses ailes, ses pattes, comment il nage, etc. En géographie, le même canard a été étudié comme un habitant de la Terre : il fallait montrer sur la carte où il vit et où il n'est pas. En russe, Séraphima Petrovna nous enseignait à écrire « у-т-к-а » et lisait quelque chose sur les canards de Brehm. En passant, elle nous faisait savoir qu'en allemand, on dit ainsi, et en français, cela. Cela s'appelait alors « méthode complexe ». En somme, tout se faisait « en passant ».
Veniamin Kaverin, Deux Capitaines
Dans la citation ci-dessus, Veniamin Kaverin a magistralement montré les défauts de la méthode complexe d'enseignement, mais dans certains cas (peut-être assez rares), des éléments de cette méthode peuvent être justifiés. Un de ces cas est le tableau périodique de D.I. Mendeleïev dans les cours d'informatique à l'école. La tâche d'automatisation logicielle des actions typiques avec le tableau de Mendeleïev est évidente pour les élèves qui commencent à étudier la chimie et se décompose en plusieurs tâches chimiques types. En même temps, dans le cadre de l'informatique, cette tâche permet de démontrer de manière simple la méthode des cartes de contrôle, qui peut être considérée comme une programmation graphique, entendue au sens large comme la programmation par des éléments graphiques.
(Ajouts réalisés le 8 avril 2019 :
Commençons par une tâche de base. Dans le cas le plus simple, l'écran dans la fenêtre de formulaire doit afficher le tableau périodique, où chaque case présentera le symbole chimique de l'élément : H — hydrogène, He — hélium, etc. Si le curseur de la souris pointe sur une case, le symbole de l'élément et son numéro s'affichent dans un champ spécial de notre formulaire. Si l'utilisateur clique alors avec le bouton gauche de la souris, le symbole et le numéro de cet élément sélectionné apparaîtront dans un autre champ du formulaire.

La tâche peut être résolue dans n'importe quel langage de programmation universel. Nous prendrons l'ancien Delphi-7, compréhensible par presque tout le monde. Mais avant de programmer en langage de programmation, dessinons deux images, par exemple, dans Photoshop. Tout d'abord, nous dessinerons le tableau périodique tel que nous voulons le voir dans le programme. Nous sauvegarderons le résultat dans un fichier graphique. table01.bmp.

Pour le deuxième dessin, nous utiliserons le premier. Nous allons remplir successivement les cellules nettoyées de toute graphique du tableau avec des couleurs uniques dans le modèle de couleur RGB. R et G seront toujours à 0, tandis que B=1 pour l'hydrogène, 2 pour l'hélium, etc. Ce dessin sera notre carte de contrôle que nous sauvegarderons dans un fichier nommé. table2.bmp.

La première étape de la programmation graphique dans Photoshop est terminée. Passons à la programmation graphique de l'interface utilisateur dans l'IDE Delphi-7. Pour cela, nous ouvrons un nouveau projet, où sur le formulaire principal, nous plaçons un bouton d'appel de dialogue (tableDlg), dans lequel nous travaillerons avec le tableau. Ensuite, nous travaillons avec le formulaire. tableDlg.
Nous plaçons sur le formulaire le composant de la classe TImage. Nous obtenons Image1. Notons qu'en général, pour les grands projets, les noms générés automatiquement de type ImageN, où N peuvent atteindre plusieurs dizaines et plus — ce n'est pas le meilleur style de programmation, et il est préférable de donner des noms plus significatifs. Mais dans notre petit projet, où N ne dépassera pas 2, on peut laisser tel quel.
Dans la propriété Image1.Picture , nous chargeons le fichier table01.bmp. Nous créons Image2 et y chargeons notre carte de contrôle table2.bmp. En même temps, nous rendons le fichier petit et invisible pour l'utilisateur, comme montré dans le coin inférieur gauche du formulaire. Nous ajoutons des éléments de contrôle supplémentaires, dont les attributions sont évidentes. La deuxième étape de la programmation graphique de l'interface utilisateur dans l'IDE Delphi-7 est terminée.

Nous passons à la troisième étape : l'écriture de code dans l'IDE Delphi-7. Le module ne comporte que cinq gestionnaires d'événements : création du formulaire (FormCreate), mouvement du curseur sur Image1 (Image1MouseMove), clic gauche sur une cellule (Image1Click) et sortie du dialogue à l'aide des boutons OK (OKBtnClick) ou Annuler (CancelBtnClick). Les en-têtes de ces gestionnaires sont générés de manière standard à l'aide de l'IDE.
Le code source du module :
tableUnit;
// Tableau périodique des éléments chimiques de D.I. Mendeleïev
//
// third112
// https://habr.com/ru/users/third112/
//
// Sommaire
// 1) création du formulaire
// 2) travail avec le tableau : indication et sélection
// 3) sortie du dialogue
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
const
size = 104; // nombre d'éléments
type
TtableDlg = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
Bevel1: TBevel;
Image1: TImage; // tableau des éléments chimiques
Label1: TLabel;
Image2: TImage; // carte de contrôle
Label2: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject); // création du formulaire
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); // indication de la case
procedure Image1Click(Sender: TObject); // sélection de la case
procedure OKBtnClick(Sender: TObject); // OK
procedure CancelBtnClick(Sender: TObject); // Annuler
private
{ Déclarations privées }
TableSymbols : array [1..size] of string [2]; // tableau des symboles d'éléments
public
{ Déclarations publiques }
selectedElement : string; // élément sélectionné
currNo : integer; // numéro de l'élément actuel
end;
var
tableDlg: TtableDlg;
implementation
{$R *.dfm}
const
PeriodicTableStr1=
'HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLa';
PeriodicTableStr2='CePrNdPmSmEuGdTbDyHoErTmYbLu';
PeriodicTableStr3='HfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAc';
PeriodicTableStr4='ThPaUNpPuAmCmBkCfEsFmMdNoLrKu ';
// création du formulaire ==================================================
procedure TtableDlg.FormCreate(Sender: TObject);
// création du formulaire
var
s : string;
i,j : integer;
begin
currNo := 0;
// initialisation du tableau des symboles d'éléments :
s := PeriodicTableStr1 + PeriodicTableStr2 + PeriodicTableStr3 + PeriodicTableStr4;
j := 1;
for i := 1 to size do
begin
TableSymbols [i] := s[j];
inc (j);
if s[j] in ['a'..'z'] then
begin
TableSymbols [i] := TableSymbols [i] + s[j];
inc (j);
end; // if s[j] in
end; // for i := 1
end; // FormCreate ____________________________________________________
// travail avec le tableau : indication et sélection =========================================
procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
// indication de la case
var
sl : integer;
begin
sl := GetBValue(Image2.Canvas.Pixels [x,y]);
if sl in [1..size] then
begin
Label1.Caption := intToStr (sl) + ' ' + TableSymbols [sl];
currNo := sl;
end
else
Label1.Caption := 'Sélectionnez un élément:';
end; // Image1MouseMove ____________________________________________________
procedure TtableDlg.Image1Click(Sender: TObject);
begin
if currNo 0 then
begin
selectedElement := TableSymbols [currNo];
Label2.Caption := intToStr (currNo) + ' ' + selectedElement+ ' sélectionné';
Edit1.Text := selectedElement;
end;
end; // Image1Click ____________________________________________________
// sortie du dialogue ==================================================
procedure TtableDlg.OKBtnClick(Sender: TObject);
begin
selectedElement := Edit1.Text;
hide;
end; // OKBtnClick ____________________________________________________
procedure TtableDlg.CancelBtnClick(Sender: TObject);
begin
hide;
end; // CancelBtnClick ____________________________________________________
end.Dans notre version, nous avons utilisé un tableau de 104 éléments (constante taille). Évidemment, cette taille peut être augmentée. Les désignations des éléments (symboles chimiques) sont écrites dans un tableau TableSymbols. Toutefois, pour des raisons de compacité du code source, il semble judicieux d'écrire la séquence de ces désignations sous forme de constantes de chaîne PeriodicTableStr1,…, PeriodicTableStr4, afin qu'au moment de la création de la forme, le programme puisse répartir ces désignations dans les éléments du tableau. Chaque désignation d'élément se compose d'une ou deux lettres latines, la première lettre étant majuscule et la seconde (si elle existe) en minuscule. Cette règle simple est mise en œuvre lors du chargement du tableau. Ainsi, la séquence de désignations peut être écrite de manière compacte sans espaces. La division de la séquence en quatre parties (constantes PeriodicTableStr1,…, PeriodicTableStr4) est en raison de la simplicité de lecture du code source, car une ligne trop longue peut ne pas tenir entièrement à l'écran.
Lors de l'événement de déplacement du curseur de la souris sur Image1 le gestionnaire Image1MouseMove de cet événement détermine la valeur du composant bleu de la couleur du pixel de la carte de contrôle Image2 pour les coordonnées actuelles du curseur. Par construction, Image2 cette valeur est égale au numéro de l'élément, si le curseur se trouve à l'intérieur de la cellule ; zéro, s'il est sur la bordure, et 255 dans les autres cas. Les autres actions effectuées par le programme sont triviales et ne nécessitent pas d'explications.
En plus des techniques stylistiques mentionnées ci-dessus, il convient de noter le style des commentaires. À proprement parler, le code examiné est si petit et simple que les commentaires semblent peu nécessaires. Cependant, ils ont été ajoutés également pour des raisons méthodologiques - un code court permet de montrer plus clairement certaines conclusions générales. Dans le code présenté, une classe est déclarée (TtableDlg). Les méthodes de cette classe peuvent être réorganisées et cela n'affectera en rien le fonctionnement du programme, mais cela peut avoir un impact sur sa lisibilité. Par exemple, imaginons la séquence :
OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.
Cela peut ne pas être très visible, mais la lecture et la compréhension deviendront un peu plus difficiles. Si les méthodes ne sont pas cinq, mais des dizaines de fois plus, et dans la section implementation Ils ont un ordre d'apparition complètement différent de celui décrit dans les classes, ce qui ne fera qu'accroître le chaos. Donc, bien qu'il soit difficile de prouver cela de manière rigoureuse et peut-être même impossible, on peut espérer qu'un ordre supplémentaire améliorera la lisibilité du code. Cet ordre supplémentaire est favorisé par le regroupement logique de plusieurs méthodes réalisant des tâches similaires. Chaque groupe devrait avoir un titre, par exemple :
// работа с таблицей: указание и выбор
Ces titres devraient être copiés au début du module et présentés comme une table des matières. Dans certains cas de modules assez longs, ces tables des matières offrent des possibilités de navigation supplémentaires. De même, dans le corps long d'une méthode, d'une procédure ou d'une fonction, il convient d'indiquer, d'une part, la fin de ce corps :
end; // FormCreateet, d'autre part, dans les opérateurs bifurqués avec des crochets programmatiques begin - end, d'indiquer l'opérateur auquel se rapporte la parenthèse fermante :
end; // if s [j] in
end; // for i :=1
end; // FormCreate
Pour mettre en évidence les titres de groupes et les fins de corps des méthodes, on peut ajouter des lignes dépassant la longueur de la plupart des opérateurs et composées, par exemple, de caractères « = » et « _ » respectivement.
Encore une fois, il convient de préciser : notre exemple est trop simple. Et lorsque le code d'une méthode ne tient pas sur un seul écran, il peut être difficile de s'y retrouver avec six end consécutifs pour apporter des modifications au code. Dans certains anciens compilateurs, par exemple, Pascal 8000 pour OS IBM 360/370, une colonne de service de ce type était imprimée à gauche dans le listing
B5
…
E5
Cela signifiait que la parenthèse programmable fermante à la ligne E5 correspond à la parenthèse ouvrante à la ligne B5.
Bien sûr, le style de programmation est une question très ambiguë, donc les idées exprimées ici doivent être considérées comme une simple matière à réflexion. Il est souvent très difficile pour deux programmeurs expérimentés, qui ont développé des styles différents au fil des ans, de se mettre d'accord. En revanche, un élève apprenant à programmer, qui n'a pas encore eu le temps de développer son propre style, pourra aborder la situation différemment. Je pense que dans ce cas, l'enseignant doit au moins transmettre à ses élèves cette idée simple mais pas évidente : le succès d'un programme dépend en grande partie du style dans lequel son code source est écrit. L'élève peut ne pas suivre le style recommandé, mais au moins, il doit réfléchir à la nécessité de quelques « actions supplémentaires » pour améliorer la présentation du code source.
Revenons à notre tâche de base concernant le tableau périodique : les développements futurs peuvent prendre différentes directions. L'une des directions est de fournir des références : en plaçant le curseur de la souris sur une case du tableau, une fenêtre informative apparaît, contenant des informations supplémentaires sur l'élément spécifié. Une autre évolution pourrait inclure des filtres. Par exemple, en fonction des paramètres dans la fenêtre d'information, il pourrait n'y avoir que : des informations physico-chimiques essentielles, des informations sur l'histoire de la découverte, des informations sur la répartition dans la nature, une liste des composés majeurs (dans lesquels cet élément est impliqué), des propriétés physiologiques, le nom dans une langue étrangère, etc. En repensant à la « canard » de Kavérine, avec laquelle cet article commence, on peut dire qu'avec un tel développement du programme, nous obtiendrons un complexe éducatif complet sur les sciences naturelles : en plus de l'informatique, de la physique et de la chimie, cela inclura la biologie, la géographie économique, l'histoire des sciences et même les langues étrangères.
Mais la base de données locale n'est pas une limite. Le programme se connecte naturellement à Internet. Lors de la sélection d'un élément, un lien se déclenche, et un article de Wikipédia sur cet élément s'ouvre dans la fenêtre du navigateur web. Wikipédia, comme on le sait, n'est pas une source autoritaire. Il est possible de référencer des sources fiables, par exemple, une encyclopédie chimique, la Grande Encyclopédie Soviétique, des revues de référence, ou de passer des requêtes dans les moteurs de recherche sur cet élément, etc. Ainsi, les élèves pourront accomplir des tâches simples mais enrichissantes sur les thèmes des SGBD et d'Internet.
En plus des demandes concernant un élément individuel, il est possible de créer une fonctionnalité qui marquera, par exemple, différentes cases dans un tableau avec des couleurs en fonction de certains critères. Par exemple, les métaux et les non-métaux. Ou les cases que déverse une usine chimique locale dans les cours d'eau.
Il est également possible de mettre en œuvre des fonctions de carnet d'adresses-organisateur. Par exemple, mettre en évidence dans le tableau les éléments qui font partie de l'examen. Ensuite, surligner les éléments étudiés/récapitulés par l'élève lors de la préparation à l'examen.
Voici, par exemple, l'un des problèmes typiques de la chimie scolaire :
On a 10 g de craie. Quelle quantité d'acide chlorhydrique doit-on utiliser pour dissoudre toute cette craie ?
Pour résoudre ce problème, il faut, en notant la réaction chimique et en y ajoutant les coefficients, calculer les poids moléculaires du carbonate de calcium et de l'acide chlorhydrique, puis établir et résoudre une proportion. Un calculateur basant sur notre programme de base pourra effectuer ces calculs. Cependant, il faudra également tenir compte du fait qu'il faut prendre l'acide avec un excès raisonnable et à une concentration raisonnable, mais c'est déjà de la chimie, pas de l'informatique.
Ajout 1 : comment fonctionne la calculatrice chimiqueAnalysons le fonctionnement du calculateur en prenant l'exemple du problème de la craie et de l'acide chlorhydrique mentionné ci-dessus. Commençons par la réaction :
CaCO3 + 2HCl = CaCl2 + H2O
De là, nous voyons que nous aurons besoin des poids atomiques des éléments suivants : calcium (Ca), carbone (C), oxygène (O), hydrogène (H) et chlore (Cl). Dans le cas le plus simple, nous pouvons enregistrer ces poids dans un tableau unidimensionnel, défini comme
AtomicMass : array [1..size] of real;où l'indice du tableau correspond au numéro de l'élément. De plus, à un endroit libre du formulaire tableDlg nous plaçons deux champs. Dans le premier champ, il est initialement écrit : "Premier réactif donné", dans le second — "Deuxième réactif à trouver x". Nous désignerons les champs reagent1, reagent2 respectivement. D'autres ajouts au programme seront clairs grâce à l'exemple suivant du fonctionnement du calculateur.
Nous tapons sur le clavier de l'ordinateur : 10 g. L'inscription dans le champ reagent1 change : "Premier réactif donné 10 g". Maintenant, nous entrons la formule de ce réactif, et le calculateur calculera et affichera son poids moléculaire au fur et à mesure de l'entrée.
Nous cliquons avec le bouton gauche de la souris sur la case du tableau avec le symbole Ca. L'inscription dans le champ reagent1 change : "Premier réactif Ca 40.078 donné 10 g".
Nous cliquons avec le bouton gauche de la souris sur la case du tableau avec le symbole C. L'inscription dans le champ reagent1 change : "Premier réactif CaC 52.089 donné 10 g". C'est-à-dire que le calculateur a additionné les poids atomiques du calcium et du carbone.
Cliquez avec le bouton gauche sur la cellule du tableau avec le symbole O. Le texte dans le champ reagent1 change en : « Premier réactif CaCO 68,088 donné 10 g ». La calculatrice a ajouté à la somme la masse atomique de l'oxygène.
Cliquez avec le bouton gauche sur la cellule du tableau avec le symbole O. Le texte dans le champ reagent1 change en : « Premier réactif CaCO2 84,087 donné 10 g ». La calculatrice a à nouveau ajouté à la somme la masse atomique de l'oxygène.
Cliquez avec le bouton gauche sur la cellule du tableau avec le symbole O. Le texte dans le champ reagent1 change en : « Premier réactif CaCO3 100,086 donné 10 g ». La calculatrice a encore une fois ajouté à la somme la masse atomique de l'oxygène.
Appuyez sur Entrée sur le clavier de l'ordinateur. La saisie du premier réactif est terminée et passe au champ reagent2. Notons que dans cet exemple, nous fournissons une version minimale. Si désiré, il est facile d'organiser des multiplicateurs d'atomes d'un même type, afin de ne pas avoir à cliquer sept fois d'affilée sur la cellule de l'oxygène lors de la saisie de la formule du chromate de potassium (K2Cr2O7).
Cliquez avec le bouton gauche sur la cellule du tableau avec le symbole H. Le texte dans le champ reagent2 change en : « Deuxième réactif H 1,008 trouvez x ».
Cliquez avec le bouton gauche sur la cellule du tableau avec le symbole Cl. Le texte dans le champ reagent2 change en : « Deuxième réactif HCl 36,458 trouvez x ». La calculatrice a additionné les poids atomiques de l'hydrogène et du chlore. Dans l'équation de réaction ci-dessus, le coefficient devant l'acide chlorhydrique est 2. Par conséquent, cliquez avec le bouton gauche sur le champ reagent2. Le poids moléculaire est doublé (avec un double clic, il est triplé, etc.). Le texte dans le champ reagent2 change en : « Deuxième réactif 2HCl 72,916 trouvez x ».
Appuyez sur Entrée sur le clavier de l'ordinateur. La saisie du deuxième réactif est terminée et la calculatrice trouve x à partir de la proportion

Ce qui était nécessaire à trouver.
Note 1. Le sens de la proportion obtenue : pour dissoudre 100,086 de gypse, il faut 72,916 Da d'acide, et pour dissoudre 10 g de gypse, il faut x d'acide.
Note 2. Collections de problèmes similaires :
Homchenko I. G., Recueil de problèmes et d'exercices de chimie 2009 (8-11 classes).
Homchenko G. P., Homchenko I. G., Recueil de problèmes de chimie pour les candidats à l'entrée à l'université, 2019.
Note 3. Pour simplifier le problème, on peut dans la version initiale simplifier la saisie de la formule en ajoutant simplement le symbole de l'élément à la fin de la chaîne de la formule. Alors, la formule du carbonate de calcium aura la forme :
CaCOOO
Mais une telle notation ne plaira probablement pas au professeur de chimie. Il n'est pas difficile de faire une notation correcte — il faut juste ajouter un tableau :
formula : array [1..size] of integer;où l'indice est le numéro de l'élément chimique, et la valeur à cet indice est le nombre d'atomes (au départ, tous les éléments du tableau sont initialisés à zéro). Il convient de tenir compte de l'ordre des atomes dans la formule, tel qu'il est accepté en chimie. Par exemple, O3CaC ne sera pas du goût de tout le monde. Reportons la responsabilité sur l'utilisateur. Créons un tableau :
formulaOrder : tableau [1..size] d'entiers ; \/\/ nous pouvons faire plus courtoù nous enregistrons le numéro de l'élément chimique selon son indice d'apparition dans la formule. Ajout d'un atome currNo dans la formule :
if formula [currNo]=0 then \/\/ cet atome est rencontré pour la première fois
begin
orderIndex := orderIndex+1;\/
lors de la première saisie de la formule, orderIndex=0
formulaOrder [orderIndex] := currNo;
end;
formula [currNo]:=formula [currNo]+1;Écriture de la formule dans une chaîne :
s := ''; \/\/ chaîne vide pour la formule
for i:=1 to orderIndex do \/\/ pour tous les symboles chimiques dans la formule
begin
s:=s+TableSymbols [ formulaOrder[i]];\/\/ ajout du symbole chimique
if formula [formulaOrder[i]]<>1 then \/\/ ajout du nombre d'atomes
s:=s+ intToStr(formula [formulaOrder[i]]);
end;
Remarque 4. Il est logique de prévoir la possibilité d'une saisie alternative de la formule du réactif à partir du clavier. Dans ce cas, un analyseur syntaxique simple devra être mis en œuvre.
Il convient de noter que :
Aujourd'hui, il existe plusieurs centaines de versions du tableau, et les scientifiques proposent de nouvelles variantes. ()
Les élèves peuvent faire preuve de débrouillardise dans ce domaine, en mettant en œuvre l'une des variantes déjà proposées ou en essayant de créer leur propre version originale. Cela peut sembler être la direction la moins utile pour les cours d'informatique. Cependant, dans la forme du tableau périodique présentée dans cet article, certains élèves peuvent ne pas discerner les avantages particuliers des cartes de contrôle par rapport à une solution alternative à l'aide de boutons standard. TButton. La forme en spirale du tableau (où les cellules ont des formes différentes) démontrera plus clairement les avantages de la solution proposée ici.

(, )
Ajoutons également qu'un certain nombre de programmes informatiques existants pour le Tableau de Mendeleïev ont été décrits dans un article récemment publié sur Habr. .
Ajout 2 : exemples de problèmes pour les filtresGrâce aux filtres, il est possible de résoudre, par exemple, les problèmes suivants :
1) Mettre en évidence dans le tableau tous les éléments connus au Moyen Âge.
2) Mettre en évidence tous les éléments connus au moment de la découverte de la loi périodique.
3) Sélectionner sept éléments que les alchimistes considéraient comme des métaux.
4) Sélectionner tous les éléments qui sont dans un état gazeux aux conditions normales (C.N.).
5) Sélectionner tous les éléments qui sont dans un état liquide aux C.N.
6) Sélectionner tous les éléments qui sont dans un état solide aux C.N.
7) Sélectionner tous les éléments capables de rester longtemps à l'air sans changement notable aux C.N.
8) Sélectionner tous les métaux qui se dissolvent dans l'acide chlorhydrique.
9) Sélectionner tous les métaux qui se dissolvent dans l'acide sulfurique aux C.N.
10) Sélectionner tous les métaux qui se dissolvent dans l'acide sulfurique lors du chauffage.
11) Sélectionner tous les métaux qui se dissolvent dans l'acide nitrique.
12) Sélectionner tous les métaux qui réagissent vigoureusement avec l'eau aux C.N.
13) Sélectionner tous les métaux.
14) Sélectionner les éléments largement répandus dans la nature.
15) Sélectionner les éléments qui se rencontrent dans la nature à l'état pur.
16) Sélectionner les éléments ayant un rôle crucial dans l'organisme humain et animal.
17) Sélectionner les éléments couramment utilisés dans la vie quotidienne (sous forme libre ou dans des composés).
18) Sélectionner les éléments dont le travail est le plus dangereux et nécessite des mesures et des moyens de protection spécifiques.
19) Sélectionner les éléments qui représentent la plus grande menace pour l'écologie, que ce soit à l'état pur ou sous forme de composés.
20) Sélectionner les métaux précieux.
21) Sélectionner les éléments qui sont plus chers que les métaux précieux.
Notes
1) Il est judicieux de faire fonctionner plusieurs filtres. Par exemple, si l'on active le filtre pour résoudre le problème 1 (tous les éléments connus au Moyen Âge) et 20 (métaux précieux), alors les cellules avec des métaux précieux connus au Moyen Âge seront mises en évidence (par exemple, le palladium, découvert en 1803, ne sera pas mis en lumière).
2) Il est logique de faire fonctionner plusieurs filtres de manière à ce que chaque filtre mette en évidence les cellules avec sa propre couleur, sans complètement supprimer la sélection de l'autre filtre (une partie de la cellule d'une couleur, une partie d'une autre). Ainsi, dans le cas précédent, on pourra voir les éléments d'intersection des ensembles des métaux précieux et des éléments connus au Moyen Âge, ainsi que les éléments appartenant uniquement au premier ou au second ensemble. C'est-à-dire les métaux précieux inconnus au Moyen Âge et les éléments connus au Moyen Âge, mais qui ne sont pas des métaux précieux.
3) Il est logique, après l'application d'un filtre, de permettre d'autres manipulations avec les résultats obtenus. Par exemple, en mettant en évidence les éléments connus au Moyen Âge, l'utilisateur clique avec le bouton gauche sur un élément mis en évidence et accède à l'article Wikipédia sur cet élément.
4) Il est logique de permettre à l'utilisateur de désélectionner en cliquant sur une cellule de tableau déjà sélectionnée. Par exemple, pour enlever les éléments déjà consultés.
5) Il est logique de garantir la sauvegarde de la liste des cellules sélectionnées dans un fichier et de charger ce fichier avec la sélection automatique des cellules. Cela donnera à l'utilisateur la possibilité de faire une pause dans son travail.
Nous avons utilisé une carte de contrôle statique préétablie, cependant, il existe de nombreuses tâches importantes où des cartes de contrôle dynamiques, évoluant au cours du travail du programme, peuvent être utilisées. Un exemple pourrait être un éditeur de graphes, où l'utilisateur désigne, à l'aide de la souris, la position des sommets dans la fenêtre et dessine des arêtes entre eux. Pour supprimer un sommet ou une arête, l'utilisateur doit cliquer dessus. Mais tandis qu'il est assez facile de pointer sur un sommet désigné par un cercle, il sera plus difficile de cliquer sur une arête dessinée par une ligne fine. Une carte de contrôle, où les sommets et les arêtes occupent des zones plus larges que celles visibles sur le dessin, sera utile ici.
Une question secondaire intéressante liée à la méthode d'apprentissage intégrée est : cette méthode peut-elle être utile pour former l'IA ?
Source : habr.com
