Jaksotaulu koulun tietojenkäsittelytieteestä

(Ohjauskortit)
(Omistettu kansainväliselle kemiallisten alkuaineiden jaksollisen järjestelmän vuodelle)
(Viimeisimmät lisäykset tehty 8. Lisäyslista on heti leikkauksen alapuolella)

Jaksotaulu koulun tietojenkäsittelytieteestä
(Mendelejevin kukka, Lähde)

Muistan, että ohitimme ankan. Nämä olivat kolme oppituntia kerralla: maantiedettä, luonnontieteitä ja venäjää. Tiedetunnilla ankkaa tutkittiin ankana, mitkä siivet sillä on, mitkä jalat sillä on, miten se ui ja niin edelleen. Maantieteen tunnilla samaa ankkaa tutkittiin maapallon asukkaana: kartalta piti näyttää missä se asuu ja missä ei. Venäjän kielellä Serafima Petrovna opetti meidät kirjoittamaan "u-t-k-a" ja lukemaan jotain Bremin ankoista. Ohimennen hän kertoi meille, että saksaksi ankka on näin ja ranskaksi näin. Luulen, että sitä kutsuttiin silloin "monimutkaiseksi menetelmäksi". Yleisesti ottaen kaikki tuli ulos "samalla".

Veniamin Kaverin, Kaksi kapteenia

Yllä olevassa lainauksessa Veniamin Kaverin osoitti mestarillisesti monimutkaisen opetusmenetelmän puutteet, mutta joissakin (ehkä melko harvinaisissa) tapauksissa tämän menetelmän elementit ovat perusteltuja. Yksi tällainen tapaus on D.I. Mendelejevin jaksollinen taulu koulun tietojenkäsittelyn tunneilla. Tyypillisten toimintojen ohjelmistoautomaation tehtävä jaksollisella taulukolla on selvä kemian opiskelun aloittaneille koululaisille, ja se jakautuu moniin tyypillisiin kemiallisiin ongelmiin. Samaan aikaan tietojenkäsittelytieteen puitteissa tämä tehtävä antaa meille mahdollisuuden demonstroida yksinkertaisessa muodossa graafiseen ohjelmointiin liittyvä ohjauskorttimenetelmä, joka ymmärretään sanan laajassa merkityksessä ohjelmointina graafisia elementtejä käyttäen.

(8 tehdyt lisäykset:
Lisäys 1: Kuinka kemian laskin toimii
Liite 2: esimerkkejä suodattimien tehtävistä)

Aloitetaan perustehtävästä. Yksinkertaisimmassa tapauksessa jaksollinen taulukko tulee näyttää näytöllä ikkunamuodossa, jossa jokaisessa solussa on elementin kemiallinen nimitys: H - vety, He - helium jne. Jos hiiren kursori osoittaa soluun, elementin nimitys ja sen numero näkyvät lomakkeellamme erityisessä kentässä. Jos käyttäjä painaa LMB:tä, tämän valitun elementin nimi ja numero ilmoitetaan lomakkeen toisessa kentässä.

Jaksotaulu koulun tietojenkäsittelytieteestä

Ongelma voidaan ratkaista millä tahansa universaalilla kielellä. Otetaan yksinkertainen vanha Delpi-7, joka on ymmärrettävä melkein kaikille. Mutta ennen kuin ohjelmoit PL:llä, piirretään kaksi kuvaa, esimerkiksi Photoshopissa. Piirretään ensin jaksollinen taulukko siinä muodossa, jonka haluamme nähdä ohjelmassa. Tallenna tulos graafiseen tiedostoon table01.bmp.

Jaksotaulu koulun tietojenkäsittelytieteestä

Toisessa piirustuksessa käytämme ensimmäistä. Täytämme peräkkäin taulukon solut, joista on poistettu kaikki grafiikat, ainutlaatuisilla väreillä RGB-värimallissa. R ja G ovat aina 0, ja B=1 vedylle, 2 heliumille jne. Tämä piirros on ohjauskorttimme, jonka tallennamme tiedostoon nimeltä table2.bmp.

Jaksotaulu koulun tietojenkäsittelytieteestä

Graafisen ohjelmoinnin ensimmäinen vaihe Photoshopissa on valmis. Siirrytään graafiseen GUI-ohjelmointiin Delpi-7 IDE:ssä. Tätä varten avaa uusi projekti, johon laitamme päälomakkeelle valintaikkunan (tableDlg), jossa työskentely pöydän kanssa tapahtuu. Seuraavaksi työskentelemme lomakkeen kanssa tableDlg.

Aseta luokan komponentti lomakkeelle TImage. Saamme Image1. Huomaa, että yleensä suurille projekteille automaattisesti luodut lomakkeen nimet ImageNMissä N voi saavuttaa useita kymmeniä tai enemmän - tämä ei ole paras ohjelmointityyli, ja merkityksellisempiä nimiä tulisi antaa. Mutta missä meidän pienessä projektissamme N ei ylitä 2, voit jättää sen luoduksi.

Omaisuuteen Kuva1.Kuva lataa tiedosto table01.bmp. Me luomme Image2 ja lataa ohjauskorttimme sinne table2.bmp. Tässä tapauksessa teemme tiedostosta pienen ja käyttäjälle näkymätön, kuten lomakkeen vasemmassa alakulmassa näkyy. Lisäämme ylimääräisiä ohjauselementtejä, joiden tarkoitus on ilmeinen. Delpi-7 IDE:n graafisen graafisen ohjelmoinnin toinen vaihe on valmis.

Jaksotaulu koulun tietojenkäsittelytieteestä

Siirrytään kolmanteen vaiheeseen - koodin kirjoittamiseen Delpi-7 IDE:ssä. Moduuli koostuu vain viidestä tapahtumakäsittelijästä: lomakkeen luominen (FormCreate), kohdistimen liike Image1 (Image1MouseMove), napsauta LMB solussa (Kuva1 Napsauta) ja poistu valintaikkunasta OK-painikkeilla (OKBtnNapsauta) tai peruuta (PeruutaBtnNapsauta). Näiden käsittelijöiden otsikot luodaan tavallisella tavalla IDE:n avulla.

Moduulin lähdekoodi:

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.

Versiossamme otimme 104 elementin taulukon (vakio koko). Tätä kokoa voidaan luonnollisesti suurentaa. Elementtien nimet (kemialliset symbolit) kirjoitetaan taulukkoon Taulukon symbolit. Lähdekoodin tiiviyden vuoksi on kuitenkin suositeltavaa kirjoittaa näiden merkintöjen järjestys merkkijonovakioiden muodossa PeriodicTableStr1..., PeriodicTableStr4niin, että kun lomake luodaan, ohjelma itse hajottaa nämä nimitykset taulukon elementtien kesken. Jokainen elementtinimitys koostuu yhdestä tai kahdesta latinalaisesta kirjaimesta, joista ensimmäinen kirjain on iso ja toinen (jos sellainen on) pieni. Tämä yksinkertainen sääntö toteutetaan ladattaessa taulukkoa. Näin ollen merkintäjono voidaan kirjoittaa ytimekkäästi ilman välilyöntejä. Jakson jakaminen neljään osaan (vakiot PeriodicTableStr1..., PeriodicTableStr4) johtuu lähdekoodin lukemisen helppoussyistä, koska Liian pitkä rivi ei välttämättä mahdu kokonaan näytölle.

Kun hiiren osoitin siirtyy Image1 käsittelijä Image1MouseMove tämä tapahtuma määrittää ohjauskortin pikselin sinisen värikomponentin arvon Image2 nykyiset kohdistimen koordinaatit. Rakentamisen mukaan Image2 tämä arvo on yhtä suuri kuin elementin numero, jos kohdistin on solun sisällä; nolla, jos rajalla, ja 255 muissa tapauksissa. Muut ohjelman suorittamat toiminnot ovat triviaaleja eivätkä vaadi selityksiä.

Edellä mainittujen tyylisten ohjelmointitekniikoiden lisäksi kannattaa huomioida kommentointityyli. Tarkkaan ottaen keskusteltu koodi on niin pieni ja yksinkertainen, että kommentit eivät vaikuta erityisen tarpeellisilta. Ne lisättiin kuitenkin myös metodologisista syistä - lyhytkoodin avulla voimme tehdä yleisiä johtopäätöksiä selkeämmin. Esitetyssä koodissa yksi luokka ilmoitetaan (TtableDlg). Tämän luokan menetelmiä voidaan vaihtaa, mikä ei vaikuta ohjelman toimintaan millään tavalla, mutta voi vaikuttaa sen luettavuuteen. Kuvittele esimerkiksi sarja:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Se ei ehkä ole kovin havaittavissa, mutta siitä tulee hieman vaikeampi lukea ja ymmärtää. Jos osiossa ei ole viisi, vaan kymmeniä kertoja enemmän menetelmiä täytäntöönpano niillä on aivan eri järjestys kuin luokkakuvauksissa, silloin kaaos vain kasvaa. Siksi, vaikka sitä on vaikea todistaa tarkasti ja jopa mahdotonta, voidaan toivoa, että lisäjärjestyksen käyttöönotto parantaa koodin luettavuutta. Tätä lisäjärjestystä helpottaa useiden toisiinsa liittyviä tehtäviä suorittavien menetelmien looginen ryhmittely. Jokaiselle ryhmälle tulee antaa nimi, esim.

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

Nämä otsikot tulee kopioida moduulin alkuun ja muotoilla sisällysluetteloksi. Joissakin melko pitkissä moduuleissa tällaiset sisällysluettelot tarjoavat lisänavigointivaihtoehtoja. Samoin yhden menetelmän, menettelyn tai toiminnon pitkässä rungossa kannattaa ensin merkitä tämän rungon loppu:

end; // FormCreate

ja toiseksi, haaroittuneisiin lauseisiin, joissa on ohjelman hakasulkeet alkaa - loppu, merkitse lause, johon sulkeva hakasulke viittaa:

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

Voit korostaa ryhmien otsikot ja menetelmäkappaleiden päät lisäämällä rivejä, jotka ovat pidempiä kuin useimmat operaattorit ja koostuvat esimerkiksi merkeistä "=" ja "_".
Jälleen meidän on tehtävä varaus: esimerkkimme on liian yksinkertainen. Ja kun menetelmän koodi ei mahdu yhdelle näytölle, voi olla vaikea ymmärtää kuutta peräkkäistä koodimuutosta. Joissakin vanhoissa kääntäjissä, esimerkiksi Pascal 8000 OS IBM 360/370 -käyttöjärjestelmälle, tällainen palvelusarake painettiin luettelon vasemmalle puolelle.

B5
…
E5

Tämä tarkoitti, että rivin E5 sulkeva sulku vastasi rivin B5 avaussulkua.

Tietenkin ohjelmointityyli on hyvin kiistanalainen kysymys, joten tässä esitettyjä ajatuksia ei pitäisi pitää pelkkänä ajatuksen aiheena. Kahden melko kokeneen ohjelmoijan, jotka ovat kehittyneet ja tottuneet erilaisiin tyyleihin vuosien työn aikana, voi olla hyvin vaikeaa päästä sopimukseen. Se on eri asia ohjelmoimaan oppivalle opiskelijalle, joka ei ole vielä ehtinyt löytää omaa tyyliään. Mielestäni tässä tapauksessa opettajan tulisi ainakin välittää opiskelijoilleen sellainen yksinkertainen, mutta ei heille ilmeinen ajatus, että ohjelman menestys riippuu suurelta osin sen lähdekoodin kirjoitustyylistä. Opiskelija ei välttämättä noudata suositeltua tyyliä, mutta antaa hänen ainakin miettiä "lisätoimintojen" tarvetta lähdekoodin suunnittelun parantamiseksi.

Palatakseni jaksollisen järjestelmän perusongelmaamme: jatkokehitys voi mennä eri suuntiin. Yksi ohjeista on viitteellinen: kun siirrät hiiren osoittimen taulukon solun päälle, näkyviin tulee tietoikkuna, joka sisältää lisätietoja määritetystä elementistä. Jatkokehitys on suodattimia. Esimerkiksi asennuksesta riippuen tietoikkuna sisältää vain: tärkeimmät fysikaaliset ja kemialliset tiedot, tietoa löytöhistoriasta, tietoa leviämisestä luonnossa, luettelon tärkeimmistä yhdisteistä (joka sisältää tämän elementin), fysiologiset ominaisuudet, nimi vieraalla kielellä jne. e. Muistaen Kaverinin "ankan", jolla tämä artikkeli alkaa, voimme sanoa, että tällä ohjelman kehittämisellä saamme täydellisen luonnontieteiden koulutuskompleksin: tietokoneen lisäksi tiede, fysiikka ja kemia - biologia, talousmaantiede, tieteen historia ja jopa vieraat kielet.

Mutta paikallinen tietokanta ei ole rajana. Ohjelma muodostaa luonnollisesti yhteyden Internetiin. Kun valitset elementin, linkki aktivoituu ja tätä elementtiä käsittelevä Wikipedia-artikkeli avautuu verkkoselainikkunaan. Kuten tiedät, Wikipedia ei ole luotettava lähde. Voit asettaa linkkejä arvovaltaisiin lähteisiin, kuten kemian tietosanakirjaan, TSB:hen, abstrakteihin lehtiin, tilata kyselyitä hakukoneissa tälle elementille jne. Että. Opiskelija osaa suorittaa yksinkertaisia ​​mutta mielekkäitä tehtäviä DBMS- ja Internet-aiheista.

Yksittäisen elementin kyselyjen lisäksi voit luoda toimintoja, jotka esimerkiksi merkitsevät taulukossa tietyt kriteerit täyttävät solut eri väreillä. Esimerkiksi metallit ja ei-metallit. Tai soluja, jotka paikallinen kemiantehdas upottaa vesistöihin.

Voit toteuttaa myös muistikirjan järjestäjän toiminnot. Korosta esimerkiksi taulukossa kokeeseen sisältyvät elementit. Korosta sitten elementit, joita opiskelija tutki/toisti kokeeseen valmistautuessaan.

Ja tässä on esimerkiksi yksi tyypillisistä koulukemian ongelmista:

Annettiin 10 g liitua. Kuinka paljon kloorivetyhappoa pitää ottaa kaiken tämän liidun liuottamiseksi?

Tämän ongelman ratkaisemiseksi on tarpeen kirjoittaa kemia. reaktio ja asettamalla kertoimet siihen, laske kalsiumkarbonaatin ja vetykloridin molekyylipainot, sitten muodosta ja ratkaise suhde. Perusohjelmaamme perustuva laskin osaa laskea ja ratkaista. Totta, sinun on silti otettava huomioon, että happoa on otettava kohtuullinen ylimäärä ja kohtuullinen pitoisuus, mutta tämä on kemiaa, ei tietojenkäsittelyä.
Lisäys 1: Kuinka kemian laskin toimiiAnalysoidaan laskimen toimintaa käyttämällä esimerkkiä yllä olevasta liidun ja "hodgepodgen" ongelmasta. Aloitetaan reaktiosta:

CaCO3 + 2HCl = CaCl2 + H2O

Tästä näemme, että tarvitsemme seuraavien alkuaineiden atomipainot: kalsium (Ca), hiili (C), happi (O), vety (H) ja kloori (Cl). Yksinkertaisimmassa tapauksessa voimme kirjoittaa nämä painot yksiulotteiseen taulukkoon, joka on määritelty muodossa

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

jossa taulukon indeksi vastaa elementin numeroa. Lisää lomakkeen vapaasta tilasta tableDlg laita kaksi kenttää. Ensimmäiseen kenttään kirjoitetaan aluksi: "Ensimmäinen reagenssi annetaan", toisessa - "Toinen reagenssi on löytää x". Merkitään kentät reagenssi 1, reagenssi 2 vastaavasti. Muut lisäykset ohjelmaan käyvät ilmi seuraavasta laskimen esimerkistä.

Kirjoitamme tietokoneen näppäimistöllä: 10 g. Kentässä teksti reagenssi 1 muutokset: "Ensimmäiselle reagenssille annetaan 10 g." Nyt syötämme tämän reagenssin kaavan, ja laskin laskee ja näyttää sen molekyylipainon, kun syötät sen.

Napsauta LMB taulukon solussa, jossa on Ca-symboli. Kirjoitus kenttään reagenssi 1 muutokset: "Ensimmäinen reagenssi Ca 40.078 annettu 10 g."

Napsauta LMB taulukon solussa, jossa on symboli C. Inscription kentässä reagenssi 1 muutokset: "Ensimmäinen reagenssi CaC 52.089 annettu 10 g." Nuo. Laskin summasi kalsiumin ja hiilen atomipainot.

Napsauta LMB taulukon solussa, jossa on symboli O. Inscription kentässä reagenssi 1 muutokset: "Ensimmäinen reagenssi CaCO 68.088 annettu 10 g." Laskin lisäsi hapen atomipainon summaan.

Napsauta LMB taulukon solussa, jossa on symboli O. Inscription kentässä reagenssi 1 muutokset: "Ensimmäinen reagenssi CaCO2 84.087 annettu 10 g." Laskin lisäsi summaan jälleen hapen atomipainon.

Napsauta LMB taulukon solussa, jossa on symboli O. Inscription kentässä reagenssi 1 muutokset: "Ensimmäinen reagenssi CaCO3 100.086 annettu 10 g." Laskin lisäsi summaan jälleen hapen atomipainon.

Paina Enter-näppäintä tietokoneen näppäimistöllä. Ensimmäisen reagenssin lisäys on valmis ja vaihtuu kentälle reagenssi 2. Huomaa, että tässä esimerkissä tarjoamme minimiversion. Halutessasi voit helposti järjestää samantyyppisten atomien kertoimia, jotta sinun ei esimerkiksi tarvitse napsauttaa seitsemän kertaa peräkkäin happikennoa syöttäessäsi kromikaavaa (K2Cr2O7).

Napsauta LMB taulukon solussa, jossa on symboli H. Inscription kentässä reagenssi 2 muutokset: "Toinen reagenssi H 1.008 etsi x."

Napsauta LMB taulukon solussa, jossa on Cl-symboli. Kirjoitus kenttään reagenssi 2 muutokset: "Toinen reagenssi HCl 36.458 etsi x." Laskin laski yhteen vedyn ja kloorin atomipainot. Yllä olevassa reaktioyhtälössä kloorivetyä edeltää kerroin 2. Napsauta siksi kentässä LMB reagenssi 2. Molekyylipaino kaksinkertaistuu (kolminkertaistuu, kun sitä painetaan kahdesti jne.). Kirjoitus kenttään reagenssi 2 muutokset: "Toinen reagenssi 2HCl 72.916 etsi x."

Paina Enter-näppäintä tietokoneen näppäimistöllä. Toisen reagenssin syöttö on valmis, ja laskin löytää suhteesta x:n

Jaksotaulu koulun tietojenkäsittelytieteestä

Se meidän piti löytää.

Huomautus 1 Tuloksena olevan osuuden merkitys: liukenemiselle 100.086 Da liitu vaatii 72.916 Da happoa, ja 10 g liitua liuottaaksesi tarvitset x happoa.

Huomautus 2 Kokoelmia vastaavista ongelmista:

Khomchenko I. G., Kokoelma kemian tehtäviä ja harjoituksia 2009 (luokat 8-11).
Khomchenko G. P., Khomchenko I. G., Kokoelma kemian ongelmia yliopistoihin hakijoille, 2019.

Huomautus 3 Tehtävän yksinkertaistamiseksi voit yksinkertaistaa kaavan syöttämistä alkuperäisessä versiossa ja lisätä elementin symbolin kaavarivin loppuun. Sitten kalsiumkarbonaatin kaava on:
CaCOOO
Mutta kemian opettaja ei todennäköisesti pidä sellaisesta tallenteesta. Oikean merkinnän tekeminen ei ole vaikeaa - tätä varten sinun on lisättävä taulukko:

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

jossa indeksi on kemiallisen elementin numero ja tämän indeksin arvo on atomien lukumäärä (alkuvaiheessa kaikki taulukon elementit nollataan). Järjestys, jossa atomit kirjoitetaan kaavaan, kuten kemiassa käytetään, tulee ottaa huomioon. Esimerkiksi harvat ihmiset pitävät myös O3CaC:stä. Siirretään vastuu käyttäjälle. Matriisin tekeminen:

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

jossa kirjoitetaan kemiallisen alkuaineen numero sen esiintymisindeksin mukaan kaavassa. Atomin lisääminen CurrNo kaavaan:

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

Kaavan kirjoittaminen riville:

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;

Huomautus 4 On järkevää tarjota mahdollisuus vaihtoehtoisesti syöttää reagenssikaava näppäimistöltä. Tässä tapauksessa sinun on otettava käyttöön yksinkertainen jäsentäjä.

On syytä huomata, että:

Nykyään taulukosta on useita satoja versioita, ja tutkijat tarjoavat jatkuvasti uusia vaihtoehtoja. (Wikipedia)

Opiskelijat voivat osoittaa kekseliäisyyttään tähän suuntaan toteuttamalla jonkin jo ehdotetuista vaihtoehdoista tai yrittämällä tehdä oman alkuperäisen. Saattaa tuntua, että tämä on vähiten hyödyllinen suunta tietojenkäsittelyn tunneille. Tässä artikkelissa toteutetun jaksollisen taulukon muodossa jotkut opiskelijat eivät kuitenkaan välttämättä näe ohjauskorttien erityistä etua vaihtoehtoiseen ratkaisuun verrattuna, jossa käytetään vakiopainikkeita. Tnappi. Taulukon spiraalimuoto (jossa solut ovat erimuotoisia) osoittaa selvemmin tässä ehdotetun ratkaisun edut.

Jaksotaulu koulun tietojenkäsittelytieteestä
(Theodore Benfeyn vaihtoehtoinen elementtijärjestelmä, Lähde)

Lisätään vielä, että useita tällä hetkellä olemassa olevia jaksollisen järjestelmän tietokoneohjelmia on kuvattu Habrén äskettäin julkaistussa статье.

Liite 2: esimerkkejä suodattimien tehtävistäSuodattimien avulla voit ratkaista esimerkiksi seuraavat tehtävät:

1) Valitse taulukosta kaikki keskiajalla tunnetut alkuaineet.

2) Tunnista kaikki elementit, jotka tunnettiin jaksollisen lain löytämisen aikaan.

3) Tunnista seitsemän alkuainetta, joita alkemistit pitivät metalleina.

4) Valitse kaikki alkuaineet, jotka ovat kaasumaisessa tilassa normaaleissa olosuhteissa (n.s.).

5) Valitse kaikki elementit, jotka ovat nestemäisessä tilassa numerossa.

6) Valitse kaikki elementit, jotka ovat kiinteässä tilassa numerossa.

7) Valitse kaikki elementit, jotka voivat altistua ilmalle pitkään ilman havaittavia muutoksia normaaleissa olosuhteissa.

8) Valitse kaikki metallit, jotka liukenevat suolahappoon.

9) Valitse kaikki metallit, jotka liukenevat rikkihappoon nro.

10) Valitse kaikki metallit, jotka liukenevat rikkihappoon kuumennettaessa.

11) Valitse kaikki metallit, jotka liukenevat typpihappoon.

12) Eristä kaikki metallit, jotka reagoivat kiivaasti veden kanssa ympäristön olosuhteissa.

13) Valitse kaikki metallit.

14) Tunnista elementit, jotka ovat yleisiä luonnossa.

15) Tunnista elementit, joita esiintyy luonnossa vapaassa tilassa.

16) Tunnista elementit, joilla on tärkein rooli ihmisen ja eläimen kehossa.

17) Valitse elementtejä, joita käytetään laajasti jokapäiväisessä elämässä (vapaassa muodossa tai yhdistelminä).

18) Tunnista elementit, joiden kanssa työskentely on vaarallisinta ja jotka vaativat erityistoimenpiteitä ja suojavarusteita.

19) Tunnista alkuaineet, jotka vapaassa muodossa tai yhdisteinä muodostavat suurimman uhan ympäristölle.

20) Valitse jalometallit.

21) Tunnista elementit, jotka ovat kalliimpia kuin jalometallit.

Huomautuksia

1) On järkevää tarjota useita suodattimia. Jos esimerkiksi otat suodattimen käyttöön ratkaistaksesi ongelman 1 (kaikki elementit tunnettiin keskiajalla) ja 20 (jalometallit), solut, joissa on keskiajalla tunnettuja jalometalleja, korostetaan (esimerkiksi värillä) ( esimerkiksi palladiumia ei korosteta , avattiin vuonna 1803).

2) On järkevää varmistaa, että useat suodattimet toimivat sellaisessa tilassa, että jokainen suodatin valitsee solut omalla värillään, mutta ei poista kokonaan toisen suodattimen valintaa (osa solusta yhdellä värillä, osa toisella). Sitten edellisen esimerkin tapauksessa näkyvät elementit keskiajalla löydettyjen joukkojen ja jalometallien leikkauspisteestä sekä elementit, jotka kuuluvat vain ensimmäiseen ja vain toiseen joukkoon. Nuo. keskiajalla tuntemattomat jalometallit ja keskiajalla tunnetut alkuaineet, mutta eivät jalometallit.

3) Suodattimen käytön jälkeen on järkevää varmistaa mahdollisuus muihin töihin saatujen tulosten kanssa. Esimerkiksi kun käyttäjä on valinnut keskiajalla tunnettuja elementtejä, hän napsauttaa valittua elementtiä LMB:llä ja siirtyy tätä elementtiä käsittelevään Wikipedia-artikkeliin.

4) On järkevää antaa käyttäjälle mahdollisuus poistaa valinta napsauttamalla LMB valitussa taulukon solussa. Esimerkiksi jo katsottujen kohteiden poistamiseen.

5) On järkevää varmistaa, että valittujen solujen luettelo tallennetaan tiedostoon ja että tällainen tiedosto ladataan automaattisella soluvalinnalla. Tämä antaa käyttäjälle mahdollisuuden pitää tauko työstä.

Käytimme staattista, ennalta määrättyä ohjauskarttaa, mutta on monia tärkeitä tehtäviä, joissa voidaan käyttää dynaamisia ohjauskarttoja, jotka muuttuvat ohjelman ajon aikana. Esimerkkinä voisi olla graafieditori, jossa käyttäjä osoittaa ikkunan kärkien sijainnit hiirellä ja piirtää niiden väliin reunoja. Jos haluat poistaa kärjen tai reunan, käyttäjän on osoitettava sitä. Mutta jos ympyrällä merkittyyn kärkeen on melko helppoa osoittaa, niin ohuella viivalla piirrettyyn reunaan on vaikeampi osoittaa. Ohjauskartta auttaa tässä, jossa kärjet ja reunat ovat laajempia alueita kuin näkyvässä kuvassa.

Mielenkiintoinen sivukysymys tähän monimutkaisen harjoittelun menetelmään liittyen on: voiko tämä menetelmä olla hyödyllinen tekoälyn koulutuksessa?

Lähde: will.com

Lisää kommentti