Dövri cədvəl məktəb informatika

(Nəzarət kartları)
(Kimyəvi Elementlərin Dövri Cədvəlinin Beynəlxalq İlinə həsr olunub)
(Son əlavələr 8 aprel 2019-cu ildə edilib. Əlavələrin siyahısı kəsilmənin dərhal altındadır)

Dövri cədvəl məktəb informatika
(Mendeleyev çiçəyi, Mənbə)

Yadımdadır, ördəyin yanından keçdik. Bunlar birdən üç dərs idi: coğrafiya, təbiətşünaslıq və rus dili. Elm dərsində ördək ördək kimi öyrənilirdi, onun hansı qanadları var, hansı ayaqları var, necə üzür və s. Coğrafiya dərsində eyni ördək yer kürəsinin sakini kimi öyrənildi: onun harada yaşadığını və harada olmadığını xəritədə göstərmək lazım idi. Rus dilində Serafima Petrovna bizə "u-t-k-a" yazmağı və Bremdən ördəklər haqqında bir şey oxumağı öyrətdi. O, keçəndə bizə bildirdi ki, almanlarda ördək belədir, fransızda isə belədir. Düşünürəm ki, o vaxtlar buna “kompleks metod” deyirdilər. Ümumiyyətlə, hər şey "keçid" oldu.

Veniamin Kaverin, İki kapitan

Yuxarıdakı sitatda Veniamin Kaverin mürəkkəb tədris metodunun çatışmazlıqlarını ustalıqla göstərdi, lakin bəzi (bəlkə də olduqca nadir) hallarda bu metodun elementləri əsaslandırılır. Belə hallardan biri də məktəb informatika dərslərində D.İ.Mendeleyevin dövri cədvəlidir. Dövri cədvəllə tipik hərəkətlərin proqram təminatının avtomatlaşdırılması vəzifəsi kimya öyrənməyə başlayan məktəblilər üçün aydındır və bir çox tipik kimyəvi tapşırıqlara bölünür. Eyni zamanda, informatika çərçivəsində bu tapşırıq bizə qrafik proqramlaşdırmaya aid edilə bilən, sözün geniş mənasında qrafik elementlərdən istifadə etməklə proqramlaşdırma kimi başa düşülən idarəetmə kartlarının üsulunu sadə formada nümayiş etdirməyə imkan verir.

(8 aprel 2019-cu il əlavələr edilmişdir:
Əlavə 1: Kimya Kalkulyatoru necə işləyir
Əlavə 2: filtrlər üçün tapşırıq nümunələri)

Əsas vəzifədən başlayaq. Ən sadə halda, dövri cədvəl ekranda pəncərə şəklində göstərilməlidir, burada hər bir hüceyrədə elementin kimyəvi təyinatı olacaqdır: H - hidrogen, He - helium və s. Əgər siçan kursoru hücrəni göstərirsə, o zaman elementin təyinatı və onun nömrəsi formamızda xüsusi sahədə göstərilir. İstifadəçi LMB düyməsini basarsa, bu seçilmiş elementin təyinatı və nömrəsi formanın başqa sahəsində göstəriləcəkdir.

Dövri cədvəl məktəb informatika

Problemi istənilən universal dildən istifadə etməklə həll etmək olar. Demək olar ki, hər kəs üçün başa düşülən sadə köhnə Delpi-7-ni götürəcəyik. Ancaq PL-də proqramlaşdırmadan əvvəl iki şəkil çəkək, məsələn, Photoshop-da. Əvvəlcə Dövri Cədvəli proqramda görmək istədiyimiz formada çəkək. Nəticəni qrafik faylda saxlayın table01.bmp.

Dövri cədvəl məktəb informatika

İkinci rəsm üçün birincidən istifadə edirik. Bütün qrafiklərdən təmizlənmiş cədvəl hüceyrələrini ardıcıl olaraq RGB rəng modelində unikal rənglərlə dolduracağıq. R və G həmişə 0, hidrogen üçün B=1, helium üçün 2 və s. olacaq. Bu rəsm bizim nəzarət kartımız olacaq və biz onu adlı faylda saxlayacağıq. table2.bmp.

Dövri cədvəl məktəb informatika

Photoshop-da qrafik proqramlaşdırmanın birinci mərhələsi tamamlandı. Delpi-7 IDE-də qrafik GUI proqramlaşdırmasına keçək. Bunu etmək üçün yeni bir layihə açın, burada əsas formada bir dialoq düyməsini yerləşdiririk (tableDlg), hansı masa ilə iş aparılacaq. Sonra forma ilə işləyirik tableDlg.

Formada bir sinif komponenti yerləşdirin Timage. alırıq Image1. Qeyd edək ki, ümumiyyətlə, böyük layihələr üçün avtomatik olaraq forma adları yaradılır ImageNHara N bir neçə onlarla və ya daha çox ola bilər - bu ən yaxşı proqramlaşdırma tərzi deyil və daha mənalı adlar verilməlidir. Amma bizim kiçik layihəmizdə, harada N 2-dən çox olmayacaq, onu yaradıldığı kimi tərk edə bilərsiniz.

Mülkiyyətə Şəkil 1. Şəkil faylı yükləyin table01.bmp. Biz yaradırıq Image2 və idarəetmə kartımızı oraya yükləyin table2.bmp. Bu halda biz faylı formanın aşağı sol küncündə göstərildiyi kimi kiçik və istifadəçi üçün görünməz hala gətiririk. Məqsədi aydın olan əlavə nəzarət elementləri əlavə edirik. Delpi-7 IDE-də qrafik GUI proqramlaşdırmasının ikinci mərhələsi tamamlandı.

Dövri cədvəl məktəb informatika

Üçüncü mərhələyə - Delpi-7 IDE-də kodun yazılmasına keçək. Modul yalnız beş hadisə idarəedicisindən ibarətdir: forma yaradılması (FormCreate), kursorun hərəkəti Image1 (Image1MouseMove), xanada LMB klikləməklə (Şəkil 1 klikləyin) və OK düymələrindən istifadə edərək dialoqdan çıxın (OKBtnClick) və ya Ləğv et (CancelBtnClick). Bu işləyicilərin başlıqları IDE-dən istifadə etməklə standart şəkildə yaradılır.

Modulun mənbə kodu:

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.

Versiyamızda 104 elementdən ibarət bir cədvəl götürdük (sabit boy). Aydındır ki, bu ölçü artırıla bilər. Element təyinatları (kimyəvi simvollar) massivə yazılır Cədvəl Simvolları. Lakin mənbə kodunun yığcam olması səbəbindən bu qeydlərin ardıcıllığını sətir sabitləri şəklində yazmaq məqsədəuyğun görünür. Dövri CədvəlStr1, ..., Dövri CədvəlStr4belə ki, forma yaradılan zaman proqram özü bu təyinatları massivin elementləri arasında səpələyir. Hər bir element təyinatı bir və ya iki Latın hərfindən ibarətdir, birinci hərf böyük, ikinci (əgər varsa) kiçik hərfdir. Bu sadə qayda massiv yüklənərkən həyata keçirilir. Beləliklə, qeydlərin ardıcıllığı boşluq qoymadan yığcam şəkildə yazıla bilər. Ardıcıllığın dörd hissəyə bölünməsi (sabitlər Dövri CədvəlStr1, ..., Dövri CədvəlStr4) mənbə kodunu oxumaq asanlığı mülahizələri ilə bağlıdır, çünki Çox uzun bir xətt ekrana tam sığmaya bilər.

Siçan kursoru üzərinə hərəkət etdikdə Image1 işləyici Image1MouseMove bu hadisə nəzarət kartı pikselinin mavi rəng komponentinin dəyərini müəyyən edir Image2 cari kursor koordinatları üçün. Tikinti yolu ilə Image2 kursor xananın içərisindədirsə, bu dəyər element nömrəsinə bərabərdir; sərhəddə olarsa sıfır, digər hallarda isə 255. Proqramın yerinə yetirdiyi qalan hərəkətlər əhəmiyyətsizdir və izahat tələb etmir.

Yuxarıda qeyd olunan stilistik proqramlaşdırma üsullarına əlavə olaraq, şərh üslubunu da qeyd etmək lazımdır. Düzünü desək, müzakirə olunan kod o qədər kiçik və sadədir ki, şərhlər xüsusilə lazımlı görünmür. Bununla belə, onlar həm də metodoloji səbəblərə görə əlavə edilmişdir - qısa kod bəzi ümumi nəticələrə daha aydınlıq gətirməyə imkan verir. Təqdim olunan kodda bir sinif elan olunur (TtableDlg). Bu sinfin üsulları dəyişdirilə bilər və bu, proqramın fəaliyyətinə heç bir şəkildə təsir etməyəcək, lakin onun oxunaqlılığına təsir göstərə bilər. Məsələn, ardıcıllığı təsəvvür edin:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Ola bilsin ki, çox nəzərə çarpmır, amma oxumaq və anlamaq bir az çətinləşəcək. Bölmədə beş yox, onlarla dəfə çox üsul varsa həyata keçirilməsi onlar sinif təsvirlərindəkindən tamamilə fərqli bir sıraya malikdirlər, onda xaos yalnız artacaq. Buna görə də, ciddi şəkildə sübut etmək çətin olsa da və hətta qeyri-mümkün olsa da, əlavə sifarişin tətbiqi kodun oxunuşunu yaxşılaşdıracağına ümid etmək olar. Bu əlavə sifariş əlaqəli vəzifələri yerinə yetirən bir neçə metodun məntiqi qruplaşdırılması ilə asanlaşdırılır. Hər qrupa bir başlıq verilməlidir, məsələn:

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

Bu başlıqlar modulun əvvəlinə köçürülməli və məzmun cədvəli kimi formatlaşdırılmalıdır. Kifayət qədər uzun modulların bəzi hallarda, bu cür məzmun cədvəlləri əlavə naviqasiya seçimlərini təmin edir. Eynilə, bir metodun, prosedurun və ya funksiyanın uzun gövdəsində, ilk növbədə, bu orqanın sonunu qeyd etməyə dəyər:

end; // FormCreate

və ikincisi, proqram mötərizələri başlanğıc - son olan budaqlanmış ifadələrdə bağlama mötərizəsinin istinad etdiyi ifadəni qeyd edin:

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

Qrup başlıqlarını və metod gövdələrinin sonlarını vurğulamaq üçün əksər operatorların uzunluğunu aşan və məsələn, müvafiq olaraq “=” və “_” simvollarından ibarət sətirlər əlavə edə bilərsiniz.
Yenə bir şərt qoymalıyıq: nümunəmiz çox sadədir. Metodun kodu bir ekrana sığmayanda, kod dəyişikliyi etmək üçün ardıcıl altı sonu başa düşmək çətin ola bilər. Bəzi köhnə kompilyatorlarda, məsələn, OS IBM 8000/360 üçün Pascal 370, siyahıda solda buna bənzər bir xidmət sütunu çap edilmişdir.

B5
…
E5

Bu o demək idi ki, E5 sətirindəki bağlanan mötərizə B5 sətirindəki açılış mötərizəsinə uyğun gəlir.

Təbii ki, proqramlaşdırma tərzi çox mübahisəli məsələdir, ona görə də burada ifadə olunan fikirlər düşüncə qidasından başqa bir şey kimi qəbul edilməməlidir. Uzun illər işlədiyi müddətdə fərqli üslubları inkişaf etdirmiş və onlara öyrəşmiş iki kifayət qədər təcrübəli proqramçı üçün razılığa gəlmək çox çətin ola bilər. Hələ öz üslubunu tapmağa vaxtı olmayan proqramla məşğul olan tələbə üçün bu, başqa məsələdir. Düşünürəm ki, bu halda müəllim ən azı tələbələrinə elə sadə, lakin açıq-aydın olmayan bir fikri çatdırmalıdır ki, proqramın uğuru daha çox onun mənbə kodunun hansı üslubda yazılmasından asılıdır. Tələbə tövsiyə olunan üsluba əməl etməyə bilər, amma heç olmasa mənbə kodunun dizaynını təkmilləşdirmək üçün “əlavə” hərəkətlərə ehtiyac olduğunu düşünsün.

Dövri Cədvəllə bağlı əsas problemimizə qayıdaq: sonrakı inkişaf müxtəlif istiqamətlərdə gedə bilər. İstiqamətlərdən biri istinad üçündür: siçan kursorunu masanın xanasının üzərinə gətirdiyiniz zaman göstərilən element haqqında əlavə məlumatı özündə əks etdirən məlumat pəncərəsi görünür. Əlavə inkişaf filtrlərdir. Məsələn, quraşdırmadan asılı olaraq, məlumat pəncərəsində yalnız aşağıdakılar olacaq: ən vacib fiziki və kimyəvi məlumatlar, kəşf tarixi haqqında məlumat, təbiətdə yayılması haqqında məlumat, ən vacib birləşmələrin siyahısı (bura bu element daxildir), fizioloji xassələri, xarici dildə adı və s. e. Bu məqalənin başladığı Kaverinin “ördəyini” xatırlayaraq deyə bilərik ki, proqramın bu inkişafı ilə təbiət elmləri üzrə tam təlim kompleksi əldə edəcəyik: kompüterdən əlavə elm, fizika və kimya - biologiya, iqtisadi coğrafiya, elm tarixi və hətta xarici dillər.

Lakin yerli verilənlər bazası hədd deyil. Proqram təbii olaraq İnternetə qoşulur. Elementi seçdiyiniz zaman keçid aktivləşdirilir və veb brauzer pəncərəsində bu element haqqında Vikipediya məqaləsi açılır. Vikipediya, bildiyiniz kimi, mötəbər mənbə deyil. Nüfuzlu mənbələrə keçidlər qura bilərsiniz, məsələn, kimyəvi ensiklopediya, TSB, mücərrəd jurnallar, bu element üçün axtarış sistemlərində sifariş sorğuları və s. Bu. Tələbələr DBMS və İnternet mövzuları üzrə sadə, lakin mənalı tapşırıqları yerinə yetirə biləcəklər.

Fərdi element üzrə sorğulara əlavə olaraq, məsələn, cədvəldə müəyyən meyarlara cavab verən hüceyrələri müxtəlif rənglərlə qeyd edəcək funksionallıq yarada bilərsiniz. Məsələn, metallar və qeyri-metallar. Və ya yerli kimya zavodu tərəfindən su obyektlərinə atılan hüceyrələr.

Siz həmçinin notebook təşkilatçısının funksiyalarını həyata keçirə bilərsiniz. Məsələn, cədvəldə imtahana daxil olan elementləri vurğulayın. Sonra imtahana hazırlıq zamanı tələbənin öyrəndiyi/təkrar etdiyi elementləri vurğulayın.

Və burada, məsələn, tipik məktəb kimya problemlərindən biridir:

10 q təbaşir verilir. Bütün bu təbaşiri həll etmək üçün nə qədər xlorid turşusu qəbul edilməlidir?

Bu problemi həll etmək üçün kimya yazmaq lazımdır. reaksiya və əmsalları orada yerləşdirmək, kalsium karbonat və hidrogen xloridin molekulyar çəkilərini hesablamaq, sonra nisbəti tərtib edib həll etmək. Əsas proqramımıza əsaslanan kalkulyator hesablaya və həll edə bilər. Düzdür, siz hələ də nəzərə almalısınız ki, turşu kifayət qədər çox və məqbul konsentrasiyada alınmalıdır, lakin bu, kompüter elmi deyil, kimyadır.
Əlavə 1: Kimya Kalkulyatoru necə işləyirYuxarıdakı təbaşir və "hodgepodge" probleminin nümunəsindən istifadə edərək kalkulyatorun işini təhlil edək. Reaksiyadan başlayaq:

CaCO3 + 2HCl = CaCl2 + H2O

Buradan görürük ki, bizə aşağıdakı elementlərin atom çəkiləri lazım olacaq: kalsium (Ca), karbon (C), oksigen (O), hidrogen (H) və xlor (Cl). Ən sadə halda, biz bu çəkiləri kimi müəyyən edilmiş bir ölçülü massivdə yaza bilərik

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

burada massiv indeksi element nömrəsinə uyğun gəlir. Formanın boş sahəsi haqqında daha çox tableDlg iki sahə qoyun. Birinci sahədə əvvəlcə yazılır: "Birinci reagent verilir", ikincidə - "İkinci reagent x tapmaqdır". Sahələri qeyd edək reagent 1, reagent 2 müvafiq olaraq. Proqrama digər əlavələr aşağıdakı kalkulyator nümunəsindən aydın olacaq.

Kompüter klaviaturasında yazırıq: 10 q. Sahədə yazı reagent 1 dəyişikliklər: "Birinci reagentə 10 q verilir." İndi biz bu reagentin düsturunu daxil edirik və siz daxil etdiyiniz zaman kalkulyator onun molekulyar çəkisini hesablayacaq və göstərəcək.

Ca simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 1 dəyişikliklər: "Birinci reagent Ca 40.078 10 q verilir."

C simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 1 dəyişikliklər: "Birinci reagent CaC 52.089 10 q verilir." Bunlar. Kalkulyator kalsium və karbonun atom çəkilərini topladı.

O simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 1 dəyişikliklər: "Birinci reagent CaCO 68.088 10 q verilir." Kalkulyator cəminə oksigenin atom çəkisini əlavə etdi.

O simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 1 dəyişikliklər: "Birinci reagent CaCO2 84.087 10 qr verilmişdir." Kalkulyator bir daha oksigenin atom çəkisini cəminə əlavə etdi.

O simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 1 dəyişikliklər: "Birinci reagent CaCO3 100.086 10 q verilir." Kalkulyator yenidən oksigenin atom çəkisini cəminə əlavə etdi.

Kompüterinizin klaviaturasında Enter düyməsini basın. Birinci reagentin tətbiqi tamamlanır və sahəyə keçir reagent 2. Qeyd edək ki, bu nümunədə biz minimal versiyanı təqdim edirik. İstəyirsinizsə, eyni tipli atomların çarpanlarını asanlıqla təşkil edə bilərsiniz ki, məsələn, xrom düsturuna (K2Cr2O7) daxil olarkən oksigen hüceyrəsinə ardıcıl yeddi dəfə basmaq lazım deyil.

H simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 2 dəyişikliklər: "İkinci reagent H 1.008 x tapın."

Cl simvolu olan cədvəl xanasında LMB üzərinə klikləyin. Sahədə yazı reagent 2 dəyişikliklər: "İkinci reagent HCl 36.458 x tapın." Kalkulyator hidrogen və xlorun atom çəkilərini topladı. Yuxarıdakı reaksiya tənliyində hidrogen xloriddən əvvəl 2 əmsalı var. Buna görə də, sahədə LMB üzərinə klikləyin. reagent 2. Molekulyar çəki ikiqat artır (iki dəfə basdıqda üç dəfə artır və s.). Sahədə yazı reagent 2 dəyişikliklər: "İkinci reagent 2HCl 72.916 x tapın."

Kompüterinizin klaviaturasında Enter düyməsini basın. İkinci reagentin daxil edilməsi tamamlandı və kalkulyator nisbətdən x tapır

Dövri cədvəl məktəb informatika

Bunu tapmaq lazım idi.

Qeyd 1. Əldə edilən nisbətin mənası: həll olunma üçün 100.086 Da təbaşir üçün 72.916 Da turşu lazımdır və 10 q təbaşir həll etmək üçün x turşusu lazımdır.

Qeyd 2. Oxşar problemlərin topluları:

Xomçenko I. G., Kimyadan problemlər və tapşırıqlar toplusu 2009 (8-11-ci siniflər).
Xomçenko G. P., Xomçenko I. G., Universitetlərə abituriyentlər üçün kimyadan problemlər toplusu, 2019.

Qeyd 3. Tapşırığı sadələşdirmək üçün ilkin versiyada düsturun daxil edilməsini sadələşdirə və sadəcə element simvolunu formula xəttinin sonuna əlavə edə bilərsiniz. Sonra kalsium karbonatın formulu belə olacaq:
CaCOOO
Amma çətin ki, kimya müəllimi belə yazıları bəyənsin. Düzgün giriş etmək çətin deyil - bunu etmək üçün bir sıra əlavə etməlisiniz:

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

burada indeks kimyəvi elementin nömrəsidir və bu indeksdəki dəyər atomların sayıdır (əvvəlcə massivin bütün elementləri sıfıra sıfırlanır). Kimyada qəbul edilən düsturda atomların yazılma ardıcıllığı nəzərə alınmalıdır. Məsələn, az adam O3CaC-ni bəyənəcək. Gəlin məsuliyyəti istifadəçiyə keçirək. Massiv yaratmaq:

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

burada kimyəvi elementin sayını düsturdakı görünüş indeksinə görə yazırıq. Bir atom əlavə etmək currNo düsturla:

if formula [currNo]=0 then //этот атом встретился первый раз
 begin
 orderIndex := orderIndex+1;//в начале ввода формулы orderIndex=0
 formulaOrder [orderIndex] :=  currNo;
 end;
formula [currNo]:=formula [currNo]+1;

Düsturun sətirə yazılması:

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;

Qeyd 4. Klaviaturadan reagent düsturunu alternativ olaraq daxil etmək imkanı təmin etmək məntiqlidir. Bu vəziyyətdə sadə bir analizator tətbiq etməlisiniz.

Qeyd etmək lazımdır ki:

Bu gün cədvəlin bir neçə yüz versiyası var və elm adamları daim yeni variantlar təklif edirlər. (Wikipedia)

Tələbələr artıq təklif olunan variantlardan birini həyata keçirməklə bu istiqamətdə öz ixtiralarını göstərə və ya öz orijinal variantını yaratmağa cəhd edə bilərlər. Bu, informatika dərsləri üçün ən az faydalı istiqamət kimi görünə bilər. Bununla belə, bu məqalədə tətbiq olunan Dövri Cədvəl şəklində bəzi tələbələr standart düymələrdən istifadə edərək alternativ həll üzərində nəzarət kartlarının xüsusi üstünlüklərini görməyə bilərlər. TB düyməsi. Cədvəlin spiral forması (hüceyrələrin müxtəlif formalı olduğu yerlərdə) burada təklif olunan həllin üstünlüklərini daha aydın nümayiş etdirəcəkdir.

Dövri cədvəl məktəb informatika
(Alternativ elementlər sistemi Teodor Benfey tərəfindən, Mənbə)

Onu da əlavə edək ki, Dövri Cədvəl üçün hazırda mövcud olan bir sıra kompüter proqramları Habré-də bu yaxınlarda dərc olunmuş məqalədə təsvir edilmişdir. məqalə.

Əlavə 2: filtrlər üçün tapşırıqların nümunələriFiltrlərdən istifadə edərək, məsələn, aşağıdakı vəzifələri həll edə bilərsiniz:

1) Cədvəldə orta əsrlərdə məlum olan bütün elementləri seçin.

2) Dövri qanunun kəşfi zamanı məlum olan bütün elementləri müəyyən edin.

3) Kimyagərlərin metal hesab etdikləri yeddi elementi müəyyənləşdirin.

4) Normal şəraitdə qaz halında olan bütün elementləri seçin (n.s.).

5) No-da maye vəziyyətdə olan bütün elementləri seçin.

6) No-da bərk vəziyyətdə olan bütün elementləri seçin.

7) Normal şəraitdə nəzərəçarpacaq dəyişikliklər olmadan uzun müddət havaya məruz qala bilən bütün elementləri seçin.

8) Xlorid turşusunda həll olunan bütün metalları seçin.

9) No sulfat turşusunda həll olan bütün metalları seçin.

10) Qızdırıldıqda sulfat turşusunda həll olan bütün metalları seçin.

11) Azot turşusunda həll olunan bütün metalları seçin.

12) Ətraf mühitdə su ilə şiddətlə reaksiya verən bütün metalları təcrid edin.

13) Bütün metalları seçin.

14) Təbiətdə geniş yayılmış elementləri müəyyənləşdirin.

15) Təbiətdə sərbəst vəziyyətdə olan elementləri müəyyənləşdirin.

16) İnsan və heyvan orqanizmində ən mühüm rol oynayan elementləri müəyyənləşdirin.

17) Gündəlik həyatda geniş istifadə olunan elementləri seçin (sərbəst formada və ya birləşmələrdə).

18) İşləmək üçün ən təhlükəli olan və xüsusi tədbirlər və qoruyucu vasitələr tələb edən elementləri müəyyən edin.

19) Sərbəst formada və ya birləşmələr şəklində ətraf mühit üçün ən böyük təhlükə yaradan elementləri müəyyən edin.

20) Qiymətli metalları seçin.

21) Qiymətli metallardan daha bahalı elementləri müəyyənləşdirin.

Qeydlər

1) Çoxlu filtrlər təqdim etmək məna kəsb edir. Məsələn, 1-ci problemi (orta əsrlərdə məlum olan bütün elementlər) və 20-ni (qiymətli metallar) həll etmək üçün filtri yandırsanız, orta əsrlərdə məlum olan qiymətli metalları olan hüceyrələr vurğulanacaq (məsələn, rəngə görə) ( məsələn, palladium vurğulanmayacaq , 1803-cü ildə açıldı).

2) Bir neçə filtrin elə rejimdə işləməsini təmin etmək məntiqlidir ki, hər bir filtr öz rənginə malik olan xanaları seçsin, lakin başqa filtrin seçimini tamamilə aradan qaldırmasın (xananın bir hissəsi bir rəngdə, hissəsi digərində). Sonra, əvvəlki misalda, orta əsrlərdə kəşf edilmiş çoxluqların və qiymətli metalların kəsişmə elementləri, eləcə də yalnız birinci və yalnız ikinci çoxluğa aid olan elementlər görünəcəkdir. Bunlar. orta əsrlərdə məlum olmayan qiymətli metallar və orta əsrlərdə məlum olan, lakin qiymətli metallar olmayan elementlər.

3) Alınan nəticələrlə digər işlərin mümkünlüyünü təmin etmək üçün filtr tətbiq edildikdən sonra məna kəsb edir. Məsələn, orta əsrlərdə məlum olan seçilmiş elementlərə malik olan istifadəçi seçilmiş elementə LMB klikləyir və bu element haqqında Vikipediya məqaləsinə aparılır.

4) İstifadəçiyə seçilmiş cədvəl xanasında LMB klikləməklə seçimi ləğv etmək imkanı vermək məntiqlidir. Məsələn, artıq baxılmış elementləri silmək üçün.

5) Seçilmiş xanaların siyahısının faylda saxlanmasını və belə bir faylın xanaların avtomatik seçilməsi ilə yüklənməsini təmin etmək məntiqlidir. Bu, istifadəçiyə işinə fasilə vermək imkanı verəcək.

Biz statik, əvvəlcədən müəyyən edilmiş idarəetmə xəritəsindən istifadə etdik, lakin proqram işlədikcə dəyişən dinamik idarəetmə xəritələrinin istifadə oluna biləcəyi bir çox vacib vəzifələr var. Məsələn, istifadəçinin pəncərədə təpələrin mövqelərini göstərmək və onların arasında kənarları çəkmək üçün siçandan istifadə etdiyi qrafik redaktoru ola bilər. Təpə və ya kənarı silmək üçün istifadəçi onu göstərməlidir. Ancaq dairə ilə işarələnmiş təpəyə işarə etmək olduqca asandırsa, nazik bir xətt ilə çəkilmiş kənarı göstərmək daha çətin olacaq. Burada təpələrin və kənarların görünən şəkildəkindən daha geniş məhəllələri tutduğu bir nəzarət xəritəsi kömək edəcəkdir.

Bu kompleks təlim üsulu ilə bağlı maraqlı bir sual var: bu üsul AI təlimində faydalı ola bilərmi?

Mənbə: www.habr.com

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