Periodisk system om skoledatavitenskap

(Kontrollkort)
(Dedikert til det internasjonale året for det periodiske systemet for kjemiske grunnstoffer)
(De siste tilleggene ble gjort 8. april 2019. Listen over tillegg er rett under kuttet)

Periodisk system om skoledatavitenskap
(Mendeleevs blomst, Kilde)

Jeg husker vi passerte anda. Dette var tre leksjoner på en gang: geografi, naturvitenskap og russisk. I en naturfagstime ble en and studert som en and, hvilke vinger den har, hvilke ben den har, hvordan den svømmer, og så videre. I en geografitime ble den samme anda studert som en innbygger på kloden: det var nødvendig å vise på et kart hvor den bor og hvor den ikke gjør det. På russisk lærte Serafima Petrovna oss å skrive «u-t-k-a» og lese noe om ender fra Brem. I forbifarten fortalte hun oss at på tysk er and slik, og på fransk slik. Jeg tror det ble kalt den "komplekse metoden" den gang. Generelt kom alt ut "i forbifarten".

Veniamin Kaverin, To kapteiner

I sitatet ovenfor viste Veniamin Kaverin mesterlig manglene ved den komplekse undervisningsmetoden, men i noen (kanskje ganske sjeldne) tilfeller er elementer av denne metoden berettiget. Et slikt tilfelle er D.I. Mendeleevs periodiske system i skoletimer i informatikk. Oppgaven med programvareautomatisering av typiske handlinger med det periodiske systemet er tydelig for skolebarn som har begynt å studere kjemi, og er delt inn i mange typiske kjemiske problemer. Samtidig, innenfor rammen av informatikk, lar denne oppgaven oss i en enkel form demonstrere metoden for kontrollkort, som kan tilskrives grafisk programmering, forstått i vid forstand som programmering ved hjelp av grafiske elementer.

(8. april 2019 tilføyelser:
Tillegg 1: Hvordan kjemikalkulatoren fungerer
Vedlegg 2: eksempler på oppgaver for filtre)

La oss starte med den grunnleggende oppgaven. I det enkleste tilfellet skal det periodiske systemet vises på skjermen i en vinduform, hvor det i hver celle vil være en kjemisk betegnelse på elementet: H - hydrogen, He - helium, etc. Hvis musepekeren peker på en celle, vises betegnelsen på elementet og dets nummer i et spesialfelt på skjemaet vårt. Hvis brukeren trykker på LMB, vil betegnelsen og nummeret til dette valgte elementet bli angitt i et annet felt i skjemaet.

Periodisk system om skoledatavitenskap

Problemet kan løses ved å bruke et hvilket som helst universelt språk. Vi tar den enkle gamle Delpi-7, som er forståelig for nesten alle. Men før programmering i PL, la oss tegne to bilder, for eksempel i Photoshop. La oss først tegne det periodiske systemet i den formen vi ønsker å se det i programmet. Lagre resultatet i en grafisk fil table01.bmp.

Periodisk system om skoledatavitenskap

For den andre tegningen bruker vi den første. Vi vil sekvensielt fylle tabellcellene, fjernet for all grafikk, med unike farger i RGB-fargemodellen. R og G vil alltid være 0, og B=1 for hydrogen, 2 for helium osv. Denne tegningen blir vårt kontrollkort, som vi skal lagre i en fil som heter table2.bmp.

Periodisk system om skoledatavitenskap

Den første fasen av grafisk programmering i Photoshop er fullført. La oss gå videre til grafisk GUI-programmering i Delpi-7 IDE. For å gjøre dette, åpne et nytt prosjekt, hvor vi på hovedskjemaet plasserer en dialogknapp (tableDlg), hvor arbeidet med bordet vil finne sted. Deretter jobber vi med skjemaet tableDlg.

Plasser en klassekomponent på skjemaet TIbilde. Vi får Image1. Merk at generelt, for store prosjekter, automatisk genererte navn på skjemaet ImageNDer N kan nå flere dusin eller mer - dette er ikke den beste programmeringsstilen, og mer meningsfylte navn bør gis. Men i vårt lille prosjekt, hvor N ikke vil overstige 2, kan du la den være generert.

Til eiendom Bilde 1. Bilde last opp filen table01.bmp. Vi skaper Image2 og last inn kontrollkortet vårt der table2.bmp. I dette tilfellet gjør vi filen liten og usynlig for brukeren, som vist i nedre venstre hjørne av skjemaet. Vi legger til ytterligere kontrollelementer, hvis formål er åpenbart. Den andre fasen av grafisk GUI-programmering i Delpi-7 IDE er fullført.

Periodisk system om skoledatavitenskap

La oss gå videre til det tredje trinnet - skrive kode i Delpi-7 IDE. Modulen består av kun fem hendelsesbehandlere: skjemaoppretting (FormCreate), markørbevegelse Image1 (Image1MouseMove), klikker LMB på en celle (Bilde 1 Klikk) og gå ut av dialogen med OK-knappene (OKBtnKlikk) eller Avbryt (CancelBtnClick). Overskriftene til disse behandlerne genereres på en standard måte ved hjelp av IDE.

Modulkildekode:

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.

I vår versjon tok vi en tabell med 104 elementer (konstant størrelse). Denne størrelsen kan åpenbart økes. Elementbetegnelser (kjemiske symboler) skrives til en matrise Tabellsymboler. Av hensyn til kildekodens kompakthet synes det imidlertid å være tilrådelig å skrive sekvensen til disse notasjonene i form av strengkonstanter PeriodicTableStr1..., PeriodicTableStr4slik at når skjemaet er opprettet, sprer selve programmet disse betegnelsene blant elementene i matrisen. Hver elementbetegnelse består av en eller to latinske bokstaver, hvor den første bokstaven er stor og den andre (hvis noen) liten. Denne enkle regelen implementeres når du laster en matrise. Dermed kan notasjonssekvensen skrives på en kortfattet måte uten mellomrom. Å dele en sekvens i fire deler (konstanter PeriodicTableStr1..., PeriodicTableStr4) skyldes hensyn til enkel lesing av kildekoden, fordi En linje som er for lang passer kanskje ikke helt på skjermen.

Når musepekeren beveger seg over Image1 handler Image1MouseMove denne hendelsen bestemmer verdien av den blå fargekomponenten til kontrollkortpikselen Image2 for gjeldende markørkoordinater. Ved konstruksjon Image2 denne verdien er lik elementnummeret hvis markøren er inne i cellen; null hvis på grensen, og 255 i andre tilfeller. De resterende handlingene som utføres av programmet er trivielle og krever ingen forklaring.

I tillegg til stilistiske programmeringsteknikker nevnt ovenfor, er det verdt å merke seg kommentarstilen. Strengt tatt er koden som diskuteres så liten og enkel at kommentarer ikke virker spesielt nødvendige. Imidlertid ble de lagt til også av metodiske årsaker - den korte koden lar oss gjøre noen generelle konklusjoner klarere. I den presenterte koden er en klasse erklært (TtableDlg). Metoder av denne klassen kan byttes, og dette vil ikke påvirke funksjonen til programmet på noen måte, men kan påvirke lesbarheten. Tenk deg for eksempel sekvensen:

OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.

Det er kanskje ikke så veldig merkbart, men det blir litt vanskeligere å lese og forstå. Hvis det ikke er fem, men titalls ganger flere metoder i avsnittet gjennomføring de har en helt annen rekkefølge enn i klassebeskrivelsene, da vil kaoset bare øke. Derfor, selv om det er vanskelig å bevise strengt og kanskje til og med umulig, kan man håpe at innføring av tilleggsbestilling vil forbedre lesbarheten til koden. Denne tilleggsbestillingen forenkles av den logiske grupperingen av flere metoder som utfører relaterte oppgaver. Hver gruppe bør gis en tittel, for eksempel:

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

Disse overskriftene skal kopieres til begynnelsen av modulen og formateres som en innholdsfortegnelse. I noen tilfeller av ganske lange moduler gir slike innholdsfortegnelser ytterligere navigasjonsmuligheter. På samme måte, i den lange kroppen av en metode, prosedyre eller funksjon, er det først verdt å markere slutten på denne kroppen:

end; // FormCreate

og for det andre, i forgrenede setninger med programparentes start - end, merk setningen som den avsluttende parentesen refererer til:

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

For å fremheve gruppeoverskrifter og slutten av metodelegemer, kan du legge til linjer som er lengre enn de fleste utsagn og består for eksempel av henholdsvis tegnene "=" og "_".
Igjen, vi må ta en reservasjon: vårt eksempel er for enkelt. Og når koden til en metode ikke passer på én skjerm, kan det være vanskelig å forstå seks påfølgende ender for å gjøre kodeendringer. I noen gamle kompilatorer, for eksempel Pascal 8000 for OS IBM 360/370, ble en tjenestekolonne som denne skrevet ut til venstre i oppføringen

B5
…
E5

Dette medførte at den avsluttende parentesen på linje E5 tilsvarte åpningsparentesen på linje B5.

Selvfølgelig er programmeringsstil et veldig kontroversielt spørsmål, så ideene som er uttrykt her bør tas som noe annet enn mat til ettertanke. Det kan være svært vanskelig for to ganske erfarne programmerere, som har utviklet og blitt vant til forskjellige stiler gjennom mange års arbeid, å komme til enighet. Det er en annen sak for en student som lærer å programmere som ennå ikke har hatt tid til å finne sin egen stil. Jeg tror at i dette tilfellet bør læreren i det minste formidle til elevene sine en så enkel, men ikke åpenbar idé for dem at suksessen til et program i stor grad avhenger av stilen som kildekoden er skrevet i. Eleven følger kanskje ikke den anbefalte stilen, men la ham i det minste tenke på behovet for "ekstra" handlinger for å forbedre utformingen av kildekoden.

Tilbake til vårt grunnleggende problem om det periodiske system: videre utvikling kan gå i forskjellige retninger. En av instruksjonene er for referanse: når du holder musepekeren over en tabellcelle, vises et informasjonsvindu som inneholder tilleggsinformasjon om det angitte elementet. Videreutvikling er filtre. For eksempel, avhengig av installasjonen, vil informasjonsvinduet bare inneholde: den viktigste fysiske og kjemiske informasjonen, informasjon om oppdagelseshistorien, informasjon om distribusjon i naturen, en liste over de viktigste forbindelsene (som inkluderer dette elementet), fysiologiske egenskaper, navn på et fremmedspråk osv. e. Når vi husker Kaverins "and" som denne artikkelen begynner med, kan vi si at med denne utviklingen av programmet vil vi få et komplett treningskompleks i naturvitenskap: i tillegg til datamaskin vitenskap, fysikk og kjemi - biologi, økonomisk geografi, vitenskapshistorie og til og med fremmedspråk.

Men en lokal database er ikke grensen. Programmet kobles naturlig til Internett. Når du velger et element, aktiveres koblingen, og Wikipedia-artikkelen om dette elementet åpnes i nettleservinduet. Wikipedia er som kjent ikke en autoritativ kilde. Du kan sette lenker til autoritative kilder, for eksempel kjemiske leksikon, TSB, abstrakte tidsskrifter, bestille forespørsler i søkemotorer for dette elementet, etc. At. Studentene vil kunne utføre enkle, men meningsfulle oppgaver om DBMS og Internett-emner.

I tillegg til spørringer på et enkelt element, kan du lage funksjonalitet som for eksempel vil merke celler i tabellen som oppfyller bestemte kriterier med forskjellige farger. For eksempel metaller og ikke-metaller. Eller celler som blir dumpet i vannmasser av et lokalt kjemisk anlegg.

Du kan også implementere funksjonene til en bærbar arrangør. Marker for eksempel i tabellen elementene som er inkludert i eksamen. Fremhev deretter elementene som er studert/gjentatt av studenten som forberedelse til eksamen.

Og her er for eksempel et av de typiske skolekjemiproblemene:

Gitt 10 g kritt. Hvor mye saltsyre må man ta for å løse opp alt dette krittet?

For å løse dette problemet er det nødvendig å skrive ned kjemikaliet. reaksjon og plassering av koeffisientene i den, beregn molekylvektene til kalsiumkarbonat og hydrogenklorid, komponer og løs andelen. En kalkulator basert på vårt grunnprogram kan beregne og løse. Riktignok må du fortsatt ta hensyn til at syren må tas i rimelig overskudd og i en rimelig konsentrasjon, men dette er kjemi, ikke informatikk.
Tillegg 1: Hvordan kjemikalkulatoren fungererLa oss analysere funksjonen til kalkulatoren ved å bruke eksemplet på problemet ovenfor med kritt og "hodgepodge". La oss starte med reaksjonen:

CaCO3 + 2HCl = CaCl2 + H2O

Av dette ser vi at vi vil trenge atomvektene til følgende grunnstoffer: kalsium (Ca), karbon (C), oksygen (O), hydrogen (H) og klor (Cl). I det enkleste tilfellet kan vi skrive disse vektene inn i en endimensjonal matrise definert som

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

der matriseindeksen tilsvarer elementnummeret. Mer om skjemaets ledige plass tableDlg sette to felt. I det første feltet er det først skrevet: "Den første reagensen er gitt", i det andre - "Den andre reagensen skal finne x". La oss betegne feltene reagens 1, reagens 2 hhv. Andre tillegg til programmet vil fremgå av følgende eksempel på kalkulatoren.

Vi skriver på datamaskinens tastatur: 10 g. Inskripsjon i feltet reagens 1 endringer: "Den første reagensen gis 10 g." Nå legger vi inn formelen til dette reagenset, og kalkulatoren vil beregne og vise molekylvekten når du skriver den inn.

Klikk LMB på tabellcellen med Ca-symbolet. Inskripsjon i feltet reagens 1 endringer: "Første reagens Ca 40.078 gitt 10 g."

Klikk LMB på tabellcellen med symbolet C. Inskripsjon i feltet reagens 1 endringer: "Første reagens CaC 52.089 gitt 10 g." De. Kalkulatoren la sammen atomvektene til kalsium og karbon.

Klikk LMB på tabellcellen med symbolet O. Inskripsjon i feltet reagens 1 endringer: "Første reagens CaCO 68.088 gitt 10 g." Kalkulatoren la til atomvekten av oksygen til summen.

Klikk LMB på tabellcellen med symbolet O. Inskripsjon i feltet reagens 1 endringer: "Første reagens CaCO2 84.087 gitt 10 g." Kalkulatoren la nok en gang atomvekten av oksygen til summen.

Klikk LMB på tabellcellen med symbolet O. Inskripsjon i feltet reagens 1 endringer: "Første reagens CaCO3 100.086 gitt 10 g." Kalkulatoren la igjen atomvekten av oksygen til summen.

Trykk Enter på datamaskinens tastatur. Innføringen av den første reagensen er fullført og bytter til feltet reagens 2. Merk at i dette eksemplet tilbyr vi en minimal versjon. Om ønskelig kan du enkelt organisere multiplikatorer av atomer av samme type, slik at du for eksempel ikke trenger å klikke syv ganger på rad på oksygencellen når du skriver inn kromformelen (K2Cr2O7).

Klikk LMB på tabellcellen med symbolet H. Inskripsjon i feltet reagens 2 endringer: "Andre reagens H 1.008 finn x."

Klikk LMB på tabellcellen med Cl-symbolet. Inskripsjon i feltet reagens 2 endringer: "Andre reagens HCl 36.458 finn x." Kalkulatoren la sammen atomvektene av hydrogen og klor. I reaksjonsligningen ovenfor er hydrogenklorid innledet med en koeffisient på 2. Klikk derfor LMB på feltet reagens 2. Molekylvekten dobles (tredobles når den trykkes to ganger osv.). Inskripsjon i feltet reagens 2 endringer: "Andre reagens 2HCl 72.916 finn x."

Trykk Enter på datamaskinens tastatur. Inntastingen av den andre reagensen er fullført, og kalkulatoren finner x fra andelen

Periodisk system om skoledatavitenskap

Det var det vi trengte å finne.

Merknad 1. Betydningen av den resulterende andelen: for oppløsning 100.086 Da kritt krever 72.916 Da syre, og for å løse opp 10 g kritt trenger du x syre.

Merknad 2. Samlinger av lignende problemer:

Khomchenko I. G., Samling av problemer og øvelser i kjemi 2009 (klassetrinn 8-11).
Khomchenko G. P., Khomchenko I. G., Samling av problemer i kjemi for søkere til universiteter, 2019.

Merknad 3. For å forenkle oppgaven kan du forenkle inntastingen av formelen i den opprinnelige versjonen og ganske enkelt legge til elementsymbolet på slutten av formellinjen. Da vil formelen for kalsiumkarbonat være:
CaCOOO
Men en kjemilærer vil neppe like et slikt opptak. Det er ikke vanskelig å gjøre den riktige oppføringen - for å gjøre dette må du legge til en matrise:

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

der indeksen er nummeret til det kjemiske elementet, og verdien ved denne indeksen er antall atomer (til å begynne med er alle elementene i matrisen tilbakestilt til null). Rekkefølgen som atomer er skrevet i en formel, slik den er vedtatt i kjemi, bør tas i betraktning. For eksempel er det få som vil like O3CaC heller. La oss flytte ansvaret over på brukeren. Lage en matrise:

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

der vi skriver ned nummeret på det kjemiske elementet i henhold til indeksen for dets utseende i formelen. Legge til et atom currNo inn i formelen:

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

Skrive formelen til en linje:

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;

Merknad 4. Det er fornuftig å gi muligheten til alternativt å angi reagensformelen fra tastaturet. I dette tilfellet må du implementere en enkel parser.

Det er verdt å merke seg at:

I dag er det flere hundre versjoner av bordet, og forskere tilbyr stadig nye alternativer. (Wikipedia)

Studentene kan vise sin oppfinnsomhet i denne retningen ved å implementere et av de allerede foreslåtte alternativene eller prøve å lage sin egen originale. Det kan virke som om dette er den minst nyttige retningen for undervisning i informatikk. Imidlertid, i form av det periodiske systemet implementert i denne artikkelen, kan det hende at noen studenter ikke ser noen spesiell fordel med kontrollkort fremfor den alternative løsningen ved bruk av standardknapper TB-knapp. Spiralformen til bordet (hvor cellene har forskjellige former) vil tydeligere demonstrere fordelene med løsningen som er foreslått her.

Periodisk system om skoledatavitenskap
(Alternativt system av elementer av Theodore Benfey, Kilde)

La oss også legge til at en rekke eksisterende dataprogrammer for det periodiske systemet er beskrevet i det nylig publiserte på Habré artikkel.

Vedlegg 2: eksempler på oppgaver for filtreVed å bruke filtre kan du for eksempel løse følgende oppgaver:

1) Velg i tabellen alle grunnstoffene kjent i middelalderen.

2) Identifiser alle elementene kjent på tidspunktet for oppdagelsen av den periodiske loven.

3) Identifiser syv grunnstoffer som alkymister betraktet som metaller.

4) Velg alle elementer som er i gassform under normale forhold (n.s.).

5) Velg alle elementer som er i flytende tilstand ved nr.

6) Velg alle elementer som er i fast tilstand ved nr.

7) Velg alle elementer som kan utsettes for luft i lang tid uten merkbare endringer under normale forhold.

8) Velg alle metaller som løses opp i saltsyre.

9) Velg alle metaller som løses opp i svovelsyre ved nr.

10) Velg alle metaller som løses opp i svovelsyre ved oppvarming.

11) Velg alle metaller som løses opp i salpetersyre.

12) Isoler alle metaller som reagerer voldsomt med vann ved omgivelsesforhold.

13) Velg alle metaller.

14) Identifiser elementer som er utbredt i naturen.

15) Identifiser elementer som finnes i naturen i fri tilstand.

16) Identifiser elementene som spiller den viktigste rollen i menneske- og dyrekroppen.

17) Velg elementer som er mye brukt i hverdagen (i fri form eller i kombinasjoner).

18) Identifiser elementer som er mest farlig å arbeide med og krever spesielle tiltak og verneutstyr.

19) Identifiser de grunnstoffene som, i fri form eller i form av forbindelser, utgjør den største trusselen mot miljøet.

20) Velg edle metaller.

21) Identifiser elementer som er dyrere enn edle metaller.

Merknader

1) Det er fornuftig å gi flere filtre. For eksempel, hvis du slår på et filter for å løse oppgave 1 (alle elementer kjent i middelalderen) og 20 (edle metaller), vil celler med edle metaller kjent i middelalderen bli uthevet (for eksempel etter farge) ( for eksempel, palladium vil ikke bli uthevet , åpnet i 1803).

2) Det er fornuftig å sikre at flere filtre fungerer i en slik modus at hvert filter velger celler med sin egen farge, men ikke helt fjerner valget av et annet filter (del av cellen i en farge, del i en annen). Da, i tilfellet med det forrige eksemplet, vil elementer av skjæringspunktet mellom sett oppdaget i middelalderen og edle metaller, samt elementer som bare tilhører det første og bare det andre settet, være synlige. De. edle metaller ukjent i middelalderen, og grunnstoffer kjent i middelalderen, men ikke edle metaller.

3) Det er fornuftig etter påføring av filteret for å sikre muligheten for annet arbeid med de oppnådde resultatene. For eksempel, etter å ha utvalgte elementer kjent i middelalderen, klikker brukeren LMB på det valgte elementet og blir tatt til Wikipedia-artikkelen om dette elementet.

4) Det er fornuftig å gi brukeren muligheten til å velge bort ved å klikke LMB på den valgte tabellcellen. For eksempel for å fjerne elementer som allerede er sett.

5) Det er fornuftig å sikre at listen over valgte celler lagres i en fil og at en slik fil lastes med automatisk valg av celler. Dette vil gi brukeren mulighet til å ta en pause fra jobben.

Vi brukte et statisk, forhåndsbestemt kontrollkart, men det er mange viktige oppgaver der dynamiske kontrollkart som endres etter hvert som programmet kjører kan brukes. Et eksempel kan være en grafeditor, der brukeren bruker musen til å indikere posisjonene til hjørnene i et vindu og tegne kanter mellom dem. For å slette et toppunkt eller en kant, må brukeren peke på den. Men hvis det er ganske enkelt å peke på et toppunkt merket med en sirkel, vil det være vanskeligere å peke på en kant tegnet med en tynn linje. Et kontrollkart vil hjelpe her, der hjørner og kanter opptar bredere nabolag enn i den synlige figuren.

Et interessant sidespørsmål knyttet til denne metoden for kompleks trening er: kan denne metoden være nyttig i trening av AI?

Kilde: www.habr.com

Legg til en kommentar