(Maps Menaxher)
(Dedikuar Vitit Ndërkombëtar të Tabelës Periódike të Elementeve Kimike)
(Ndryshimet e fundit janë bërë më 8 Prill 2019. Lista e ndryshimeve është menjëherë pas titullit)

(, )
I kujtohet, ne kaluam për patën. Këto ishin menjëherë tri mësime: gjeografia, shkenca natyrore dhe gjuha shqipe. Në mësimin e shkencave natyrore, pata u studiuar si pata: cilat ka krahë, cilat ka këmbë, si noton etj. Në mësimin e gjeografisë, e njëjta patë u studiuar si banore e sipërfaqes së Tokës: duhej të tregosh në hartë se ku jeton dhe ku nuk jeton. Në gjuhën shqipe, Serafima Petrova na mësoi të shkruanim "p-a-t-ë" dhe lexoi diçka për patat nga Brema. Përkalimi, ajo na informoi se në gjermanisht pata quhet kështu, dhe në frëngjisht kështu. Duket se kjo quhej atëherë "metoda komplekse". Në përgjithësi, gjithçka rezultoi "përkalim".
Veniamin Kavërin, Dy Kapitenët
Në citatin e cituar, Veniamin Kavërin mjeshtërisht tregoi mangësitë e metodës komplekse të mësimit, megjithatë, në disa (ndoshta mjaft të rralla) raste, elementet e kësaj metode mund të jenë të justifikuara. Një nga këto raste është tabela periodike e D.I. Mendeleev-it në mësimet e informatikës shkollore. Detyra e automatizimit programor të veprimeve standarde me tabelën e Mendeleev-it është e qartë për nxënësit që kanë filluar të mësojnë kiminë dhe ndahet në shumë detyra tipike kimike. Në të njëjtën kohë, brenda kuadrit të informatikës, kjo detyrë lejon të demonstrohet në një formë të thjeshtë mënyra e kartave menaxhuese, e cila mund të referohet te programimi grafik, i kuptuar në kuptimin e gjerë si programim përmes elementeve grafike.
(8 Prill 2019 janë bërë ndryshime:
Le të fillojmë me detyrën bazë. Në rastin më të thjeshtë, në ekran në formën e dritares duhet të shfaqet tabela periodike, ku në çdo katror do të ketë shenjën kimike të elementit: H - hidrogjeni, He - heliumi etj. Nëse kursori i miut tregon në katror, atëherë në një fushë të veçantë në formën tonë shfaqet shenja e elementit dhe numri i tij. Nëse përdoruesi në këtë rast klikon me butonin e majtë të miut, atëherë në një fushë tjetër të formës do të jepen shenja dhe numri i këtij elementi të zgjedhur.

Detyra mund të zgjidhet në çdo gjuhë programuese universale. Do të marrim Delphi-7, një mjet të njohur për shumicën. Por para se të programojmë në këtë gjuhë, do të vizatojmë dy imazhe, për shembull, në Photoshop. Së pari, do të vizatojmë tabelën periodike ashtu siç duam ta shohim në program. Do ta ruajmë rezultatin në një skedar grafik. table01.bmp.

Për imazhin e dytë do të përdorim të parin. Do të mbushim një nga një qelizat e pastra nga çdo grafik me ngjyra unike në modelin e ngjyrave RGB. R dhe G do të jenë gjithmonë 0, ndërsa B=1 për hidrogjenin, 2 për helium dhe kështu me radhë. Ky imazh do të jetë harta jonë kontrolluese, që do ta ruajmë në një skedar nën emrin table2.bmp.

Faza e parë e programimit grafik në Photoshop ka përfunduar. Tani do të kalojmë në programimin grafik GUI në IDE Delphi-7. Për këtë, hapim një projekt të ri, ku në formën kryesore vendosim një buton për të thirrur dialogun (tableDlg), në të cilin do të zhvillohet puna me tabelën. Më pas punojmë me formën tableDlg.
Vendosim nĂ« formĂ« komponentin e klasĂ«s TImage. Marrim Image1. Vlen tĂ« theksohet se nĂ« pĂ«rgjithĂ«si pĂ«r projekte tĂ« mĂ«dha, emrat e gjeneruar automatikisht tĂ« tipit ImageNindex N mund tĂ« arrijnĂ« disa dhjetĂ«ra dhe mĂ« shumĂ« â Ă«shtĂ« njĂ« stil programimi jo i mirĂ«, dhe do tĂ« duhej t'u jepeshin emra mĂ« tĂ« kuptueshĂ«m. Por nĂ« projektin tonĂ« tĂ« vogĂ«l, ku N nuk do tĂ« kalojĂ« 2, mund ta lĂ«mĂ« siç Ă«shtĂ« gjeneruar.
Në pronën Image1.Picture ngarkojmë skedarin table01.bmp. Krijojmë Image2 dhe ngarkohet aty harta jonë kontrolluese. table2.bmpNë të njëjtën kohë, skedari bëhet i vogël dhe i padukshëm për përdoruesin, siç tregohet në këndin e poshtëm të majtë të formës. Shtojmë elemente të tjera kontrolli, funksioni i të cilave është i qartë. Faza e dytë e programimit grafik GUI në IDE Delphi-7 ka përfunduar.

Tani kalojmĂ« nĂ« fazĂ«n e tretĂ« â shkruhen kodet nĂ« IDE Delphi-7. Moduli pĂ«rbĂ«het nga vetĂ«m pesĂ« trajtues ngjarjesh: krijimi i formĂ«s (FormCreate), lĂ«vizja e kursorit mbi Image1 (Image1MouseMove), klikimi me butonin e majtĂ« nĂ« qelizĂ« (Image1Click) dhe dalja nga dialogu me ndihmĂ«n e butonave OK (OKBtnClick) ose Cancel (CancelBtnClick). Titujt e kĂ«tyre trajtuesve gjenerohen nĂ« mĂ«nyrĂ« standarde me ndihmĂ«n e IDE-sĂ«.
Kodi burimor i modulit:
tabela unit;
//Tabela periodike e elementeve kimike D.I. Mendelejev
//
// third112
// https://habr.com/en/users/third112/
//
// Indeksi
// 1) krijimi i formës
// 2) punë me tabelën: tregimi dhe zgjedhja
// 3) dalja nga dialogu
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
const
size = 104; // numri i elementeve
type
TtableDlg = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
Bevel1: TBevel;
Image1: TImage; // tabela e elementeve kimike
Label1: TLabel;
Image2: TImage; // harta menaxheruese
Label2: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject); // krijimi i formës
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); // tregimi i qelizës
procedure Image1Click(Sender: TObject); // zgjedhja e qelizës
procedure OKBtnClick(Sender: TObject); // OK
procedure CancelBtnClick(Sender: TObject); // Anulo
private
{ Deklarata Private }
TableSymbols : array [1..size] of string [2]; // array i simbolove të elementeve
public
{ Deklarata Publike }
selectedElement : string; // elementi i zgjedhur
currNo : integer; // numri aktual i elementit
end;
var
tableDlg: TtableDlg;
implementation
{$R *.dfm}
const
PeriodicTableStr1=
'HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLa';
PeriodicTableStr2='CePrNdPmSmEuGdTbDyHoErTmYbLu';
PeriodicTableStr3='HfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAc';
PeriodicTableStr4='ThPaUNpPuAmCmBkCfEsFmMdNoLrKu ';
// krijimi i formës ==================================================
procedure TtableDlg.FormCreate(Sender: TObject);
// krijimi i formës
var
s : string;
i,j : integer;
begin
currNo := 0;
// inicializimi i array-t të simbolove të elementeve:
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 ____________________________________________________
// punë me tabelën: tregimi dhe zgjedhja =========================================
procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
// tregimi i qelizës
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 := 'Zgjidhni elementin:';
end; // Image1MouseMove ____________________________________________________
procedure TtableDlg.Image1Click(Sender: TObject);
begin
if currNo 0 then
begin
selectedElement := TableSymbols [currNo];
Label2.Caption := intToStr (currNo) + ' ' + selectedElement + ' e zgjedhur';
Edit1.Text := selectedElement;
end;
end; // Image1Click ____________________________________________________
// dalja nga dialogu ==================================================
procedure TtableDlg.OKBtnClick(Sender: TObject);
begin
selectedElement := Edit1.Text;
hide;
end; // OKBtnClick ____________________________________________________
procedure TtableDlg.CancelBtnClick(Sender: TObject);
begin
hide;
end; // CancelBtnClick ____________________________________________________
end.NĂ« versionin tonĂ«, morĂ«m njĂ« tabelĂ« me 104 elemente (konstante size). Natyrisht, kjo madhĂ«si mund tĂ« rritet. Simbolet e elementeve (simbolet kimike) shkruhen nĂ« njĂ« array TableSymbols. MegjithatĂ«, pĂ«r arsye kompaktĂ«sie tĂ« kodit burimor, duket e arsyeshme tĂ« shkruhen sekuenca e kĂ«tyre simboleve si constante string PeriodicTableStr1,âŠ, PeriodicTableStr4, qĂ« kur ndodh ngjarja e krijimit tĂ« formes, programi vetĂ« do tâi shpĂ«rndajĂ« kĂ«to simbole nĂ« elementet e array-t. Ădo simbol elementi pĂ«rbĂ«het nga njĂ« ose dy letra latine, ku letra e parĂ« Ă«shtĂ« e madhe, ndĂ«rsa e dyta (nĂ«se ka) Ă«shtĂ« e vogĂ«l. Kjo rregull e thjeshtĂ« realizohet gjatĂ« ngarkimit tĂ« array-t. KĂ«shtu, sekuenca e simboleve mund tĂ« shkruhet nĂ« mĂ«nyrĂ« tĂ« kompresuar pa hapĂ«sira. ndarja e sekuencĂ«s nĂ« katĂ«r pjesĂ« (konstante PeriodicTableStr1,âŠ, PeriodicTableStr4) Ă«shtĂ« e motivuar nga njĂ« konsideratĂ« pĂ«r lehtĂ«sinĂ« e leximit tĂ« kodit burimor, pasi njĂ« varg shumĂ« i gjatĂ« mund tĂ« mos bĂ«het gjithmonĂ« i dukshĂ«m nĂ« ekran.
Kur ndodh ngjarja e lëvizjes së kursorit të mausit mbi Image1 handler Image1MouseMove kësaj ngjarjeje përcakton vlerën e komponentës blu të ngjyrës së pixelit të kartës së kontrollit Image2 për koordinatat aktuale të kursorit. Sipas ndërtimit, Image2 kjo vlerë është e barabartë me numrin e elementit, nëse kursori është brenda qelisë; zero, nëse është në kufi, dhe 255 në raste të tjera. Veprimet e tjera të kryera nga programi janë triviale dhe nuk kërkojnë shpjegime.
PĂ«rveç teknikave stilistike tĂ« pĂ«rmendura mĂ« lart tĂ« programimit, Ă«shtĂ« e rĂ«ndĂ«sishme tĂ« theksohet stili i komenteve. Rigorozisht, kodi i shqyrtuar Ă«shtĂ« aq i vogĂ«l dhe i thjeshtĂ« sa qĂ« komentet duken jo veçanĂ«risht tĂ« nevojshme. MegjithatĂ«, ato janĂ« shtuar edhe pĂ«r arsye metodologjike â kodi i shkurtĂ«r lejon tĂ« ilustrohen disa pĂ«rfundime tĂ« pĂ«rgjithshme. NĂ« kodin e paraqitur Ă«shtĂ« shpallur njĂ« klasĂ« (TtableDlg). Metodat e kĂ«saj klase mund tĂ« ndĂ«rrohen midis tyre dhe kjo nuk do tĂ« reflektojĂ« nĂ« funksionimin e programit, por mund tĂ« ndikojĂ« nĂ« lexueshmĂ«rinĂ« e saj. PĂ«r shembull, le tĂ« imagjinojmĂ« sekuencĂ«n:
OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.
Ndoshta nuk është shumë e dukshme, por do të jetë pak më e vështirë për t'u lexuar dhe kuptuar. Nëse metodat nuk janë pesë, por disa dhjetëra herë më shumë dhe në seksionin implementation Ata kanë një renditje krejtësisht të ndryshme nga përshkrimet e klasave, kështu që kaosi do të vazhdojë të rritet. Prandaj, megjithëse është e vështirë të provohet me saktësi dhe ndoshta madje e pamundur, mund të shpresojmë se vendosja e një rendi shtesë do të përmirësojë lexueshmërinë e kodit. Ky rend i shtuar ndihmohet nga grupimi logjik i disa metodave që kryejnë detyra të ngjashme. Secilës grup i vlen të jepet një titull, për shembull:
// ŃĐ°Đ±ĐŸŃа Ń ŃаблОŃĐ”Đč: ŃĐșĐ°Đ·Đ°ĐœĐžĐ” Đž ĐČŃĐ±ĐŸŃ
Këto tituj duhet të kopjohen në fillim të modulit dhe të paraqiten si një përmbajtje. Në disa raste, mjaft module të gjata, këto përmbajtje ofrojnë mundësi shtesë navigimi. Po ashtu, në trupin e gjatë të një metode, procedure ose funksioni, së pari duhet të shënohet fundi i këtij trupi:
end; // FormCreatedhe, sĂ« dyti, nĂ« operatorĂ«t e ndarĂ« me kllapa programore begin â end, duhet tĂ« shĂ«nohet operatori, tĂ« cilit i pĂ«rket kllapa mbyllĂ«se:
end; // nëse s[j] në
end; // për i :=1
end; // FormCreate
PĂ«r tĂ« nxjerrĂ« nĂ« pah titujt e grupeve dhe fundet e trupave tĂ« metodave, mund tĂ« shtohen rreshta qĂ« tejkalojnĂ« shumicĂ«n e operatorĂ«ve dhe qĂ« pĂ«rbĂ«hen, pĂ«r shembull, nga simbolet â=â dhe â_â pĂ«rkatĂ«sisht.
Sërish duhet të saktësojmë: kemi një shembull shumë të thjeshtë. Dhe kur kodi i metodës nuk i përshtatet një ekrani, të kuptosh gjashtë end pas njëri-tjetrit për të bërë ndryshime në kod, mund të jetë e vështirë. Në disa kompajlerë të vjetër, për shembull, Pascal 8000 për OS IBM 360/370, në listimin në majë të majtë printohej një kolonë shërbyese si
B5
âŠ
E5
Kjo do të thoshte se kllapa mbyllëse programore në rreshtin E5 përfundon me kllapën e hapur në rreshtin B5.
Sigurisht, stili i programimit është një çështje shumë e paqartë, prandaj idetë e shprehura këtu duhet të merren si informacion për reflektim. Dy programues të mjaftueshëm të aftë, të cilët kanë zhvilluar dhe zakonisht përdorin stile të ndryshme gjatë viteve të punës, shpesh e kanë të vështirë të bien dakord. Një tjetër rast është ai i një nxënësi që po mëson të programojë, i cili nuk ka pasur ende kohë të formojë stilin e tij të vet. Mendoj se në këtë rast, mësuesi duhet të përcjellë të paktën një mendim kaq të thjeshtë, por që nuk është e dukshme për ta, se suksesi i programit në masë të madhe varet nga stili në të cilin është shkruar kodi i tij burimor. Nxënësi mund të mos ndjekë stilin e rekomanduar, por le të mendojë për nevojën e veprimeve "të tepërta" për përmirësimin e paraqitjes së kodit burimor.
Duke u kthyer nĂ« detyrĂ«n tonĂ« themelore pĂ«r tabelĂ«n periodike: zhvillimi i mĂ«tejshĂ«m mund tĂ« ndodhĂ« nĂ« drejtime tĂ« ndryshme. NjĂ« nga drejtimet Ă«shtĂ« referenciale: kur tĂ« kalosh me mausin mbi qelizĂ«n e tabelĂ«s shfaqet njĂ« dritare informuese qĂ« pĂ«rmban tĂ« dhĂ«na shtesĂ« mbi elementin e caktuar. Zhvillimi i mĂ«tejshĂ«m do tĂ« pĂ«rfshijĂ« filtre. PĂ«r shembull, nĂ« varĂ«si tĂ« cilĂ«simit nĂ« dritaren informative do tĂ« shfaqen vetĂ«m: tĂ« dhĂ«nat mĂ« tĂ« rĂ«ndĂ«sishme fizikokimike, informacione rreth historisĂ« sĂ« zbulesĂ«s, informacion mbi shpĂ«rndarjen nĂ« natyrĂ«, lista e kompozimeve mĂ« tĂ« rĂ«ndĂ«sishme (nĂ« tĂ« cilat hyn ky element), veçoritĂ« fiziologjike, emri nĂ« njĂ« gjuhĂ« tĂ« huaj, etj. Duke kujtuar "Ă«ndrrĂ«n" e Kaverinit, me tĂ« cilĂ«n fillon ky artikull, mund tĂ« thuhet se me njĂ« zhvillim tĂ« tillĂ« tĂ« programit do tĂ« kemi njĂ« kompleks tĂ« plotĂ« arsimor mbi shkencat natyrore: pĂ«rveç informatikĂ«s, fizikĂ«s dhe kimisĂ« â biologji, gjeografi ekonomike, histori e shkencĂ«s dhe madje gjuhĂ« tĂ« huaja.
Por baza e dhënave lokale nuk është kufiri. Programi lidhet natyrshëm me Internetin. Kur zgjidhet një element, aktivizohet një lidhje dhe në dritaren e shfletuesit web shfaqet një artikull i Wikipedia-s për këtë element. Siç dihet, Wikipedia nuk është një burim autoritar. Mund të përmenden lidhjet me burime autoritare, për shembull, enciklopedinë kimike, BSH, revista referuese, të kërkosh kërkesa në motorët e kërkimit për këtë element, etj. Kështu, nxënësit do të mund të kryejnë detyra të thjeshta, por të qëlluara mbi temat e DB dhe Internetit.
Përveç pyetjeve për element të veçantë, mund të krijohet një funksionalitet që do të shënojë, për shembull, me ngjyra të ndryshme qelizat në tabelë që përputhen me kritere të caktuara. Për shembull, metale dhe jo-metale. Ose qelizat që ndotësi lokal ka derdhur në ujëra.
Mund të implementohen gjithashtu funksione të një blloku shënimesh-organizuesi. Për shembull, të shënohen në tabelë elementët që përfshihen në provim. Pastaj të shënoheshin elementët e studiuar/përsëritur nga nxënësi gjatë përgatitjes për provim.
Ja një nga detyrat tipike të kimisë shkollore:
I janë dhënë 10 g gëlqere. Sa acid klorhidrik duhet të përdoret për të tretur tërë këtë gëlqere?
Për të zgjidhur këtë detyrë, duhet, duke regjistruar reaksionin kimik dhe vendosur koeficientët, të llogaritësh masat molekulare të karbonatit të kalciumit dhe të acidit klorhidrik, pastaj të formosh dhe zgjidhësh një proporcioni. Një kalkulator bazuar në programin tonë themelor do të mund ta llogarisë dhe ta zgjidhë. Megjithatë, duhet gjithashtu të merret parasysh se acidi duhet të merret me një tepricë të arsyeshme dhe në një koncentrim të arsyeshëm, por kjo është kiminë, jo informatikën.
Ndryshimi 1: Si funksionon kalkulatori kimikLe të analizojmë punën e kalkulatorit për shembullin e mësipërm të detyrës së gëlqeres dhe "soljanës". Le të fillojmë me reaksionin:
CaCO3 + 2HCl = CaCl2 + H2O
Nga kjo, shohim se do të na duhen masat atomike të elementeve të mëposhtme: kalcium (Ca), karbon (C), oksigjen (O), hidrogjen (H) dhe klor (Cl). Në rastin më të thjeshtë, mund t'i regjistrojmë këto masa në një array eindimensional, të përcaktuar si
AtomicMass : array [1..size] of real;ku indeksi i array-it pĂ«rputhet me numrin e elementit. Gjithashtu nĂ« njĂ« hapĂ«sirĂ« tĂ« lirĂ« tĂ« formĂ«s tableDlg vendosim dy fusha. NĂ« fushĂ«n e parĂ« Ă«shtĂ« shkruar fillimisht: "Reagenti i parĂ« i dhĂ«nĂ«", ndĂ«rsa nĂ« tĂ« dytĂ«n â "Reagenti i dytĂ« tĂ« gjejmĂ« x". Le t'i quajmĂ« fushat reagent1, reagent2 pĂ«rkatĂ«sisht. Shtesat e tjera nĂ« program do tĂ« jenĂ« tĂ« qarta nga shembulli i ardhshĂ«m i punĂ«s sĂ« kalkulatorit.
Shkruajmë në tastierën e kompjuterit: 10 g. Shkrimi në fushën reagent1 ndryshon: "Reagenti i parë i dhënë 10 g". Tani futim formulën e këtij reagenti, dhe kalkulatori do të llogarisë dhe tregojë masën molekulare ndërsa e futim.
Klikojmë me miun në qelizën e tabelës me simbolin Ca. Shkrimi në fushën reagent1 ndryshon: "Reagenti i parë Ca 40.078 i dhënë 10 g".
Klikojmë me miun në qelizën e tabelës me simbolin C. Shkrimi në fushën reagent1 ndryshon: "Reagenti i parë CaC 52.089 i dhënë 10 g". Pra, kalkulatori ka përmbledhur masat atomike të kalciumit dhe karbonit.
Klikoni me tĂ« majtĂ«n mbi kutinĂ« e tabelĂ«s me simbolin O. Teksti nĂ« fushĂ« reagent1 ndryshohet: âReagenti i parĂ« CaCO 68.088 dhĂ«nĂ« 10 gâ. Kalkulatori i shtoi nĂ« shumĂ«n peshĂ«n atomike tĂ« oksigjenit.
Klikoni me tĂ« majtĂ«n mbi kutinĂ« e tabelĂ«s me simbolin O. Teksti nĂ« fushĂ« reagent1 ndryshohet: âReagenti i parĂ« CaCO2 84.087 dhĂ«nĂ« 10 gâ. Kalkulatori pĂ«rsĂ«ri shtoi nĂ« shumĂ«n peshĂ«n atomike tĂ« oksigjenit.
Klikoni me tĂ« majtĂ«n mbi kutinĂ« e tabelĂ«s me simbolin O. Teksti nĂ« fushĂ« reagent1 ndryshohet: âReagenti i parĂ« CaCO3 100.086 dhĂ«nĂ« 10 gâ. Kalkulatori sĂ«rish shtoi nĂ« shumĂ«n peshĂ«n atomike tĂ« oksigjenit.
Klikoni Enter në tastierën e kompjuterit. Ky është përfundimi i hyrjes së reagenteve të parë dhe kalon në fushë reagent2. Vlen të theksohet se në këtë shembull po ofrojmë versionin minimal. Nëse dëshironi, mund të organizoni lehtësisht faktorë atomikë të një lloji, për shembull, për të mos klikuar shtatë herë radhazi mbi kutinë e oksigjenit gjatë hyrjes së formulës së kromit (K2Cr2O7).
Klikoni me tĂ« majtĂ«n mbi kutinĂ« e tabelĂ«s me simbolin H. Teksti nĂ« fushĂ« reagent2 ndryshohet: âReagenti i dytĂ« H 1.008 gjej xâ.
Klikoni me tĂ« majtĂ«n mbi kutinĂ« e tabelĂ«s me simbolin Cl. Teksti nĂ« fushĂ« reagent2 ndryshohet: âReagenti i dytĂ« HCl 36.458 gjej xâ. Kalkulatori e mbajti peshĂ«n atomike tĂ« hidrogjenit dhe klorit. NĂ« ekuacionin e mĂ«sipĂ«rm tĂ« reaksionit, pĂ«rpara klorurit tĂ« hidrogjenit qĂ«ndron koeficienti 2. Prandaj, klikoni me tĂ« majtĂ«n mbi fushĂ« reagent2. Pesha molekulare dyfishohet (nĂ«se klikoni dy herĂ« trefishohet etj.). Teksti nĂ« fushĂ« reagent2 ndryshohet: âReagenti i dytĂ« 2HCl 72.916 gjej xâ.
Klikoni Enter në tastierën e kompjuterit. Ky është përfundimi i hyrjes së reagenteve të dytë, dhe kalkulatori gjen x nga proporcioni

Që ishte kërkuar të gjendej.
Shënim 1. Kuptimi i proporcionit të marrë: për tretjen e 100.086 gjipsit nevojitet 72.916 Da acid, dhe për tretjen e 10 g gjipsit nevojitet x acid.
Shënim 2. Koleksionet e detyrave të ngjashme:
Homçenko I. G., Koleksion detyrash dhe ushtrimesh për kimikën 2009 (klasa 8-11).
Homçenko G. P., Homçenko I. G., Koleksion detyrash për kimikën për ata që pranojnë në universitete, 2019.
Shënim 3. Për ta thjeshtuar problemin, mund të thjeshtoni hyrjen e formulës në versionin fillestar dhe thjesht të shtoni simbolin e elementit në fund të vargut të formulës. Atëherë formula e karbonatit të kalciumit do të ketë formën:
CaCOOO
Por njĂ« shĂ«nim i tillĂ« ndoshta nuk do t'i pĂ«lqejĂ« mĂ«suesit tĂ« kimisĂ«. TĂ« bĂ«sh njĂ« shĂ«nim tĂ« saktĂ« nuk Ă«shtĂ« e vĂ«shtirĂ« â pĂ«r kĂ«tĂ« duhet tĂ« shtosh njĂ« varg:
formula : array [1..size] of integer;ku indeks është numri i elementit kimik, dhe vlera në këtë indeks është sasia e atomeve (fillimisht të gjitha elementet e masës janë zero). Duhet të merret parasysh rendi i shkrimit të atomeve në formulë, siç pranohet në kimikë. Për shembull, O3CaC gjithashtu nuk do të pëlqehet nga shumë njerëz. Të heqim përgjegjësinë nga përdoruesi. Të krijojmë një masë:
formulaOrder : array [1..size] of integer; // mund ta bëjmë më të shkurtërku shkruajmë numrin e elementit kimik sipas indeksit të shfaqjes së tij në formulë. Shtimi i atomeve currNo në formulë:
if formula [currNo]=0 then //ky atom është takuar për herë të parë
begin
orderIndex := orderIndex+1; //në fillim të hyrjes së formulës orderIndex=0
formulaOrder [orderIndex] := currNo;
end;
formula [currNo]:=formula [currNo]+1;Shkruani formulën në varg:
s := ''; // varg bosh për formulën
for i:=1 to orderIndex do //për të gjithë simbolët kimikë në formulë
begin
s:=s+TableSymbols [ formulaOrder[i]]; // shtojmë simbolin kimik
if formula [formulaOrder[i]]1 then //shtojmë sasinë e atomeve
s:=s+ intToStr(formula [formulaOrder[i]]);
end;
Shënim 4. Ka kuptim të sigurohet mundësia e inputit alternativ të formulës së reagjentit nga tastiera. Në këtë rast, do të duhet të realizohet një analizator sintaksor i thjeshtë.
Duhet të theksohet se:
Sot ekzistojnë disa qindra variante të tabelës, ndërsa shkencëtarët propozojnë vazhdimisht variante të reja. ()
Nxënësit mund të tregojnë shpikësi edhe në këtë drejtim, duke realizuar ndonjë nga variantet e propozuara tashmë ose duke provuar të krijojnë një të tyre origjinale. Mund të duket se kjo është më pak e dobishme për mësimet e informatikës. Megjithatë, në formën e realizuar të Tabelës Periodike në këtë artikull, disa nxënës nuk mund të dallojnë avantazhet e veçanta të hartave menaxhuese ndaj zgjidhjes alternative me ndihmën e butonave standardë TButton. Forma spirale e tabelës (ku qelizat kanë forma të ndryshme) do të demonstrojnë më qartë avantazhet e zgjidhjes këtu të propozuar.

(, )
Të shtojmë gjithashtu se për një sërë programesh kompjuterike të ekzistuese për Tabelën e Mendelejevit është folur në një postim të publikuar kohët e fundit në Habr. .
Shtesë 2: shembuj detyrash për filtratMe ndihmën e filtrave mund të zgjidhen, për shembull, këto detyra:
1) Të veçohen në tabelë të gjitha elementet e njohura në mesjetë.
2) Të veçohen të gjitha elementet e njohura në momentin e zbulimit të ligjit periodik.
3) Identifikoni shtatë elemente që alkimistët i konsideronin metale.
4) Identifikoni të gjitha elementet që janë në gjendje gazore në kushte normale (k.n.).
5) Identifikoni të gjitha elementet që janë në gjendje të lëngshme në k.n.
6) Identifikoni të gjitha elementet që janë në gjendje të ngurta në k.n.
7) Identifikoni të gjitha elementet që mund të qëndrojnë në ajër për një periudhë të gjatë pa ndryshime të dukshme në k.n.
8) Identifikoni të gjitha metalet që tretën në acid klorhidrik.
9) Identifikoni të gjitha metalet që tretën në acid sulfurik në k.n.
10) Identifikoni të gjitha metalet që tretën në acid sulfurik kur ngrohen.
11) Identifikoni të gjitha metalet që tretën në acid azotik.
12) Identifikoni të gjitha metalet që reagojnë me ujë në mënyrë intensive në k.n.
13) Identifikoni të gjitha metalet.
14) Identifikoni elementet që janë të zakonshme në natyrë.
15) Identifikoni elementet që gjenden në natyrë në gjendje të lirë.
16) Identifikoni elementet që luajnë një rol të rëndësishëm në organizmin e njeriut dhe kafshëve.
17) Identifikoni elementet që përdoren gjerësisht në jetën e përditshme (në gjendje të lirë ose në lidhje).
18) Identifikoni elementet me të cilat puna është më e rrezikshme dhe kërkon masa dhe mjete të veçanta mbrojtëse.
19) Identifikoni elementet që në gjendje të lirë ose në formë lidhjesh paraqesin kërcënimin më të madh për ekologjinë.
20) Identifikoni metale të çmuara.
21) Identifikoni elementet që kanë vlerë më të lartë se metalet e çmuara.
Shënime
1) Ka kuptim të sigurohet funksionimi i disa filtrave. Për shembull, nëse aktivizohet filtri për zgjidhjen e detyrës 1 (të gjitha elementet e njohura në mesjetë) dhe 20 (metalet e çmuara), do të ndahen (për shembull, me ngjyrë) qelizat me metalet e çmuara të njohura në mesjetë (nuk do të ndahet, për shembull, palladiumi, i zbuluar në vitin 1803).
2) Ka një kuptim të sigurohet funksionimi i disa filtrave në një mënyrë që secili filter shënon qelizat me ngjyrën e tij, por nuk eliminon plotësisht shënimin e filtrit tjetër (një pjesë e qelisë me një ngjyrë, pjesa tjetër me një tjetër). Kështu, në rastin e shembullit të mëparshëm do të duken elementët e kryqëzimit të grupeve të hapura në mesjetë dhe metalet e shtrenjta, si dhe elementë që i përkasin vetëm grupit të parë dhe vetëm grupit të dytë. Që do të thotë, metalet e shtrenjta, të panjohura në mesjetë, dhe elementët, të njohur në mesjetë, por që nuk janë metale të shtrenjta.
3) Ka një kuptim pas aplikimit të filtrit të sigurohet mundësia për punë të tjera me rezultatet e marra. Për shembull, pasi të shënohen elementët, të njohur në mesjetë, përdoruesi klikoni me miun mbi elementin e shënuar dhe kalon në artikullin e Wikipedia për këtë element.
4) Ka një kuptim të sigurohet mundësia për përdoruesin të heqë shënimin me një klikim të majtë mbi qelizën e shënuar të tabelës. Për shembull, për të hequr elementët tashmë të parë.
5) Ka njĂ« kuptim tĂ« sigurohet ruajtja e listĂ«s sĂ« qelizave tĂ« shĂ«nuara nĂ« njĂ« skedar dhe ngarkimi i njĂ« skedari tĂ« tillĂ« me shĂ«nimin automatik tĂ« qelizave. Kjo do tâi japĂ« pĂ«rdoruesit mundĂ«sinĂ« pĂ«r tĂ« bĂ«rĂ« njĂ« pushim nĂ« punĂ«.
Ne përdorëm një hartë të kontrollit statike të caktuar paraprakisht, megjithatë ka shumë detyra të rëndësishme, ku mund të përdoren harta dinamike kontrolli, që ndryshojnë gjatë funksionimit të programit. Një shembull mund të jetë redaktori i grafeve, ku përdoruesi me ndihmën e mausit tregon në dritaren e pozicioneve të pikave dhe vizaton brinjët ndërmjet tyre. Për të hequr një pikë ose një brinjë, përdoruesi duhet ta tregojë atë. Por nëse është e thjeshtë të tregosh për një pikë, e cila shënohet me një rreth, është më e vështirë të tregosh për një brinjë, e cila vizatohet me një linjë të hollë. Këtu ndihmon harta e kontrollit, ku pikat dhe brinjët zënë një rreth më të gjerë se në vizatimin e dukshëm.
Me metodën e përmendur të mësimit kompleks është i lidhur një pyetje interesante mbështetëse: a mund të jetë e dobishme kjo metodë në mësimin e AI?
Burimi: habr.com
