(Vadības kartes)
(VeltÄ«ts Starptautiskajam Ä·Ä«misko elementu periodiskÄs tabulas gadam)
(PÄdÄjie papildinÄjumi tika veikti 8. gada 2019. aprÄ«lÄ«. PapildinÄjumu saraksts ir uzreiz zem griezuma)
Es atceros, ka mÄs gÄjÄm garÄm pÄ«lei. TÄs bija uzreiz trÄ«s stundas: Ä£eogrÄfija, dabaszinÄ«bas un krievu valoda. DabaszinÄ«bu stundÄ tika pÄtÄ«ta pÄ«le kÄ pÄ«le, kÄdi tai ir spÄrni, kÄdas kÄjas, kÄ tÄ peld utt. Ä¢eogrÄfijas stundÄ tÄ pati pÄ«le tika pÄtÄ«ta kÄ zemeslodes iemÄ«tniece: vajadzÄja kartÄ parÄdÄ«t, kur tÄ dzÄ«vo un kur ne. Krievu valodÄ Serafima Petrovna mÄcÄ«ja mums rakstÄ«t āu-t-k-aā un lasÄ«t kaut ko par pÄ«lÄm no Bremas. GarÄmejot viÅa mÅ«s informÄja, ka vÄciski pÄ«le ir tÄ, bet franciski tÄ. Es domÄju, ka toreiz to sauca par āsarežģīto metodiā. KopumÄ viss iznÄca āejot garÄmā.
Venjamins Kaverins, Divi kapteiÅi
IepriekÅ” minÄtajÄ citÄtÄ Venjamins Kaverins meistarÄ«gi parÄdÄ«ja sarežģītÄs mÄcÄ«bu metodes nepilnÄ«bas, tomÄr atseviŔķos (varbÅ«t diezgan retos) gadÄ«jumos Ŕīs metodes elementi ir pamatoti. Viens no Å”Ädiem gadÄ«jumiem ir D. I. Mendeļejeva periodiskÄ tabula skolas informÄtikas stundÄs. Tipisko darbÄ«bu programmatÅ«ras automatizÄcijas uzdevums ar periodisko tabulu ir skaidrs skolÄniem, kuri ir sÄkuÅ”i mÄcÄ«ties Ä·Ä«miju, un tas ir sadalÄ«ts daudzÄs tipiskÄs Ä·Ä«miskÄs problÄmas. Vienlaikus datorzinÄtÅu ietvaros Å”is uzdevums ļauj vienkÄrÅ”Ä veidÄ demonstrÄt grafiskai programmÄÅ”anai attiecinÄmo vadÄ«bas karÅ”u metodi, kas vÄrda plaÅ”Ä nozÄ«mÄ saprotama kÄ programmÄÅ”ana, izmantojot grafiskos elementus. (8. gada 2019. aprÄ«lÄ« veikti papildinÄjumi: 1. pielikums: kÄ darbojas Ä·Ä«mijas kalkulators 2. pielikums: uzdevumu piemÄri filtriem)
SÄksim ar pamatuzdevumu. VienkÄrÅ”ÄkajÄ gadÄ«jumÄ periodiskÄ tabula jÄparÄda ekrÄnÄ loga formÄ, kur katrÄ Å”Å«nÄ bÅ«s elementa Ä·Ä«miskais apzÄ«mÄjums: H - Å«deÅradis, He - hÄlijs utt. Ja peles kursors norÄda uz Ŕūnu, mÅ«su veidlapas Ä«paÅ”Ä laukÄ tiek parÄdÄ«ts elementa apzÄ«mÄjums un tÄ numurs. Ja lietotÄjs nospiež LMB, tad Ŕī izvÄlÄtÄ elementa apzÄ«mÄjums un numurs tiks norÄdÄ«ts citÄ formas laukÄ.
ProblÄmu var atrisinÄt, izmantojot jebkuru universÄlu valodu. MÄs Åemsim vienkÄrÅ”u veco Delpi-7, kas ir saprotams gandrÄ«z ikvienam. Bet pirms programmÄÅ”anas PL, uzzÄ«mÄsim divus attÄlus, piemÄram, Photoshop. Vispirms uzzÄ«mÄsim periodisko tabulu tÄdÄ formÄ, kÄdu to vÄlamies redzÄt programmÄ. SaglabÄjiet rezultÄtu grafiskÄ failÄ table01.bmp.
Otrajam zÄ«mÄjumam mÄs izmantojam pirmo. MÄs secÄ«gi aizpildÄ«sim tabulas Ŕūnas, kas atbrÄ«votas no visÄm grafikÄm, ar unikÄlÄm krÄsÄm RGB krÄsu modelÄ«. R un G vienmÄr bÅ«s 0, un B=1 Å«deÅradim, 2 hÄlijam utt. Å is zÄ«mÄjums bÅ«s mÅ«su kontroles karte, kuru saglabÄsim failÄ ar nosaukumu table2.bmp.
Pirmais grafiskÄs programmÄÅ”anas posms programmÄ Photoshop ir pabeigts. PÄriesim pie grafiskÄs GUI programmÄÅ”anas Delpi-7 IDE. Lai to izdarÄ«tu, atveriet jaunu projektu, kur galvenajÄ veidlapÄ ievietojam dialoga pogu (tabulaDlg), kurÄ notiks darbs ar tabulu. TÄlÄk mÄs strÄdÄjam ar formu tabulaDlg.
VeidlapÄ novietojiet klases komponentu AttÄls... MÄs saÅemam Image1. Å emiet vÄrÄ, ka parasti lieliem projektiem tiek automÄtiski Ä£enerÄti veidlapas nosaukumi AttÄlsNKur N var sasniegt vairÄkus desmitus vai vairÄk - tas nav labÄkais programmÄÅ”anas stils, un jÄdod jÄgpilnÄki nosaukumi. Bet mÅ«su mazajÄ projektÄ, kur N nepÄrsniegs 2, varat atstÄt to kÄ Ä£enerÄtu.
Uz Ä«paÅ”umu AttÄls1.AttÄls augÅ”upielÄdÄt failu table01.bmp. MÄs radÄm Image2 un ielÄdÄjiet tur mÅ«su kontroles karti table2.bmp. Å ajÄ gadÄ«jumÄ mÄs padarÄm failu mazu un lietotÄjam neredzamu, kÄ parÄdÄ«ts veidlapas apakÅ”ÄjÄ kreisajÄ stÅ«rÄ«. MÄs pievienojam papildu vadÄ«bas elementus, kuru mÄrÄ·is ir acÄ«mredzams. Delpi-7 IDE grafiskÄs GUI programmÄÅ”anas otrais posms ir pabeigts.
PÄrejam uz treÅ”o posmu - koda rakstÄ«Å”anu Delpi-7 IDE. Modulis sastÄv tikai no pieciem notikumu apstrÄdÄtÄjiem: veidlapas izveide (FormCreate), kursora kustÄ«ba Image1 (Image1MouseMove), noklikŔķinot uz LMB uz Ŕūnas (AttÄls1 NoklikŔķiniet) un izejiet no dialoga, izmantojot pogas Labi (OKBtnClick) vai Atcelt (AtceltBtnClick). Å o apdarinÄtÄju galvenes tiek Ä£enerÄtas standarta veidÄ, izmantojot IDE.
Moduļa avota kods:
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.
MÅ«su versijÄ mÄs paÅÄmÄm tabulu ar 104 elementiem (konstante izmÄrs). AcÄ«mredzot Å”o izmÄru var palielinÄt. Elementu apzÄ«mÄjumi (Ä·Ä«miskie simboli) tiek ierakstÄ«ti masÄ«vÄ TabulaSimboli. TomÄr avota koda kompaktuma dÄļ ir ieteicams rakstÄ«t Å”o apzÄ«mÄjumu secÄ«bu virkÅu konstantu veidÄ PeriodiskÄ tabulaStr1..., PeriodiskÄ tabulaStr4lai, veidojot formu, pati programma Å”os apzÄ«mÄjumus izkaisÄ«tu starp masÄ«va elementiem. Katrs elementa apzÄ«mÄjums sastÄv no viena vai diviem latÄ«Åu burtiem, kur pirmais burts ir lielais un otrais (ja tÄds ir) mazais burts. Å is vienkÄrÅ”ais noteikums tiek ieviests, ielÄdÄjot masÄ«vu. TÄdÄjÄdi apzÄ«mÄjumu secÄ«bu var rakstÄ«t kodolÄ«gi bez atstarpÄm. SecÄ«bas sadalÄ«Å”ana ÄetrÄs daļÄs (konstantes PeriodiskÄ tabulaStr1..., PeriodiskÄ tabulaStr4) ir saistÄ«ts ar apsvÄrumiem par avota koda lasÄ«Å”anas vienkÄrŔību, jo PÄrÄk gara rinda var pilnÄ«bÄ neietilpst ekrÄnÄ.
Kad peles kursors pÄrvietojas virs Image1 apdarinÄtÄjs Image1MouseMove Å”is notikums nosaka kontroles kartes pikseļa zilÄs krÄsas komponenta vÄrtÄ«bu Image2 paÅ”reizÄjÄm kursora koordinÄtÄm. PÄc konstrukcijas Image2 Ŕī vÄrtÄ«ba ir vienÄda ar elementa numuru, ja kursors atrodas Ŕūnas iekÅ”pusÄ; nulle, ja uz robežas, un 255 citos gadÄ«jumos. PÄrÄjÄs programmas veiktÄs darbÄ«bas ir triviÄlas un neprasa paskaidrojumus.
Papildus iepriekÅ” minÄtajiem stilistiskÄs programmÄÅ”anas paÅÄmieniem ir vÄrts atzÄ«mÄt komentÄru stilu. Stingri sakot, apspriestais kods ir tik mazs un vienkÄrÅ”s, ka komentÄri neŔķiet Ä«paÅ”i nepiecieÅ”ami. TaÄu tie tika pievienoti arÄ« metodoloÄ£isku apsvÄrumu dÄļ ā Ä«sais kods ļauj skaidrÄk izdarÄ«t dažus vispÄrÄ«gus secinÄjumus. ParÄdÄ«tajÄ kodÄ tiek deklarÄta viena klase (TtableDlg). Å Ä«s klases metodes var tikt apmainÄ«tas, un tas nekÄdÄ veidÄ neietekmÄs programmas darbÄ«bu, bet var ietekmÄt tÄs lasÄmÄ«bu. PiemÄram, iedomÄjieties secÄ«bu:
Tas var nebÅ«t Ä«paÅ”i pamanÄms, taÄu tas kļūs nedaudz grÅ«tÄk lasÄms un saprotams. Ja sadaÄ¼Ä ir nevis piecas, bet desmitiem reižu vairÄk metožu Ä«stenoÅ”ana viÅiem ir pavisam cita kÄrtÄ«ba nekÄ klaÅ”u aprakstos, tad haoss tikai pieaugs. TÄpÄc, lai gan to ir grÅ«ti stingri pierÄdÄ«t un var pat bÅ«t neiespÄjami, var cerÄt, ka papildu kÄrtÄ«bas ievieÅ”ana uzlabos koda lasÄmÄ«bu. Å o papildu kÄrtÄ«bu veicina vairÄku metožu loÄ£iskÄ grupÄÅ”ana, kas veic saistÄ«tus uzdevumus. Katrai grupai jÄpieŔķir nosaukums, piemÄram:
Å ie virsraksti ir jÄnokopÄ moduļa sÄkumÄ un jÄformatÄ kÄ satura rÄdÄ«tÄjs. Dažos diezgan garu moduļu gadÄ«jumos Å”Ädi satura rÄdÄ«tÄji nodroÅ”ina papildu navigÄcijas iespÄjas. LÄ«dzÄ«gi vienas metodes, procedÅ«ras vai funkcijas garajÄ pamattekstÄ, pirmkÄrt, ir vÄrts atzÄ«mÄt Ŕīs daļas beigas:
end; // FormCreate
un, otrkÄrt, sazarotajos priekÅ”rakstos ar programmas iekavÄm sÄkums - beigas atzÄ«mÄjiet paziÅojumu, uz kuru attiecas beigu iekava:
end; // if s [j] in
end; // for i :=1
end; // FormCreate
Lai izceltu grupu galvenes un metožu pamattekstu beigas, varat pievienot rindas, kas ir garÄkas par lielÄko daļu priekÅ”rakstu un sastÄv, piemÄram, attiecÄ«gi no rakstzÄ«mÄm ā=ā un ā_ā.
Atkal mums ir jÄizdara atruna: mÅ«su piemÄrs ir pÄrÄk vienkÄrÅ”s. Un, ja metodes kods neietilpst vienÄ ekrÄnÄ, var bÅ«t grÅ«ti saprast seÅ”as secÄ«gas koda izmaiÅas. Dažos vecos kompilatoros, piemÄram, Pascal 8000 operÄtÄjsistÄmai IBM 360/370, Å”Äda pakalpojumu kolonna tika izdrukÄta saraksta kreisajÄ pusÄ.
B5
ā¦
E5
Tas nozÄ«mÄja, ka noslÄdzoÅ”Äs iekavas rindÄ E5 atbilda sÄkuma iekavai rindÄ B5.
Protams, programmÄÅ”anas stils ir ļoti strÄ«dÄ«gs jautÄjums, tÄpÄc Å”eit paustÄs idejas ir jÄuztver tikai kÄ viela pÄrdomÄm. Diviem diezgan pieredzÄjuÅ”iem programmÄtÄjiem, kuri daudzu gadu darba laikÄ ir izveidojuÅ”ies un pieraduÅ”i pie dažÄdiem stiliem, var bÅ«t ļoti grÅ«ti vienoties. Cita lieta ir studentam, kurÅ” mÄcÄs programmÄt un kuram vÄl nav bijis laika atrast savu stilu. Es domÄju, ka Å”ajÄ gadÄ«jumÄ skolotÄjam vajadzÄtu vismaz nodot saviem skolÄniem tik vienkÄrÅ”u, bet ne acÄ«mredzamu domu, ka programmas panÄkumi lielÄ mÄrÄ ir atkarÄ«gi no stila, kÄdÄ ir rakstÄ«ts tÄs pirmkods. SkolÄns var neievÄrot ieteikto stilu, bet ļaut viÅam vismaz padomÄt par āpapilduā darbÄ«bu nepiecieÅ”amÄ«bu avota koda dizaina uzlaboÅ”anai.
Atgriežoties pie mÅ«su pamatproblÄmas periodiskajÄ tabulÄ: turpmÄkÄ attÄ«stÄ«ba var virzÄ«ties dažÄdos virzienos. Viens no norÄdÄ«jumiem ir atsaucei: novietojot peles kursoru virs tabulas Ŕūnas, tiek parÄdÄ«ts informÄcijas logs ar papildu informÄciju par norÄdÄ«to elementu. TurpmÄkÄ attÄ«stÄ«ba ir filtri. PiemÄram, atkarÄ«bÄ no instalÄcijas informÄcijas logÄ bÅ«s tikai: svarÄ«gÄkÄ fizikÄlÄ un Ä·Ä«miskÄ informÄcija, informÄcija par atklÄÅ”anas vÄsturi, informÄcija par izplatÄ«bu dabÄ, svarÄ«gÄko savienojumu saraksts (kas ietver Å”o elementu), fizioloÄ£iskÄs Ä«paŔības, vÄrds sveÅ”valodÄ utt. e. Atceroties Kaverina āpÄ«liā, ar kuru sÄkas Å”is raksts, varam teikt, ka ar Å”o programmas izstrÄdi mÄs iegÅ«sim pilnu mÄcÄ«bu kompleksu dabaszinÄtnÄs: papildus datoram dabaszinÄtnes, fizika un Ä·Ä«mija - bioloÄ£ija, ekonomiskÄ Ä£eogrÄfija, zinÄtnes vÄsture un pat sveÅ”valodas.
TaÄu vietÄjÄ datubÄze nav ierobežojums. Programma dabiski izveido savienojumu ar internetu. Atlasot elementu, saite tiek aktivizÄta, un tÄ«mekļa pÄrlÅ«kprogrammas logÄ tiek atvÄrts Wikipedia raksts par Å”o elementu. VikipÄdija, kÄ zinÄms, nav autoritatÄ«vs avots. Varat iestatÄ«t saites uz autoritatÄ«viem avotiem, piemÄram, Ä·Ä«misko enciklopÄdiju, TSB, abstraktiem žurnÄliem, pasÅ«tÄ«t Ŕī elementa vaicÄjumus meklÄtÄjprogrammÄs utt. Tas. Studenti varÄs veikt vienkÄrÅ”us, bet saturÄ«gus uzdevumus par DBVS un interneta tÄmÄm.
Papildus vaicÄjumiem par atseviŔķu elementu varat izveidot funkcionalitÄti, kas, piemÄram, atzÄ«mÄs ar dažÄdÄm krÄsÄm tabulas Ŕūnas, kas atbilst noteiktiem kritÄrijiem. PiemÄram, metÄli un nemetÄli. Vai Ŕūnas, kuras vietÄjÄ Ä·Ä«miskÄ rÅ«pnÄ«ca izmet Å«denstilpÄs.
Varat arÄ« Ä«stenot piezÄ«mju grÄmatiÅas organizatora funkcijas. PiemÄram, tabulÄ iezÄ«mÄjiet elementus, kas ir iekļauti eksÄmenÄ. PÄc tam iezÄ«mÄjiet elementus, kurus skolÄns apguvis/atkÄrtojis, gatavojoties eksÄmenam.
Un Å”eit, piemÄram, ir viena no tipiskÄm skolas Ä·Ä«mijas problÄmÄm:
Doti 10 g krÄ«ta. Cik daudz sÄlsskÄbes ir jÄuzÅem, lai izŔķīdinÄtu visu Å”o krÄ«tu?
Lai atrisinÄtu Å”o problÄmu, ir nepiecieÅ”ams pierakstÄ«t Ä·Ä«miju. reakciju un ievietojot tajÄ koeficientus, aprÄÄ·inÄt kalcija karbonÄta un hlorÅ«deÅraža molekulmasas, pÄc tam sastÄdÄ«t un atrisinÄt proporciju. Kalkulators, kura pamatÄ ir mÅ«su pamatprogramma, var aprÄÄ·inÄt un atrisinÄt. Tiesa, vÄl bÅ«s jÄrÄÄ·inÄs, ka skÄbe jÄuzÅem saprÄtÄ«gÄ pÄrpalikumÄ un saprÄtÄ«gÄ koncentrÄcijÄ, taÄu tÄ ir Ä·Ä«mija, nevis datorzinÄtne. 1. pielikums: kÄ darbojas Ä·Ä«mijas kalkulatorsAnalizÄsim kalkulatora darbÄ«bu, izmantojot iepriekÅ” minÄtÄs krÄ«ta un āhodgepodgeā problÄmas piemÄru. SÄksim ar reakciju:
CaCO3 + 2HCl = CaCl2 + H2O
No tÄ mÄs redzam, ka mums bÅ«s nepiecieÅ”ami Å”Ädu elementu atomu svars: kalcijs (Ca), ogleklis (C), skÄbeklis (O), Å«deÅradis (H) un hlors (Cl). VienkÄrÅ”ÄkajÄ gadÄ«jumÄ mÄs varam ierakstÄ«t Å”os svarus viendimensijas masÄ«vÄ, kas definÄts kÄ
AtomicMass : array [1..size] of real;
kur masÄ«va indekss atbilst elementa numuram. VairÄk par veidlapas brÄ«vo vietu tabulaDlg ielieciet divus laukus. PirmajÄ laukÄ sÄkotnÄji ir rakstÄ«ts: āIr dots pirmais reaÄ£entsā, otrajÄ - āOtrais reaÄ£ents ir atrast xā. ApzÄ«mÄsim laukus reaÄ£ents1, reaÄ£ents2 attiecÄ«gi. Citi programmas papildinÄjumi bÅ«s skaidri redzami tÄlÄk norÄdÄ«tajÄ kalkulatora piemÄrÄ.
Uz datora tastatÅ«ras ierakstÄm: 10 g.Uzraksts laukÄ reaÄ£ents1 izmaiÅas: "Pirmajam reaÄ£entam tiek doti 10 g." Tagad mÄs ievadÄm Ŕī reaÄ£enta formulu, un kalkulators aprÄÄ·inÄs un parÄdÄ«s tÄ molekulmasu, ievadot to.
NoklikŔķiniet uz LMB tabulas ŔūnÄ ar Ca simbolu. Uzraksts laukÄ reaÄ£ents1 izmaiÅas: "Pirmais reaÄ£ents Ca 40.078 dots 10 g."
NoklikŔķiniet uz LMB uz tabulas Ŕūnas ar simbolu C. Uzraksts laukÄ reaÄ£ents1 izmaiÅas: "Pirmais reaÄ£ents CaC 52.089 dots 10 g." Tie. Kalkulators saskaitÄ«ja kalcija un oglekļa atomu svaru.
NoklikŔķiniet uz LMB uz tabulas Ŕūnas ar simbolu O. Uzraksts laukÄ reaÄ£ents1 izmaiÅas: "Pirmais reaÄ£ents CaCO 68.088 dots 10 g." Kalkulators summai pievienoja skÄbekļa atommasu.
NoklikŔķiniet uz LMB uz tabulas Ŕūnas ar simbolu O. Uzraksts laukÄ reaÄ£ents1 izmaiÅas: "Pirmais reaÄ£ents CaCO2 84.087 dots 10 g." Kalkulators summai vÄlreiz pievienoja skÄbekļa atommasu.
NoklikŔķiniet uz LMB uz tabulas Ŕūnas ar simbolu O. Uzraksts laukÄ reaÄ£ents1 izmaiÅas: "Pirmais reaÄ£ents CaCO3 100.086 dots 10 g." Kalkulators summai atkal pievienoja skÄbekļa atommasu.
Datora tastatÅ«rÄ nospiediet taustiÅu Enter. PirmÄ reaÄ£enta ievadÄ«Å”ana ir pabeigta un pÄriet uz lauku reaÄ£ents2. Å emiet vÄrÄ, ka Å”ajÄ piemÄrÄ mÄs piedÄvÄjam minimÄlo versiju. Ja vÄlaties, varat Ärti sakÄrtot viena veida atomu reizinÄtÄjus, lai, piemÄram, jums, ievadot hroma formulu (K2Cr2O7), nebÅ«tu septiÅas reizes pÄc kÄrtas jÄklikŔķina uz skÄbekļa Ŕūnas.
NoklikŔķiniet uz LMB uz tabulas Ŕūnas ar simbolu H. Uzraksts laukÄ reaÄ£ents2 izmaiÅas: "Otrais reaÄ£ents H 1.008 atrast x."
NoklikŔķiniet uz LMB tabulas ŔūnÄ ar simbolu Cl. Uzraksts laukÄ reaÄ£ents2 izmaiÅas: "Otrais reaÄ£ents HCl 36.458 atrast x." Kalkulators saskaitÄ«ja Å«deÅraža un hlora atomu svaru. IepriekÅ” minÄtajÄ reakcijas vienÄdojumÄ Å«deÅraža hlorÄ«da priekÅ”Ä ir koeficients 2. TÄpÄc laukÄ noklikŔķiniet uz LMB reaÄ£ents2. Molekulmasa dubultojas (trÄ«skÄrÅ”ojas, ja to nospiež divreiz utt.). Uzraksts laukÄ reaÄ£ents2 izmaiÅas: "Otrais reaÄ£ents 2HCl 72.916 atrast x."
Datora tastatÅ«rÄ nospiediet taustiÅu Enter. OtrÄ reaÄ£enta ievadÄ«Å”ana ir pabeigta, un kalkulators atrod x no proporcijas
Tas ir tas, kas mums bija jÄatrod.
PiezÄ«me 1. IegÅ«tÄs proporcijas nozÄ«me: izŔķīdinÄÅ”anai 100.086 Da krÄ«tam nepiecieÅ”ama 72.916 Da skÄbe, un, lai izŔķīdinÄtu 10 g krÄ«ta, nepiecieÅ”ama x skÄbe.
PiezÄ«me 2. LÄ«dzÄ«gu problÄmu kolekcijas:
Khomchenko I. G., Uzdevumu un vingrinÄjumu krÄjums Ä·Ä«mijÄ 2009 (8.-11. klase).
KhomÄenko G. P., KhomÄenko I. G., Ķīmijas problÄmu krÄjums universitÄÅ”u reflektantiem, 2019.
PiezÄ«me 3. Lai vienkÄrÅ”otu uzdevumu, varat vienkÄrÅ”ot formulas ievadÄ«Å”anu sÄkotnÄjÄ versijÄ un vienkÄrÅ”i pievienot elementa simbolu formulas rindas beigÄs. Tad kalcija karbonÄta formula bÅ«s:
CaCOOO
Bet Ä·Ä«mijas skolotÄjam Å”Äds ieraksts diez vai patiks. Nav grÅ«ti izdarÄ«t pareizo ierakstu - lai to izdarÄ«tu, jums jÄpievieno masÄ«vs:
formula : array [1..size] of integer;
kur indekss ir Ä·Ä«miskÄ elementa numurs, un Ŕī indeksa vÄrtÄ«ba ir atomu skaits (sÄkotnÄji visi masÄ«va elementi tiek atiestatÄ«ti uz nulli). JÄÅem vÄrÄ secÄ«ba, kÄdÄ atomi ir ierakstÄ«ti formulÄ, kÄ pieÅemts Ä·Ä«mijÄ. PiemÄram, dažiem cilvÄkiem patiks arÄ« O3CaC. Noliksim atbildÄ«bu uz lietotÄju. MasÄ«va izveidoÅ”ana:
formulaOrder : array [1..size] of integer; // Š¼Š¾Š¶Š½Š¾ Š²Š·ŃŃŃ ŠæŠ¾ŠŗŠ¾ŃŠ¾ŃŠµ
kur mÄs pierakstÄm Ä·Ä«miskÄ elementa numuru atbilstoÅ”i tÄ parÄdÄ«Å”anÄs indeksam formulÄ. Atoma pievienoÅ”ana CurrNr formulÄ:
if formula [currNo]=0 then //ŃŃŠ¾Ń Š°ŃŠ¾Š¼ Š²ŃŃŃŠµŃŠøŠ»ŃŃ ŠæŠµŃŠ²ŃŠ¹ ŃŠ°Š·
begin
orderIndex := orderIndex+1;//Š² Š½Š°ŃŠ°Š»Šµ Š²Š²Š¾Š“Š° ŃŠ¾ŃŠ¼ŃŠ»Ń orderIndex=0
formulaOrder [orderIndex] := currNo;
end;
formula [currNo]:=formula [currNo]+1;
Formulas rakstÄ«Å”ana rindÄ:
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;
PiezÄ«me 4. Ir lietderÄ«gi nodroÅ”inÄt iespÄju alternatÄ«vi ievadÄ«t reaÄ£enta formulu no tastatÅ«ras. Å ajÄ gadÄ«jumÄ jums bÅ«s jÄievieÅ” vienkÄrÅ”s parsÄtÄjs.
Ir vÄrts atzÄ«mÄt, ka:
MÅ«sdienÄs ir vairÄki simti tabulas versiju, un zinÄtnieki pastÄvÄ«gi piedÄvÄ jaunas iespÄjas. (Wikipedia)
Studenti var parÄdÄ«t savu atjautÄ«bu Å”ajÄ virzienÄ, Ä«stenojot kÄdu no jau piedÄvÄtajÄm iespÄjÄm vai mÄÄ£inÄt izveidot savu oriÄ£inÄlo. Var Ŕķist, ka Å”is ir vismazÄk noderÄ«gÄkais datorzinÄtÅu stundu virziens. TomÄr Å”ajÄ rakstÄ ieviestÄs periodiskÄs tabulas veidÄ daži studenti var neredzÄt nekÄdas Ä«paÅ”as kontroles karÅ”u priekÅ”rocÄ«bas salÄ«dzinÄjumÄ ar alternatÄ«vo risinÄjumu, izmantojot standarta pogas. Tpoga. Tabulas spirÄlveida forma (kur Ŕūnas ir dažÄdas formas) skaidrÄk parÄdÄ«s Å”eit piedÄvÄtÄ risinÄjuma priekÅ”rocÄ«bas.
1) IzvÄlieties tabulÄ visus viduslaikos zinÄmos elementus.
2) Nosakiet visus elementus, kas bija zinÄmi PeriodiskÄ likuma atklÄÅ”anas brÄ«dÄ«.
3) Nosakiet septiÅus elementus, kurus alÄ·Ä«miÄ·i uzskatÄ«ja par metÄliem.
4) Atlasiet visus elementus, kas normÄlos apstÄkļos atrodas gÄzveida stÄvoklÄ« (n.s.).
5) Atlasiet visus elementus, kas atrodas ŔķidrÄ stÄvoklÄ« Nr.
6) Atlasiet visus elementus, kas atrodas cietÄ stÄvoklÄ« Nr.
7) IzvÄlieties visus elementus, kas normÄlos apstÄkļos var ilgstoÅ”i tikt pakļauti gaisa iedarbÄ«bai bez manÄmÄm izmaiÅÄm.
8) IzvÄlieties visus metÄlus, kas Ŕķīst sÄlsskÄbÄ.
9) IzvÄlieties visus metÄlus, kas Ŕķīst sÄrskÄbÄ Nr.
10) IzvÄlieties visus metÄlus, kas karsÄjot izŔķīst sÄrskÄbÄ.
11) IzvÄlieties visus metÄlus, kas Ŕķīst slÄpekļskÄbÄ.
12) IzolÄjiet visus metÄlus, kas apkÄrtÄjÄs vides apstÄkļos spÄcÄ«gi reaÄ£Ä ar Å«deni.
13) IzvÄlieties visus metÄlus.
14) Nosakiet elementus, kas ir plaÅ”i izplatÄ«ti dabÄ.
15) Nosakiet elementus, kas dabÄ atrodami brÄ«vÄ stÄvoklÄ«.
16) Nosakiet elementus, kuriem ir vissvarÄ«gÄkÄ loma cilvÄka un dzÄ«vnieka organismÄ.
17) IzvÄlieties elementus, kas tiek plaÅ”i izmantoti ikdienÄ (brÄ«vÄ formÄ vai kombinÄcijÄs).
18) Noteikt elementus, ar kuriem strÄdÄt ir visbÄ«stamÄk un kuriem nepiecieÅ”ami Ä«paÅ”i pasÄkumi un aizsardzÄ«bas lÄ«dzekļi.
19) Nosakiet elementus, kas brÄ«vÄ veidÄ vai savienojumu veidÄ rada vislielÄkos draudus videi.
20) IzvÄlieties dÄrgmetÄlus.
21) Nosakiet elementus, kas ir dÄrgÄki par dÄrgmetÄliem.
piezīmes
1) Ir lietderÄ«gi nodroÅ”inÄt vairÄkus filtrus. PiemÄram, ja ieslÄdzat filtru, lai atrisinÄtu problÄmu 1 (visi elementi, kas zinÄmi viduslaikos) un 20 (dÄrgmetÄli), tad Ŕūnas ar viduslaikos zinÄmiem dÄrgmetÄliem tiks izceltas (piemÄram, pÄc krÄsas) ( piemÄram, pallÄdijs netiks izcelts , atvÄrts 1803. gadÄ).
2) Ir jÄga nodroÅ”inÄt, lai vairÄki filtri darbotos tÄdÄ režīmÄ, ka katrs filtrs atlasa Ŕūnas ar savu krÄsu, bet pilnÄ«bÄ nenoÅem cita filtra atlasi (daļa Ŕūnas vienÄ krÄsÄ, daļa citÄ). Tad iepriekÅ”ÄjÄ piemÄra gadÄ«jumÄ bÅ«s redzami viduslaikos atklÄto kopu un dÄrgmetÄlu krustpunkta elementi, kÄ arÄ« elementi, kas pieder tikai pirmajai un tikai otrajai kopai. Tie. viduslaikos nezinÄmi dÄrgmetÄli un viduslaikos zinÄmi elementi, bet ne dÄrgmetÄli.
3) Ir jÄga pÄc filtra uzlikÅ”anas nodroÅ”inÄt iespÄju citam darbam ar iegÅ«tajiem rezultÄtiem. PiemÄram, atlasot viduslaikos zinÄmus elementus, lietotÄjs noklikŔķina uz LMB uz izvÄlÄtÄ elementa un tiek novirzÄ«ts uz Wikipedia rakstu par Å”o elementu.
4) Ir lietderÄ«gi nodroÅ”inÄt lietotÄjam iespÄju atcelt atlasi, noklikŔķinot uz LMB atlasÄ«tajÄ tabulas ŔūnÄ. PiemÄram, lai noÅemtu jau skatÄ«tos vienumus.
5) Ir jÄga nodroÅ”inÄt, lai atlasÄ«to Ŕūnu saraksts tiktu saglabÄts failÄ un Å”Äds fails tiktu ielÄdÄts ar automÄtisku Ŕūnu atlasi. Tas lietotÄjam dos iespÄju atpÅ«sties no darba.
MÄs izmantojÄm statisku, iepriekÅ” noteiktu vadÄ«bas karti, taÄu ir daudzi svarÄ«gi uzdevumi, kuros var izmantot dinamiskÄs vadÄ«bas kartes, kas mainÄs programmas darbÄ«bas laikÄ. PiemÄrs varÄtu bÅ«t grafu redaktors, kurÄ lietotÄjs izmanto peli, lai norÄdÄ«tu virsotÅu pozÄ«cijas logÄ un novilktu starp tÄm malas. Lai izdzÄstu virsotni vai malu, lietotÄjam ir jÄnorÄda uz to. Bet, ja ir diezgan viegli norÄdÄ«t uz virsotni, kas atzÄ«mÄta ar apli, tad uz malu, kas novilkta ar tievu lÄ«niju, bÅ«s grÅ«tÄk. Å eit palÄ«dzÄs kontroles karte, kur virsotnes un malas aizÅem plaÅ”Äkas apkÄrtnes nekÄ redzamajÄ attÄlÄ.
Interesants blakus jautÄjums saistÄ«bÄ ar Å”o kompleksÄs apmÄcÄ«bas metodi: vai Ŕī metode var bÅ«t noderÄ«ga AI apmÄcÄ«bÄ?