(Π£ΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠ°ΡΡΡ)
(Gipahinungod sa Internasyonal nga Tuig sa Periodic Table of Chemical Elements)
(Ang pinakabag-o nga mga pagdugang gihimo kaniadtong Abril 8, 2019. Ang listahan sa mga pagdugang anaa dayon sa ubos sa cut)
Nakahinumdom ko nga nilabay mi sa itik. Kini mao ang tulo ka mga leksyon sa makausa: geograpiya, natural nga siyensiya ug Russian. Sa usa ka leksyon sa siyensya, gitun-an ang usa ka itik isip usa ka itik, unsa ang mga pako niini, unsa ang mga bitiis niini, giunsa kini paglangoy, ug uban pa. Sa usa ka leksyon sa geograpiya, ang parehas nga itik gitun-an ingon usa ka lumulupyo sa kalibutan: kinahanglan nga ipakita sa mapa kung diin kini nagpuyo ug kung diin kini wala. Sa Russian, si Serafima Petrovna nagtudlo kanamo sa pagsulat sa "u-t-k-a" ug pagbasa og usa ka butang mahitungod sa mga itik gikan sa Brem. Sa paglabay, siya nagpahibalo kanamo nga sa German nga itik ingon niini, ug sa Pranses ingon niini. Sa akong hunahuna kini gitawag nga "komplikadong pamaagi" kaniadto. Sa kinatibuk-an, ang tanan migawas nga "sa paglabay."
Veniamin Kaverin, Duha ka kapitan
Sa kinutlo sa ibabaw, si Veniamin Kaverin batid nga nagpakita sa mga kakulangan sa komplikadong pamaagi sa pagtudlo, bisan pa, sa pipila (tingali talagsaon) nga mga kaso, ang mga elemento niini nga pamaagi gipakamatarung. Usa sa maong kaso mao ang periodic table ni D.I. Mendeleev sa mga leksyon sa computer science sa eskwelahan. Ang tahas sa software automation sa mga tipikal nga aksyon nga adunay periodic table klaro alang sa mga estudyante nga nagsugod sa pagtuon sa chemistry, ug gibahin sa daghang mga tipikal nga buluhaton sa kemikal. Sa samang higayon, sulod sa gambalay sa computer science, kini nga buluhaton nagtugot kanato sa pagpakita sa usa ka yano nga porma sa pamaagi sa pagkontrolar sa mga kard, nga mahimong ikapasangil sa graphical programming, nasabtan sa halapad nga diwa sa pulong ingon nga programming gamit ang graphic elemento. (Abril 8, 2019 mga pagdugang nga gihimo: Addendum 1: Giunsa Paglihok ang Chemistry Calculator Apendise 2: mga pananglitan sa mga buluhaton para sa mga filter)
Magsugod ta sa batakang buluhaton. Sa pinakasimple nga kaso, ang periodic table kinahanglang ipakita sa screen sa usa ka window form, diin sa matag cell adunay kemikal nga designation sa elemento: H - hydrogen, He - helium, etc. Kung ang cursor sa mouse nagpunting sa usa ka cell, nan ang pagtawag sa elemento ug ang numero niini gipakita sa usa ka espesyal nga uma sa among porma. Kung gipugos sa tiggamit ang LMB, nan ang pagtawag ug numero sa kini nga napili nga elemento ipakita sa lain nga natad sa porma.
Alang sa ikaduha nga drowing gigamit namon ang una. Sunud-sunod namon nga pun-on ang mga selyula sa lamesa, gitangtang sa tanan nga mga graphic, nga adunay talagsaon nga mga kolor sa modelo sa kolor sa RGB. Ang R ug G kanunay nga 0, ug B=1 alang sa hydrogen, 2 alang sa helium, ug uban pa. Kini nga drowing mao ang atong control card, nga atong i-save sa file nga gitawag table2.bmp.
Ang unang yugto sa graphic programming sa Photoshop nahuman. Mopadayon kita sa graphical GUI programming sa Delpi-7 IDE. Aron mahimo kini, pag-abli sa usa ka bag-ong proyekto, diin sa panguna nga porma gibutang namon ang usa ka buton sa diyalogo (lamesaDlg), diin ang trabaho uban sa lamesa mahitabo. Sunod nagtrabaho kami sa porma lamesaDlg.
Ibutang ang usa ka sangkap sa klase sa porma THulagway. ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Image1. Timan-i nga sa kinatibuk-an, alang sa dagkong mga proyekto, awtomatik nga namugna ang mga ngalan sa porma HulagwayNdiin N mahimong moabot sa pipila ka dosena o labaw pa - dili kini ang pinakamaayo nga estilo sa pagprograma, ug mas makahuluganon nga mga ngalan ang kinahanglan ihatag. Apan sa among gamay nga proyekto, diin N dili molapas sa 2, mahimo nimong ibilin kini ingon nga nahimo.
Π ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Hulagway1. Hulagway i-upload ang file table01.bmp. Kami nagmugna Image2 ug i-load ang among control card didto table2.bmp. Sa kini nga kaso, gihimo namon ang file nga gamay ug dili makita sa tiggamit, ingon sa gipakita sa ubos nga wala nga suok sa porma. Nagdugang kami og dugang nga mga elemento sa pagkontrol, ang katuyoan niini klaro. Ang ikaduhang yugto sa graphical GUI programming sa Delpi-7 IDE nahuman.
Mopadayon kita sa ikatulo nga yugto - pagsulat code sa Delpi-7 IDE. Ang module naglangkob lamang sa lima ka mga tigdumala sa panghitabo: paghimo sa porma (PormaPaghimo), paglihok sa cursor Image1 (Image1MouseMove), Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΠΠ Π½Π° ΠΊΠ»Π΅ΡΠΊΡ (Hulagway1 Pag-klik) ug paggawas sa dialog gamit ang OK nga buton (OKBtnClick) o Pagkansela (CancelBtnClick). Ang mga ulohan niini nga mga tigdumala gihimo sa usa ka standard nga paagi gamit ang IDE.
Source code sa module:
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.
Sa among bersyon, nagkuha kami usa ka lamesa sa 104 nga mga elemento (kanunayon gidak-on). Dayag nga kini nga gidak-on mahimong madugangan. Ang mga ngalan sa elemento (mga simbolo sa kemikal) gisulat sa usa ka laray Mga Simbolo sa Talaan. Bisan pa, alang sa mga hinungdan sa pagkakomplikado sa source code, daw maayo nga isulat ang pagkasunod-sunod niini nga mga notasyon sa porma sa mga string constants. PeriodicTableStr1..., PeriodicTableStr4, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΡΠΎΠ±ΡΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΠΌΠ° ΡΠ°ΡΠΊΠΈΠ΄Π°Π»Π° ΡΡΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π²ΡΡ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΡ Π±ΡΠΊΠ², ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²Π°Ρ Π±ΡΠΊΠ²Π° ΠΏΡΠΎΠΏΠΈΡΠ½Π°Ρ, Π° Π²ΡΠΎΡΠ°Ρ (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ) ΡΡΡΠΎΡΠ½Π°Ρ. ΠΡΠΎ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ΄Π°Π΅ΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΆΠ°ΡΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π±Π΅Π· ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ². Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΡΠ°ΡΡΠΈ (ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ PeriodicTableStr1..., PeriodicTableStr4) tungod sa mga konsiderasyon sa kasayon ββsa pagbasa sa source code, tungod kay Ang usa ka linya nga taas kaayo mahimong dili hingpit nga mohaum sa screen.
Sa diha nga ang mouse cursor molihok sa ibabaw sa Image1 handler Image1MouseMove kini nga panghitabo nagtino sa bili sa asul nga kolor nga component sa control card pixel Image2 alang sa kasamtangan nga cursor coordinates. Pinaagi sa pagtukod Image2 kini nga kantidad katumbas sa numero sa elemento kung ang cursor naa sa sulod sa cell; zero kon sa utlanan, ug 255 sa ubang mga kaso. Ang nahabilin nga mga aksyon nga gihimo sa programa walay hinungdan ug wala magkinahanglan og katin-awan.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΡΡΠΈΠ»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ Π½ΡΠΆΠ½ΡΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ β ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°Π³Π»ΡΠ΄Π½Π΅Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ. Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»Π°ΡΡ (TtableDlg). Ang mga pamaagi niini nga klase mahimong ibaylo ug dili kini makaapekto sa pagpaandar sa programa sa bisan unsang paagi, apan mahimong makaapekto sa pagkabasa niini. Pananglitan, hunahunaa ang pagkasunod-sunod:
Mahimong dili kini kaayo mamatikdan, apan kini mahimong mas lisud nga basahon ug sabton. Kung wala'y lima, apan napulo ka beses nga mas daghang mga pamaagi sa seksyon pagpatuman sila adunay usa ka bug-os nga lain-laing mga han-ay kay sa mga klase nga mga deskripsyon, unya ang kagubot modugang lamang. Busa, bisan tuod lisud ang estriktong pamatud-an ug mahimo pa gani nga imposible, ang usa makalaum nga ang pagpaila sa dugang nga han-ay makapauswag sa pagkabasa sa code. Kining dugang nga han-ay gipasayon ββββsa lohikal nga paggrupo sa daghang mga pamaagi nga nagpahigayon sa mga may kalabutan nga buluhaton. Ang matag grupo kinahanglang hatagan ug titulo, pananglitan:
Kini nga mga ulohan kinahanglan nga kopyahon sa sinugdanan sa module ug pormat ingon usa ka talaan sa mga sulud. Sa pipila ka mga kaso sa medyo taas nga mga module, ang ingon nga mga talaan sa sulud naghatag dugang nga mga kapilian sa pag-navigate. Sa susama, sa taas nga lawas sa usa ka pamaagi, pamaagi o gimbuhaton, kini angay, una, pagtimaan sa katapusan sa kini nga lawas:
end; // FormCreate
ug, ikaduha, sa mga branched nga mga pahayag nga adunay mga bracket sa programa nagsugod - katapusan, markahi ang pahayag nga gipasabut sa panapos nga bracket:
end; // if s [j] in
end; // for i :=1
end; // FormCreate
ΠΠ»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π³ΡΡΠΏΠΏ ΠΈ ΠΊΠΎΠ½ΡΠΎΠ² ΡΠ΅Π» ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΡΡΠΎΡΡΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Β«=Β» ΠΈ Β«_Β» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Sa makausa pa, kinahanglan nga maghimo kami usa ka reserbasyon: ang among panig-ingnan yano ra kaayo. Ug kung ang code sa usa ka pamaagi dili mohaum sa usa ka screen, mahimong lisud sabton ang unom ka sunod-sunod nga katapusan aron makahimo mga pagbag-o sa code. Sa pipila ka karaan nga mga compiler, pananglitan, ang Pascal 8000 para sa OS IBM 360/370, usa ka kolum sa serbisyo nga sama niini giimprinta sa wala sa listahan
B5
β¦
E5
Kini nagpasabot nga ang panapos nga parentesis sa linya E5 katumbas sa pangbukas nga parentesis sa linya B5.
Siyempre, ang estilo sa pagprograma usa ka kontrobersyal nga isyu, mao nga ang mga ideya nga gipahayag dinhi kinahanglan nga isipon nga walaβy lain kaysa pagkaon alang sa hunahuna. Mahimong lisud kaayo alang sa duha ka medyo eksperyensiyado nga mga programmer, nga naugmad ug naanad sa lainlaing mga istilo sa daghang mga tuig sa trabaho, nga magkauyon. Kini usa ka lahi nga butang alang sa usa ka estudyante nga nagkat-on sa pagprograma nga wala pa panahon sa pagpangita sa iyang kaugalingon nga istilo. Sa akong hunahuna nga sa kini nga kaso ang magtutudlo kinahanglan nga labing menos ipahayag sa iyang mga estudyante ang ingon ka yano, apan dili klaro nga ideya alang kanila nga ang kalampusan sa usa ka programa nagdepende sa istilo diin gisulat ang gigikanan nga code. Mahimong dili sundon sa estudyante ang girekomenda nga istilo, apan tugoti siya nga maghunahuna sa panginahanglan alang sa "dugang" nga mga aksyon aron mapaayo ang disenyo sa source code.
Pagbalik sa among sukaranan nga problema sa Periodic Table: ang dugang nga pag-uswag mahimong moadto sa lainlaing mga direksyon. Usa sa mga direksyon alang sa pakisayran: kung imong i-hover ang mouse cursor sa ibabaw sa usa ka cell sa lamesa, usa ka window sa impormasyon ang makita nga adunay dugang nga kasayuran sa piho nga elemento. Ang dugang nga pag-uswag mao ang mga pagsala. Pananglitan, depende sa pag-instalar, ang window sa impormasyon maglangkob lamang: ang labing importante nga pisikal ug kemikal nga impormasyon, impormasyon sa kasaysayan sa pagkadiskobre, impormasyon sa pag-apod-apod sa kinaiyahan, usa ka lista sa labing importante nga mga compound (nga naglakip niini nga elemento), pisyolohikal nga mga kabtangan, ngalan sa usa ka langyaw nga pinulongan, ug uban pa e. Ang paghinumdom sa "itik" ni Kaverin diin nagsugod kini nga artikulo, makaingon kita nga sa kini nga pag-uswag sa programa makakuha kita usa ka kompleto nga komplikado sa pagbansay sa natural nga siyensya: dugang sa kompyuter siyensiya, pisika ug chemistry - biology, ekonomikanhong geograpiya, kasaysayan sa siyensiya ug bisan sa langyaw nga mga pinulongan.
Apan ang usa ka lokal nga database dili ang limitasyon. Ang programa natural nga nagkonektar sa Internet. Kung magpili ka ug elemento, ang link gi-aktibo, ug ang artikulo sa Wikipedia bahin niini nga elemento giablihan sa bintana sa web browser. Ang Wikipedia, ingon sa imong nahibal-an, dili usa ka awtoritatibo nga gigikanan. Mahimo nimong itakda ang mga link sa mga awtoritatibo nga gigikanan, pananglitan, ang kemikal nga ensiklopedia, TSB, abstract nga mga journal, mga pangutana sa pag-order sa mga search engine alang niini nga elemento, ug uban pa. Nga. Ang mga estudyante makahimo sa pagkompleto sa yano apan makahuluganon nga mga buluhaton sa DBMS ug mga hilisgutan sa Internet.
Agi og dugang sa mga pangutana sa usa ka indibidwal nga elemento, makahimo ka og mga gamit nga, pananglitan, magmarka sa mga selula sa lamesa nga nakab-ot sa pipila ka mga criteria nga adunay lain-laing mga kolor. Pananglitan, metal ug non-metal. O mga selula nga gilabay ngadto sa mga tubigan sa usa ka lokal nga kemikal nga planta.
Mahimo usab nimo ipatuman ang mga gimbuhaton sa usa ka organizer sa notebook. Pananglitan, i-highlight sa lamesa ang mga elemento nga gilakip sa eksaminasyon. Dayon i-highlight ang mga elemento nga gitun-an/gisubli sa estudyante agig pagpangandam sa eksaminasyon.
Ug dinhi, pananglitan, usa sa kasagaran nga mga problema sa chemistry sa eskwelahan:
Gihatag 10 g sa chalk. Pila ka hydrochloric acid ang kinahanglan nga kuhaon aron matunaw kining tanan nga chalk?
Aron masulbad kini nga problema, kinahanglan nga isulat ang chem. reaksyon ug pagbutang sa mga coefficient niini, kuwentaha ang mga molekular nga gibug-aton sa calcium carbonate ug hydrogen chloride, dayon i-compose ug sulbaron ang proporsyon. Ang usa ka calculator nga gibase sa among sukaranan nga programa mahimong makalkula ug masulbad. Tinuod, kinahanglan nimo nga tagdon nga ang acid kinahanglan nga makuha sa makatarunganon nga sobra ug sa usa ka makatarunganon nga konsentrasyon, apan kini usa ka chemistry, dili siyensya sa kompyuter. Addendum 1: Giunsa Paglihok ang Chemistry CalculatorΠ Π°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅Π»Π° ΠΈ βΡΠΎΠ»ΡΠ½ΠΊΠΈβ. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ΅Π°ΠΊΡΠΈΠΈ:
CaCO3 + 2HCl = CaCl2 + H2O
Gikan niini atong makita nga atong gikinahanglan ang atomic nga gibug-aton sa mosunod nga mga elemento: calcium (Ca), carbon (C), oxygen (O), hydrogen (H) ug chlorine (Cl). Sa pinakasimple nga kaso, mahimo natong isulat kini nga mga gibug-aton ngadto sa usa ka dimensyon nga han-ay nga gihubit ingon
AtomicMass : array [1..size] of real;
Π³Π΄Π΅ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½ΠΎΠΌΠ΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΡΠ΅ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠΎΡΠΌΡ lamesaDlg ibutang ang duha ka field. Sa una nga natad kini sa sinugdan gisulat: "Ang una nga reagent gihatag", sa ikaduha - "Ang ikaduha nga reagent mao ang pagpangita sa x". Atong itudlo ang mga uma reagent1, reagent2 matag usa. Ang ubang mga pagdugang sa programa mahimong klaro gikan sa mosunod nga pananglitan sa calculator.
Nag-type kami sa keyboard sa kompyuter: 10 g. Inskripsiyon sa uma reagent1 mga kausaban: "Ang unang reagent gihatag 10 g." Karon atong gisulod ang pormula niini nga reagent, ug ang calculator magkalkulo ug magpakita sa gibug-aton sa molekula niini sa imong pagsulod niini.
I-klik ang LMB sa table cell nga adunay simbolo nga Ca. Inskripsiyon sa kapatagan reagent1 mga kausaban: "Unang reagent Ca 40.078 gihatag 10 g."
I-klik ang LMB sa table cell nga adunay simbolo nga C. Inscription sa field reagent1 ΠΌΠ΅Π½ΡΠ΅ΡΡΡ: βΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π°Π³Π΅Π½Ρ CaC 52.089 Π΄Π°Π½ΠΎ 10 Π³β. Π’.Π΅. ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΡΠ»ΠΎΠΆΠΈΠ» Π°ΡΠΎΠΌΠ½ΡΠ΅ Π²Π΅ΡΠ° ΠΊΠ°Π»ΡΡΠΈΡ ΠΈ ΡΠ³Π»Π΅ΡΠΎΠ΄Π°.
I-klik ang LMB sa table cell nga adunay simbolo nga O. Inscription sa field reagent1 mga kausaban: "Unang reagent CaCO 68.088 gihatag 10 g." Gidugang sa calculator ang atomic nga gibug-aton sa oxygen sa suma.
I-klik ang LMB sa table cell nga adunay simbolo nga O. Inscription sa field reagent1 mga kausaban: "Unang reagent CaCO2 84.087 gihatag 10 g." Gidugang na usab sa calculator ang atomic nga gibug-aton sa oxygen sa suma.
I-klik ang LMB sa table cell nga adunay simbolo nga O. Inscription sa field reagent1 ΠΌΠ΅Π½ΡΠ΅ΡΡΡ: βΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π°Π³Π΅Π½Ρ CaCO3 100.086 Π΄Π°Π½ΠΎ 10 Π³β. ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΡΠ½ΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ ΡΡΠΌΠΌΠ΅ Π°ΡΠΎΠΌΠ½ΡΠΉ Π²Π΅Ρ ΠΊΠΈΡΠ»ΠΎΡΠΎΠ΄Π°.
Pindota ang Enter sa keyboard sa imong computer. Ang pagpaila sa una nga reagent nahuman ug gibalhin sa uma reagent2. Timan-i nga sa kini nga pananglitan naghatag kami usa ka gamay nga bersyon. Kung gusto, dali nimo maorganisar ang mga multiplier sa mga atomo sa parehas nga tipo, aron, pananglitan, dili nimo kinahanglan nga mag-klik sa pito ka beses nga sunud-sunod sa oxygen cell kung mosulod sa pormula sa chromium (K2Cr2O7).
I-klik ang LMB sa table cell nga adunay simbolo nga H. Inscription sa field reagent2 kausaban: "Ikaduhang reagent H 1.008 pangitaa x."
I-klik ang LMB sa table cell nga adunay simbolo nga Cl. Inskripsiyon sa kapatagan reagent2 mga kausaban: "Ikaduhang reagent HCl 36.458 pangitaa x." Gidugang sa calculator ang atomic nga gibug-aton sa hydrogen ug chlorine. Sa ibabaw nga equation sa reaksyon, ang hydrogen chloride giunhan sa usa ka coefficient nga 2. Busa, i-klik ang LMB sa field reagent2. ΠΠΎΠ»Π΅ΠΊΡΠ»ΡΡΠ½ΡΠΉ Π²Π΅Ρ ΡΠ΄Π²Π°ΠΈΠ²Π°Π΅ΡΡΡ (ΠΏΡΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Ρ.Π΄.). ΠΠ°Π΄ΠΏΠΈΡΡ Π² ΠΏΠΎΠ»Π΅ reagent2 ΠΌΠ΅Π½ΡΠ΅ΡΡΡ: βΠΡΠΎΡΠΎΠΉ ΡΠ΅Π°Π³Π΅Π½Ρ 2HCl 72.916 Π½Π°ΠΉΡΠΈ Ρ β.
Pindota ang Enter sa keyboard sa imong computer. Ang pagsulod sa ikaduhang reagent nahuman, ug ang calculator nakakaplag x gikan sa proporsyon
Mao kana ang kinahanglan namon nga pangitaon.
Nota 1. Ang kahulogan sa resulta nga proporsiyon: para sa dissolution 100.086 Da chalk nagkinahanglan 72.916 Da acid, ug sa dissolve 10 g sa chalk kinahanglan x acid.
Nota 2. Mga koleksyon sa parehas nga mga problema:
Khomchenko I. G., Koleksyon sa mga problema ug mga ehersisyo sa chemistry 2009 (grado 8-11).
Khomchenko G. P., Khomchenko I. G., Koleksyon sa mga problema sa chemistry alang sa mga aplikante sa unibersidad, 2019.
Nota 3. ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ Π²Π²ΠΎΠ΄ ΡΠΎΡΠΌΡΠ»Ρ ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ ΡΠΎΡΠΌΡΠ»Ρ. Π’ΠΎΠ³Π΄Π° ΡΠΎΡΠΌΡΠ»Π° ΠΊΠ°ΡΠ±ΠΎΠ½Π°ΡΠ° ΠΊΠ°Π»ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΈΠ΄:
CaCOOO
Apan ang magtutudlo sa chemistry dili tingali ganahan sa ingon nga rekording. Dili lisud ang paghimo sa husto nga pagsulod - aron mahimo kini kinahanglan nimo nga magdugang usa ka laray:
formula : array [1..size] of integer;
diin ang indeks mao ang gidaghanon sa kemikal nga elemento, ug ang bili niini nga indeks mao ang gidaghanon sa mga atomo (sa sinugdan ang tanang elemento sa array gi-reset sa zero). Ang han-ay diin ang mga atomo gisulat sa usa ka pormula, ingon nga gisagop sa chemistry, kinahanglan nga tagdon. Pananglitan, pipila ka mga tawo ang ganahan sa O3CaC. Atong ibalhin ang responsibilidad sa tiggamit. Paghimo og array:
formulaOrder : array [1..size] of integer; // ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΠΏΠΎΠΊΠΎΡΠΎΡΠ΅
diin atong isulat ang gidaghanon sa kemikal nga elemento sumala sa indeks sa dagway niini sa pormula. Pagdugang og atomo currNo Π² ΡΠΎΡΠΌΡΠ»Ρ:
if formula [currNo]=0 then //ΡΡΠΎΡ Π°ΡΠΎΠΌ Π²ΡΡΡΠ΅ΡΠΈΠ»ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·
begin
orderIndex := orderIndex+1;//Π² Π½Π°ΡΠ°Π»Π΅ Π²Π²ΠΎΠ΄Π° ΡΠΎΡΠΌΡΠ»Ρ orderIndex=0
formulaOrder [orderIndex] := currNo;
end;
formula [currNo]:=formula [currNo]+1;
ΠΠ°ΠΏΠΈΡΡ ΡΠΎΡΠΌΡΠ»Ρ Π² ΡΡΡΠΎΠΊΡ:
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;
Nota 4. Makataronganon ang paghatag sa abilidad sa alternatibong pagsulod sa pormula sa reagent gikan sa keyboard. Sa kini nga kaso, kinahanglan nimo nga ipatuman ang usa ka yano nga parser.
Angay nga matikdan nga:
Karon, adunay daghang gatusan nga mga bersyon sa lamesa, ug ang mga siyentipiko kanunay nga nagtanyag mga bag-ong kapilian. (Wikipedia)
Π£ΡΠ΅Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΠ²ΠΈΡΡ ΡΠΌΠ΅ΠΊΠ°Π»ΠΊΡ ΠΈ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ· ΡΠΆΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ. ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΡΡΠΎΠΊΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΎΡΠΌΠ΅ ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠ°Π·Π³Π»ΡΠ΄Π΅ΡΡ ΠΎΡΠΎΠ±ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ TButton. Ang spiral nga porma sa lamesa (diin ang mga selula lain-laing mga porma) mas tin-aw nga magpakita sa mga bentaha sa solusyon nga gisugyot dinhi.
19) Ilha ang mga elemento nga, sa libre nga porma o sa porma sa mga compound, naghatag sa labing dako nga hulga sa kinaiyahan.
20) Pagpili ug bililhong mga metal.
21) Ilha ang mga elemento nga mas mahal kay sa mahal nga mga metal.
Mga nota
1) Makataronganon ang paghatag og daghang mga pagsala. Pananglitan, kung imong i-on ang usa ka filter aron masulbad ang problema 1 (tanan nga mga elemento nga nahibal-an sa Middle Ages) ug 20 (mahal nga mga metal), nan ang mga cell nga adunay mahal nga mga metal nga nahibal-an sa Middle Ages ipasiugda (pananglitan, pinaagi sa kolor) ( pananglitan, ang palladium dili ipasiugda, giablihan sa 1803).
2) Makataronganon ang pagsiguro nga daghang mga pagsala ang naglihok sa ingon nga mode nga ang matag filter nagpili sa mga selyula nga adunay kaugalingon nga kolor, apan dili hingpit nga makuha ang pagpili sa lain nga filter (bahin sa cell sa usa ka kolor, bahin sa lain). Dayon, sa kaso sa miaging pananglitan, ang mga elemento sa intersection sa mga set nga nadiskobrehan sa Middle Ages ug mga mahal nga metal, ingon man ang mga elemento nga iya lamang sa una ug sa ikaduha lamang nga mga set, makita. Mga. bililhon nga mga metal nga wala mailhi sa Middle Ages, ug mga elemento nga nailhan sa Middle Ages apan dili mahal nga mga metal.
3) Makataronganon kini human magamit ang filter aron maseguro ang posibilidad sa ubang trabaho sa mga resulta nga nakuha. Pananglitan, nga adunay pinili nga mga elemento nga nahibal-an sa Middle Ages, ang tiggamit nag-klik sa LMB sa pinili nga elemento ug gidala ngadto sa artikulo sa Wikipedia mahitungod niini nga elemento.
5) Makataronganon ang pagsiguro nga ang lista sa mga pinili nga mga selyula gitipigan sa usa ka file ug nga ang ingon nga file puno sa awtomatikong pagpili sa mga selyula. Makahatag kini sa tiggamit ug higayon nga makapahulay gikan sa trabaho.
Gigamit namo ang usa ka static, gitino nang daan nga mapa sa pagkontrol, apan adunay daghang importante nga mga buluhaton diin ang mga dinamikong kontrol nga mga mapa nga mausab samtang ang programa mahimong magamit. Usa ka pananglitan mao ang usa ka graph editor, diin ang user naggamit sa mouse aron ipakita ang mga posisyon sa mga vertices sa usa ka bintana ug magdrowing og mga ngilit tali kanila. Aron matangtang ang usa ka vertex o ngilit, ang tiggamit kinahanglan nga magtudlo niini. Apan kung sayon ββββra ang pagtudlo sa usa ka vertex nga gimarkahan og usa ka lingin, nan kini mahimong mas lisud nga itudlo ang usa ka ngilit nga gilaraw nga adunay manipis nga linya. Ang usa ka kontrol nga mapa makatabang dinhi, diin ang mga vertices ug mga ngilit nag-okupar sa mas lapad nga mga kasilinganan kaysa sa makita nga numero.
Usa ka makapaikag nga bahin nga pangutana nga may kalabutan sa kini nga pamaagi sa komplikado nga pagbansay mao ang: mahimo ba kini nga pamaagi nga mapuslanon sa pagbansay sa AI?