Periodiskā tabula par skolas datorzinātnēm

(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)

Periodiskā tabula par skolas datorzinātnēm
(Mendeļejeva zieds, Avots)

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ā.

Periodiskā tabula par skolas datorzinātnēm

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.

Periodiskā tabula par skolas datorzinātnēm

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.

Periodiskā tabula par skolas datorzinātnēm

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.

Periodiskā tabula par skolas datorzinātnēm

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:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

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

Periodiskā tabula par skolas datorzinātnēm

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.

Periodiskā tabula par skolas datorzinātnēm
(Teodora Benfija alternatīvā elementu sistēma, Avots)

Ä»aujiet mums arÄ« piebilst, ka vairākas paÅ”laik esoŔās periodiskās tabulas datorprogrammas ir aprakstÄ«tas nesen publicētajā HabrĆ© raksts.

2. pielikums: uzdevumu piemēri filtriemIzmantojot filtrus, varat atrisināt, piemēram, Ŕādus uzdevumus:

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ā?

Avots: www.habr.com

Pievieno komentāru