A periódusos rendszer az iskolai informatikában

(Irányító táblák)
(Az Elemi Vegyületek Nemzetközi Évének szentelve)
(A legutolsó kiegészítések 2019. április 8-án történtek. A kiegészítések listája közvetlenül a cikk alatt található)

A periódusos rendszer az iskolai informatikában
(Mendelejev virágja, Forrás)

Emlékszem, hogy átvettük a kacsát. Ez három órát ölelt fel: földrajz, természettudomány és orosz. A természettudomány óráján a kacsát mint kacsát tanulmányoztuk: milyen a szárnya, milyen a lába, hogyan úszik és így tovább. A földrajz óráján ugyanazt a kacsát a Föld lakójaként tanulmányoztuk: meg kellett mutatni a térképen, hol él és hol nem. Az orosz órán Szerafim Pjotrovna megtanított minket írni „k-ac-k-a” és olvasott valamit a kacsákról Bremtől. Mellesleg közölte velünk, hogy németül a kacsa így, franciául pedig úgy van. Úgy tűnik, ezt akkor „komplex módszernek” hívták. Abban az értelemben a tananyag minden részletesen „mellesleg” ment.

Venyamin Kavyerin, Két kapitány

A fent idézett részletben Venyamin Kavyerin mesterien mutatta be a komplex tanítási módszer hiányosságait, ám bizonyos (talán elég ritka) esetekben ennek a módszernek az elemei indokoltak lehetnek. Az egyik ilyen eset a D.I. Mendelejev periódusos rendszere az iskolai informatikában. A Mendelejev táblázattal kapcsolatos tipikus feladatok programozásának látványos, a kémiát kezdő diákok számára megfelelő megközelítése és sok tipikus kémiai feladatra bontható. Ugyanakkor az informatika keretein belül ez a feladat egyszerű módon mutatja be az irányító táblákat, amelyek széles értelemben véve grafikus programozásnak tekinthetők, amely grafikus elemek segítségével történik.

(A kiegészítések 2019. április 8-án készültek:
1. kiegészítés: hogyan működik a kémiai kalkulátor
2. kiegészítés: példák a szűrők feladataira)

Kezdjük az alapfeladattal. A legegyszerűbb esetben a képernyőn egy ablak formájában meg kell jelenjen a periódusos rendszer, ahol minden egyes cellában a vegyi elem kémiai jele található: H - hidrogén, He - hélium stb. Ha az egér kurzora egy cellára mutat, egy külön mezőben a formában megjelenik az elem jele és a száma. Ha a felhasználó ezután rákattint az egér bal gombjával, akkor egy másik mezőben a kiválasztott elem jelét és számát tüntetjük fel.

A periódusos rendszer az iskolai informatikában

A feladat bármilyen általános programozási nyelven megoldható. Mi a régi Delphi-7-et fogjuk használni, amely szinte mindenki számára érthető. De mielőtt programozni kezdenénk a programozási nyelven, készítünk két képet, például Photoshopban. Először megrajzoljuk a periódusos táblázatot olyan formában, ahogy azt a programban látni szeretnénk. A készített képet egy grafikai fájlban elmentjük. table01.bmp.

A periódusos rendszer az iskolai informatikában

A második képhez felhasználjuk az elsőt. Sorra feltöltjük a grafikától megtisztított táblázat celláit egyedi színekkel az RGB színmodellben. Az R és G mindig 0 lesz, míg a B=1 a hidrogénnek, 2 a héliumnak stb. Ez a kép lesz a vezérlő térképünk, amit a következő néven mentünk el: table2.bmp.

A periódusos rendszer az iskolai informatikában

A Photoshopban történő grafikus programozás első szakasza befejeződött. Térjünk át a GUI grafikus programozásra a Delphi-7 IDE-ben. Ehhez megnyitunk egy új projektet, ahol a fő formára elhelyezünk egy gombot a dialógus megnyitásához (tableDlg), amelyben a táblázattal fogunk dolgozni. Ezután a formával dolgozunk. tableDlg.

Elhelyezünk a formán egy TImageosztályú komponenst. Ezt nevezzük Image1. Megjegyezzük, hogy általában nagyobb projektek esetén az automatikusan generált nevek, mint például ImageN, ahol N , elérhetik a több tucatot is — ez nem a legjobb programozási stílus, és érdemes értelmesebb neveket adni. De a mi kis projektünkben, ahol N nem lesz több mint 2, így hagyhatjuk, ahogy generálta.

A Image1.Picture tulajdonságba betöltjük a fájlt. table01.bmp. Létrehozunk egy Image2 -t, és betöltjük oda a vezérlő térképünket. table2.bmpEkkor a fájlt kicsire és a felhasználó számára láthatatlanra állítjuk, ahogy az a forma bal alsó sarkában látható. További vezérlőelemeket adunk hozzá, amelyek célja nyilvánvaló. A GUI grafikus programozás második szakasza a Delphi-7 IDE-ben befejeződött.

A periódusos rendszer az iskolai informatikában

Lépjünk a harmadik szakaszra — a kód írására a Delphi-7 IDE-ben. A modul mindössze öt eseménykezelőből áll: a forma létrehozása (FormCreate), az egér mozgatása ( Image1 (Image1MouseMove), a bal egérgomb kattintása egy cellára (Image1Click) és a kilépés a dialógusból az OK (OKBtnClick) vagy a Mégse (CancelBtnClick) gombokkal. Ezeknek az eseménykezelőknek a címei a szokásos módon generálódnak az IDE segítségével.

A modul forráskódja:

unit tableUnit;
// A periódusos rendszer D.I. Mendelejev kémiai elemeiről
//
// third112
// https://habr.com/ru/users/third112/
//
// Tartalomjegyzék
// 1) űrlap létrehozása
// 2) a táblázattal való munka: megadás és választás
// 3) kilépés a párbeszédből

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, 
  Buttons, ExtCtrls;

const
 size = 104; // az elemek száma
 
type
 TtableDlg = class(TForm)
    OKBtn: TButton;
    CancelBtn: TButton;
    Bevel1: TBevel;
    Image1: TImage;  // a kémiai elemek táblázata
    Label1: TLabel;
    Image2: TImage;  // vezérlő térkép
    Label2: TLabel;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject); // űrlap létrehozása
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);                        // cella megadása
    procedure Image1Click(Sender: TObject); // cella választása
    procedure OKBtnClick(Sender: TObject);  // OK
    procedure CancelBtnClick(Sender: TObject); // Mégse
  private
    { Private declarations }
    TableSymbols : array [1..size] of string [2]; // az elemek jelöléseinek tömbje
  public
    { Public declarations }
    selectedElement : string; // kiválasztott elem
    currNo : integer;         // aktuális elem száma
  end;

var
  tableDlg: TtableDlg;

implementation

{$R *.dfm}

const
PeriodicTableStr1=
'HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLa';
PeriodicTableStr2='CePrNdPmSmEuGdTbDyHoErTmYbLu';
PeriodicTableStr3='HfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAc';
PeriodicTableStr4='ThPaUNpPuAmCmBkCfEsFmMdNoLrKu ';

// űrlap létrehozása  ==================================================

procedure TtableDlg.FormCreate(Sender: TObject);
// űrlap létrehozása
var
  s : string;
  i,j : integer;
begin
  currNo := 0;
// a jelölések tömb inicializálása:
  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 ____________________________________________________

// a táblázattal való munka: megadás és választás =========================================

procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
// cella megadása
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 := 'Elem kiválasztása:';
end; // Image1MouseMove   ____________________________________________________

procedure TtableDlg.Image1Click(Sender: TObject);
begin
  if currNo  0 then
   begin
    selectedElement := TableSymbols [currNo];
    Label2.Caption := intToStr (currNo)+ ' '+selectedElement+ ' kiválasztva';
    Edit1.Text := selectedElement;
   end;
end; // Image1Click  ____________________________________________________

// kilépés a párbeszédből  ==================================================

procedure TtableDlg.OKBtnClick(Sender: TObject);
begin
    selectedElement := Edit1.Text;
    hide;
end;  // OKBtnClick ____________________________________________________

procedure TtableDlg.CancelBtnClick(Sender: TObject);
begin
  hide;
end;  // CancelBtnClick ____________________________________________________

end.

A verziónkban egy 104 elemű táblázatot vettünk alapul (konstans méret). Nyilvánvaló, hogy ez a méret növelhető. Az elemek jelölései (kémiai szimbólumok) egy tömbben vannak rögzítve, TableSymbols. Azonban a forráskód tömörsége érdekében célszerű ezeket a jelöléseket karakterlánc konstansok formájában rögzíteni, PeriodicTableStr1,…, PeriodicTableStr4, hogy a formák létrehozásakor a program maga osztja el ezeket a jelöléseket a tömb elemei között. Minden elem jelölése egy vagy két latin betűből áll, ahol az első betű nagybetűs, a második (ha van) pedig kisbetűs. Ez az egyszerű szabály a tömb betöltésekor valósul meg. Így a jelölések sorozata tömör módon, szóközök nélkül rögzíthető. A sorozat négy részre bontása (konstansok, PeriodicTableStr1,…, PeriodicTableStr4) a forráskód olvashatóságának kényelmére alapozva történik, mivel túl hosszú karakterlánc nem férhet el teljes egészében a képernyőn.

Az egérkurzor mozgásának eseményénél, Image1 az esemény kezelője Image1MouseMove meghatározza a vezérlőtér pixelének kék színkomponensének értékét Image2 a kurzor aktuális koordinátáihoz. Logikailag Image2 ez az érték egyenlő az elemszámmal, ha a kurzor a cellán belül van; nullával, ha a határon, és 255 más esetekben. A program által végzett további műveletek triviálisak és nem igényelnek magyarázatot.

A fent említett programozási stíluselemek mellett érdemes megjegyezni a megjegyzésstílust. Szigorúan véve, a vizsgált kód olyan kicsi és egyszerű, hogy a megjegyzések nem feltétlenül szükségesek. Azonban a módszertani szempontok miatt is hozzá lettek adva – a rövid kód néhány általános következtetést áttekinthetővé tesz. A bemutatott kódban egy osztályt deklaráltak (TtableDlg). Az osztály módszereit áthelyezhetjük, és ez nem befolyásolja a program működését, de hatással lehet az olvashatóságára. Például, vegyük a következő sorrendet:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Talán nem feltűnő, de olvasni és megérteni egy kicsit nehézkesebb lesz. Ha a módszerek nem öt, hanem tízszer többen vannak, és az implementációs szakaszban, implementation Teljesen más sorrendben következnek, mint a klasszifikációk leírásaiban, így a káosz csak nőni fog. Ezért, bár nehéz szigorúan bizonyítani, sőt talán lehetetlen is, de bízhatunk abban, hogy a további rend megteremtése javítja a kód olvashatóságát. Ennek a további rendnek a kialakításában logikai csoportosítás segíthet, több, hasonló feladatot végző metódust összevonva. Minden csoportnak érdemes egy címet adni, például:

// работа с таблицей: указание и выбор

Ezeket a címeket érdemes átmásolni a modul elejére és tartalomjegyzékként formázni. Néhány esetben, hosszú modultípusoknál, az ilyen tartalomjegyzékek további lehetőségeket kínálnak a navigációra. Hasonlóképpen a hosszú egy metódus, eljárás vagy függvény törzsében érdemes először jelölni a törzs végét:

end; // FormCreate

másrészt, elágazó operátoroknál programozási kapcsokkal a begin – end vegyük és jelöljük azt az operátort, amelyhez a záró kapcsosjel tartozik:

      end; // if s [j] in
   end; // for i :=1
end; // FormCreate

A csoportok címeinek és a metódusok törzseinek a végének kiemelésére be lehet iktatni olyan sorokat, amelyek meghaladják a legtöbb operátor hosszát, és például az „=” és „_” karakterekből állnak.
Ismét meg kell jegyezni: ez egy túl egyszerű példa. Amikor a metódus kódja nem fér el egy képernyőnyin, a hat egymás után következő end között nehéz eligibilálni a kód módosítását. Néhány régi fordítóban, például a Pascal 8000 a IBM 360/370 OS számára a listában balról egy szolgáltatási oszlopot nyomtattak ki, mint például

B5
…
E5

Ez azt jelentette, hogy az E5-ön lévő záró programozási kapcsosjel a B5-ön lévő nyitó kapcsosjelnek felel meg.

Természetesen a programozási stílus nagyon ellentmondásos kérdés, ezért a itt megfogalmazott ötleteket nem szabad másnak tekinteni, mint gondolkodásra ösztönző információnak. Két tapasztalt programozónak, akiknek az évek során eltérő stílusai alakultak ki és váltak megszokottá, nagyon nehéz megállapodni. Más dolog egy programozni tanuló diák, akinek még nem volt ideje kialakítani a saját stílusát. Úgy gondolom, hogy ebben az esetben a tanárnak legalább azt a szimpla, ám számukra nem nyilvánvaló gondolatot kell átadnia, hogy a program sikeressége nagymértékben függ attól a stílustól, amelyben a forráskódját írták. A diák nem feltétlenül követi majd a javasolt stílust, de legalább gondolkodjon el a forráskód megjelenésének javításához „felesleges” lépések szükségességéről.

Visszatérve az alapfeladatunkhoz a Periodikus Táblázat kapcsán: a további fejlődés különböző irányokba haladhat. Az egyik irány a tájékoztató: ha az egérkurzort a táblázat cellájára helyezzük, információs ablak ugrik fel, amely további adatokat tartalmaz az adott elemről. A további fejlődés a szűrők lesznek. Például az információs ablak beállításától függően csak a legfontosabb fizikai-kémiai adatokat, a felfedezés történetét, a természetben való előfordulást, a legfontosabb vegyületek listáját (amelyek tartalmazzák az adott elemet), élettani tulajdonságokat, a nevét idegen nyelven, stb. említhetjük. Emlékezve Kaverin „kacsa” hasonlatára, amellyel ez a cikk kezdődik, azt mondhatjuk, hogy ilyen fejlődéssel egy teljes oktatási komplexumot kapunk a természettudományok terén: a számítástechnika, fizika és kémia mellett — biológia, gazdasági földrajz, a tudomány története és még idegen nyelvek is.

De a helyi adatbázis nem a határ. A program természetes módon csatlakozik az Internethez. Amikor egy elemet választunk, egy hivatkozás lép életbe, és a webböngésző ablakában megnyílik egy Wikipédia cikk az adott elemről. Mint tudjuk, a Wikipédia nem tekinthető autoritásnak. Hivatkozásokat lehet megadni megbízható forrásokra, például kémiai enciklopédiákra, a Nagy Szovjet Enciklopédiára, referáló folyóiratokra, keresőmotorokkal kapcsolatos lekérdezéseket lehet rendelni az adott elemről, stb. Így a diákok egyszerű, de tartalmas feladatokat tudnak végezni az adatbázis-kezelő rendszerek és az Internet témáiban.

A külön elemre vonatkozó kérdések mellett lehet olyan funkciót is kialakítani, amely például különböző színekkel jelöli a táblázat celláit, amelyek megfelelnek bizonyos kritériumoknak. Például a fémek és nem fémek. Vagy a cellákat, amelyeket a helyi vegyi üzem önt a vízfolyásokba.

Lehetőség van olyan függvények megvalósítására is, mint egy jegyzetfüzet-naptár. Például kiemelni a táblázatban azokat az elemeket, amelyek szerepelnek a vizsgán. Aztán kiemelni azokat az elemeket, amelyeket a tanuló a vizsgára való felkészülés során tanulmányozott/átismételt.

Íme például az iskolai kémia egyik tipikus feladata:

Adott 10 g kréta. Mennyi sósavat kell venni ahhoz, hogy teljesen feloldjuk ezt a krétát?

A feladat megoldásához fel kell írni a kémiai reakciót és beállítani a benne lévő együtthatókat, majd ki kell számítani a kalcium-karbonát és a sósav molekuláris tömegét, ezután készíteni és megoldani kell egy arányosságot. A számítást és a megoldást a kalkulátorunk a alapprogramunk alapján elvégzi. Igaz, még figyelembe kell venni, hogy a savat ésszerű többlettel és ésszerű koncentrációval kell venni, de ez már kémia, nem informatika.
1. kiegészítés: hogyan működik a kémiai kalkulátorEgy példán keresztül nézzük meg a kalkulátor működését a fent említett kréta és „sósav” feladat példáján. Kezdjük a reakcióval:

CaCO3 + 2HCl = CaCl2 + H2O

Itt látjuk, hogy szükségünk lesz a következő elemek atomtömegeire: kalcium (Ca), szén (C), oxigén (O), hidrogén (H) és klór (Cl). A legegyszerűbb esetben ezeket a tömegeket egy dimenziós tömbbe írhatjuk, amelyet így definiálunk:

AtomicMass : array [1..size] of real;

ahol a tömb indexe az elem számát jelöli. A űrlap szabad területére tableDlg két mezőt helyezünk el. Az első mezőbe kezdetben beírva áll: „Első reagens adott”, a második mezőbe pedig – „Második reagens x keresése”. Jelöljük meg a mezőket reagent1, reagent2 megfelelően. A program további kiegészítései a következő kalkulátor példából lesznek világosak.

A számítógép billentyűzetén beütjük: 10 g. Az üzenet a mezőben reagent1 megváltozik: „Első reagens adott 10 g”. Most beírjuk ennek a reagensnek a formuláját, a kalkulátor pedig számolja és mutatja a molekuláris tömegét a beírás folyamán.

Kattintsunk bal gombbal a táblázat egy Ca szimbólumú cellájára. Az üzenet a mezőben reagent1 megváltozik: „Első reagens Ca 40.078 adott 10 g.”

Kattintsunk bal gombbal a táblázat egy C szimbólumú cellájára. Az üzenet a mezőben reagent1 megváltozik: „Első reagens CaC 52.089 adott 10 g.” Tehát a kalkulátor összeadta a kalcium és a szén atomtömegeit.

Kattintson a táblázat cellájára, amely az O szimbólumot tartalmazza. A mezőben lévő szöveg reagent1 megváltozik: „Első reagens CaCO 68.088, megadva 10 g”. A kalkulátor hozzáadta az oxigén atomtömegét az összeghez.

Kattintson a táblázat cellájára, amely az O szimbólumot tartalmazza. A mezőben lévő szöveg reagent1 megváltozik: „Első reagens CaCO2 84.087, megadva 10 g”. A kalkulátor újra hozzáadta az oxigén atomtömegét az összeghez.

Kattintson a táblázat cellájára, amely az O szimbólumot tartalmazza. A mezőben lévő szöveg reagent1 megváltozik: „Első reagens CaCO3 100.086, megadva 10 g”. A kalkulátor ismét hozzáadta az oxigén atomtömegét az összeghez.

Nyomja meg az Entert a számítógép billentyűzetén. Az első reagens bevitele befejeződött, és átkerül a mezőre reagent2. Megjegyezzük, hogy ebben a példában a minimális verziót mutatjuk be. Szükség esetén könnyen szervezhetünk egy atomtípus többszöröseit, így például nem kell egymás után hétszer rákattintani az oxigén cellájára a króm-nyersanyag (K2Cr2O7) képletének megadásakor.

Kattintson a táblázat cellájára, amely az H szimbólumot tartalmazza. A mezőben lévő szöveg reagent2 megváltozik: „Második reagens H 1.008 keresse meg x-et.”

Kattintson a táblázat cellájára, amely a Cl szimbólumot tartalmazza. A mezőben lévő szöveg reagent2 megváltozik: „Második reagens HCl 36.458 keresse meg x-et.” A kalkulátor összeadta a hidrogén és a klór atomtömegeit. A fenti reakcióegyenletben a sósav előtt 2-es együttható áll. Ezért kattintson a mezőre reagent2. A molekulatömeg megduplázódik (dupla kattintás esetén megháromszorozódik stb.). A mezőben lévő szöveg reagent2 megváltozik: „Második reagens 2HCl 72.916 keresse meg x-et.”

Nyomja meg az Entert a számítógép billentyűzetén. A második reagens bevitele befejeződött, és a kalkulátor megtalálja x-et az arányból

A periódusos rendszer az iskolai informatikában

Amit kívántunk megtalálni.

Megjegyzés 1. A kapott arány jelentése: 100.086 Da gipsz feloldásához 72.916 Da savra van szükség, míg 10 g gipsz feloldásához x savra van szükség.

Megjegyzés 2. Hasonló feladatok gyűjteménye:

Homcsenko I. G., Vegyszeres feladatok és gyakorlatok gyűjteménye 2009 (8-11. osztály).
Homcsenko G. P., Homcsenko I. G., Vegyszeres feladatok gyűjteménye a felsőoktatásba készülők számára, 2019.

Megjegyzés 3. A feladat egyszerűsítése érdekében a kezdeti verzióban egyszerűsítheti a képlet bevitelét, és egyszerűen hozzáadhatja az elem szimbólumát a képlet végéhez. Így a kalcium-karbonát képlete a következőképpen fog kinézni:
CaCOOO
De egy ilyen felvétel valószínűleg nem tetszik a kémiatanárnak. A helyes írásmód könnyen megvalósítható — ehhez egy tömböt kell hozzáadnia:

formula : array [1..size] of integer;

ahol az index a kémiai elem száma, a hozzá tartozó érték pedig az atomok mennyisége (kezdetben minden tömb elem nullázódik). Figyelembe kell venni az atomok képleten belüli sorrendjét, amelyet a kémiában használnak. Például az O3CaC sem sokak tetszését nyeri. Átadjuk a felelősséget a felhasználónak. Létrehozunk egy tömböt:

 formulaOrder : array [1..size] of integer; // rövidebbet is írhatunk

ahol az atom kielégítésének száma kerül beírásra, a képleten való megjelenésének indexe szerint. Atom hozzáadása currNo a képlethez:

if formula [currNo]=0 then // ez az atom először jelent meg
 begin
 orderIndex := orderIndex+1; // a képlet bevitelének kezdetén orderIndex=0
 formulaOrder [orderIndex] :=  currNo;
 end;
formula [currNo]:=formula [currNo]+1;

A képlet szövegbe írása:

s := ''; // üres sor a képlet számára
for i:=1 to  orderIndex do // minden kémiai szimbólumra a képletben 
 begin
 s:=s+TableSymbols [ formulaOrder[i]]; // kémiai szimbólum hozzáadása
 if formula [formulaOrder[i]]1 then // a atomok számának hozzáadása
  s:=s+ intToStr(formula [formulaOrder[i]]);
 end;

Megjegyzés 4. Érdemes lehet alternatív beviteli lehetőséget biztosítani a reagens képletének beírására a billentyűzettel. Ebben az esetben egy egyszerű szintaktikai elemzőt kell megvalósítani.

Fontos megjegyezni, hogy:

Ma több száz változata létezik a táblázatnak, és a tudósok folyamatosan újabb verziókat javasolnak. (Wikipedia)

A diákok is megmutathatják leleményességüket ebben az irányban, megvalósítva valamelyik már javasolt változatot, vagy próbálva elkészíteni a saját eredeti megoldásukat. Első látásra úgy tűnhet, hogy ez a számítástechnikai órákhoz a legkevésbé hasznos irány. Azonban a cikkben bemutatott periódusos rendszer formája esetében egyes diákok nem érzékelhetik a kezelőfelületek előnyeit a szabvány gombok alternatív megoldásaival szemben. TButton. A spirális táblázatforma (ahol a cellák különböző formájúak) jobban bemutatja a javasolt megoldás előnyeit.

A periódusos rendszer az iskolai informatikában
(Teodór Benfé alternatív elemrendszere, Forrás)

Hozzátesszük, hogy a Periodikus Táblázatról beszámoló számítógépes programok egy soráról nemrégiben közzétett írás jelent meg a Habr-on. a Spotify döntéshozatali módszertanáról. Egyre több felhasználó preferálja a zenehallgatást mobilon a streaming szolgáltatásban, de a cégnél túlnyomórészt webprogramozók dolgoznak. A Spotify elemezte ezt a helyzetet, és úgy döntött, hogy több mobilfejlesztőt vesz fel, valamint átnevezi a webes szakembereket új irányba:.

Kiegészítés 2: szűrők példafeladataiA szűrők segítségével például ilyen feladatokat lehet megoldani:

1) A táblázatban kiemelni az összes elemet, amelyek a középkorban ismertek.

2) Kiemelni az összes elemet, amely a Periodikus Törvény felfedezésekor ismert volt.

3) Határozzuk meg azokat az elemeket, amelyeket az alkimisták fémeknek tartottak.

4) Határozzuk meg az összes olyan elemet, amelyek gáznemű állapotban vannak normál körülmények között (nk.).

5) Határozzuk meg az összes olyan elemet, amelyek folyékony állapotban vannak nk. körülmények között.

6) Határozzuk meg az összes olyan elemet, amelyek szilárd állapotban vannak nk. körülmények között.

7) Határozzuk meg az összes olyan elemet, amelyek hosszabb ideig a levegőben maradhatnak és nem mutatnak észlelhető változásokat nk. körülmények között.

8) Határozzuk meg az összes fémek, amelyek oldódnak sósavban.

9) Határozzuk meg az összes fémek, amelyek oldódnak kénsavban nk. körülmények között.

10) Határozzuk meg az összes fémek, amelyek oldódnak kénsavban hevítés során.

11) Határozzuk meg az összes fémek, amelyek oldódnak nitrogénsavban.

12) Határozzuk meg az összes fémek, amelyek hevesen reagálnak vízzel nk. körülmények között.

13) Határozzuk meg az összes fémet.

14) Határozzuk meg azokat az elemeket, amelyek széles körben előfordulnak a természetben.

15) Határozzuk meg azokat az elemeket, amelyek természetes állapotban találhatóak.

16) Határozzuk meg azokat az elemeket, amelyek kulcsszerepet játszanak az emberi és állati szervezetben.

17) Határozzuk meg azokat az elemeket, amelyeket széles körben használnak a mindennapi életben (szabad állapotban vagy vegyületekben).

18) Határozzuk meg azokat az elemeket, amelyekkel való munka a legveszélyesebb, és különleges intézkedéseket és védőeszközöket igényel.

19) Határozzuk meg azokat az elemeket, amelyek szabad állapotban vagy vegyületek formájában a legnagyobb veszélyt jelentik az ökológiára.

20) Határozzuk meg az értékes fémeket.

21) Határozzuk meg azokat az elemeket, amelyek drágábbak, mint az értékes fémek.

Megjegyzések

1) Érdemes több szűrőt megvalósítani. Például, ha bekapcsoljuk az 1. (minden elem, amely a középkorban ismert volt) és a 20. (értékes fémek) feladat szűrőjét, akkor kiemelésre kerülnek (például színnel) azok a sejtek, amelyek az értékes fémek a középkorban ismertek (például a palládium, amelyet 1803-ban fedeztek fel, nem kerül kiemelésre).

2) Érdemes biztosítani, hogy több szűrő működjön úgy, hogy minden szűrő más színnel kiemelje a sejtek egyes részeit, de ne törölje el teljesen a másik szűrő kiemelését (a sejt egy része egy színnel, a másik része egy másikkal). Ennek megfelelően a korábban említett példában láthatóak lesznek a középkorban nyilvánvalóan ismert és a nemesfémek elemei, valamint azok az elemek, amelyek csupán az első és csupán a második halmazhoz tartoznak. Azaz a középkorban ismeretlen nemesfémek és a középkorban ismert, de nem nemesfémek.

3) Érdemes a szűrő alkalmazása után lehetőséget biztosítani egyéb műveletekre a kapott eredményekkel. Például, miután a felhasználó kiemelte a középkorban ismert elemeket, bal kattintással rákattint a kiemelt elemre, és átkerül a Wikipédiára erről az elemről.

4) Érdemes lehetőséget biztosítani a felhasználónak, hogy bal kattintással eltávolítsa a kiemelést a táblázatban kijelölt celláról. Például, hogy eltávolítsa a már megtekintett elemeket.

5) Érdemes biztosítani a kiemelt cellák listájának fájlba mentését és egy ilyen fájl betöltését, amely automatikusan kiemeli a cellákat. Ez lehetővé teszi a felhasználó számára, hogy szünetet tartson a munkában.

Statikus előre meghatározott vezérlőtérképet használtunk, azonban sok fontos feladat létezik, ahol dinamikus vezérlőtérképek használhatók, amelyek a program futása során változnak. Például egy gráf szerkesztőben, ahol a felhasználó az egérrel megjelöli a csúcsok helyét az ablakban, és éleket rajzol köztük. A csúcs vagy él eltávolításához a felhasználónak meg kell mutatnia azt. De ha egy körrel megjelölt csúcsra elég könnyű rákattintani, akkor egy vékony vonallal kirajzolt élre ugyanez már nehezebb. Itt segít a vezérlőtérkép, ahol a csúcsok és élek szélesebb teret foglalnak el, mint ami a látható ábrán látható.

A komplex tanulásra vonatkozó módszerhez kapcsolódik egy érdekes mellékkérdés: hasznos lehet-e ez a módszer az MI képzésében?

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster