Periodni sustav školske informatike

(Kontrolne kartice)
(Posvećeno Međunarodnoj godini periodnog sustava kemijskih elemenata)
(Zadnji dodaci su napravljeni 8. travnja 2019. Popis dodataka nalazi se odmah ispod izreza)

Periodni sustav školske informatike
(Mendeljejevljev cvijet, Источник)

Sjećam se da smo prošli pokraj patke. To su bile tri lekcije odjednom: geografija, prirodoslovlje i ruski. Na satu prirodoslovlja proučavala se patka kao patka, kakva ima krila, kakve noge ima, kako pliva itd. Na satu geografije ista je patka proučavana kao stanovnik globusa: bilo je potrebno pokazati na karti gdje živi, ​​a gdje ne. Na ruskom nas je Serafima Petrovna naučila pisati "u-t-k-a" i pročitati nešto o patkama iz Brema. U prolazu nas je obavijestila da je na njemačkom patka ovako, a na francuskom ovako. Mislim da se to tada zvalo "kompleksna metoda". Općenito, sve je izašlo "u prolazu".

Venijamin Kaverin, Dva kapetana

Veniamin Kaverin je u navedenom citatu maestralno pokazao nedostatke složene nastavne metode, međutim, u nekim (možda dosta rijetkim) slučajevima, elementi ove metode su opravdani. Jedan takav slučaj je periodni sustav D. I. Mendeljejeva na školskim satovima informatike. Zadatak softverske automatizacije tipičnih radnji s periodnim sustavom jasan je za školarce koji su počeli učiti kemiju, a podijeljen je na mnogo tipičnih kemijskih zadataka. Ujedno, u okviru računalne znanosti, ovaj zadatak nam omogućuje da u jednostavnom obliku demonstriramo metodu upravljačkih kartica, koja se može pripisati grafičkom programiranju, shvaćenom u širem smislu riječi kao programiranje pomoću grafičkih elemenata.

(Dodaci od 8. travnja 2019.:
Dodatak 1: Kako radi kemijski kalkulator
Dodatak 2: primjeri zadataka za filtere)

Počnimo s osnovnim zadatkom. U najjednostavnijem slučaju, periodni sustav trebao bi biti prikazan na ekranu u obliku prozora, gdje će u svakoj ćeliji biti kemijska oznaka elementa: H - vodik, He - helij itd. Ako kursor miša pokazuje na ćeliju, tada se oznaka elementa i njegov broj prikazuju u posebnom polju na našem obrascu. Ako korisnik pritisne LMB, tada će oznaka i broj ovog odabranog elementa biti naznačeni u drugom polju obrasca.

Periodni sustav školske informatike

Problem se može riješiti bilo kojim univerzalnim jezikom. Uzet ćemo jednostavan stari Delpi-7, koji je razumljiv gotovo svima. Ali prije programiranja na PL, nacrtajmo dvije slike, na primjer, u Photoshopu. Prvo nacrtajmo periodni sustav u obliku u kojem ga želimo vidjeti u programu. Spremite rezultat u grafičku datoteku tablica01.bmp.

Periodni sustav školske informatike

Za drugi crtež koristimo prvi. Ćelije tablice, očišćene od svih grafika, uzastopno ćemo ispuniti jedinstvenim bojama u RGB modelu boja. R i G će uvijek biti 0, a B=1 za vodik, 2 za helij, itd. Ovaj crtež će biti naša kontrolna kartica koju ćemo spremiti u datoteku pod nazivom tablica2.bmp.

Periodni sustav školske informatike

Prva faza grafičkog programiranja u Photoshopu je završena. Prijeđimo na grafičko GUI programiranje u Delpi-7 IDE. Da biste to učinili, otvorite novi projekt, gdje na glavnoj formi postavljamo dijaloški gumb (stolDlg), u kojem će se odvijati rad s tablicom. Zatim radimo s obrascem stolDlg.

Postavite komponentu klase na obrazac TImage. Dobivamo Image1. Imajte na umu da se općenito, za velike projekte, automatski generiraju nazivi obrazaca SlikaNGdje N može doseći nekoliko desetaka ili više - ovo nije najbolji programski stil i trebalo bi dati smislenija imena. Ali u našem malom projektu, gdje N neće premašiti 2, možete ga ostaviti kako je generiran.

Na imovinu Slika1.Slika učitaj datoteku tablica01.bmp. Mi stvaramo Image2 i tamo učitati našu kontrolnu karticu tablica2.bmp. U ovom slučaju, datoteku činimo malom i nevidljivom korisniku, kao što je prikazano u donjem lijevom kutu obrasca. Dodali smo dodatne upravljačke elemente čija je svrha očita. Završena je druga faza grafičkog GUI programiranja u Delpi-7 IDE.

Periodni sustav školske informatike

Prijeđimo na treću fazu - pisanje koda u Delpi-7 IDE. Modul se sastoji od samo pet rukovatelja događajima: kreiranje forme (FormCreate), kretanje kursora Image1 (Image1MouseMove), klikom LMB na ćeliju (Slika 1 Kliknite) i izađite iz dijaloga pomoću gumba OK (OKBtnClick) ili Odustani (CancelBtnClick). Zaglavlja ovih rukovatelja generiraju se na standardni način pomoću IDE-a.

Izvorni kod modula:

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.

U našoj verziji uzeli smo tablicu od 104 elementa (konstanta Veličina). Očito je da se ova veličina može povećati. Oznake elemenata (kemijski simboli) upisuju se u polje Table Symbols. Međutim, iz razloga kompaktnosti izvornog koda, čini se uputnim napisati slijed ovih notacija u obliku konstanti niza Periodni sustavStr1..., Periodni sustavStr4tako da kada je forma kreirana, program sam raspršuje te oznake među elementima niza. Oznaka svakog elementa sastoji se od jednog ili dva latinična slova, pri čemu je prvo slovo veliko, a drugo (ako postoji) malo. Ovo jednostavno pravilo primjenjuje se prilikom učitavanja niza. Dakle, niz notacija može biti napisan sažeto bez razmaka. Razbijanje niza na četiri dijela (konstante Periodni sustavStr1..., Periodni sustavStr4) je zbog razmatranja lakoće čitanja izvornog koda, jer Redak koji je predug možda neće u potpunosti stati na zaslon.

Kada kursor miša prijeđe preko Image1 rukovatelj Image1MouseMove ovaj događaj određuje vrijednost komponente plave boje piksela kontrolne kartice Image2 za trenutne koordinate kursora. Po konstrukciji Image2 ova vrijednost je jednaka broju elementa ako je kursor unutar ćelije; nula ako je na granici, a 255 u ostalim slučajevima. Preostale akcije koje izvodi program su trivijalne i ne zahtijevaju objašnjenje.

Uz gore navedene tehnike stilističkog programiranja, vrijedi spomenuti stil komentara. Strogo govoreći, kod koji se raspravlja toliko je malen i jednostavan da se komentari ne čine osobito potrebnima. No, dodani su i iz metodoloških razloga - kratki kod nam omogućuje jasnije donošenje nekih općih zaključaka. U prikazanom kodu deklarirana je jedna klasa (TtableDlg). Metode ove klase mogu se mijenjati i to ni na koji način neće utjecati na funkcioniranje programa, ali može utjecati na njegovu čitljivost. Na primjer, zamislite slijed:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Možda neće biti jako uočljivo, ali bit će malo teže za čitanje i razumijevanje. Ako nema pet, ali desetke puta više metoda u odjeljku izvršenje imaju potpuno drugačiji red nego u opisima razreda, onda će se kaos samo povećati. Stoga, iako je to teško striktno dokazati, a možda čak i nemoguće, možemo se nadati da će uvođenje dodatnog reda poboljšati čitljivost koda. Ovaj dodatni poredak je olakšan logičkim grupiranjem nekoliko metoda koje obavljaju povezane 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 prilično dugačkih modula, takvi sadržaji pružaju dodatne mogućnosti navigacije. Slično tome, u dugom tijelu jedne metode, procedure ili funkcije, vrijedi prvo označiti kraj ovog tijela:

end; // FormCreate

i, drugo, u razgranatim naredbama s programskim zagradama početak - kraj označite naredbu na koju se odnosi završna zagrada:

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

Da biste istaknuli zaglavlja grupa i krajeve tijela metode, možete dodati retke koji su duži od većine naredbi i sastoje se, na primjer, od znakova “=” odnosno “_”.
Opet, moramo napraviti rezervu: naš primjer je previše jednostavan. A kada kod metode ne stane na jedan zaslon, može biti teško razumjeti šest uzastopnih završetaka za izmjene koda. U nekim starim kompajlerima, na primjer, Pascal 8000 za OS IBM 360/370, servisni stupac kao ovaj bio je ispisan lijevo u popisu

B5
…
E5

To je značilo da završna zagrada u retku E5 odgovara početnoj zagradi u retku B5.

Naravno, stil programiranja je vrlo kontroverzno pitanje, tako da ovdje izražene ideje treba shvatiti samo kao hranu za razmišljanje. Dvojici prilično iskusnih programera, koji su se tijekom dugogodišnjeg rada razvili i navikli na različite stilove, može biti vrlo teško doći do dogovora. Druga je stvar za studenta koji uči programirati, a koji još nije imao vremena pronaći vlastiti stil. Mislim da bi u ovom slučaju nastavnik barem trebao prenijeti svojim učenicima tako jednostavnu, ali ne i očitu ideju da uspjeh programa uvelike ovisi o stilu u kojem je napisan njegov izvorni kod. Učenik možda neće slijediti preporučeni stil, ali neka barem razmisli o potrebi za "dodatnim" radnjama za poboljšanje dizajna izvornog koda.

Vraćajući se našem osnovnom problemu Periodnog sustava: daljnji razvoj može ići u različitim smjerovima. Jedna od uputa je za referencu: kada pokazivačem miša prijeđete iznad ćelije tablice, pojavljuje se prozor s informacijama koji sadrži dodatne informacije o navedenom elementu. Daljnji razvoj su filtri. Na primjer, ovisno o instalaciji, prozor s informacijama sadržavat će samo: najvažnije fizikalne i kemijske podatke, podatke o povijesti otkrića, podatke o rasprostranjenosti u prirodi, popis najvažnijih spojeva (koji uključuje i ovaj element), fiziološka svojstva, naziv na stranom jeziku itd. e. Sjećajući se Kaverinove “patke” kojom počinje ovaj članak, možemo reći da ćemo ovakvim razvojem programa dobiti cjeloviti kompleks treninga u prirodnim znanostima: uz računalo znanosti, fizike i kemije - biologije, ekonomske geografije, povijesti znanosti pa čak i stranih jezika.

Ali lokalna baza podataka nije granica. Program se prirodno spaja na Internet. Kada odaberete element, poveznica se aktivira, au prozoru web preglednika otvara se Wikipedijin članak o tom elementu. Wikipedia, kao što znate, nije mjerodavan izvor. Možete postaviti poveznice na autoritativne izvore, na primjer, kemijsku enciklopediju, TSB, sažetke časopisa, naručiti upite u tražilicama za ovaj element itd. Da. Studenti će moći rješavati jednostavne, ali smislene zadatke o temama DBMS-a i Interneta.

Osim upita po pojedinom elementu, možete kreirati funkcionalnost koja će npr. različitim bojama označavati ćelije u tablici koje zadovoljavaju određene kriterije. Na primjer, metali i nemetali. Ili stanice koje lokalna kemijska tvornica baca u vodena tijela.

Također možete implementirati funkcije organizatora bilježnica. Na primjer, označite u tablici elemente koji su uključeni u ispit. Zatim označite elemente koje je student učio/ponovio u pripremi za ispit.

A evo, na primjer, jednog od tipičnih školskih zadataka iz kemije:

Dato je 10 g krede. Koliko klorovodične kiseline treba uzeti da se sva ova kreda otopi?

Za rješavanje ovog problema potrebno je zapisati kem. reakciju i svrstavajući u nju koeficijente, izračunajte molekulske mase kalcijevog karbonata i klorovodika, zatim sastavite i riješite omjer. Kalkulator temeljen na našem osnovnom programu može izračunati i riješiti. Istina, ipak ćete morati uzeti u obzir da se kiselina mora uzimati u razumnom višku i u razumnoj koncentraciji, ali to je kemija, a ne informatika.
Dodatak 1: Kako radi kemijski kalkulatorAnalizirajmo rad kalkulatora na primjeru gornjeg problema krede i "hodgedodge". Počnimo s reakcijom:

CaCO3 + 2HCl = CaCl2 + H2O

Iz ovoga vidimo da će nam trebati atomske težine sljedećih elemenata: kalcij (Ca), ugljik (C), kisik (O), vodik (H) i klor (Cl). U najjednostavnijem slučaju, te težine možemo napisati u jednodimenzionalni niz definiran kao

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

gdje indeks niza odgovara broju elementa. Više o slobodnom prostoru forme stolDlg staviti dva polja. U prvom polju je u početku napisano: "Prvi reagens je dan", u drugom - "Drugi reagens je pronaći x". Označimo polja reagens1, reagens2 odnosno. Ostali dodaci programu bit će jasni iz sljedećeg primjera kalkulatora.

Tipkamo na tipkovnici računala: 10 g. Natpis u polju reagens1 promjene: "Prvi reagens daje se 10 g." Sada unosimo formulu ovog reagensa, a kalkulator će izračunati i prikazati njegovu molekularnu težinu dok je upisujete.

Kliknite LMB na ćeliju tablice sa simbolom Ca. Natpis u polju reagens1 promjene: "Prvi reagens Ca 40.078 dan 10 g."

Kliknite LMB na ćeliju tablice sa simbolom C. Natpis u polju reagens1 promjene: "Prvi reagens CaC 52.089 dan 10 g." Oni. Kalkulator je zbrojio atomske težine kalcija i ugljika.

Kliknite LMB na ćeliju tablice sa simbolom O. Natpis u polju reagens1 promjene: "Prvi reagens CaCO 68.088 dan 10 g." Kalkulator je zbroju dodao atomsku težinu kisika.

Kliknite LMB na ćeliju tablice sa simbolom O. Natpis u polju reagens1 promjene: "Prvi reagens CaCO2 84.087 dan 10 g." Kalkulator je zbroju još jednom dodao atomsku težinu kisika.

Kliknite LMB na ćeliju tablice sa simbolom O. Natpis u polju reagens1 promjene: "Prvi reagens CaCO3 100.086 dan 10 g." Kalkulator je zbroju ponovno dodao atomsku težinu kisika.

Pritisnite Enter na tipkovnici računala. Uvođenje prvog reagensa je završeno i prelazi se na polje reagens2. Imajte na umu da u ovom primjeru nudimo minimalnu verziju. Po želji možete jednostavno organizirati multiplikatore atoma iste vrste, tako da npr. ne morate kliknuti sedam puta zaredom na ćeliju kisika prilikom unosa formule za krom (K2Cr2O7).

Kliknite LMB na ćeliju tablice sa simbolom H. Natpis u polje reagens2 promjene: "Drugi reagens H 1.008 pronađi x."

Kliknite LMB na ćeliju tablice sa simbolom Cl. Natpis u polju reagens2 promjene: "Drugi reagens HCl 36.458 pronađi x." Kalkulator je zbrojio atomske težine vodika i klora. U gornjoj reakcijskoj jednadžbi, klorovodiku prethodi koeficijent 2. Stoga kliknite LMB na polje reagens2. Molekulska težina se udvostručuje (utrostručuje kada se pritisne dvaput, itd.). Natpis u polju reagens2 promjene: "Drugi reagens 2HCl 72.916 pronađi x."

Pritisnite Enter na tipkovnici računala. Unos drugog reagensa je završen, a kalkulator pronalazi x iz udjela

Periodni sustav školske informatike

To je ono što smo trebali pronaći.

Napomena 1 Značenje dobivenog udjela: za otapanje 100.086 Da za kredu je potrebno 72.916 Da kiseline, a za otapanje 10 g krede potrebna je x kiselina.

Napomena 2 Zbirke sličnih problema:

Khomchenko I. G., Zbirka problema i vježbi iz kemije 2009 (razredi 8-11).
Khomchenko G. P., Khomchenko I. G., Zbirka zadataka iz kemije za pristupnike sveučilištima, 2019.

Napomena 3 Kako biste pojednostavili zadatak, možete pojednostaviti unos formule u početnoj verziji i jednostavno dodati simbol elementa na kraj retka formule. Tada će formula kalcijevog karbonata biti:
CaCOOO
No učitelju kemije vjerojatno se neće svidjeti takva snimka. Nije teško napraviti ispravan unos - da biste to učinili, morate dodati niz:

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

gdje je indeks broj kemijskog elementa, a vrijednost ovog indeksa je broj atoma (u početku se svi elementi niza vraćaju na nulu). Treba uzeti u obzir redoslijed kojim su atomi napisani u formuli, kako je to prihvaćeno u kemiji. Na primjer, malo će se kome svidjeti i O3CaC. Prebacimo odgovornost na korisnika. Izrada niza:

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

gdje zapisujemo broj kemijskog elementa prema indeksu njegova pojavljivanja u formuli. Dodavanje atoma tekući br u formulu:

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

Zapisivanje formule u red:

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;

Napomena 4 Ima smisla omogućiti mogućnost alternativnog unosa formule reagensa s tipkovnice. U ovom slučaju, morat ćete implementirati jednostavan parser.

Vrijedno je napomenuti da:

Danas postoji nekoliko stotina verzija tablice, a znanstvenici stalno nude nove mogućnosti. (Wikipedia)

Učenici mogu pokazati svoju domišljatost u ovom smjeru implementacijom jedne od već predloženih opcija ili pokušati napraviti vlastitu originalnu. Može se činiti da je ovo najmanje koristan smjer za nastavu informatike. Međutim, u obliku periodnog sustava implementiranog u ovom članku, neki učenici možda neće vidjeti posebne prednosti kontrolnih kartica u odnosu na alternativno rješenje korištenjem standardnih gumba TButton. Spiralni oblik tablice (gdje su ćelije različitih oblika) jasnije će prikazati prednosti ovdje predloženog rješenja.

Periodni sustav školske informatike
(Alternativni sustav elemenata Theodorea Benfeya, Источник)

Dodajmo i da je niz trenutno postojećih računalnih programa za periodni sustav opisan u nedavno objavljenom na Habréu članak.

Dodatak 2: primjeri zadataka za filterePomoću filtara možete riješiti, na primjer, sljedeće zadatke:

1) Odaberite u tablici sve elemente poznate u srednjem vijeku.

2) Identificirajte sve elemente poznate u vrijeme otkrića Periodnog zakona.

3) Identificirajte sedam elemenata koje su alkemičari smatrali metalima.

4) Odaberite sve elemente koji su u normalnim uvjetima u plinovitom stanju (n.s.).

5) Odaberite sve elemente koji su u tekućem stanju na br.

6) Odaberite sve elemente koji su u čvrstom stanju na br.

7) Odaberite sve elemente koji mogu biti izloženi zraku duže vrijeme bez vidljivih promjena u normalnim uvjetima.

8) Odaberite sve metale koji se otapaju u klorovodičnoj kiselini.

9) Odaberite sve metale koji se otapaju u sumpornoj kiselini na br.

10) Odaberite sve metale koji se zagrijavanjem otapaju u sumpornoj kiselini.

11) Odaberite sve metale koji se otapaju u dušičnoj kiselini.

12) Izolirajte sve metale koji burno reagiraju s vodom u uvjetima okoline.

13) Odaberite sve metale.

14) Identificirati elemente koji su široko rasprostranjeni u prirodi.

15) Prepoznati elemente koji se u prirodi nalaze u slobodnom stanju.

16) Prepoznati elemente koji imaju najvažniju ulogu u ljudskom i životinjskom tijelu.

17) Odaberite elemente koji se široko koriste u svakodnevnom životu (u slobodnom obliku ili u kombinacijama).

18) Identificirati elemente koji su najopasniji za rad i zahtijevaju posebne mjere i zaštitnu opremu.

19) Identificirajte elemente koji u slobodnom obliku ili u obliku spojeva predstavljaju najveću opasnost za okoliš.

20) Odaberite plemenite metale.

21) Identificirajte elemente koji su skuplji od plemenitih metala.

Bilješke

1) Ima smisla osigurati više filtara. Na primjer, ako uključite filtar za rješavanje problema 1 (svi elementi poznati u srednjem vijeku) i 20 (plemeniti metali), tada će ćelije s plemenitim metalima poznatim u srednjem vijeku biti istaknute (na primjer, bojom) ( na primjer, paladij neće biti istaknut , otvoren 1803.).

2) Ima smisla osigurati da nekoliko filtara radi u takvom načinu da svaki filtar odabire ćelije svojom bojom, ali ne uklanja u potpunosti odabir drugog filtra (dio ćelije u jednoj boji, dio u drugoj). Tada će u slučaju prethodnog primjera biti vidljivi elementi presjeka skupova otkrivenih u srednjem vijeku i plemenitih metala, kao i elementi koji pripadaju samo prvom i samo drugom skupu. Oni. plemeniti metali nepoznati u srednjem vijeku i elementi poznati u srednjem vijeku, ali ne i plemeniti metali.

3) Ima smisla nakon primjene filtra osigurati mogućnost drugog rada s dobivenim rezultatima. Na primjer, nakon odabira elemenata poznatih u srednjem vijeku, korisnik klikne LMB na odabrani element i preusmjerava se na Wikipedijin članak o tom elementu.

4) Ima smisla dati korisniku mogućnost poništavanja odabira klikom na LMB na odabranu ćeliju tablice. Na primjer, za uklanjanje već pregledanih stavki.

5) Ima smisla osigurati da je popis odabranih ćelija spremljen u datoteku i da se takva datoteka učitava s automatskim odabirom ćelija. To će korisniku dati priliku da se odmori od posla.

Koristili smo statičnu, unaprijed određenu kontrolnu mapu, ali postoji mnogo važnih zadataka u kojima se mogu koristiti dinamičke kontrolne mape koje se mijenjaju tijekom izvođenja programa. Primjer bi bio uređivač grafikona, u kojem korisnik koristi miša za označavanje položaja vrhova u prozoru i crtanje rubova između njih. Za brisanje vrha ili ruba, korisnik mora pokazati na njega. Ali ako je vrlo lako pokazati na vrh označen kružićem, onda će biti teže pokazati na brid nacrtan tankom linijom. Ovdje će pomoći kontrolna karta, gdje vrhovi i rubovi zauzimaju šire susjedstvo nego na vidljivoj slici.

Zanimljivo sporedno pitanje vezano uz ovu metodu složenog treninga je: može li ova metoda biti korisna u treningu umjetne inteligencije?

Izvor: www.habr.com

Dodajte komentar