(Upravljačke karte)
(Posvećeno Međunarodnoj godini Periodičke tablice kemijskih elemenata)
(Posljednji dodaci napravljeni 8. travnja 2019. Lista dodataka odmah ispod)

(, )
Sjećam se da smo učili o patki. To su bila tri predmeta: geografija, prirodoslovlje i hrvatski jezik. Na nastavi prirodoslovlja učili smo o patki kao o životinji, kakva su joj krila, kakve su joj noge, kako pliva itd. Na nastavi geografije ta se ista patka učila kao stanovnik Zemlje: trebalo je na karti pokazati gdje živi i gdje je nema. Na hrvatskom jeziku nas je Serafima Petrovna učila pisati „p-a-t-k-a“ i čitala nešto o patkama iz Brema. Usput nam je spomenula da je na njemačkom patka tako i tako, a na francuskom ovako. Čini se da se tada zvalo „kompleksna metoda“. Sve u svemu, sve se odvijalo „usput“.
Veniamin Kavjerin, Dva kapetana
U citatu koji je naveden, Veniamin Kavjerin majstorski je prikazao nedostatke kompleksne metode učenja, međutim, u nekim (možda prilično rijetkim) slučajevima elementi te metode mogu biti opravdani. Jedan od takvih slučajeva je Periodična tablica D.I. Mendeleeva na nastavi školskog informatike. Zadatak programske automatizacije tipičnih radnji s Mendelejevom tablicom prikladan je za učenike koji su počeli s učenjem kemije, a razlaže se na brojne tipične kemijske zadatke. U isto vrijeme, u okviru informatike, taj zadatak omogućuje jednostavno prikazivanje načina upravljačkih karata, koji se može smatrati grafičkim programiranjem, shvaćenim u širokom smislu kao programiranje pomoću grafičkih elemenata.
(8. travnja 2019. napravljeni dodaci:
Započnimo s osnovnim zadatkom. U najjednostavnijem slučaju, na ekranu u formi-prozoru treba se prikazivati Periodična tablica, gdje će u svakoj ćeliji biti kemijski simbol elementa: H — vodik, He — helij itd. Ako pokazivač miša ukaže na ćeliju, tada se u posebnom polju na našoj formi prikazuje simbol elementa i njegov broj. Ako korisnik pritom pritisne lijevu tipku miša, tada će se u drugom polju forme prikazati simbol i broj izabranog elementa.

Zadatak se može rješavati na bilo kojem univerzalnom programskom jeziku. Uzet ćemo jednostavni stari Delphi-7, razumljiv skoro svima. No prije nego što programiramo na programskom jeziku, nacrtat ćemo dvije slike, na primjer, u Photoshopu. Prvo, nacrtat ćemo Periodičnu tablicu onako kako je želimo vidjeti u programu. Spremit ćemo rezultat u grafičku datoteku table01.bmp.

Za drugu sliku koristiti ćemo prvu. Postupno ćemo ispunjavati očišćene od svih grafičkih elemenata ćelije tablice jedinstvenim bojama u RGB modelu boja. R i G će uvijek biti 0, a B=1 za vodik, 2 za helij i tako dalje. Ova slika bit će naša upravljačka karta, koju ćemo spremiti u datoteku pod imenom table2.bmp.

Prva faza grafičkog programiranja u Photoshopu je završena. Prelazimo na grafičko programiranje GUI-a u IDE-u Delphi-7. Za to otvaramo novi projekt, gdje na glavnu formu stavljamo gumb za pozivanje dijaloga (tableDlg), u kojem će se odvijati rad s tablicom. Zatim radimo s formom tableDlg.
Stavljamo na formu komponentu klase TImage. Dobivamo Image1. Primijetimo da, u općem slučaju, za veće projekte automatski generirana imena poput ImageN, gdje N mogu dostići nekoliko desetaka i više — nije najbolji stil programiranja, i treba davati smislenija imena. No u našem malom projektu, gdje N neće preći 2, možemo ostaviti kako je generirano.
U svojstvo Image1.Picture učitavamo datoteku table01.bmp. Kreiramo Image2 i učitavamo tamo našu upravljačku kartu table2.bmp. Pri tome činimo da datoteka bude mala i nevidljiva korisniku, kao što je prikazano u donjem lijevom kutu forme. Dodajemo dodatne kontrolne elemente, čija je svrha očita. Druga faza grafičkog programiranja GUI-a u IDE-u Delphi-7 je završena.

Prelazimo na treću fazu — pisanje koda u IDE-u Delphi-7. Modul se sastoji od samo pet obraditelja događaja: kreiranje forme (FormCreate), kretanje kursora po Image1 (Image1MouseMove), pritiskanje lijevog gumba miša na ćeliju (Image1Click) i izlaz iz dijaloga pomoću gumba OK (OKBtnClick) ili Cancel (CancelBtnClick). Naslovi ovih obraditelja generiraju se standardnim putem pomoću IDE-a.
Izvorni kod modula:
unit tableUnit;
// Periodička tablica kemijskih elemenata D.I. Mendeleeva
//
// third112
// https://habr.com/ru/users/third112/
//
// Sadržaj
// 1) izrada forme
// 2) rad s tablicom: navođenje i odabir
// 3) izlazak iz dijaloga
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
const
size = 104; // broj elemenata
type
TtableDlg = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
Bevel1: TBevel;
Image1: TImage; // tablica kemijskih elemenata
Label1: TLabel;
Image2: TImage; // upravljačka karta
Label2: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject); // izrada forme
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); // navođenje ćelije
procedure Image1Click(Sender: TObject); // odabir ćelije
procedure OKBtnClick(Sender: TObject); // OK
procedure CancelBtnClick(Sender: TObject); // Otkaži
private
{ Privatne deklaracije }
TableSymbols : array [1..size] of string [2]; // niz oznaka elemenata
public
{ Javne deklaracije }
selectedElement : string; // odabrani element
currNo : integer; // trenutni broj elementa
end;
var
tableDlg: TtableDlg;
implementation
{$R *.dfm}
const
PeriodicTableStr1=
'HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLa';
PeriodicTableStr2='CePrNdPmSmEuGdTbDyHoErTmYbLu';
PeriodicTableStr3='HfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAc';
PeriodicTableStr4='ThPaUNpPuAmCmBkCfEsFmMdNoLrKu ';
// izrada forme ==================================================
procedure TtableDlg.FormCreate(Sender: TObject);
// izrada forme
var
s : string;
i,j : integer;
begin
currNo := 0;
// inicijalizacija niza oznaka elemenata:
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 ____________________________________________________
// rad s tablicom: navođenje i odabir =========================================
procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
// navođenje ćelije
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 := 'Odaberite element:';
end; // Image1MouseMove ____________________________________________________
procedure TtableDlg.Image1Click(Sender: TObject);
begin
if currNo 0 then
begin
selectedElement := TableSymbols [currNo];
Label2.Caption := intToStr (currNo)+ ' '+selectedElement+ ' odabran';
Edit1.Text := selectedElement;
end;
end; // Image1Click ____________________________________________________
// izlazak iz dijaloga ==================================================
procedure TtableDlg.OKBtnClick(Sender: TObject);
begin
selectedElement := Edit1.Text;
hide;
end; // OKBtnClick ____________________________________________________
procedure TtableDlg.CancelBtnClick(Sender: TObject);
begin
hide;
end; // CancelBtnClick ____________________________________________________
end.U našoj verziji uzeli smo tablicu veličine 104 elementa (konstanta size). Očigledno, ova veličina može biti povećana. Označenja elemenata (kemijski simboli) upisuju se u niz TableSymbols. Međutim, zbog kompaktnosti izvorne datoteke, čini se razumnim zapisivati niz ovih oznaka kao nizne konstante PeriodicTableStr1,…, PeriodicTableStr4, tako da prilikom događaja stvaranja forme program sam rasporedi ove oznake po elementima niza. Svaka oznaka elementa sastoji se od jedne ili dvije latinske slova, pri čemu je prvo slovo veliko, a drugo (ako postoji) malo. Ovo jednostavno pravilo se primenjuje prilikom učitavanja niza. Na taj način, niz oznaka uspešno se zapisuje kompaktnim oblikom bez razmaka. Raspodela niza na četiri dela (konstante PeriodicTableStr1,…, PeriodicTableStr4) je određena sa stanovišta čitljivosti izvorne datoteke, s obzirom da predugačka linija možda neće stajati potpuno na ekranu.
Prilikom pomeranja kursora miša preko Image1 handler Image1MouseMove ovog događaja određuje vrednost plave komponente boje piksela kontrolne karte Image2 za trenutne koordinate kursora. Po konstrukciji Image2 ova vrednost je jednaka broju elementa, ako se kursor nalazi unutar ćelije; nuli, ako je na granici, i 255 u drugim slučajevima. Ostale radnje koje se obavljaju programom su trivijalne i ne zahtevaju objašnjenja.
Pored gore navedenih stilskih postupaka programiranja, treba napomenuti i stil komentara. Strogo govoreći, razmatrani kod je toliko mali i jednostavan da komentari ne deluju posebno potrebni. Međutim, dodani su i iz metodoloških razloga - kratki kod omogućava jasnije neke opšte zaključke. U predstavljenom kodu deklarisan je jedan klasa (TtableDlg). Metode ove klase mogu se menjati i to neće uticati na funkcionisanje programa, ali bi moglo uticati na njenu čitljivost. Na primer, zamislimo niz:
OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.
Možda i nije previše primetno, ali će čitati i shvatiti postati malo teže. Ako metoda nije pet, već deset puta više i u sekciji implementation Oni imaju potpuno drugačiji redoslijed nego u opisima klasa, stoga će kaos samo rasti. Stoga, iako je strogo dokazivanje teško i možda čak i nemoguće, može se nadati da će uvođenje dodatnog reda poboljšati čitljivost koda. Ovaj dodatni red olakšava logičko grupiranje nekoliko metoda koji izvršavaju slične zadatke. Svakoj grupi treba dati naslov, na primjer:
// работа с таблицей: указание и выбор
Ove naslove treba kopirati na početak modula i oblikovati kao sadržaj. U nekim slučajevima dugi moduli takvi sadržaji pružaju dodatne mogućnosti navigacije. Slično tome, u dugom tijelu jedne metode, procedure ili funkcije treba, prvo, označiti kraj tog tijela:
end; // FormCreatea, drugo, u granajućim operatorima s programskim zagradama begin – end označiti operator kojem pripada zatvorena zagrada:
end; // if s [j] in
end; // for i :=1
end; // FormCreate
Za isticanje naslova grupa i krajeva tijela metoda moguće je dodati linije koje premašuju dužinu većine operatora i koje se sastoje, na primjer, od simbola „=” i „_” respektivno.
Opet, treba napomenuti: imamo previše jednostavan primjer. A kada kod metode ne stane na jedan ekran, teško je snaći se u šest uzastopnih endova kako bi se izvršile izmjene u kodu. U nekim starim kompajlerima, na primjer, Pascal 8000 za OS IBM 360/370, u liskiranju s lijeve strane ispisivala se službena kolona vrste
B5
…
E5
To je značilo da zatvorena programska zagrada na liniji E5 odgovara otvorenoj zagradama na liniji B5.
Naravno, stil programiranja je vrlo nejasno pitanje, stoga treba shvatiti ideje izrečene ovdje kao informativne. Dva dovoljno iskusna programera, koja su tijekom godina rada usvojila različite stilove, mogu se vrlo teško dogovoriti. Sasvim je druga stvar učenik koji uči programirati, a koji još nije imao vremena razviti vlastiti stil. Mislim da bi učitelj trebao barem prenijeti svojim učenicima jednostavnu, ali njima očitu misao, da uspjeh programa u velikoj mjeri ovisi o stilu u kojem je napisan izvorni kod. Učenik možda neće slijediti preporučeni stil, ali neka barem razmisli o potrebi za "suvišnim" radnjama kako bi poboljšao oblikovanje izvornog koda.
Vraćajući se našoj osnovnoj zadatku o Periodičnoj tablici: daljnji razvoj može ići u različitim smjerovima. Jedan od smjerova je referentni: kada se pokazivač miša zadrži na ćeliji tablice, pojavljuje se informacijski prozor koji sadrži dodatne informacije o navedenom elementu. Daljnji razvoj uključuje filtre. Na primjer, ovisno o postavkama u informacijskom prozoru bit će dostupno samo: najvažniji fizikalno-kemijski podaci, informacije o povijesti otkrića, informacije o prirodnom rasprostranjenju, popis najvažnijih spojeva (u koje je uključen taj element), fiziološka svojstva, naziv na stranom jeziku itd. Podsjećajući se na "patku" Kaverina, s kojom počinje ovaj članak, možemo reći da ćemo s takvim razvojem programa dobiti puni edukativni kompleks o prirodnim znanostima: osim informatike, fizike i kemije — biologija, ekonomska geografija, povijest znanosti i čak strani jezici.
No lokalna baza podataka nije kraj. Program se prirodno povezuje na Internet. Kada se odabere element, aktivira se poveznica, a u prozoru web preglednika otvara se članak s Wikipedije o tom elementu. Wikipedia, kao što je poznato, nije autoritativni izvor. Mogu se navesti poveznice na autoritativne izvore, kao što su kemijska enciklopedija, BSE, referentni časopisi, naručiti upite u tražilicama o tom elementu itd. Tako će učenici moći izvršavati jednostavne, ali sadržajne zadatke na temu DBMS i Interneta.
Osim upita za pojedinačni element, može se implementirati funkcionalnost koja će, primjerice, označiti različitim bojama ćelije u tablici koje odgovaraju određenim kriterijima. Na primjer, metali i nemetali. Ili ćelije koje ispušta lokalna kemijska tvornica u vodotoke.
Također se mogu implementirati funkcije bilježnice-organizatora. Na primjer, označiti u tablici elemente koji su uključeni u ispit. Zatim označiti elemente koje je učenik naučio/ponovio tijekom pripreme za ispit.
Evo, na primjer, jednog od tipičnih zadataka školske kemije:
Dana su 10 g krede. Koliko klorovodične kiseline je potrebno uzeti kako bi se otopila cijela ova krede?
Da bismo riješili ovaj zadatak, potrebno je zapisati kemijsku reakciju i odrediti koeficijente, zatim izračunati molekulske mase kalcijevog karbonata i klorovodične kiseline, a potom sastaviti i riješiti proporciju. Izračunati i riješiti može kalkulator temeljen na našem osnovnom programu. Ipak, također treba uzeti u obzir da treba uzeti kiselinu s razumnim viškom i u razumnoj koncentraciji, ali to je već kemija, a ne informatica.
Dodatak 1: kako radi kemijski kalkulatorRazgovarajmo o radu kalkulatora na primjeru gore navedenog zadatka s kredom i “klorovodom”. Počnimo s reakcijom:
CaCO3 + 2HCl = CaCl2 + H2O
Iz ovoga vidimo da će nam biti potrebne atomske mase sljedećih elemenata: kalcija (Ca), ugljika (C), kisika (O), vodika (H) i klora (Cl). U najjednostavnijem slučaju možemo zapisati te mase u jednodimenzionalni niz, definiran kao
AtomicMass : array [1..size] of real;gdje indeks niza odgovara broju elementa. Također na slobodnom mjestu forme tableDlg postavljamo dva polja. U prvom polju prvotno piše: “Prvi reaktant dano”, u drugom — “Drugi reaktant pronaći x”. Označit ćemo polja reagent1, reagent2 odnosno. Druge dopune u program će biti jasne iz sljedećeg primjera rada kalkulatora.
Upisujemo na tipkovnici računala: 10 g. Natpis u polju reagent1 se mijenja: “Prvi reaktant dano 10 g”. Sada unosimo formulu ovog reaktanta, a kalkulator će izračunati i prikazati njegovu molekulsku masu tijekom unosa.
Kliknemo lijevom tipkom miša na ćeliju tablice sa simbolom Ca. Natpis u polju reagent1 se mijenja: “Prvi reaktant Ca 40.078 dano 10 g”.
Kliknemo lijevom tipkom miša na ćeliju tablice sa simbolom C. Natpis u polju reagent1 se mijenja: “Prvi reaktant CaC 52.089 dano 10 g”. To jest, kalkulator je zbrojio atomske mase kalcija i ugljika.
Kliknite lijevim klikom na ćeliju tablice sa simbolom O. Tekst u polju reagent1 se mijenja: “Prvi reagent CaCO 68.088 dano 10 g”. Kalkulator je dodao atomsku masu kisika na zbroj.
Kliknite lijevim klikom na ćeliju tablice sa simbolom O. Tekst u polju reagent1 se mijenja: “Prvi reagent CaCO2 84.087 dano 10 g”. Kalkulator je još jednom dodao atomsku masu kisika na zbroj.
Kliknite lijevim klikom na ćeliju tablice sa simbolom O. Tekst u polju reagent1 se mijenja: “Prvi reagent CaCO3 100.086 dano 10 g”. Kalkulator je ponovno dodao atomsku masu kisika na zbroj.
Pritisnite Enter na tipkovnici računala. Unos prvog reagenta je završen i prebacuje se na polje reagent2. Napominjemo da u ovom primjeru prikazujemo minimalnu verziju. Po želji se mogu lako organizirati multiplikatori atoma jednog tipa, kako ne bismo morali sedam puta zaredom pritiskati ćeliju kisika prilikom unosa formule krompika (K2Cr2O7).
Kliknite lijevim klikom na ćeliju tablice sa simbolom H. Tekst u polju reagent2 se mijenja: “Drugi reagent H 1.008 nađite x”.
Kliknite lijevim klikom na ćeliju tablice sa simbolom Cl. Tekst u polju reagent2 se mijenja: “Drugi reagent HCl 36.458 nađite x”. Kalkulator je zbrojio atomske mase vodika i klora. U donjem prikazanom kemijskom jednadžbi ispred klorovodične kiseline stoji koeficijent 2. Stoga kliknite lijevim klikom na polje reagent2. Molekulska masa se udvostručuje (pri dvostrukom pritisku utrostručuje se itd.). Tekst u polju reagent2 se mijenja: “Drugi reagent 2HCl 72.916 nađite x”.
Pritisnite Enter na tipkovnici računala. Unos drugog reagenta je završen, a kalkulator nalazi x iz proporcije

Što je i trebalo naći.
Napomena 1. Značenje dobivene proporcije: za otapanje 100.086 vapna potrebno je 72.916 Da kiselina, a za otapanje 10 g vapna potrebno je x kiselina.
Napomena 2. Zbirke sličnih zadataka:
Homčenko I. G., Zbirka zadataka i vježbi iz kemije 2009. (8-11. razred).
Homčenko G. P., Homčenko I. G., Zbirka zadataka iz kemije za pristup u visoke škole, 2019.
Napomena 3. Za pojednostavljenje zadatka može se u početnoj verziji pojednostaviti unos formule i jednostavno dodavati simbol elementa na kraj linije formule. Tada će formula kalcijevog karbonata izgledati ovako:
CaCOOO
No, takav zapis vjerojatno neće ugoditi učitelju kemije. Pravilni zapis nije težak napraviti — za to je potrebno dodati niz:
formula : array [1..size] of integer;gdje je indeks - broj kemijskog elementa, a vrijednost na tom indeksu - količina atoma (isprva su svi elementi niza postavljeni na nulu). Treba uzeti u obzir redoslijed zapisa atoma u formuli, kako je prihvaćeno u kemiji. Na primjer, O3CaC također se malo kome sviđa. Prebacujemo odgovornost na korisnika. Radimo niz:
formulaOrder : array [1..size] of integer; // može se uzeti kraćegdje zapisujemo broj kemijskog elementa prema redu pojavljivanja u formuli. Dodavanje atoma currNo u formulu:
if formula [currNo]=0 then // ovaj atom se prvi put susreće
begin
orderIndex := orderIndex+1; // na početku unosa formule orderIndex=0
formulaOrder [orderIndex] := currNo;
end;
formula [currNo]:=formula [currNo]+1;Zapis formule u niz:
s := ''; // prazna niz za formulu
for i:=1 to orderIndex do // za sve kem. simbole u formuli
begin
s:=s+TableSymbols [ formulaOrder[i]]; // dodajemo kem. simbol
if formula [formulaOrder[i]]1 then // dodajemo količinu atoma
s:=s+ intToStr(formula [formulaOrder[i]]);
end;
Napomena 4. Ima smisla omogućiti alternativni unos formule reagensa s tipkovnice. U tom slučaju, bit će potrebno implementirati jednostavni sintaktički analizator.
Valja napomenuti da:
Danas postoji nekoliko stotina varijanti tablice, a znanstvenici predlažu sve nove varijante. ()
Učenici mogu pokazati snalažljivost i u ovom smjeru, implementirajući neku od već predloženih varijanti ili pokušati napraviti svoju originalnu. Može se činiti da je ovo najmanje korisno za satove informatike. Međutim, u obliku Periodične tablice implementiranoj u ovom članku, neki učenici možda neće vidjeti posebne prednosti upravljačkih karata u usporedbi s alternativnim rješenjem putem standardnih gumba TButton. Spiralni oblik tablice (gdje su stanice različitih oblika) vizualno će bolje pokazati prednosti ovdje predloženog rješenja.

(, )
Također, dodajmo da je o nekim postojećim računalnim programima za Periodičnu tablicu nedavno objavljeno na Habr. .
Dodatak 2: primjeri zadataka za filtrePomoću filtara mogu se rješavati, na primjer, takvi zadaci:
1) Izdvojiti u tablici sve elemente poznate u srednjem vijeku.
2) Izdvojiti sve elemente poznate do otkrića Periodičnog zakona.
3) Istaknuti sedam elemenata koje su alkemičari smatrali metalima.
4) Istaknuti sve elemente koji su u plinovitom stanju pod normalnim uvjetima (n.u.).
5) Istaknuti sve elemente koji su u tekućem stanju pod n.u.
6) Istaknuti sve elemente koji su u čvrstom stanju pod n.u.
7) Istaknuti sve elemente koji mogu dugo ostati na zraku bez značajnih promjena pod n.u.
8) Istaknuti sve metale koji se otapaju u klorovodičnoj kiselini.
9) Istaknuti sve metale koji se otapaju u sumpornoj kiselini pod n.u.
10) Istaknuti sve metale koji se otapaju u sumpornoj kiselini pri zagrijavanju.
11) Istaknuti sve metale koji se otapaju u dušičnoj kiselini.
12) Istaknuti sve metale koji burno reagiraju s vodom pod n.u.
13) Istaknuti sve metale.
14) Istaknuti elemente koji su široko rasprostranjeni u prirodi.
15) Istaknuti elemente koji se u prirodi nalaze u slobodnom stanju.
16) Istaknuti elemente koji igraju ključnu ulogu u organizmu ljudi i životinja.
17) Istaknuti elemente koji se široko koriste u domaćinstvu (u slobodnom obliku ili u spojevima).
18) Istaknuti elemente čiji je rad najopasniji i zahtijeva posebne mjere i zaštitu.
19) Istaknuti elemente koji u slobodnom obliku ili u obliku spojeva predstavljaju najveću prijetnju ekologiji.
20) Istaknuti plemenite metale.
21) Istaknuti elemente koji su skuplji od plemenitih metala.
Napomene
1) Ima smisla osigurati rad nekoliko filtara. Na primjer, ako uključite filtar za rješavanje zadatka 1 (svi elementi poznati u srednjem vijeku) i 20 (plemeniti metali), tada će biti istaknuti (na primjer, bojom) ćelije s plemenitim metalima poznatim u srednjem vijeku (na primjer, paladij, otkriven 1803. godine, neće biti istaknut).
2) Ima smisla osigurati rad više filtara u načinu rada gdje svaki filtar označava stanice svojom bojom, ali ne uklanja potpuno označavanje drugog filtra (dijelovi stanice jednom bojom, dijelovi drugom). Tada će u slučaju prethodnog primjera biti vidljivi elementi presjeka skupova otvorenih u srednjem vijeku i dragocjenih metala, kao i elementi koji pripadaju samo prvom i samo drugom skupu. T.j. dragoceni metali nepoznati u srednjem vijeku i elementi poznati u srednjem vijeku, ali koji nisu dragoceni metali.
3) Ima smisla nakon primjene filtra omogućiti druge radnje s dobivenim rezultatima. Na primjer, označivši elemente poznate u srednjem vijeku, korisnik klikne LKM na označeni element i odlazi na članak Wikipedije o tom elementu.
4) Ima smisla omogućiti korisniku da ukloni označavanje klikom LKM na označenu stanicu tablice. Na primjer, kako bi uklonio već pregledane elemente.
5) Ima smisla osigurati pohranu popisa označenih stanica u datoteci i učitavanje takve datoteke s automatskim označavanjem stanica. To će korisniku omogućiti da napravi pauzu u radu.
Koristili smo statičnu unaprijed definiranu upravljačku kartu, no postoji mnogo važnih zadataka gdje se mogu koristiti dinamičke upravljačke karte koje se mijenjaju tijekom rada programa. Primjer može biti urednik grafova, gdje korisnik mišem označava u prozoru položaje vrhova i crta rubove između njih. Kako bi uklonio vrh ili rub, korisnik ga mora označiti. No, ako je vrh označen krugom lako označiti, tada će biti teže označiti rub, prikazan tankom linijom. Ovdje će pomoći upravljačka karta, gdje vrhovi i rubovi zauzimaju šire okolnosti nego na vidljivom crtežu.
Sa spomenutom metodom kompleksnog učenja povezan je zanimljiv sporedni problem: može li ova metoda biti korisna u učenju AI?
Izvor: habr.com
