Perioda tabelo pri lerneja komputiko

(Kontrokartoj)
(Dediĉita al la Internacia Jaro de la Perioda Tabelo de Kemiaj Elementoj)
(La plej novaj aldonoj estis faritaj la 8-an de aprilo 2019. La listo de aldonoj estas tuj sub la tranĉo)

Perioda tabelo pri lerneja komputiko
(La floro de Mendelejev, Fonto)

Mi memoras, ke ni preterpasis la anason. Tio estis tri lecionoj samtempe: geografio, naturscienco kaj rusa. En scienca leciono oni studis anason kiel anason, kiajn flugilojn ĝi havas, kiajn krurojn ĝi havas, kiel ĝi naĝas, ktp. En geografia leciono, la sama anaso estis studita kiel loĝanto de la terglobo: necesis montri sur mapo kie ĝi loĝas kaj kie ĝi ne. Ruse Serafima Petrovna instruis nin skribi “u-t-k-a” kaj legi ion pri anasoj el Brem. Pasinte ŝi informis nin, ke en la germana anaso estas tia, kaj en la franca tia. Mi pensas, ke ĝi estis nomita la "kompleksa metodo" tiam. Ĝenerale ĉio aperis "pase".

Veniamin Kaverin, Du kapitanoj

En la supra citaĵo, Veniamin Kaverin majstre montris la mankojn de la kompleksa instrumetodo, tamen en iuj (eble sufiĉe maloftaj) kazoj elementoj de ĉi tiu metodo estas pravigitaj. Unu tia kazo estas la perioda tabelo de D.I. Mendelejev en lernejaj komputikaj lecionoj. La tasko de programaro aŭtomatigo de tipaj agoj kun la perioda tabelo estas klara por lernejanoj, kiuj komencis studi kemion, kaj estas dividita en multaj tipaj kemiaj taskoj. Samtempe, en la kadro de la komputiko, ĉi tiu tasko permesas al ni pruvi en simpla formo la metodon de regkartoj, kiu povas esti atribuita al grafika programado, komprenata en la larĝa senco de la vorto kiel programado per grafikaj elementoj.

(Aldonoj la 8-an de aprilo 2019 faris:
Aldono 1: Kiel la Kemia Kalkulilo Funkcias
Apendico 2: ekzemploj de taskoj por filtriloj)

Ni komencu per la baza tasko. En la plej simpla kazo, la perioda tabelo devas esti montrita sur la ekrano en fenestra formo, kie en ĉiu ĉelo estos kemia nomo de la elemento: H - hidrogeno, He - heliumo, ktp. Se la muskursoro montras al ĉelo, tiam la nomo de la elemento kaj ĝia numero estas montrataj en speciala kampo en nia formularo. Se la uzanto premas LMB, tiam la nomo kaj nombro de ĉi tiu elektita elemento estos indikitaj en alia kampo de la formo.

Perioda tabelo pri lerneja komputiko

La problemo povas esti solvita per iu ajn universala lingvo. Ni prenos la simplan malnovan Delpi-7, kiu estas komprenebla por preskaŭ ĉiuj. Sed antaŭ programado en PL, ni desegnu du bildojn, ekzemple, en Photoshop. Unue, ni desegnu la Periodan Tabelon en la formo, kiun ni volas vidi ĝin en la programo. Konservu la rezulton en grafika dosiero tablo01.bmp.

Perioda tabelo pri lerneja komputiko

Por la dua desegno ni uzas la unuan. Ni sinsekve plenigos la tabelajn ĉelojn, purigitajn de ĉiuj grafikaĵoj, per unikaj koloroj en la RGB-kolora modelo. R kaj G ĉiam estos 0, kaj B=1 por hidrogeno, 2 por heliumo, ktp. Ĉi tiu desegnaĵo estos nia kontrolkarto, kiun ni konservos en dosiero nomata. tablo2.bmp.

Perioda tabelo pri lerneja komputiko

La unua etapo de grafika programado en Photoshop estas finita. Ni pluiru al grafika GUI-programado en la Delpi-7 IDE. Por fari tion, malfermu novan projekton, kie en la ĉefa formo ni metas dialogbutonon (tabloDlg), en kiu laboros kun la tablo. Poste ni laboras kun la formo tabloDlg.

Metu klaskomponenton sur la formularon TBildo... Ni ricevas Image1. Notu, ke ĝenerale, por grandaj projektoj, aŭtomate generitaj nomoj de la formo BildoNkie N povas atingi kelkajn dekojn aŭ pli - tio ne estas la plej bona programstilo, kaj pli signifaj nomoj devus esti donitaj. Sed en nia eta projekto, kie N ne superos 2, vi povas lasi ĝin kiel generita.

Al proprieto Bildo1.Bildo alŝutu la dosieron tablo01.bmp. Ni kreas Image2 kaj ŝarĝu nian kontrolkarton tie tablo2.bmp. En ĉi tiu kazo, ni faras la dosieron malgranda kaj nevidebla por la uzanto, kiel montrite en la malsupra maldekstra angulo de la formularo. Ni aldonas pliajn kontrolelementojn, kies celo estas evidenta. La dua etapo de grafika GUI-programado en la Delpi-7 IDE estas finita.

Perioda tabelo pri lerneja komputiko

Ni transiru al la tria etapo - skribi kodon en la Delpi-7 IDE. La modulo konsistas el nur kvin okazaĵtraktiloj: kreado de formularoj (FormCreate), kursora movo Image1 (Bildo1MouseMove), alklakante LMB sur ĉelo (Bildo1Klaku) kaj eliru la dialogon per la OK butonoj (OKBtnKlaku) aŭ Nuligi (NuligiBtnKlaku). La kaplinioj de ĉi tiuj pritraktiloj estas generitaj laŭ norma maniero uzante la IDE.

Modula fontkodo:

unit tableUnit;
// Периодическая таблица химических элементов Д.И.Менделеева
//
// third112
// https://habr.com/ru/users/third112/
//
// Оглавление
// 1) создание формы
// 2) работа с таблицей: указание и выбор
// 3) выход из диалога

interface

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

const
 size = 104; // число элементов
 
type
 TtableDlg = class(TForm)
    OKBtn: TButton;
    CancelBtn: TButton;
    Bevel1: TBevel;
    Image1: TImage;  //таблица химических элементов
    Label1: TLabel;
    Image2: TImage;  //управляющая карта
    Label2: TLabel;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject); // создание формы
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);                        // указание клетки
    procedure Image1Click(Sender: TObject); // выбор клетки
    procedure OKBtnClick(Sender: TObject);  // OK
    procedure CancelBtnClick(Sender: TObject); // Cancel
  private
    { Private declarations }
    TableSymbols : array [1..size] of string [2]; // массив обозначений элементов
  public
    { Public declarations }
    selectedElement : string; // выбранный элемент
    currNo : integer;         // текущий номер элемента
  end;

var
  tableDlg: TtableDlg;

implementation

{$R *.dfm}

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

// создание формы  ==================================================

procedure TtableDlg.FormCreate(Sender: TObject);
// создание формы
var
  s : string;
  i,j : integer;
begin
  currNo := 0;
// инициализация массива обозначений элементов:
  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 ____________________________________________________

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

procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
// указание клетки
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 := 'Select element:';
end; // Image1MouseMove   ____________________________________________________

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

// выход из диалога  ==================================================

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

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

end.

En nia versio, ni prenis tabelon de 104 elementoj (konstanto grandeco). Evidente ĉi tiu grandeco povas esti pligrandigita. Elementaj nomoj (kemiaj simboloj) estas skribitaj al tabelo TabloSimboloj. Tamen, pro kaŭzoj de kompakteco de la fontkodo, ŝajnas konsilinde skribi la sinsekvon de ĉi tiuj notacioj en formo de kordaj konstantoj. PeriodicTableStr1..., PeriodicTableStr4tiel ke kiam la formo estas kreita, la programo mem disĵetas ĉi tiujn nomojn inter la elementoj de la tabelo. Ĉiu elementnomo konsistas el unu aŭ du latinaj literoj, kie la unua litero estas majuskla kaj la dua (se entute) minuskla. Ĉi tiu simpla regulo estas efektivigita dum ŝarĝo de tabelo. Tiel, la sinsekvo de notacioj povas esti skribita en konciza maniero sen spacoj. Rompi sekvencon en kvar partojn (konstanto PeriodicTableStr1..., PeriodicTableStr4) estas pro konsideroj de facileco legi la fontkodon, ĉar Tro longa linio eble ne tute taŭgas sur la ekrano.

Kiam la muskursoro moviĝas super la Image1 prizorganto Bildo1MouseMove ĉi tiu evento determinas la valoron de la blua kolorkomponento de la kontrolkarto-pikselo Image2 por la nunaj kursorkoordinatoj. Per konstruo Image2 ĉi tiu valoro estas egala al la elemento nombro se la kursoro estas ene de la ĉelo; nulo se sur la limo, kaj 255 en aliaj kazoj. La ceteraj agoj faritaj de la programo estas bagatelaj kaj ne postulas klarigon.

Krom la stilaj programaj teknikoj supre notitaj, indas noti la komentan stilon. Strikte parolante, la priparolata kodo estas tiel malgranda kaj simpla, ke komentoj ne ŝajnas precipe necesaj. Tamen ili estis aldonitaj ankaŭ pro metodikaj kialoj - la mallonga kodo ebligas al ni fari kelkajn ĝeneralajn konkludojn pli klare. En la prezentita kodo unu klaso estas deklarita (TtableDlg). Metodoj de ĉi tiu klaso povas esti interŝanĝitaj kaj tio neniel influos la funkciadon de la programo, sed eble influos ĝian legeblecon. Ekzemple, imagu la sinsekvon:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Ĝi eble ne estas tre rimarkebla, sed ĝi fariĝos iom pli malfacile legebla kaj komprenebla. Se estas ne kvin, sed dekoble pli da metodoj en la sekcio efektivigo ili havas tute alian ordon ol en la klaspriskriboj, tiam la kaoso nur pliiĝos. Tial, kvankam estas malfacile strikte pruvi kaj eble eĉ neeblas, oni povas esperi, ke enkonduko de plia ordon plibonigos la legeblecon de la kodo. Ĉi tiu aldona ordo faciligas per la logika grupiĝo de pluraj metodoj, kiuj plenumas rilatajn taskojn. Ĉiu grupo devus ricevi titolon, ekzemple:

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

Ĉi tiuj rubrikoj estu kopiitaj al la komenco de la modulo kaj formatitaj kiel enhavtabelo. En iuj kazoj de sufiĉe longaj moduloj, tiaj enhavtabeloj provizas pliajn navigadajn opciojn. Simile, en la longa korpo de unu metodo, proceduro aŭ funkcio, indas unue marki la finon de ĉi tiu korpo:

end; // FormCreate

kaj, due, en branĉitaj deklaroj kun programa krampoj komenci - fino, marku la deklaron al kiu la ferma krampo rilatas:

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

Por reliefigi grupajn kapliniojn kaj la finaĵojn de metodokorpoj, vi povas aldoni liniojn, kiuj estas pli longaj ol la plej multaj deklaroj kaj konsistas, ekzemple, el la signoj "=" kaj "_", respektive.
Denove, ni devas fari rezervon: nia ekzemplo estas tro simpla. Kaj kiam la kodo de metodo ne taŭgas sur unu ekrano, povas esti malfacile kompreni ses sinsekvajn finojn por fari kodŝanĝojn. En kelkaj malnovaj kompililoj, ekzemple, Pascal 8000 por OS IBM 360/370, servokolumno kiel ĉi tiu estis presita maldekstre en la listo.

B5
…
E5

Tio signifis, ke la ferma krampo sur linio E5 egalrilatis al la malferma krampo sur linio B5.

Kompreneble, programstilo estas tre polemika afero, do la ideoj ĉi tie esprimitaj devus esti konsiderataj kiel nenio alia ol pripensinda. Povas esti tre malfacile por du sufiĉe spertaj programistoj, kiuj disvolviĝis kaj alkutimiĝis al malsamaj stiloj dum multaj jaroj da laboro, interkonsenti. Estas malsama afero por studento lernanta programi, kiu ankoraŭ ne havis tempon por trovi sian propran stilon. Mi pensas, ke ĉi-kaze la instruisto devus almenaŭ transdoni al siaj lernantoj tian simplan, sed ne evidentan ideon al ili, ke la sukceso de programo grandparte dependas de la stilo, en kiu ĝia fontkodo estas skribita. La studento eble ne sekvas la rekomenditan stilon, sed li almenaŭ pensu pri la bezono de "krom" agoj por plibonigi la dezajnon de la fontkodo.

Revenante al nia baza problemo pri la Perioda Tabelo: plua evoluo povas iri en malsamaj direktoj. Unu el la direktoj estas por referenco: kiam vi ŝvebas la muskursonon super tabelĉelo, aperas informfenestro enhavanta pliajn informojn pri la specifita elemento. Plia evoluo estas filtriloj. Ekzemple, depende de la instalado, la informa fenestro enhavos nur: la plej gravaj fizikaj kaj kemiaj informoj, informoj pri la historio de malkovro, informoj pri distribuo en la naturo, listo de la plej gravaj kunmetaĵoj (kiu inkluzivas ĉi tiun elementon), fiziologiaj ecoj, nomo en fremda lingvo, ktp e. Memorante la "anason" de Kaverin, per kiu ĉi tiu artikolo komenciĝas, ni povas diri, ke per ĉi tiu evoluo de la programo ni ricevos kompletan trejnan komplekson en la natursciencoj: krom komputilo. scienco, fiziko kaj kemio - biologio, ekonomia geografio, historio de scienco kaj eĉ fremdaj lingvoj.

Sed loka datumbazo ne estas la limo. La programo nature konektas al Interreto. Kiam vi elektas elementon, la ligilo estas aktivigita, kaj la Vikipedio-artikolo pri ĉi tiu elemento malfermiĝas en la fenestro de la TTT-legilo. Vikipedio, kiel vi scias, ne estas aŭtoritata fonto. Vi povas agordi ligilojn al aŭtoritataj fontoj, ekzemple, kemia enciklopedio, TSB, abstraktaj revuoj, mendi konsultojn en serĉiloj por ĉi tiu elemento, ktp. Tio. Studentoj povos plenumi simplajn sed signifajn taskojn pri DBMS kaj interretaj temoj.

Krom demandoj pri individua elemento, vi povas krei funkciojn, kiuj ekzemple markos ĉelojn en la tabelo, kiuj plenumas iujn kriteriojn kun malsamaj koloroj. Ekzemple, metaloj kaj nemetaloj. Aŭ ĉeloj kiuj estas forĵetitaj en akvokorpojn de loka kemia planto.

Vi ankaŭ povas efektivigi la funkciojn de kajera organizilo. Ekzemple, reliefigu en la tabelo la elementojn kiuj estas inkluzivitaj en la ekzameno. Poste reliefigu la elementojn studitajn/ripetitajn de la studento en preparo por la ekzameno.

Kaj jen, ekzemple, unu el la tipaj lernejaj kemiaj problemoj:

Donita 10 g da kreto. Kiom da klorida acido devas esti prenita por solvi ĉi tiun tutan kreton?

Por solvi ĉi tiun problemon, necesas noti la kemion. reago kaj metante la koeficientojn en ĝi, kalkulu la molekulajn pezojn de kalcia karbonato kaj hidrogena klorido, poste kunmeti kaj solvu la proporcion. Kalkulilo bazita sur nia baza programo povas kalkuli kaj solvi. Vere, vi ankoraŭ devos konsideri, ke la acido devas esti prenita en akceptebla troo kaj en racia koncentriĝo, sed ĉi tio estas kemio, ne komputiko.
Aldono 1: Kiel la Kemia Kalkulilo FunkciasNi analizu la funkciadon de la kalkulilo uzante la ekzemplon de la ĉi-supra problemo de kreto kaj "mezaĵo". Ni komencu per la reago:

CaCO3 + 2HCl = CaCl2 + H2O

El tio ni vidas, ke ni bezonos la atompezojn de la sekvaj elementoj: kalcio (Ca), karbono (C), oksigeno (O), hidrogeno (H) kaj kloro (Cl). En la plej simpla kazo, ni povas skribi ĉi tiujn pezojn en unudimensian tabelon difinitan kiel

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

kie la tabelindekso respondas al la elemento nombro. Pli pri la libera spaco de la formo tabloDlg metu du kampojn. En la unua kampo estas komence skribite: "La unua reakciilo estas donita", en la dua - "La dua reakciilo estas trovi x". Ni signu la kampojn reakciilo 1, reakciilo 2 respektive. Aliaj aldonoj al la programo estos klaraj de la sekva ekzemplo de la kalkulilo.

Ni tajpas sur la komputila klavaro: 10 g Surskribo sur la kampo reakciilo 1 ŝanĝoj: "La unua reakciilo ricevas 10 g." Nun ni enigas la formulon de ĉi tiu reakciilo, kaj la kalkulilo kalkulos kaj montros ĝian molekula pezo dum vi enigas ĝin.

Alklaku LMB sur la tabelĉelo kun la simbolo Ca. Surskribo en la kampo reakciilo 1 ŝanĝoj: "Unua reakciilo Ca 40.078 donita 10 g."

Alklaku LMB sur la tabelĉelo kun la simbolo C. Surskribo en la kampo reakciilo 1 ŝanĝoj: "Unua reakciilo CaC 52.089 donita 10 g." Tiuj. La kalkulilo aldonis la atompezojn de kalcio kaj karbono.

Alklaku LMB sur la tabelĉelo kun la simbolo O. Surskribo en la kampo reakciilo 1 ŝanĝoj: "Unua reakciilo CaCO 68.088 donita 10 g." La kalkulilo aldonis la atoman pezon de oksigeno al la sumo.

Alklaku LMB sur la tabelĉelo kun la simbolo O. Surskribo en la kampo reakciilo 1 ŝanĝoj: "Unua reakciilo CaCO2 84.087 donita 10 g." La kalkulilo denove aldonis la atoman pezon de oksigeno al la sumo.

Alklaku LMB sur la tabelĉelo kun la simbolo O. Surskribo en la kampo reakciilo 1 ŝanĝoj: "Unua reakciilo CaCO3 100.086 donita 10 g." La kalkulilo denove aldonis la atoman pezon de oksigeno al la sumo.

Premu Enigu sur via komputila klavaro. La enkonduko de la unua reakciilo estas finita kaj ŝanĝas al la kampo reakciilo 2. Notu, ke en ĉi tiu ekzemplo ni provizas minimuman version. Se vi volas, vi povas facile organizi multiplikantojn de atomoj de la sama tipo, tiel ke, ekzemple, vi ne devas klaki sep fojojn sinsekve sur la oksigena ĉelo enirante la kroman formulon (K2Cr2O7).

Alklaku LMB sur la tabelĉelo kun la simbolo H. Surskribo en la kampo reakciilo 2 ŝanĝoj: "Dua reakciilo H 1.008 trovi x."

Alklaku LMB sur la tabelĉelo kun la simbolo Cl. Surskribo en la kampo reakciilo 2 ŝanĝoj: "Dua reaktivo HCl 36.458 trovi x." La kalkulilo aldonis la atompezojn de hidrogeno kaj kloro. En la supra reakcia ekvacio, hidrogena klorido estas antaŭita de koeficiento de 2. Tial, alklaku LMB sur la kampo. reakciilo 2. La molekula pezo duobliĝas (triobla kiam oni premas dufoje, ktp.). Surskribo en la kampo reakciilo 2 ŝanĝoj: "Dua reaktivo 2HCl 72.916 trovi x."

Premu Enigu sur via komputila klavaro. La eniro de la dua reakciilo estas finita, kaj la kalkulilo trovas x de la proporcio

Perioda tabelo pri lerneja komputiko

Tion ni bezonis trovi.

Notu 1. La signifo de la rezulta proporcio: por dissolvo 100.086 Da kreto postulas 72.916 Da acido, kaj por solvi 10 g da kreto necesas x acido.

Notu 2. Kolektoj de similaj problemoj:

Khomchenko I. G., Kolekto de problemoj kaj ekzercoj en kemio 2009 (klasoj 8-11).
Khomchenko G. P., Khomchenko I. G., Kolekto de problemoj en kemio por kandidatoj al universitatoj, 2019.

Notu 3. Por simpligi la taskon, vi povas simpligi la eniron de la formulo en la komenca versio kaj simple aldoni la elementan simbolon al la fino de la formullinio. Tiam la formulo de kalcia karbonato estos:
CaCOOO
Sed kemiinstruisto verŝajne ne ŝatos tian registradon. Ne estas malfacile fari la ĝustan enskribon - por fari tion vi devas aldoni tabelon:

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

kie la indekso estas la nombro de la kemia elemento, kaj la valoro ĉe tiu indekso estas la nombro da atomoj (komence ĉiuj elementoj de la tabelo estas rekomencigitaj al nul). La ordo en kiu atomoj estas skribitaj en formulo, kiel adoptite en kemio, devus esti konsiderata. Ekzemple, ankaŭ malmultaj homoj ŝatos O3CaC. Ni movu la respondecon al la uzanto. Farante tabelon:

 formulaOrder : array [1..size] of integer; // можно взять покороче

kie ni skribas la nombron de la kemia elemento laŭ la indico de ĝia apero en la formulo. Aldonante atomon currNo en la formulon:

if formula [currNo]=0 then //этот атом встретился первый раз
 begin
 orderIndex := orderIndex+1;//в начале ввода формулы orderIndex=0
 formulaOrder [orderIndex] :=  currNo;
 end;
formula [currNo]:=formula [currNo]+1;

Skribante la formulon al linio:

s := ''; // пустая строка для формулы
for i:=1 to  orderIndex do // для всех хим.символов в формуле 
 begin
 s:=s+TableSymbols [ formulaOrder[i]];// добавляем хим.символ
 if formula [formulaOrder[i]]<>1 then //добавляем кол-во атомов
  s:=s+ intToStr(formula [formulaOrder[i]]);
 end;

Notu 4. Estas senco provizi la kapablon alternative enigi la reakcigan formulon de la klavaro. En ĉi tiu kazo, vi devos efektivigi simplan analizilon.

Indas noti ke:

Hodiaŭ, ekzistas kelkcent versioj de la tablo, kaj sciencistoj konstante ofertas novajn eblojn. (Vikipedio)

Studentoj povas montri sian eltrovemon en ĉi tiu direkto efektivigante unu el la jam proponitaj opcioj aŭ provi fari sian propran originalan. Povas ŝajni, ke ĉi tio estas la malplej utila direkto por komputika lecionoj. Tamen, en la formo de la Perioda Tabelo efektivigita en ĉi tiu artikolo, iuj studentoj eble ne vidas la apartajn avantaĝojn de kontrolkartoj super la alternativa solvo uzante normajn butonojn. TBbutono. La spirala formo de la tablo (kie la ĉeloj estas de malsamaj formoj) pli klare montros la avantaĝojn de la solvo ĉi tie proponita.

Perioda tabelo pri lerneja komputiko
(Alternativa sistemo de elementoj de Theodore Benfey, Fonto)

Ni aldonu ankaŭ, ke kelkaj nuntempe ekzistantaj komputilaj programoj por la Perioda Tabelo estas priskribitaj en la ĵus eldonita ĉe Habré. artikolo.

Apendico 2: ekzemploj de taskoj por filtrilojPer filtriloj vi povas solvi, ekzemple, la sekvajn taskojn:

1) Elektu en la tabelo ĉiujn elementojn konatajn en la Mezepoko.

2) Identigu ĉiujn elementojn konatajn en la tempo de la malkovro de la Perioda Leĝo.

3) Identigu sep elementojn, kiujn alkemiistoj konsideris metaloj.

4) Elektu ĉiujn elementojn, kiuj estas en gasa stato en normalaj kondiĉoj (n.s.).

5) Elektu ĉiujn elementojn, kiuj estas en likva stato ĉe n-ro.

6) Elektu ĉiujn elementojn, kiuj estas en solida stato ĉe n-ro.

7) Elektu ĉiujn elementojn, kiuj povas esti elmetitaj al aero dum longa tempo sen rimarkindaj ŝanĝoj en normalaj kondiĉoj.

8) Elektu ĉiujn metalojn, kiuj solvas en klorida acido.

9) Elektu ĉiujn metalojn, kiuj solvas en sulfata acido ĉe n-ro.

10) Elektu ĉiujn metalojn, kiuj solvas en sulfata acido kiam varmigitaj.

11) Elektu ĉiujn metalojn, kiuj solvas en nitrata acido.

12) Izolu ĉiujn metalojn, kiuj reagas perforte kun akvo ĉe ĉirkaŭaj kondiĉoj.

13) Elektu ĉiujn metalojn.

14) Identigu elementojn, kiuj estas disvastigitaj en la naturo.

15) Identigu elementojn, kiuj troviĝas en la naturo en libera stato.

16) Identigu la elementojn, kiuj ludas la plej gravan rolon en la homa kaj besta korpo.

17) Elektu elementojn, kiuj estas vaste uzataj en la ĉiutaga vivo (en libera formo aŭ en kombinaĵoj).

18) Identigu elementojn, kiuj estas plej danĝeraj por labori kaj postulas specialajn mezurojn kaj protektajn ekipaĵojn.

19) Identigu la elementojn, kiuj, en libera formo aŭ en formo de kunmetaĵoj, prezentas la plej grandan minacon al la medio.

20) Elektu valorajn metalojn.

21) Identigu elementojn, kiuj estas pli multekostaj ol valormetaloj.

Notoj

1) Estas senco provizi plurajn filtrilojn. Ekzemple, se vi ŝaltas filtrilon por solvi problemon 1 (ĉiuj elementoj konataj en la Mezepoko) kaj 20 (valoraj metaloj), tiam ĉeloj kun valormetaloj konataj en la Mezepoko estos reliefigitaj (ekzemple, per koloro) ( ekzemple, paladio ne estos reliefigita , malfermita en 1803).

2) Estas senco certigi, ke pluraj filtriloj funkcias en tia maniero, ke ĉiu filtrilo elektas ĉelojn kun sia propra koloro, sed ne tute forigas la elekton de alia filtrilo (parto de la ĉelo en unu koloro, parto en alia). Tiam, en la kazo de la antaŭa ekzemplo, elementoj de la intersekco de aroj malkovritaj en la Mezepoko kaj valormetaloj, same kiel elementoj apartenantaj nur al la unua kaj nur al la dua aroj, estos videblaj. Tiuj. valormetaloj nekonataj en la Mezepoko, kaj elementoj konataj en la Mezepoko sed ne valormetaloj.

3) Ĝi havas sencon post apliki la filtrilon por certigi la eblecon de alia laboro kun la rezultoj akiritaj. Ekzemple, elektinte elementojn konatajn en la Mezepoko, la uzanto alklakas LMB sur la elektita elemento kaj estas prenita al la Vikipedio-artikolo pri tiu ĉi elemento.

4) Estas senco provizi la uzanton kun la kapablo malelekti klakante LMB sur la elektita tabelĉelo. Ekzemple, forigi jam viditajn erojn.

5) Estas senco certigi, ke la listo de elektitaj ĉeloj estas konservita en dosiero kaj ke tia dosiero estas ŝarĝita per aŭtomata elekto de ĉeloj. Ĉi tio donos al la uzanto la ŝancon preni paŭzon de laboro.

Ni uzis statikan, antaŭdeterminitan kontrolmapon, sed estas multaj gravaj taskoj kie dinamikaj kontrolmapoj kiuj ŝanĝiĝas dum la programo funkcias. Ekzemplo estus grafika redaktilo, en kiu la uzanto uzas la muson por indiki la poziciojn de verticoj en fenestro kaj desegni randojn inter ili. Por forigi verticon aŭ randon, la uzanto devas montri ĝin. Sed se estas sufiĉe facile montri verticon markitan per cirklo, tiam estos pli malfacile montri randon desegnita per maldika linio. Kontrolmapo helpos ĉi tie, kie verticoj kaj randoj okupas pli larĝajn kvartalojn ol en la videbla figuro.

Interesa flanka demando rilata al ĉi tiu metodo de kompleksa trejnado estas: ĉu ĉi tiu metodo povas esti utila por trejnado de AI?

fonto: www.habr.com

Aldoni komenton