Periodni sistem o školskoj informatici

(kontrolne kartice)
(Posvećeno Međunarodnoj godini periodnog sistema hemijskih elemenata)
(Zadnje dopune su napravljene 8. aprila 2019. Spisak dodataka je odmah ispod izreza)

Periodni sistem o školskoj informatici
(Mendeljejevljev cvijet, Izvor)

Sećam se da smo prošli pored patke. To su bile tri lekcije odjednom: geografija, prirodne nauke i ruski. Na lekciji nauke, patka je proučavana kao patka, kakva krila ima, koje noge ima, kako pliva i tako dalje. Na lekciji geografije, ista patka je proučavana kao stanovnik zemaljske kugle: trebalo je na karti pokazati gdje živi, ​​a gdje ne. Na ruskom nas je Serafima Petrovna naučila pisati "u-t-k-a" i čitati nešto o patkama iz Brema. Usput nas je obavijestila da je na njemačkom patka ovako, a na francuskom ovako. Mislim da se to tada zvalo "kompleksna metoda". Generalno, sve je ispalo "usput".

Veniamin Kaverin, dva kapetana

Veniamin Kaverin je u navedenom citatu maestralno pokazao nedostatke složene nastavne metode, međutim, u nekim (možda prilično rijetkim) slučajevima elementi ove metode su opravdani. Jedan takav slučaj je periodni sistem D. I. Mendeljejeva u školskim časovima informatike. Zadatak softverske automatizacije tipičnih radnji sa periodnim sistemom je jasan za školarce koji su počeli da uče hemiju, a podeljen je na mnoge tipične hemijske zadatke. Istovremeno, u okviru informatike, ovaj zadatak nam omogućava da u jednostavnom obliku demonstriramo metodu kontrolnih kartica, koja se može pripisati grafičkom programiranju, shvaćenom u širem smislu riječi kao programiranje pomoću grafičkih elemenata.

(8. aprila 2019. napravljene su dopune:
Dodatak 1: Kako funkcionira kemijski kalkulator
Dodatak 2: primjeri zadataka za filtere)

Počnimo s osnovnim zadatkom. U najjednostavnijem slučaju, periodni sistem bi trebao biti prikazan na ekranu u obliku prozora, gdje će u svakoj ćeliji biti kemijska oznaka elementa: H - vodonik, He - helijum, 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 sistem o školskoj informatici

Problem se može riješiti korištenjem bilo kojeg univerzalnog jezika. Uzećemo jednostavni stari Delpi-7, koji je razumljiv skoro svima. Ali prije programiranja u PL-u, nacrtajmo dvije slike, na primjer, u Photoshopu. Prvo, nacrtajmo periodni sistem u obliku koji želimo da ga vidimo u programu. Sačuvajte rezultat u grafičkoj datoteci table01.bmp.

Periodni sistem o školskoj informatici

Za drugi crtež koristimo prvi. Popunićemo ćelije tabele, očišćene od svih grafika, jedinstvenim bojama u RGB modelu boja. R i G će uvijek biti 0, a B=1 za vodonik, 2 za helijum, itd. Ovaj crtež će biti naša kontrolna kartica, koju ćemo sačuvati u fajlu pod nazivom table2.bmp.

Periodni sistem o školskoj informatici

Prva faza grafičkog programiranja u Photoshopu je završena. Pređimo na grafičko GUI programiranje u Delpi-7 IDE. Da biste to uradili, otvorite novi projekat, gde na glavnom obrascu postavljamo dugme za dijalog (tableDlg), u kojem će se odvijati rad sa stolom. Zatim radimo sa formom tableDlg.

Postavite komponentu klase na obrazac TImage... Dobijamo Image1. Imajte na umu da se općenito, za velike projekte, automatski generiraju nazivi obrasca SlikaNgde N može doseći nekoliko desetina ili više - ovo nije najbolji stil programiranja i treba dati smislenija imena. Ali u našem malom projektu, gdje N neće premašiti 2, možete ga ostaviti kako je generirano.

Do imovine Slika1.Slika otpremite fajl table01.bmp. Mi stvaramo Image2 i ubacite tamo našu kontrolnu karticu table2.bmp. U ovom slučaju, datoteku činimo malom i nevidljivom za korisnika, kao što je prikazano u donjem lijevom kutu obrasca. Dodamo dodatne kontrolne elemente, čija je svrha očigledna. Druga faza grafičkog GUI programiranja u Delpi-7 IDE je završena.

Periodni sistem o školskoj informatici

Pređimo na treću fazu - pisanje koda u Delpi-7 IDE. Modul se sastoji od samo pet rukovalaca događajima: kreiranje obrasca (FormCreate), kretanje kursora Image1 (Image1MouseMove), klikom na LMB na ćeliju (Image1Click) i izađite iz dijaloga pomoću dugmadi OK (OKBtnClick) ili Otkaži (CancelBtnClick). Zaglavlja ovih rukovalaca se generišu na standardni način koristeći IDE.

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 tabelu od 104 elementa (konstantno veličina). Očigledno se ova veličina može povećati. Oznake elemenata (hemijski simboli) se upisuju u niz TableSymbols. Međutim, iz razloga kompaktnosti izvornog koda, čini se preporučljivim da se niz ovih notacija zapiše u obliku string konstanti PeriodicTableStr1..., PeriodicTableStr4tako da kada se forma kreira, sam program rasipa ove oznake među elementima niza. Svaka oznaka elementa sastoji se od jednog ili dva latinična slova, pri čemu je prvo veliko, a drugo (ako postoji) malo. Ovo jednostavno pravilo se implementira prilikom učitavanja niza. Dakle, niz notacija se može napisati na sažet način bez razmaka. Rastavljanje niza na četiri dijela (konstante PeriodicTableStr1..., PeriodicTableStr4) je zbog razmatranja lakoće čitanja izvornog koda, jer Linija koja je predugačka možda neće u potpunosti stati na ekran.

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

Pored gore navedenih tehnika stilskog programiranja, vrijedi napomenuti i stil komentara. Strogo govoreći, kod o kojem se govori je toliko mali i jednostavan da komentari ne izgledaju posebno potrebni. Međutim, dodani su i iz metodoloških razloga – kratki kod nam omogućava da jasnije donesemo neke opšte zaključke. U prikazanom kodu je deklarirana 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 primjetno, ali će postati malo teže za čitanje i razumijevanje. Ako u odjeljku nema pet, već desetine puta više metoda izvršenje imaju potpuno drugačiji poredak nego u opisima klasa, tada će se haos 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 redoslijed 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 formatirati kao sadržaj. U nekim slučajevima prilično dugih modula, takvi sadržaji pružaju dodatne opcije 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 izrazima sa programskim zagradama početak - kraj, označite izraz na koji se odnosi završna zagrada:

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

Da biste istakli zaglavlja grupa i krajeve tijela metoda, možete dodati redove koji su duži od većine naredbi i sastoje se, na primjer, od znakova “=” i “_”.
Opet, moramo napraviti rezervu: naš primjer je previše jednostavan. A kada kod metode ne stane na jedan ekran, može biti teško razumjeti šest uzastopnih krajeva da bi se izvršile promjene koda. U nekim starim kompajlerima, na primjer, Pascal 8000 za OS IBM 360/370, servisni stupac kao što je ovaj bio je ispisan s lijeve strane u popisu

B5
…
E5

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

Naravno, stil programiranja je vrlo kontroverzno pitanje, tako da ideje koje su ovdje izražene treba uzeti kao ništa drugo nego kao hrana za razmišljanje. Za dva prilično iskusna programera, koji su se tokom godina rada razvili i navikli na različite stilove, može biti veoma teško da se dogovore. Druga je stvar za studenta koji uči programirati koji još nije imao vremena da pronađe svoj stil. Mislim da bi u ovom slučaju nastavnik barem svojim učenicima trebao prenijeti tako jednostavnu, ali njima ne očiglednu ideju da uspjeh programa u velikoj mjeri ovisi o stilu u kojem je njegov izvorni kod napisan. 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.

Da se vratimo na naš osnovni problem na periodnom sistemu: dalji razvoj može ići u različitim pravcima. Jedno od uputa je za referencu: kada zadržite pokazivač miša iznad ćelije tabele, pojavljuje se prozor sa informacijama koji sadrži dodatne informacije o navedenom elementu. Dalji razvoj su filteri. Na primjer, ovisno o instalaciji, informativni prozor će sadržavati samo: najvažnije fizičke i kemijske informacije, informacije o povijesti otkrića, informacije o rasprostranjenosti u prirodi, listu najvažnijih jedinjenja (koja uključuje 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 ovim razvojem programa dobiti kompletan trening kompleks iz prirodnih nauka: pored kompjuterskog nauke, fizike i hemije - biologije, ekonomske geografije, istorije nauke, pa čak i stranih jezika.

Ali lokalna baza podataka nije ograničenje. Program se prirodno povezuje na Internet. Kada odaberete element, link se aktivira, a članak na Wikipediji o ovom elementu se otvara u prozoru web pretraživača. Wikipedia, kao što znate, nije mjerodavan izvor. Možete postaviti veze na autoritativne izvore, na primjer, hemijsku enciklopediju, TSB, apstraktne časopise, upite za naručivanje u pretraživačima za ovaj element, itd. To. Studenti će moći da rade jednostavne, ali smislene zadatke iz DBMS i Internet tema.

Osim upita za pojedini element, možete kreirati funkcionalnost koja će, na primjer, različitim bojama označiti ćelije u tabeli koje ispunjavaju određene kriterije. Na primjer, metali i nemetali. Ili ćelije koje lokalna hemijska fabrika baca u vodena tijela.

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

A evo, na primjer, jednog od tipičnih školskih problema iz hemije:

Dato 10 g krede. Koliko hlorovodonične kiseline treba uzeti da se sva ova kreda rastvori?

Za rješavanje ovog problema potrebno je zapisati kem. reakciju i stavljajući u nju koeficijente, izračunajte molekulske mase kalcijum karbonata i hlorovodonika, zatim sastavite i riješite proporciju. Kalkulator baziran na našem osnovnom programu može izračunati i riješiti. Istina, i dalje ćete morati uzeti u obzir da se kiselina mora uzimati u razumnoj količini i u razumnoj koncentraciji, ali ovo je hemija, a ne informatika.
Dodatak 1: Kako funkcionira kemijski kalkulatorAnalizirajmo rad kalkulatora na primjeru gore navedenog problema krede i "salje". Počnimo sa reakcijom:

CaCO3 + 2HCl = CaCl2 + H2O

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

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

gdje indeks niza odgovara broju elementa. Više o slobodnom prostoru obrasca tableDlg stavi dva polja. U prvom polju je inicijalno napisano: “Prvi reagens je dat”, u drugom – “Drugi reagens je da pronađe x”. Označimo polja reagens1, reagens2 respektivno. Ostali dodaci programu bit će jasni iz sljedećeg primjera kalkulatora.

Ukucamo na tastaturi kompjutera: 10 g. Natpis u polju reagens1 promjene: “Prvi reagens se daje 10 g.” Sada unosimo formulu ovog reagensa, a kalkulator će izračunati i pokazati njegovu molekularnu težinu dok je unesete.

Kliknite LMB na ćeliju tabele sa Ca simbolom. Natpis u polju reagens1 promjene: “Prvi reagens Ca 40.078 dat 10 g.”

Kliknite LMB na ćeliju tabele sa simbolom C. Natpis u polju reagens1 promjene: “Prvi reagens CaC 52.089 dat 10 g.” One. Kalkulator je zbrojio atomske težine kalcijuma i ugljika.

Kliknite LMB na ćeliju tabele sa simbolom O. Natpis u polju reagens1 promjene: “Prvi reagens CaCO 68.088 dat 10 g.” Kalkulator je zbroju dodao atomsku težinu kiseonika.

Kliknite LMB na ćeliju tabele sa simbolom O. Natpis u polju reagens1 mijenja: “Prvi reagens CaCO2 84.087 dat 10 g.” Kalkulator je još jednom zbroju dodao atomsku težinu kiseonika.

Kliknite LMB na ćeliju tabele sa simbolom O. Natpis u polju reagens1 promjene: “Prvi reagens CaCO3 100.086 dat 10 g.” Kalkulator je ponovo dodao atomsku težinu kiseonika zbroju.

Pritisnite Enter na tastaturi računara. Uvođenje prvog reagensa je završeno i prelazi se na teren reagens2. Imajte na umu da u ovom primjeru nudimo minimalnu verziju. Po želji možete jednostavno organizirati multiplikatore atoma istog tipa, tako da, na primjer, ne morate kliknuti sedam puta zaredom na ćeliju kisika prilikom unosa formule hroma (K2Cr2O7).

Kliknite LMB na ćeliju tabele sa simbolom H. Natpis u polju reagens2 mijenja: “Drugi reagens H 1.008 pronađi x.”

Kliknite LMB na ćeliju tabele sa simbolom Cl. Natpis u polju reagens2 mijenja: “Drugi reagens HCl 36.458 pronađi x.” Kalkulator je sabrao atomske težine vodonika i hlora. U gornjoj jednadžbi reakcije, hlorovodoniku prethodi koeficijent 2. Stoga kliknite LMB na polju reagens2. Molekularna težina se udvostručuje (utrostručuje kada se pritisne dvaput, itd.). Natpis u polju reagens2 mijenja: “Drugi reagens 2HCl 72.916 pronađi x.”

Pritisnite Enter na tastaturi računara. Unos drugog reagensa je završen i kalkulator pronalazi x iz proporcije

Periodni sistem o školskoj informatici

To je ono što smo trebali pronaći.

Napomena 1. Značenje rezultirajuće proporcije: za rastvaranje 100.086 Da kredi je potrebno 72.916 Da kiseline, a za otapanje 10 g krede potrebno je x kiselina.

Napomena 2. Zbirke sličnih problema:

Khomchenko I. G., Zbirka zadataka i vježbi iz hemije 2009 (8-11. razredi).
Khomchenko G. P., Khomchenko I. G., Zbirka zadataka iz hemije za kandidate za univerzitete, 2019.

Napomena 3. Da biste pojednostavili zadatak, možete pojednostaviti unos formule u početnoj verziji i jednostavno dodati simbol elementa na kraj linije formule. Tada će formula kalcijum karbonata biti:
CaCOOO
Ali malo je vjerovatno da će se takav snimak svidjeti nastavniku hemije. Nije teško napraviti ispravan unos - da biste to učinili morate dodati niz:

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

gdje je indeks broj hemijskog elementa, a vrijednost na ovom indeksu je broj atoma (u početku se svi elementi niza vraćaju na nulu). Treba uzeti u obzir redosled kojim su atomi zapisani u formuli, kako je usvojeno u hemiji. Na primjer, malo ljudi će voljeti i O3CaC. Prebacimo odgovornost na korisnika. Pravljenje niza:

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

gdje zapisujemo broj hemijskog elementa prema indeksu njegovog pojavljivanja u formuli. Dodavanje atoma currNo u formulu:

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

Pisanje 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 osigurati mogućnost alternativnog unosa formule reagensa s tastature. U ovom slučaju, morat ćete implementirati jednostavan parser.

Vrijedi napomenuti da:

Danas postoji nekoliko stotina verzija tablice, a naučnici stalno nude nove opcije. (Wikipedia)

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

Periodni sistem o školskoj informatici
(Alternativni sistem elemenata Theodore Benfey, Izvor)

Dodajmo i to da je niz trenutno postojećih kompjuterskih programa za periodni sistem opisan u nedavno objavljenom na Habréu članak.

Dodatak 2: primjeri zadataka za filtereKoristeći filtere možete riješiti, na primjer, sljedeće zadatke:

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

2) Identifikujte sve elemente poznate u vreme otkrića Periodnog zakona.

3) Identifikujte sedam elemenata koje su alhemičari smatrali metalima.

4) Odaberite sve elemente koji su u gasovitom stanju u normalnim uslovima (n.s.).

5) Odaberite sve elemente koji su u tečnom 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 primjetnih promjena u normalnim uvjetima.

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

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

10) Odaberite sve metale koji se pri zagrijavanju rastvaraju u sumpornoj kiselini.

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

12) Izolujte sve metale koji burno reaguju sa vodom u uslovima okoline.

13) Odaberite sve metale.

14) Identifikujte elemente koji su rasprostranjeni u prirodi.

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

16) Identifikujte elemente koji imaju najvažniju ulogu u ljudskom i životinjskom telu.

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

18) Identifikovati elemente koji su najopasniji za rad i zahtevaju posebne mere i zaštitnu opremu.

19) Identifikovati elemente koji u slobodnom obliku ili u obliku jedinjenja predstavljaju najveću opasnost za životnu sredinu.

20) Odaberite plemenite metale.

21) Identifikujte elemente koji su skuplji od plemenitih metala.

Napomene

1) Ima smisla osigurati više filtera. Na primjer, ako uključite filter 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 filtera radi na takav način da svaki filter odabire ćelije sa svojom bojom, ali ne uklanja u potpunosti odabir drugog filtera (dio ćelije u jednoj boji, dio u drugoj). Tada će, u slučaju prethodnog primjera, biti vidljivi elementi sjecišta skupova otkrivenih u srednjem vijeku i plemenitih metala, kao i elementi koji pripadaju samo prvom i samo drugom skupu. One. plemeniti metali nepoznati u srednjem vijeku i elementi poznati u srednjem vijeku, ali ne i plemeniti metali.

3) Ima smisla nakon nanošenja filtera osigurati mogućnost drugog rada sa dobijenim rezultatima. Na primjer, nakon odabira elemenata poznatih u srednjem vijeku, korisnik klikne LMB na odabrani element i odvede se na članak na Wikipediji o ovom elementu.

4) Ima smisla dati korisniku mogućnost da poništi odabir klikom na LMB na odabranu ćeliju tabele. Na primjer, za uklanjanje već pregledanih stavki.

5) Ima smisla osigurati da se lista odabranih ćelija sačuva u datoteci i da se takva datoteka učita automatskim odabirom ćelija. Ovo će korisniku dati priliku da se odmori od posla.

Koristili smo statičku, unaprijed određenu kontrolnu mapu, ali postoji mnogo važnih zadataka gdje se mogu koristiti dinamičke kontrolne mape koje se mijenjaju kako se program pokreće. Primjer bi bio uređivač grafova, u kojem korisnik koristi miš da označi položaj vrhova u prozoru i nacrta rubove između njih. Da bi izbrisao vrh ili ivicu, korisnik mora pokazati na njega. Ali ako je prilično lako pokazati na vrh označen krugom, onda će biti teže pokazati na rub nacrtan tankom linijom. Ovdje će pomoći kontrolna mapa, gdje vrhovi i ivice zauzimaju šire susjedstvo nego na vidljivoj slici.

Zanimljivo sporedno pitanje vezano za ovu metodu kompleksnog treninga je: može li ova metoda biti korisna u obuci AI?

izvor: www.habr.com

Dodajte komentar