Maktab informatika bo'yicha davriy jadval

(Boshqaruv kartalari)
(Kimyoviy elementlar davriy tizimi Xalqaro yiliga bag'ishlangan)
(Oxirgi qoΚ»shimchalar 8-yil 2019-aprelda kiritilgan. QoΚ»shimchalar roΚ»yxati kesmaning ostida joylashgan)

Maktab informatika bo'yicha davriy jadval
(Mendeleyev guli, manba)

Esimda, biz o'rdakdan o'tgandik. Bular birdaniga uchta dars edi: geografiya, tabiatshunoslik va rus tili. Tabiatshunoslik darsida o'rdak o'rdak sifatida o'rganildi, uning qanotlari qanday, oyoqlari qanday, qanday suzadi va hokazo. Geografiya darsida xuddi shu o'rdak yer sharining aholisi sifatida o'rganildi: xaritada u qaerda yashaydi va qaerda yo'qligini ko'rsatish kerak edi. Rus tilida Serafima Petrovna bizga "u-t-k-a" yozishni va Bremdan o'rdaklar haqida biror narsa o'qishni o'rgatdi. O'tib, u bizga nemislarda o'rdak mana shunday, frantsuz tilida esa shunday ekanligini aytdi. Menimcha, o'sha paytda u "murakkab usul" deb atalgan. Umuman olganda, hamma narsa "o'z-o'zidan" paydo bo'ldi.

Veniamin Kaverin, Ikki kapitan

Yuqoridagi iqtibosda Veniamin Kaverin murakkab o'qitish usulining kamchiliklarini ustalik bilan ko'rsatdi, ammo ba'zi (ehtimol juda kam) hollarda bu usulning elementlari oqlanadi. Shunday holatlardan biri maktab informatika darslarida D.I.Mendeleyev davriy sistemasidir. Davriy jadval bilan tipik harakatlarni dasturiy ta'minotni avtomatlashtirish vazifasi kimyoni o'rganishni boshlagan maktab o'quvchilari uchun tushunarli va ko'plab tipik kimyoviy vazifalarga bo'lingan. Shu bilan birga, informatika doirasida ushbu vazifa grafik dasturlashning keng ma'nosida grafik elementlardan foydalangan holda dasturlash deb tushuniladigan boshqaruv kartalari usulini oddiy shaklda ko'rsatishga imkon beradi.

(8-yil 2019-apreldagi qoβ€˜shimchalar kiritildi:
1-ilova: Kimyo kalkulyatori qanday ishlaydi
2-ilova: filtrlar uchun topshiriqlarga misollar)

Keling, asosiy vazifadan boshlaylik. Eng oddiy holatda, davriy jadval ekranda oyna shaklida ko'rsatilishi kerak, bu erda har bir hujayrada elementning kimyoviy belgisi bo'ladi: H - vodorod, He - geliy va boshqalar. Agar sichqoncha kursori katakchaga ishora qilsa, unda elementning belgilanishi va uning raqami bizning formamizdagi maxsus maydonda ko'rsatiladi. Agar foydalanuvchi LMB tugmachasini bossa, ushbu tanlangan elementning belgilanishi va raqami shaklning boshqa maydonida ko'rsatiladi.

Maktab informatika bo'yicha davriy jadval

Muammoni har qanday universal til yordamida hal qilish mumkin. Biz oddiy eski Delpi-7 ni olamiz, bu deyarli hamma uchun tushunarli. Ammo PLda dasturlashdan oldin ikkita rasm chizamiz, masalan, Photoshop-da. Birinchidan, Davriy jadvalni dasturda ko'rmoqchi bo'lgan shaklda chizamiz. Natijani grafik faylga saqlang table01.bmp.

Maktab informatika bo'yicha davriy jadval

Ikkinchi rasm uchun biz birinchisidan foydalanamiz. Biz barcha grafikalardan tozalangan jadval kataklarini ketma-ket RGB rang modelidagi noyob ranglar bilan to'ldiramiz. R va G har doim 0, vodorod uchun B=1, geliy uchun 2 va hokazo bo'ladi. Bu chizma bizning boshqaruv kartamiz bo'ladi, biz uni faylga saqlaymiz. table2.bmp.

Maktab informatika bo'yicha davriy jadval

Photoshop-da grafik dasturlashning birinchi bosqichi yakunlandi. Keling, Delpi-7 IDE da grafik GUI dasturlashga o'tamiz. Buning uchun yangi loyihani oching, u erda asosiy shaklda dialog tugmachasini joylashtiramiz (tableDlg), qaysi jadval bilan ishlash amalga oshiriladi. Keyin biz forma bilan ishlaymiz tableDlg.

Formaga sinf komponentini joylashtiring Rasm. Biz olamiz Image1. E'tibor bering, umuman olganda, yirik loyihalar uchun forma nomlari avtomatik ravishda yaratiladi ImageNqayerda N bir necha o'nlab yoki undan ko'p bo'lishi mumkin - bu eng yaxshi dasturlash uslubi emas va yanada mazmunli nomlar berilishi kerak. Ammo bizning kichik loyihamizda, qaerda N 2 dan oshmaydi, uni yaratilgandek qoldirishingiz mumkin.

Mulkga Rasm 1. Rasm faylni yuklang table01.bmp. Biz yaratamiz Image2 va u erda bizning nazorat kartamizni yuklang table2.bmp. Bunday holda, biz faylni formaning pastki chap burchagida ko'rsatilganidek, foydalanuvchi uchun kichik va ko'rinmas holga keltiramiz. Biz qo'shimcha boshqaruv elementlarini qo'shamiz, ularning maqsadi aniq. Delpi-7 IDE da grafik GUI dasturlashning ikkinchi bosqichi yakunlandi.

Maktab informatika bo'yicha davriy jadval

Uchinchi bosqichga – Delpi-7 IDE da kod yozishga oβ€˜tamiz. Modul faqat beshta hodisa ishlov beruvchisidan iborat: shakl yaratish (FormCreate), kursor harakati Image1 (Image1 Mouse Move), hujayradagi LMB tugmasini bosish (Rasm 1-ni bosing) va OK tugmalari yordamida dialog oynasidan chiqing (OKBtnClick) yoki Bekor qilish (CancelBtnClick). Ushbu ishlov beruvchilarning sarlavhalari IDE yordamida standart tarzda yaratilgan.

Modul manba kodi:

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.

Bizning versiyamizda biz 104 elementdan iborat jadvalni oldik (doimiy hajmi). Shubhasiz, bu hajmni oshirish mumkin. Element belgilari (kimyoviy belgilar) massivga yoziladi Jadval belgilari. Biroq, manba kodining ixchamligi sababli, ushbu belgilar ketma-ketligini satr konstantalari shaklida yozish tavsiya etiladi. Davriy jadvalStr1..., Davriy jadvalStr4shunday qilib, forma yaratilganda, dasturning o'zi bu belgilashlarni massiv elementlari orasida tarqatadi. Har bir element belgisi bir yoki ikkita lotin harflaridan iborat bo'lib, birinchi harf katta, ikkinchisi (agar mavjud bo'lsa) kichik. Ushbu oddiy qoida massivni yuklashda amalga oshiriladi. Shunday qilib, yozuvlar ketma-ketligini bo'shliqlarsiz ixcham tarzda yozish mumkin. Ketma-ketlikni to'rt qismga bo'lish (doimiylar Davriy jadvalStr1..., Davriy jadvalStr4) manba kodini o'qish qulayligi haqidagi fikrlar bilan bog'liq, chunki Juda uzun chiziq ekranga to'liq mos kelmasligi mumkin.

Sichqoncha kursori ustiga harakat qilganda Image1 ishlov beruvchi Image1 Mouse Move bu hodisa nazorat kartasi pikselining ko'k rang komponentining qiymatini aniqlaydi Image2 joriy kursor koordinatalari uchun. Qurilish bo'yicha Image2 agar kursor katak ichida bo'lsa, bu qiymat element raqamiga teng; chegarada bo'lsa nol, boshqa hollarda esa 255. Dastur tomonidan bajarilgan qolgan harakatlar ahamiyatsiz va tushuntirishni talab qilmaydi.

Yuqorida qayd etilgan stilistik dasturlash usullaridan tashqari, sharh uslubini ham ta'kidlash kerak. To'g'ridan-to'g'ri aytganda, muhokama qilingan kod shunchalik kichik va soddaki, sharhlar juda zarur emasdek tuyuladi. Biroq, ular uslubiy sabablarga ko'ra ham qo'shildi - qisqa kod bizga ba'zi umumiy xulosalarni yanada aniqroq qilish imkonini beradi. Taqdim etilgan kodda bitta sinf e'lon qilingan (TtableDlg). Ushbu sinfning usullarini almashtirish mumkin va bu dasturning ishlashiga hech qanday ta'sir qilmaydi, lekin uning o'qilishiga ta'sir qilishi mumkin. Masalan, ketma-ketlikni tasavvur qiling:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Bu unchalik sezilmasligi mumkin, lekin o'qish va tushunish biroz qiyinlashadi. Bo'limda besh emas, balki o'nlab marta ko'proq usullar mavjud bo'lsa amalga oshirish ular sinf tavsiflariga qaraganda butunlay boshqacha tartibga ega, keyin tartibsizlik faqat kuchayadi. Shuning uchun, buni qat'iy isbotlash qiyin va hatto imkonsiz bo'lishi mumkin bo'lsa-da, qo'shimcha tartibni joriy etish kodning o'qilishi yaxshilanishiga umid qilish mumkin. Ushbu qo'shimcha tartib tegishli vazifalarni bajaradigan bir nechta usullarni mantiqiy guruhlash orqali osonlashtiriladi. Har bir guruhga nom berilishi kerak, masalan:

// Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ: ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π±ΠΎΡ€

Ushbu sarlavhalar modulning boshiga ko'chirilishi va mundarija sifatida formatlanishi kerak. Juda uzun modullarning ba'zi holatlarida bunday tarkib jadvallari qo'shimcha navigatsiya imkoniyatlarini taqdim etadi. Xuddi shunday, bitta usul, protsedura yoki funktsiyaning uzun tanasida, birinchi navbatda, ushbu tananing oxirini belgilashga arziydi:

end; // FormCreate

va ikkinchidan, programma qavslari start - end bilan tarvaqaylab ketgan gaplarda yopilish qavs nazarda tutilgan gapni belgilang:

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

Guruh sarlavhalarini va usul tanasining uchlarini ajratib ko'rsatish uchun siz ko'pgina bayonotlardan uzunroq va, masalan, mos ravishda "=" va "_" belgilaridan iborat bo'lgan qatorlarni qo'shishingiz mumkin.
Shunga qaramay, biz rezervasyon qilishimiz kerak: bizning misolimiz juda oddiy. Agar usulning kodi bitta ekranga to'g'ri kelmasa, kodni o'zgartirish uchun oltita ketma-ket uchini tushunish qiyin bo'lishi mumkin. Ba'zi eski kompilyatorlarda, masalan, IBM 8000/360 OS uchun Pascal 370, ro'yxatning chap tomonida shunga o'xshash xizmat ustuni chop etilgan.

B5
…
E5

Bu E5 qatoridagi yopish qavs B5 qatoridagi ochiladigan qavsga mos kelishini anglatardi.

Albatta, dasturlash uslubi juda munozarali masala, shuning uchun bu erda bildirilgan fikrlarni fikrlash uchun oziq-ovqat sifatida qabul qilish kerak. Ko'p yillik ish davomida turli uslublarni ishlab chiqqan va ularga o'rganib qolgan ikki xil tajribali dasturchilar uchun kelishuvga erishish juda qiyin bo'lishi mumkin. Hali oβ€˜z uslubini topishga ulgurmagan, dasturlashni oβ€˜rganayotgan talaba uchun bu boshqa masala. O'ylaymanki, bu holda o'qituvchi hech bo'lmaganda o'z o'quvchilariga dasturning muvaffaqiyati ko'p jihatdan uning manba kodi qanday uslubda yozilganiga bog'liq degan oddiy, ammo aniq bo'lmagan fikrni etkazishi kerak. Talaba tavsiya etilgan uslubga rioya qilmasligi mumkin, lekin u hech bo'lmaganda manba kodining dizaynini yaxshilash uchun "qo'shimcha" harakatlar zarurligi haqida o'ylasin.

Davriy jadvaldagi asosiy muammomizga qaytsak: keyingi rivojlanish turli yo'nalishlarda borishi mumkin. Yo'nalishlardan biri ma'lumot uchun: sichqoncha kursorini jadval katakchasi ustiga olib borganingizda, ko'rsatilgan element bo'yicha qo'shimcha ma'lumotlarni o'z ichiga olgan ma'lumot oynasi paydo bo'ladi. Keyingi rivojlanish filtrlardir. Masalan, o'rnatishga qarab, ma'lumot oynasi faqat quyidagilarni o'z ichiga oladi: eng muhim fizik va kimyoviy ma'lumotlar, kashfiyot tarixi haqidagi ma'lumotlar, tabiatda tarqalishi to'g'risidagi ma'lumotlar, eng muhim birikmalar ro'yxati (bu elementni o'z ichiga oladi), fiziologik xususiyatlar, chet tilidagi ism va h.k.. Kaverinning ushbu maqola boshlanadigan "o'rdak"ini eslab, shuni aytishimiz mumkinki, dasturni ishlab chiqish bilan biz tabiiy fanlar bo'yicha to'liq o'quv kompleksiga ega bo'lamiz: kompyuterdan tashqari. fan, fizika va kimyo - biologiya, iqtisodiy geografiya, fan tarixi va hatto chet tillari.

Ammo mahalliy ma'lumotlar bazasi chegara emas. Dastur tabiiy ravishda Internetga ulanadi. Elementni tanlaganingizda, havola faollashadi va veb-brauzer oynasida ushbu element haqidagi Vikipediya maqolasi ochiladi. Vikipediya, siz bilganingizdek, nufuzli manba emas. Siz nufuzli manbalarga havolalarni o'rnatishingiz mumkin, masalan, kimyoviy entsiklopediya, TSB, mavhum jurnallar, ushbu element uchun qidiruv tizimlarida buyurtma so'rovlari va boshqalar. Bu. Talabalar DBMS va Internet mavzulari bo'yicha oddiy, ammo mazmunli topshiriqlarni bajarishlari mumkin.

Alohida element bo'yicha so'rovlarga qo'shimcha ravishda, masalan, jadvaldagi ma'lum mezonlarga javob beradigan hujayralarni turli ranglar bilan belgilaydigan funksionallikni yaratishingiz mumkin. Masalan, metallar va metall bo'lmaganlar. Yoki mahalliy kimyoviy zavod tomonidan suv havzalariga tashlanadigan hujayralar.

Noutbuk tashkilotchisi funktsiyalarini ham amalga oshirishingiz mumkin. Misol uchun, jadvalda imtihonga kiritilgan elementlarni ajratib ko'rsatish. Keyin imtihonga tayyorgarlik jarayonida talaba tomonidan o'rganilgan/takrorlangan elementlarni ajratib ko'rsatish.

Va bu erda, masalan, odatiy maktab kimyo muammolaridan biri:

10 g bo'r berilgan. Bu bo'rni eritish uchun qancha xlorid kislota olish kerak?

Ushbu muammoni hal qilish uchun kimyoni yozish kerak. reaktsiya va undagi koeffitsientlarni joylashtirish, kaltsiy karbonat va vodorod xloridning molekulyar og'irliklarini hisoblang, so'ngra nisbatni tuzing va yeching. Bizning asosiy dasturimizga asoslangan kalkulyator hisoblab chiqishi va hal qilishi mumkin. To'g'ri, siz hali ham kislotani oqilona ortiqcha va oqilona konsentratsiyada olish kerakligini hisobga olishingiz kerak bo'ladi, ammo bu kimyo, informatika emas.
1-ilova: Kimyo kalkulyatori qanday ishlaydiKeling, yuqoridagi bo'r va "hodgepodge" muammosi misolida kalkulyatorning ishlashini tahlil qilaylik. Reaktsiyadan boshlaylik:

CaCO3 + 2HCl = CaCl2 + H2O

Bundan ko'ramizki, bizga quyidagi elementlarning atom og'irliklari kerak bo'ladi: kaltsiy (Ca), uglerod (C), kislorod (O), vodorod (H) va xlor (Cl). Eng oddiy holatda, biz bu og'irliklarni sifatida belgilangan bir o'lchovli massivga yozishimiz mumkin

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

bu erda massiv indeksi element raqamiga mos keladi. Shaklning bo'sh maydoni haqida ko'proq ma'lumot tableDlg ikkita maydonni qo'ying. Birinchi maydonda dastlab shunday yoziladi: "Birinchi reagent beriladi", ikkinchisida - "Ikkinchi reaktiv x ni topishdir". Maydonlarni belgilaylik reagent 1, reagent 2 mos ravishda. Dasturga boshqa qo'shimchalar quyidagi kalkulyator misolidan aniq bo'ladi.

Kompyuter klaviaturasida yozamiz: 10 g. Maydondagi yozuv reagent 1 o'zgarishlar: "Birinchi reaktivga 10 g beriladi." Endi biz ushbu reaktivning formulasini kiritamiz va kalkulyator uni kiritganingizda uning molekulyar og'irligini hisoblab chiqadi va ko'rsatadi.

Ca belgisi bilan jadval katakchasidagi LMB ni bosing. Maydondagi yozuv reagent 1 o'zgarishlar: "Birinchi reaktiv Ca 40.078 10 g berilgan."

S belgisi bilan jadval katakchasidagi LMB tugmasini bosing. Maydondagi yozuv reagent 1 o'zgarishlar: "Birinchi reaktiv CaC 52.089 10 g berilgan." Bular. Kalkulyator kaltsiy va uglerodning atom og'irliklarini qo'shdi.

O belgisi bilan jadval katakchasidagi LMB tugmasini bosing. Maydondagi yozuv reagent 1 o'zgarishlar: "Birinchi reaktiv CaCO 68.088 10 g berilgan." Hisoblagich kislorodning atom og'irligini yig'indiga qo'shdi.

O belgisi bilan jadval katakchasidagi LMB tugmasini bosing. Maydondagi yozuv reagent 1 o'zgarishlar: "Birinchi reaktiv CaCO2 84.087 10 g berilgan." Kalkulyator yana bir bor kislorodning atom og'irligini yig'indiga qo'shdi.

O belgisi bilan jadval katakchasidagi LMB tugmasini bosing. Maydondagi yozuv reagent 1 o'zgarishlar: "Birinchi reaktiv CaCO3 100.086 10 g berilgan." Hisoblagich yana kislorodning atom og'irligini yig'indiga qo'shdi.

Kompyuter klaviaturasida Enter tugmasini bosing. Birinchi reaktivni kiritish tugallanadi va maydonga o'tadi reagent 2. E'tibor bering, ushbu misolda biz minimal versiyani taqdim etamiz. Agar so'ralsa, siz bir xil turdagi atomlarning ko'paytirgichlarini osongina tashkil qilishingiz mumkin, shunda, masalan, xrom formulasini (K2Cr2O7) kiritishda kislorod xujayrasini ketma-ket etti marta bosishingiz shart emas.

Jadval katakchasidagi LMB belgisini H belgisi bilan bosing. Maydondagi yozuv reagent 2 o'zgarishlar: "Ikkinchi reaktiv H 1.008 x toping."

Cl belgisi bilan jadval katakchasidagi LMB ni bosing. Maydondagi yozuv reagent 2 o'zgarishlar: "Ikkinchi reaktiv HCl 36.458, x toping." Kalkulyator vodorod va xlorning atom og'irliklarini qo'shdi. Yuqoridagi reaksiya tenglamasida vodorod xloriddan oldin 2 koeffitsienti mavjud. Shuning uchun maydonda LMB tugmasini bosing. reagent 2. Molekulyar og'irlik ikki baravar ko'payadi (ikki marta bosilganda uch barobar ortadi va hokazo). Maydondagi yozuv reagent 2 o'zgarishlar: "Ikkinchi reaktiv 2HCl 72.916, x toping."

Kompyuter klaviaturasida Enter tugmasini bosing. Ikkinchi reagentni kiritish tugallandi va kalkulyator proporsiyadan x ni topadi

Maktab informatika bo'yicha davriy jadval

Buni topishimiz kerak edi.

1 eslatma. Olingan nisbatning ma'nosi: eritish uchun 100.086 Da bo'r uchun 72.916 Da kislota, 10 g bo'rni eritish uchun esa x kislota kerak bo'ladi.

2 eslatma. Shu kabi muammolar to'plami:

Xomchenko I. G., Kimyodan muammolar va mashqlar to'plami 2009 (8-11 sinflar).
Xomchenko G. P., Xomchenko I. G., Universitetlarga abituriyentlar uchun kimyodan muammolar to'plami, 2019 yil.

3 eslatma. Vazifani soddalashtirish uchun siz dastlabki versiyada formulani kiritishni soddalashtirishingiz va formulalar qatorining oxiriga element belgisini qo'shishingiz mumkin. Keyin kaltsiy karbonat formulasi quyidagicha bo'ladi:
CaCOOO
Ammo kimyo o'qituvchisiga bunday yozuv yoqmasa kerak. To'g'ri kiritish qiyin emas - buning uchun siz qator qo'shishingiz kerak:

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

bu erda indeks kimyoviy elementning raqami va bu indeksdagi qiymat atomlar sonidir (dastlab massivning barcha elementlari nolga qaytariladi). Kimyoda qabul qilingan formulada atomlarning yozilish tartibini hisobga olish kerak. Masalan, O3CaC ham kam odamga yoqadi. Keling, mas'uliyatni foydalanuvchiga o'tkazaylik. Massiv yaratish:

 formulaOrder : array [1..size] of integer; // ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΏΠΎΠΊΠΎΡ€ΠΎΡ‡Π΅

bu erda kimyoviy elementning sonini formuladagi ko'rinish indeksiga ko'ra yozamiz. Atom qo'shish currNo formulaga:

if formula [currNo]=0 then //этот Π°Ρ‚ΠΎΠΌ встрСтился ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·
 begin
 orderIndex := orderIndex+1;//Π² Π½Π°Ρ‡Π°Π»Π΅ Π²Π²ΠΎΠ΄Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ orderIndex=0
 formulaOrder [orderIndex] :=  currNo;
 end;
formula [currNo]:=formula [currNo]+1;

Formulani qatorga yozish:

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 eslatma. Klaviaturadan reagent formulasini muqobil ravishda kiritish imkoniyatini ta'minlash mantiqan. Bunday holda, siz oddiy parserni amalga oshirishingiz kerak bo'ladi.

Shuni ta'kidlash joizki:

Bugungi kunda jadvalning bir necha yuzlab versiyalari mavjud va olimlar doimiy ravishda yangi variantlarni taklif qilmoqdalar. (Vikipediya)

Talabalar allaqachon taklif qilingan variantlardan birini amalga oshirish orqali ushbu yo'nalishda o'zlarining zukkoliklarini ko'rsatishlari yoki o'zlarining original variantini yaratishga harakat qilishlari mumkin. Bu informatika darslari uchun eng kam foydali yo'nalish bo'lib tuyulishi mumkin. Biroq, ushbu maqolada amalga oshirilgan davriy jadval shaklida, ba'zi talabalar standart tugmalar yordamida muqobil yechimga nisbatan nazorat kartalarining o'ziga xos afzalliklarini ko'rmasliklari mumkin. TB tugmasi. Jadvalning spiral shakli (hujayralar turli shakllarda bo'lgan joyda) bu erda taklif qilingan yechimning afzalliklarini aniqroq ko'rsatib beradi.

Maktab informatika bo'yicha davriy jadval
(Teodor Benfey tomonidan muqobil elementlar tizimi, manba)

Yana shuni qo'shimcha qilaylikki, davriy tizim uchun hozirda mavjud bo'lgan bir qator kompyuter dasturlari yaqinda HabrΓ©-da nashr etilgan. maqola.

2-ilova: filtrlar uchun topshiriqlarga misollarFiltrlardan foydalanib, masalan, quyidagi vazifalarni hal qilishingiz mumkin:

1) Jadvalda o'rta asrlarda ma'lum bo'lgan barcha elementlarni tanlang.

2) Davriy qonun kashf etilgan paytda ma'lum bo'lgan barcha elementlarni aniqlang.

3) Alkimyogarlar metallar deb hisoblagan ettita elementni aniqlang.

4) Oddiy sharoitlarda gazsimon holatda bo'lgan barcha elementlarni tanlang (n.s.).

5) No da suyuq holatda bo'lgan barcha elementlarni tanlang.

6) No da qattiq holatda bo'lgan barcha elementlarni tanlang.

7) Oddiy sharoitlarda sezilarli o'zgarishlarsiz uzoq vaqt davomida havoga ta'sir qilishi mumkin bo'lgan barcha elementlarni tanlang.

8) Xlorid kislotada eriydigan barcha metallarni tanlang.

9) No sulfat kislotada eriydigan barcha metallarni tanlang.

10) qizdirilganda sulfat kislotada eriydigan barcha metallarni tanlang.

11) Nitrat kislotada eriydigan barcha metallarni tanlang.

12) Atrof-muhit sharoitida suv bilan kuchli reaksiyaga kirishadigan barcha metallarni ajratib oling.

13) Barcha metallarni tanlang.

14) Tabiatda keng tarqalgan elementlarni aniqlang.

15) Tabiatda erkin holatda uchraydigan elementlarni aniqlang.

16) Odam va hayvon organizmida eng muhim rol o’ynaydigan elementlarni aniqlang.

17) Kundalik hayotda keng qo'llaniladigan elementlarni tanlang (erkin shaklda yoki kombinatsiyalarda).

18) Ishlash uchun eng xavfli bo'lgan va maxsus choralar va himoya vositalarini talab qiladigan elementlarni aniqlang.

19) Erkin shaklda yoki birikmalar shaklida atrof-muhitga eng katta xavf tug'diradigan elementlarni aniqlang.

20) Qimmatbaho metallarni tanlang.

21) Qimmatbaho metallardan qimmatroq elementlarni aniqlang.

Eslatmalar

1) Bir nechta filtrlarni taqdim etish mantiqan. Misol uchun, agar siz 1 (O'rta asrlarda ma'lum bo'lgan barcha elementlar) va 20 (qimmatbaho metallar) muammosini hal qilish uchun filtrni yoqsangiz, o'rta asrlarda ma'lum bo'lgan qimmatbaho metallar bo'lgan hujayralar ta'kidlanadi (masalan, rang bo'yicha) ( masalan, palladiy ta'kidlanmaydi , 1803 yilda ochilgan).

2) Bir nechta filtrlarning shunday rejimda ishlashini ta'minlash mantiqan to'g'ri keladiki, har bir filtr o'z rangiga ega bo'lgan hujayralarni tanlaydi, lekin boshqa filtrni tanlashni to'liq olib tashlamaydi (hujayraning bir qismi bir rangda, bir qismi boshqasida). Keyin, oldingi misolda, o'rta asrlarda kashf etilgan to'plamlar va qimmatbaho metallar kesishuvi elementlari, shuningdek, faqat birinchi va faqat ikkinchi to'plamlarga tegishli elementlar ko'rinadi. Bular. O'rta asrlarda noma'lum bo'lgan qimmatbaho metallar va o'rta asrlarda ma'lum bo'lgan, ammo qimmatbaho metallar bo'lmagan elementlar.

3) Olingan natijalar bilan boshqa ishlash imkoniyatini ta'minlash uchun filtrni qo'llashdan keyin mantiqiy bo'ladi. Masalan, o'rta asrlarda ma'lum bo'lgan tanlangan elementlarga ega bo'lgan foydalanuvchi tanlangan elementga LMB tugmasini bosadi va ushbu element haqidagi Vikipediya maqolasiga o'tadi.

4) Tanlangan jadval katakchasidagi LMB ni bosish orqali foydalanuvchiga tanlovni bekor qilish imkoniyatini berish mantiqan. Masalan, allaqachon ko'rilgan narsalarni o'chirish uchun.

5) Tanlangan katakchalar roβ€˜yxati faylda saqlanishi va bunday faylga yacheykalarni avtomatik tanlash bilan yuklanishi mantiqan toβ€˜gβ€˜ri keladi. Bu foydalanuvchiga ishdan tanaffus qilish imkoniyatini beradi.

Biz statik, oldindan belgilangan boshqaruv xaritasidan foydalandik, lekin dastur ishga tushganda o'zgarib turadigan dinamik boshqaruv xaritalaridan foydalanish mumkin bo'lgan juda ko'p muhim vazifalar mavjud. Misol sifatida grafik muharriri bo'lishi mumkin, unda foydalanuvchi sichqoncha yordamida oynadagi cho'qqilarning o'rnini ko'rsatadi va ular orasidagi qirralarni chizadi. Cho'qqi yoki chekkani o'chirish uchun foydalanuvchi unga ishora qilishi kerak. Ammo agar aylana bilan belgilangan cho'qqiga ishora qilish juda oson bo'lsa, unda ingichka chiziq bilan chizilgan chekkaga ishora qilish qiyinroq bo'ladi. Bu erda cho'qqilar va qirralar ko'rinadigan rasmga qaraganda kengroq mahallalarni egallagan boshqaruv xaritasi yordam beradi.

Ushbu murakkab o'qitish usuli bilan bog'liq qiziqarli yon savol: bu usul AIni o'qitishda foydali bo'lishi mumkinmi?

Manba: www.habr.com

a Izoh qo'shish