Դպրոցական համակարգչային գիտության պարբերական աղյուսակ

(Կառավարման քարտեր)
(Նվիրված է քիմիական տարրերի պարբերական աղյուսակի միջազգային տարվան)
(Վերջին լրացումները կատարվել են 8 թվականի ապրիլի 2019-ին: Հավելումների ցանկը կտրվածքից անմիջապես ներքեւ է)

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ
(Մենդելեևի ծաղիկը, Աղբյուր)

Հիշում եմ՝ անցանք բադի մոտ։ Սրանք միանգամից երեք դաս էին` աշխարհագրություն, բնագիտություն և ռուսերեն: Բնագիտության դասին բադը ուսումնասիրվել է որպես բադ, ինչ թեւեր ունի, ինչ ոտքեր, ինչպես է լողում և այլն։ Աշխարհագրության դասաժամին նույն բադին ուսումնասիրում էին որպես երկրագնդի բնակիչ՝ քարտեզի վրա պետք էր ցույց տալ, թե որտեղ է ապրում, որտեղ՝ ոչ։ Ռուսերեն, Սերաֆիմա Պետրովնան մեզ սովորեցրել է գրել «u-t-k-a» և ինչ-որ բան կարդալ Բրեմից բադերի մասին: Նա մեզ տեղեկացրեց, որ գերմաներենում բադն այսպես է, իսկ ֆրանսերենում՝ այսպես։ Կարծում եմ, որ այն ժամանակ կոչվում էր «բարդ մեթոդ»: Ընդհանրապես, ամեն ինչ «անցնող» է ստացվել։

Վենիամին Կավերին, Երկու կապիտան

Վերոնշյալ մեջբերումում Վենիամին Կավերինը վարպետորեն ցույց տվեց դասավանդման բարդ մեթոդի թերությունները, սակայն որոշ (գուցե բավականին հազվադեպ) դեպքերում այս մեթոդի տարրերն արդարացված են: Այդպիսի դեպքերից է Դ.Ի. Մենդելեևի պարբերական աղյուսակը դպրոցական համակարգչային գիտության դասերին: Պարբերական աղյուսակի հետ բնորոշ գործողությունների ծրագրային ավտոմատացման խնդիրը պարզ է դպրոցականների համար, ովքեր սկսել են քիմիա ուսումնասիրել և բաժանված է շատ բնորոշ քիմիական առաջադրանքների: Միևնույն ժամանակ, համակարգչային գիտության շրջանակներում այս առաջադրանքը թույլ է տալիս պարզ ձևով ցույց տալ կառավարման քարտերի մեթոդը, որը կարելի է վերագրել գրաֆիկական ծրագրավորմանը՝ բառի լայն իմաստով հասկացված որպես գրաֆիկական տարրերի օգտագործմամբ ծրագրավորում:

(8թ. լրացումներ են կատարվել.
Հավելված 1. Ինչպես է աշխատում քիմիայի հաշվիչը
Հավելված 2. ֆիլտրերի առաջադրանքների օրինակներ)

Սկսենք հիմնական առաջադրանքից. Ամենապարզ դեպքում պարբերական աղյուսակը պետք է ցուցադրվի էկրանին պատուհանի տեսքով, որտեղ յուրաքանչյուր բջիջում կլինի տարրի քիմիական նշում՝ H - ջրածին, He - հելիում և այլն: Եթե ​​մկնիկի կուրսորը ցույց է տալիս բջիջը, ապա տարրի նշանակումը և դրա համարը ցուցադրվում են մեր ձևի հատուկ դաշտում: Եթե ​​օգտագործողը սեղմում է LMB, ապա այս ընտրված տարրի նշանակումը և համարը կնշվի ձևի մեկ այլ դաշտում:

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ

Խնդիրը կարելի է լուծել՝ օգտագործելով ցանկացած ունիվերսալ լեզու։ Մենք կվերցնենք պարզ հին Delpi-7-ը, որը հասկանալի է գրեթե բոլորին: Բայց նախքան PL-ում ծրագրավորումը, եկեք երկու նկար նկարենք, օրինակ՝ Photoshop-ում: Նախ, եկեք գծենք Պարբերական աղյուսակը այն տեսքով, որը ցանկանում ենք տեսնել ծրագրում: Պահպանեք արդյունքը գրաֆիկական ֆայլում սեղան01.bmp.

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ

Երկրորդ նկարչության համար մենք օգտագործում ենք առաջինը: Մենք հաջորդաբար կլցնենք աղյուսակի բջիջները՝ մաքրված բոլոր գրաֆիկներից, յուրահատուկ գույներով RGB գունային մոդելում: R-ը և G-ն միշտ կլինեն 0, իսկ ջրածնի համար՝ B=1, հելիումի համար՝ 2 և այլն: Այս նկարը կլինի մեր կառավարման քարտը, որը մենք կպահենք ֆայլում, որը կոչվում է. սեղան2.bmp.

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ

Ավարտված է Photoshop-ում գրաֆիկական ծրագրավորման առաջին փուլը։ Եկեք անցնենք գրաֆիկական GUI ծրագրավորմանը Delpi-7 IDE-ում: Դա անելու համար բացեք նոր նախագիծ, որտեղ հիմնական ձևի վրա տեղադրում ենք երկխոսության կոճակ (սեղանDlg), որում տեղի կունենա աշխատանքը սեղանի հետ։ Հաջորդը մենք աշխատում ենք ձևի հետ սեղանDlg.

Տեղադրեք դասի բաղադրիչ ձևի վրա Ժամանակը. Մենք ստանում ենք Image1. Նկատի ունեցեք, որ ընդհանուր առմամբ, խոշոր նախագծերի համար ավտոմատ կերպով ստեղծվում են ձևի անվանումները Պատկեր NՈրտեղ N կարող է հասնել մի քանի տասնյակի կամ ավելի. սա լավագույն ծրագրավորման ոճը չէ, և պետք է ավելի իմաստալից անուններ տալ: Բայց մեր փոքրիկ նախագծում, որտեղ N չի գերազանցի 2-ը, կարող եք թողնել որպես գեներացված:

Գույքի նկատմամբ Պատկեր 1. Նկար վերբեռնել ֆայլը սեղան01.bmp. Մենք ստեղծում ենք Image2 և այնտեղ բեռնեք մեր հսկիչ քարտը սեղան2.bmp. Այս դեպքում մենք ֆայլը դարձնում ենք փոքր և անտեսանելի օգտվողի համար, ինչպես ցույց է տրված ձևի ստորին ձախ անկյունում: Մենք ավելացնում ենք լրացուցիչ հսկիչ տարրեր, որոնց նպատակն ակնհայտ է. Ավարտված է Delpi-7 IDE-ում գրաֆիկական GUI ծրագրավորման երկրորդ փուլը:

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ

Անցնենք երրորդ փուլին՝ կոդ գրել Delpi-7 IDE-ում: Մոդուլը բաղկացած է միայն հինգ իրադարձությունների մշակողներից՝ ձևերի ստեղծում (FormCreate), կուրսորի շարժումը Image1 (Image1MouseMove), սեղմելով LMB բջիջի վրա (Image1 Սեղմեք) և դուրս եկեք երկխոսությունից՝ օգտագործելով OK կոճակները (OKBtnՍեղմեք) կամ Չեղարկել (ՉեղարկելBtnՍեղմեք) Այս մշակողների վերնագրերը ստեղծվում են ստանդարտ եղանակով՝ օգտագործելով IDE:

Մոդուլի սկզբնական կոդը.

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.

Մեր տարբերակում մենք վերցրել ենք 104 տարրերից բաղկացած աղյուսակ (հաստատ Չափս) Ակնհայտ է, որ այս չափը կարելի է մեծացնել: Տարրերի նշանակումները (քիմիական նշաններ) գրվում են զանգվածի վրա Սեղանի խորհրդանիշներ. Այնուամենայնիվ, սկզբնաղբյուրի կոմպակտության նկատառումներից ելնելով, նպատակահարմար է թվում այս նշումների հաջորդականությունը գրել տողերի հաստատունների տեսքով: PeriodicTableStr1..., PeriodicTableStr4այնպես, որ երբ ձևը ստեղծվում է, ծրագիրն ինքն է ցրում այդ նշանակումները զանգվածի տարրերի միջև: Յուրաքանչյուր տարրի նշանակումը բաղկացած է մեկ կամ երկու լատինատառից, որոնցից առաջինը մեծատառ է, իսկ երկրորդը (եթե առկա է) փոքրատառ: Այս պարզ կանոնն իրականացվում է զանգվածը բեռնելիս։ Այսպիսով, նշումների հաջորդականությունը կարելի է գրել հակիրճ ձևով, առանց բացատների: Հերթականությունը բաժանել չորս մասի (հաստատուններ PeriodicTableStr1..., PeriodicTableStr4) պայմանավորված է ելակետային կոդը կարդալու հեշտության նկատառումներով, քանի որ Շատ երկար տողը կարող է ամբողջությամբ չտեղավորվել էկրանին:

Երբ մկնիկի կուրսորը շարժվում է վրա Image1 կարգավորող Image1MouseMove այս իրադարձությունը որոշում է կառավարման քարտի պիքսելի կապույտ գույնի բաղադրիչի արժեքը Image2 ընթացիկ կուրսորի կոորդինատների համար: Շինարարությամբ Image2 այս արժեքը հավասար է տարրի համարին, եթե կուրսորը գտնվում է բջիջի ներսում. զրոյական, եթե սահմանին, իսկ 255 այլ դեպքերում: Ծրագրի կողմից կատարված մնացած գործողությունները չնչին են և բացատրություն չեն պահանջում:

Բացի վերը նշված ոճական ծրագրավորման տեխնիկայից, հարկ է նշել մեկնաբանության ոճը: Խստորեն ասած, քննարկված ծածկագիրը այնքան փոքր է և պարզ, որ մեկնաբանությունները առանձնապես անհրաժեշտ չեն թվում: Սակայն դրանք ավելացվել են նաև մեթոդաբանական նկատառումներով. կարճ ծածկագիրը թույլ է տալիս ավելի հստակ անել որոշ ընդհանուր եզրակացություններ։ Ներկայացված ծածկագրում հայտարարված է մեկ դաս (TtableDlg) Այս դասի մեթոդները կարող են փոխանակվել, և դա որևէ կերպ չի ազդի ծրագրի աշխատանքի վրա, բայց կարող է ազդել դրա ընթեռնելիության վրա: Օրինակ, պատկերացրեք հաջորդականությունը.

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Գուցե դա այնքան էլ նկատելի չէ, բայց կարդալը և հասկանալը մի փոքր ավելի դժվար կդառնա: Եթե ​​բաժնում կան ոչ թե հինգ, այլ տասնյակ անգամ ավելի մեթոդներ իրականացում դրանք բոլորովին այլ կարգ ունեն, քան դասային նկարագրություններում, այդ ժամանակ քաոսը միայն կմեծանա։ Հետևաբար, թեև դժվար է խստորեն ապացուցել և նույնիսկ անհնար է, կարելի է հուսալ, որ լրացուցիչ կարգի ներդրումը կբարելավի ծածկագրի ընթեռնելիությունը: Այս լրացուցիչ կարգին նպաստում է մի քանի մեթոդների տրամաբանական խմբավորումը, որոնք կատարում են հարակից առաջադրանքներ: Յուրաքանչյուր խմբին պետք է վերնագիր տրվի, օրինակ.

// работа с таблицей: указание и выбор

Այս վերնագրերը պետք է պատճենվեն մոդուլի սկզբում և ձևավորվեն որպես բովանդակության աղյուսակ: Բավականին երկար մոդուլների որոշ դեպքերում նման բովանդակության աղյուսակները ապահովում են նավիգացիայի լրացուցիչ տարբերակներ: Նմանապես, մեկ մեթոդի, ընթացակարգի կամ գործառույթի երկարատև մասում արժե նախ նշել այս մարմնի վերջը.

end; // FormCreate

և, երկրորդը, ծրագրի փակագծերով ճյուղավորված հայտարարություններում սկսեք - ավարտեք, նշեք այն հայտարարությունը, որին վերաբերում է փակման փակագիծը.

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

Խմբերի վերնագրերը և մեթոդի մարմինների ծայրերը ընդգծելու համար կարող եք ավելացնել տողեր, որոնք ավելի երկար են, քան հայտարարությունների մեծ մասը և բաղկացած են, օրինակ, համապատասխանաբար «=» և «_» նիշերից:
Կրկին, մենք պետք է վերապահում անենք. մեր օրինակը չափազանց պարզ է: Եվ երբ մեթոդի կոդը չի տեղավորվում մեկ էկրանի վրա, դժվար է հասկանալ վեց հաջորդական վերջ՝ կոդի փոփոխություններ կատարելու համար: Որոշ հին կոմպիլյատորներում, օրինակ՝ Pascal 8000-ը OS IBM 360/370-ի համար, նման սպասարկման սյունակ տպագրվել է ցուցակի ձախ կողմում:

B5
…
E5

Սա նշանակում էր, որ E5 տողում փակվող փակագիծը համապատասխանում է B5 տողում բացվող փակագծին:

Իհարկե, ծրագրավորման ոճը շատ հակասական խնդիր է, ուստի այստեղ արտահայտված մտքերը պետք է ընկալել որպես ոչ այլ ինչ, քան մտածելու տեղիք: Երկու բավականին փորձառու ծրագրավորողների համար, ովքեր երկար տարիների աշխատանքի ընթացքում մշակել և վարժվել են տարբեր ոճերի, կարող են շատ դժվար լինել համաձայնության գալ։ Այլ հարց է ծրագրավորել սովորող ուսանողի համար, ով դեռ չի հասցրել գտնել իր ոճը: Կարծում եմ, որ այս դեպքում ուսուցիչը պետք է գոնե իր աշակերտներին փոխանցի նրանց համար այնքան պարզ, բայց ոչ ակնհայտ միտք, որ ծրագրի հաջողությունը մեծապես կախված է այն ոճից, որով գրված է դրա սկզբնական կոդը։ Ուսանողը կարող է չհետևել առաջարկվող ոճին, բայց թող մտածի գոնե «լրացուցիչ» գործողությունների անհրաժեշտության մասին՝ ելակետային կոդի ձևավորումը բարելավելու համար։

Վերադառնալով Պարբերական աղյուսակի մեր հիմնական խնդրին. հետագա զարգացումը կարող է գնալ տարբեր ուղղություններով: Ուղղություններից մեկը հղման համար է. երբ մկնիկի կուրսորը սավառնում եք աղյուսակի բջիջի վրա, հայտնվում է տեղեկատվական պատուհան, որը պարունակում է լրացուցիչ տեղեկություններ նշված տարրի վերաբերյալ: Հետագա զարգացումը զտիչներն են: Օրինակ, կախված տեղադրումից, տեղեկատվական պատուհանը կպարունակի միայն. ֆիզիոլոգիական հատկություններ, օտար լեզվով անուն և այլն: ե. Հիշելով Կավերինի «բադը», որով սկսվում է այս հոդվածը, կարող ենք ասել, որ ծրագրի այս մշակմամբ մենք կստանանք բնական գիտությունների ամբողջական ուսումնական համալիր. գիտություն, ֆիզիկա և քիմիա՝ կենսաբանություն, տնտեսական աշխարհագրություն, գիտության պատմություն և նույնիսկ օտար լեզուներ։

Բայց տեղական տվյալների բազան սահմանը չէ: Ծրագիրը բնականաբար միանում է ինտերնետին: Տարր ընտրելիս հղումն ակտիվանում է, և այս տարրի մասին Վիքիպեդիայի հոդվածը բացվում է դիտարկիչի պատուհանում։ Վիքիպեդիան, ինչպես գիտեք, հեղինակավոր աղբյուր չէ։ Դուք կարող եք հղումներ սահմանել հեղինակավոր աղբյուրների, օրինակ՝ քիմիական հանրագիտարանի, TSB-ի, վերացական ամսագրերի, այս տարրի համար որոնման համակարգերում հարցումներ պատվիրելու և այլն: Դա. Ուսանողները կկարողանան կատարել պարզ, բայց բովանդակալից առաջադրանքներ DBMS-ի և ինտերնետի թեմաներով:

Բացի առանձին տարրի վերաբերյալ հարցումներից, դուք կարող եք ստեղծել գործառույթներ, որոնք, օրինակ, տարբեր գույներով կնշեն աղյուսակի բջիջները, որոնք համապատասխանում են որոշակի չափանիշներին: Օրինակ՝ մետաղներ և ոչ մետաղներ։ Կամ բջիջները, որոնք թափվում են ջրային մարմիններ տեղական քիմիական գործարանի կողմից:

Կարող եք նաև իրականացնել նոթատետրերի կազմակերպիչի գործառույթները: Օրինակ, աղյուսակում ընդգծեք այն տարրերը, որոնք ներառված են քննության մեջ: Այնուհետև ընդգծեք այն տարրերը, որոնք սովորել/կրկնել է ուսանողը քննությանը նախապատրաստվելիս:

Եվ ահա, օրինակ, դպրոցական քիմիայի բնորոշ խնդիրներից մեկն է.

Տրվում է 10 գ կավիճ։ Որքա՞ն աղաթթու պետք է ընդունել այս ամբողջ կավիճը լուծելու համար:

Այս խնդիրը լուծելու համար անհրաժեշտ է գրել քիմ. ռեակցիան և դրա մեջ տեղադրելով գործակիցները՝ հաշվարկել կալցիումի կարբոնատի և քլորաջրածնի մոլեկուլային կշիռները, ապա կազմել և լուծել համամասնությունը։ Մեր հիմնական ծրագրի վրա հիմնված հաշվիչը կարող է հաշվարկել և լուծել: Ճիշտ է, դեռ պետք է հաշվի առնել, որ թթուն պետք է ընդունվի ողջամիտ ավելցուկով և ողջամիտ կոնցենտրացիայով, բայց սա քիմիա է, ոչ թե համակարգչային գիտություն:
Հավելված 1. Ինչպես է աշխատում քիմիայի հաշվիչըԵկեք վերլուծենք հաշվիչի աշխատանքը՝ օգտագործելով վերը նշված կավիճի և «խոզի» խնդրի օրինակը: Սկսենք արձագանքից.

CaCO3 + 2HCl = CaCl2 + H2O

Այստեղից մենք տեսնում ենք, որ մեզ անհրաժեշտ կլինեն հետևյալ տարրերի ատոմային կշիռները՝ կալցիում (Ca), ածխածին (C), թթվածին (O), ջրածին (H) և քլոր (Cl): Ամենապարզ դեպքում, մենք կարող ենք գրել այս կշիռները միաչափ զանգվածի մեջ, որը սահմանվում է որպես

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

որտեղ զանգվածի ինդեքսը համապատասխանում է տարրի համարին: Ավելին ձևի ազատ տարածության մասին սեղանDlg դնել երկու դաշտ. Առաջին դաշտում սկզբում գրված է՝ «Առաջին ռեագենտը տրված է», երկրորդում՝ «Երկրորդ ռեագենտը պետք է գտնել x-ը»: Նշանակենք դաշտերը ռեագենտ 1, ռեագենտ 2 համապատասխանաբար. Ծրագրի այլ լրացումները պարզ կլինեն հաշվիչի հետևյալ օրինակից.

Համակարգչի ստեղնաշարի վրա գրում ենք՝ 10 գ Գրություն դաշտում ռեագենտ 1 փոփոխություններ. «Առաջին ռեագենտին տրվում է 10 գ»: Այժմ մենք մուտքագրում ենք այս ռեագենտի բանաձևը, և ​​հաշվիչը կհաշվարկի և ցույց կտա նրա մոլեկուլային քաշը, երբ մուտքագրեք այն:

Սեղմեք LMB սեղանի բջիջի վրա՝ Ca նշանով: Գրություն դաշտում ռեագենտ 1 փոփոխություններ. «Առաջին ռեակտիվ Ca 40.078 տրված 10 գ»:

Սեղմեք LMB աղյուսակի C նշանով բջիջի վրա: Դաշտում մակագրություն ռեագենտ 1 փոփոխություններ՝ «Առաջին ռեակտիվ CaC 52.089 տրված 10 գ»: Նրանք. Հաշվիչն ավելացրել է կալցիումի և ածխածնի ատոմային կշիռները:

Սեղմեք LMB աղյուսակի բջիջի վրա O խորհրդանիշով: Դաշտում մակագրություն ռեագենտ 1 փոփոխություններ՝ «Առաջին ռեակտիվ CaCO 68.088 տրված 10 գ»: Հաշվիչը գումարին ավելացրել է թթվածնի ատոմային զանգվածը։

Սեղմեք LMB աղյուսակի բջիջի վրա O խորհրդանիշով: Դաշտում մակագրություն ռեագենտ 1 փոփոխություններ՝ «Առաջին ռեակտիվ CaCO2 84.087 տրված 10 գ»: Հաշվիչը հերթական անգամ գումարին ավելացրել է թթվածնի ատոմային զանգվածը։

Սեղմեք LMB աղյուսակի բջիջի վրա O խորհրդանիշով: Դաշտում մակագրություն ռեագենտ 1 փոփոխություններ՝ «Առաջին ռեակտիվ CaCO3 100.086 տրված 10 գ»: Հաշվիչը գումարին կրկին ավելացրել է թթվածնի ատոմային զանգվածը։

Ձեր համակարգչի ստեղնաշարի վրա սեղմեք Enter: Առաջին ռեագենտի ներդրումն ավարտված է և անցնում է դաշտ ռեագենտ 2. Նկատի ունեցեք, որ այս օրինակում մենք տրամադրում ենք նվազագույն տարբերակ: Ցանկության դեպքում կարող եք հեշտությամբ կազմակերպել նույն տեսակի ատոմների բազմապատկիչներ, որպեսզի, օրինակ, քրոմի բանաձևը (K2Cr2O7) մուտքագրելիս ստիպված չլինեք յոթ անգամ անընդմեջ սեղմել թթվածնի բջջի վրա:

Սեղմեք LMB աղյուսակի բջիջի վրա H խորհրդանիշով: Դաշտում մակագրություն ռեագենտ 2 փոփոխություններ. «Երկրորդ ռեագենտ H 1.008 գտեք x»:

Կտտացրեք LMB սեղանի բջիջի վրա, որտեղ կա Cl խորհրդանիշ: Գրություն դաշտում ռեագենտ 2 փոփոխություններ. «Երկրորդ ռեագենտ HCl 36.458 գտեք x»: Հաշվիչն ավելացրել է ջրածնի և քլորի ատոմային կշիռները: Վերոնշյալ ռեակցիայի հավասարման մեջ ջրածնի քլորիդին նախորդում է 2 գործակիցը: Հետևաբար, դաշտում սեղմեք LMB: ռեագենտ 2. Մոլեկուլային քաշը կրկնապատկվում է (եռապատկվում է երկու անգամ սեղմելիս և այլն): Գրություն դաշտում ռեագենտ 2 փոփոխություններ՝ «Երկրորդ ռեագենտ 2HCl 72.916 գտեք x»:

Ձեր համակարգչի ստեղնաշարի վրա սեղմեք Enter: Երկրորդ ռեագենտի մուտքագրումն ավարտված է, և հաշվիչը համամասնությունից գտնում է x

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ

Դա այն է, ինչ մենք պետք է գտնեինք:

Նշում 1: Ստացված համամասնության իմաստը՝ լուծարման համար 100.086 Da կավիճը պահանջում է 72.916 Da թթու, իսկ 10 գ կավիճը լուծելու համար անհրաժեշտ է x թթու:

Նշում 2: Նմանատիպ խնդիրների հավաքածուներ.

Խոմչենկո Ի. Գ., Քիմիայի խնդիրների և վարժությունների ժողովածու 2009 (8-11 դասարաններ):
Խոմչենկո Գ. Պ., Խոմչենկո Ի. Գ., Քիմիայի խնդիրների ժողովածու բուհերի դիմորդների համար, 2019 թ.

Նշում 3: Առաջադրանքը պարզեցնելու համար դուք կարող եք պարզեցնել բանաձևի մուտքագրումը նախնական տարբերակում և պարզապես ավելացնել տարրի խորհրդանիշը բանաձևի տողի վերջում: Այնուհետև կալցիումի կարբոնատի բանաձևը կլինի.
CaCOOO
Բայց քիմիայի ուսուցչին դժվար թե դուր գա նման ձայնագրությունը։ Դժվար չէ ճիշտ մուտքագրել. դա անելու համար անհրաժեշտ է զանգված ավելացնել.

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

որտեղ ինդեքսը քիմիական տարրի թիվն է, իսկ այս ինդեքսի արժեքը՝ ատոմների թիվը (սկզբում զանգվածի բոլոր տարրերը զրոյացվում են): Պետք է հաշվի առնել այն հաջորդականությունը, որով ատոմները գրվում են բանաձևով, ինչպես ընդունված է քիմիայում: Օրինակ, քչերին դուր կգա նաև O3CaC-ը: Եկեք պատասխանատվությունը տեղափոխենք օգտատիրոջ վրա։ Զանգվածի պատրաստում.

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

որտեղ մենք գրում ենք քիմիական տարրի թիվը՝ ըստ բանաձևում նրա արտաքին տեսքի ցուցանիշի. Ատոմ ավելացնելով 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;

Նշում 4: Իմաստ է ապահովել ստեղնաշարից ռեագենտի բանաձևը այլընտրանքային կերպով մուտքագրելու հնարավորություն: Այս դեպքում ձեզ հարկավոր է իրականացնել պարզ վերլուծիչ:

Հարկ է նշել, որ.

Այսօր աղյուսակի մի քանի հարյուր տարբերակ կա, և գիտնականներն անընդհատ նոր տարբերակներ են առաջարկում։ (Wikipedia)

Աշակերտները կարող են ցույց տալ իրենց հնարամտությունն այս ուղղությամբ՝ իրականացնելով արդեն առաջարկված տարբերակներից մեկը կամ փորձել պատրաստել իրենց օրիգինալը։ Կարող է թվալ, որ սա համակարգչային գիտության դասերի համար ամենաքիչ օգտակար ուղղությունն է։ Այնուամենայնիվ, այս հոդվածում ներկայացված Պարբերական աղյուսակի տեսքով, որոշ ուսանողներ կարող են չտեսնել կառավարման քարտերի առանձնահատուկ առավելությունները այլընտրանքային լուծման նկատմամբ՝ օգտագործելով ստանդարտ կոճակները: TButton. Սեղանի պարուրաձև ձևը (որտեղ բջիջները տարբեր ձևերի են) ավելի հստակ ցույց կտա այստեղ առաջարկվող լուծման առավելությունները։

Դպրոցական համակարգչային գիտության պարբերական աղյուսակ
(Տարրերի այլընտրանքային համակարգ Թեոդոր Բենֆիի կողմից, Աղբյուր)

Ավելացնենք նաև, որ Պարբերական աղյուսակի համար ներկայումս գոյություն ունեցող մի շարք համակարգչային ծրագրեր նկարագրված են վերջերս հրապարակված Habré-ում։ Հոդված.

Հավելված 2. ֆիլտրերի առաջադրանքների օրինակներՕգտագործելով զտիչներ, դուք կարող եք լուծել, օրինակ, հետևյալ խնդիրները.

1) Աղյուսակում ընտրեք միջնադարում հայտնի բոլոր տարրերը:

2) Բացահայտեք բոլոր այն տարրերը, որոնք հայտնի են Պարբերական օրենքի հայտնաբերման ժամանակ:

3) Բացահայտեք յոթ տարրեր, որոնք ալքիմիկոսները համարում էին մետաղներ:

4) Ընտրեք բոլոր տարրերը, որոնք նորմալ պայմաններում գտնվում են գազային վիճակում (ն.ս.):

5) Ընտրեք բոլոր տարրերը, որոնք գտնվում են հեղուկ վիճակում No.

6) Ընտրեք բոլոր տարրերը, որոնք գտնվում են պինդ վիճակում No.

7) Ընտրեք բոլոր տարրերը, որոնք կարող են երկար ժամանակ ենթարկվել օդի, առանց նկատելի փոփոխությունների նորմալ պայմաններում:

8) Ընտրեք բոլոր մետաղները, որոնք լուծվում են աղաթթվի մեջ:

9) Ընտրեք բոլոր մետաղները, որոնք լուծվում են ծծմբական թթուում թիվ.

10) Ընտրեք բոլոր մետաղները, որոնք տաքացնելիս լուծվում են ծծմբաթթվի մեջ:

11) Ընտրեք բոլոր մետաղները, որոնք լուծվում են ազոտական ​​թթուում:

12) Մեկուսացրեք բոլոր մետաղները, որոնք շրջակա միջավայրի պայմաններում դաժանորեն արձագանքում են ջրի հետ:

13) Ընտրեք բոլոր մետաղները:

14) Բացահայտել բնության մեջ տարածված տարրերը.

15) Բացահայտեք այն տարրերը, որոնք բնության մեջ հանդիպում են ազատ վիճակում.

16) Բացահայտեք այն տարրերը, որոնք ամենակարեւոր դերն են խաղում մարդու և կենդանիների մարմնում:

17) Ընտրեք տարրեր, որոնք լայնորեն կիրառվում են առօրյա կյանքում (ազատ ձևով կամ համակցություններով):

18) Բացահայտել տարրերը, որոնց հետ աշխատելն առավել վտանգավոր է և պահանջում է հատուկ միջոցներ և պաշտպանիչ սարքավորումներ.

19) Բացահայտեք այն տարրերը, որոնք ազատ կամ միացությունների տեսքով ամենամեծ վտանգ են ներկայացնում շրջակա միջավայրի համար.

20) Ընտրեք թանկարժեք մետաղներ.

21) Բացահայտեք տարրերը, որոնք թանկարժեք մետաղներից թանկ են:

Նշումներ

1) Բազմաթիվ զտիչներ տրամադրելը իմաստ ունի: Օրինակ, եթե դուք միացնեք ֆիլտրը 1-ին (միջնադարում հայտնի բոլոր տարրերը) և 20-րդ (թանկարժեք մետաղներ) խնդիրը լուծելու համար, ապա միջնադարում հայտնի թանկարժեք մետաղներով բջիջները կընդգծվեն (օրինակ՝ ըստ գույնի) ( օրինակ, պալադիումը չի ընդգծվի, բացվել է 1803 թվականին):

2) Իմաստ ունի ապահովել, որ մի քանի զտիչներ գործեն այնպիսի ռեժիմով, որ յուրաքանչյուր զտիչ ընտրի իր սեփական գույնով բջիջները, բայց ամբողջությամբ չհեռացնի մեկ այլ ֆիլտրի ընտրությունը (բջջի մի մասը մեկ գույնի, մի մասը մյուսի մեջ): Այնուհետև, նախորդ օրինակի դեպքում, տեսանելի կլինեն միջնադարում հայտնաբերված բազմությունների և թանկարժեք մետաղների հատման տարրերը, ինչպես նաև միայն առաջին և միայն երկրորդ բազմություններին պատկանող տարրերը։ Նրանք. միջնադարում անհայտ թանկարժեք մետաղներ և միջնադարում հայտնի տարրեր, բայց ոչ թանկարժեք մետաղներ։

3) Զտիչը կիրառելուց հետո իմաստ ունի ապահովել ստացված արդյունքներով այլ աշխատանքի հնարավորությունը։ Օրինակ՝ միջնադարում հայտնի տարրեր ունենալով, օգտատերը սեղմում է LMB ընտրված տարրի վրա և տեղափոխվում է այս տարրի մասին Վիքիպեդիայի հոդված։

4) Իմաստ ունի օգտվողին տրամադրել ապընտրելու հնարավորություն՝ սեղմելով LMB ընտրված աղյուսակի բջիջի վրա: Օրինակ՝ հեռացնել արդեն դիտված տարրերը։

5) Իմաստ ունի ապահովել, որ ընտրված բջիջների ցանկը պահվում է ֆայլում, և որ այդպիսի ֆայլը բեռնված է բջիջների ավտոմատ ընտրությամբ: Սա օգտատիրոջը հնարավորություն կտա ընդմիջել աշխատանքից։

Մենք օգտագործեցինք ստատիկ, կանխորոշված ​​կառավարման քարտեզ, բայց կան շատ կարևոր առաջադրանքներ, որտեղ կարող են օգտագործվել դինամիկ կառավարման քարտեզները, որոնք փոփոխվում են ծրագրի գործարկման ընթացքում: Օրինակ կարող է լինել գրաֆիկի խմբագրիչը, որտեղ օգտատերը մկնիկի օգնությամբ նշում է գագաթների դիրքերը պատուհանում և եզրեր գծում դրանց միջև: Գագաթը կամ եզրը ջնջելու համար օգտագործողը պետք է մատնանշի այն: Բայց եթե բավականին հեշտ է մատնացույց անել շրջանով նշված գագաթը, ապա ավելի դժվար կլինի մատնանշել բարակ գծով գծված եզրը։ Այստեղ կօգնի վերահսկման քարտեզը, որտեղ գագաթներն ու եզրերը ավելի լայն թաղամասեր են զբաղեցնում, քան տեսանելի պատկերում:

Հետաքրքիր կողմնակի հարց՝ կապված բարդ մարզումների այս մեթոդի հետ, կարո՞ղ է այս մեթոդը օգտակար լինել AI-ի մարզման ժամանակ:

Source: www.habr.com

Добавить комментарий