(Styringskart)
(Viet til den internasjonale året for periodiske tabellen for kjemiske elementer)
(Siste tillegg ble gjort 8. april 2019. Listen over tillegg rett under kat)

(, )
Jeg husker vi lærte om anda. Det var tre leksjoner på en gang: geografi, naturfag og norsk. I naturfag ble anda studert som en and: hvilke vinger den har, hvilke føtter den har, hvordan den svømmer, og så videre. I geografi ble den samme anda studert som en innbygger av kloden: vi måtte på kartet vise hvor den bor og hvor den ikke er. På norsk lærte Serafima Petrovna oss å skrive 'a-n-d', og hun leste noe om ender fra Brehm. Underveis informerte hun oss om at 'and' på tysk er sånn, og på fransk er sånn. Det ser ut til at dette ble kalt 'kompleks metode' den gangen. Alt ble på en måte 'innimellom'.
Veniamin Kavерин, To kapitener
I det gitte sitatet har Veniamin Kavерин mesterlig vist manglene ved den komplekse undervisningsmetoden, men i noen (kanskje ganske sjeldne) tilfeller kan elementer av denne metoden være berettiget. Et slikt tilfelle er den periodiske tabellen til D.I. Mendeléev i skoleinformatikkklasser. Oppgaven med programautomatikk av typiske handlinger med Mendeléevs tabell er åpenbar for elever som nettopp har begynt å studere kjemi, og den deles opp i mange typiske kjemiske oppgaver. Samtidig gir denne oppgaven innen informatikk en enkel måte å demonstrere styringskart, som kan relateres til grafisk programmering, forstått i bred forstand som programmering ved hjelp av grafiske elementer.
(8. april 2019 ble tilleggene gjort:
La oss begynne med en grunnleggende oppgave. I det enkleste tilfellet skal den periodiske tabellen vises på skjermen i et vindu, der hver celle viser det kjemiske symbolet for elementet: H - hydrogen, He - helium, osv. Hvis musepekeren peker på en celle, vises symbolet for elementet og dets nummer i et spesialfelt på skjermen. Hvis brukeren på dette tidspunktet klikker med venstre museknapp, vil symbolet og nummeret til det valgte elementet bli vist i et annet felt på skjermen.

Oppgaven kan løses med hvilket som helst allsidig programmeringsspråk. Vi tar et enkelt, gammelt Delphi-7, som nesten alle forstår. Men før vi begynner å programmere i programmeringsspråket, skal vi tegne to bilder, for eksempel i Photoshop. Først tegner vi det Periodiske systemet slik vi ønsker å se det i programmet. Vi lagrer resultatet i en grafisk fil. table01.bmp.

For det andre bildet bruker vi det første. Vi skal gradvis fylle de rensede cellene i tabellen med unike farger i RGB-farge modellen. R og G vil alltid være 0, mens B=1 for hydrogen, 2 for helium osv. Dette bildet vil være vårt styrekart, som vi lagrer i filen med navnet. table2.bmp.

Det første steget i grafisk programmering i Photoshop er avsluttet. La oss gå videre til grafisk programmering av GUI i IDE Delphi-7. For dette åpner vi et nytt prosjekt, hvor vi plasserer en knapp som kaller opp dialogen (tableDlg) der arbeidet med tabellen vil finne sted. Deretter jobber vi med formen. tableDlg.
Vi legger til komponenten av klassen TImage. Vi får Image1. Det er verdt å merke seg at i store prosjekter kan automatisk genererte navn som ImageN, hvor N nå flere titalls og mer — det er ikke den beste programmeringsstilen, og man bør gi mer meningsfylte navn. Men i vårt lille prosjekt, der N ikke vil overstige 2, kan vi la det være som det ble generert.
I egenskapen Image1.Picture laster vi den grafiske filen table01.bmp. La oss opprette Image2 og laster opp vårt styrekart der. table2.bmp. Vi holder filen liten og usynlig for brukeren, som vist i nederste venstre hjørne av formen. Vi legger til ekstra kontroll elementer, hvis formål er åpenbart. Det andre steget i grafisk programmering av GUI i IDE Delphi-7 er avsluttet.

Vi går videre til det tredje steget — skriving av kode i IDE Delphi-7. Modulen består av fem hendelsesbehandlere: oppretting av formen (FormCreate), musebeweging over Image1 (Image1MouseMove), klikk med venstre musknapp på cellen (Image1Click) og utgang fra dialogen med knapper for OK (OKBtnClick) eller Avbryt (CancelBtnClick). Overskriftene for disse hendelsesbehandlerne genereres på vanlig måte med IDE.
Kildekoden for modulen:
unit tableUnit;
// Den periodiske tabellen til kjemiske elementer av D.I. Mendelejev
//
// third112
// https://habr.com/ru/users/third112/
//
// Innholdsfortegnelse
// 1) oppretting av skjema
// 2) arbeide med tabellen: angi og velge
// 3) gå ut av dialogen
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
const
size = 104; // antall elementer
type
TtableDlg = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
Bevel1: TBevel;
Image1: TImage; // kjemiske elementers tabell
Label1: TLabel;
Image2: TImage; // styringskart
Label2: TLabel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject); // oppretting av skjema
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); // angi celle
procedure Image1Click(Sender: TObject); // velge celle
procedure OKBtnClick(Sender: TObject); // OK
procedure CancelBtnClick(Sender: TObject); // Avbryt
private
{ Private declarations }
TableSymbols : array [1..size] of string [2]; // array med elementsymboler
public
{ Public declarations }
selectedElement : string; // valgt element
currNo : integer; // gjeldende elementnummer
end;
var
tableDlg: TtableDlg;
implementation
{$R *.dfm}
const
PeriodicTableStr1=
'HHeLiBeBCNOFNeNaMgAlSiPSClArKCaScTiVCrMnFeCoNiCuZnGaGeAsSeBrKrRbSrYZrNbMoTcRuRhPdAgCdInSnSbTeIXeCsBaLa';
PeriodicTableStr2='CePrNdPmSmEuGdTbDyHoErTmYbLu';
PeriodicTableStr3='HfTaWReOsIrPtAuHgTlPbBiPoAtRnFrRaAc';
PeriodicTableStr4='ThPaUNpPuAmCmBkCfEsFmMdNoLrKu';
// oppretting av skjema ==================================================
procedure TtableDlg.FormCreate(Sender: TObject);
// oppretting av skjema
var
s : string;
i,j : integer;
begin
currNo := 0;
// initialisering av array med elementsymboler:
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 ____________________________________________________
// arbeide med tabellen: angi og velge =========================================
procedure TtableDlg.Image1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
// angi celle
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 := 'Velg element:';
end; // Image1MouseMove ____________________________________________________
procedure TtableDlg.Image1Click(Sender: TObject);
begin
if currNo 0 then
begin
selectedElement := TableSymbols [currNo];
Label2.Caption := intToStr (currNo)+ ' '+selectedElement+ ' valgt';
Edit1.Text := selectedElement;
end;
end; // Image1Click ____________________________________________________
// gå ut av dialogen ==================================================
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 har vi tatt et bord med 104 elementer (konstant size). Det er åpenbart at denne størrelsen kan økes. Elementbetegnelsene (kjemiske symboler) skrives inn i en matrise TableSymbols. Men av hensyn til kompaktheten til kildekoden vil det være fornuftig å skrive sekvensen av disse betegnelsene som strengkonstanter PeriodicTableStr1,…, PeriodicTableStr4, slik at programmet selv kan fordele disse betegnelsene i elementene i matrisen når det oppstår en form opprettelse. Hver elementbetegnelse består av en eller to latinske bokstaver, der den første bokstaven er stor, mens den andre (hvis den finnes) er liten. Denne enkle regelen implementeres ved lasting av matrisen. Dermed klarer man å skrive sekvensen av betegnelser på en komprimert måte uten mellomrom. Oppdelingen av sekvensen i fire deler (konstanter PeriodicTableStr1,…, PeriodicTableStr4) skyldes hensynet til lesbarheten av kildekoden, ettersom en for lang streng kanskje ikke får plass helt på skjermen.
Ved hendelsen av musens kursors bevegelse over Image1 behandleren Image1MouseMove av denne hendelsen bestemmer verdien av den blå komponenten av pikselens farge i styrekortet Image2 for de nåværende koordinatene til kursoren. I følge oppbyggingen Image2 er denne verdien lik nummeret på elementet hvis kursoren er inne i cellen; null hvis den er på grensen, og 255 i andre tilfeller. De andre handlingene som programmet utfører er trivielle og krever ingen forklaring.
I tillegg til de nevnte stilistiske grepene i programmeringen bør kommentarsstilen nevnes. Strengt tatt er den vurderte koden så liten og enkel at kommentarene ikke virker spesielt nødvendige. Men de ble lagt til også av metodiske årsaker – kort kode tillater å gjøre noen generelle konklusjoner mer visuelle. I den presenterte koden er det erklært én klasse (TtableDlg). Metodene til denne klassen kan byttes om, og det vil ikke påvirke funksjonen til programmet, men kan påvirke lesbarheten. For eksempel, la oss forestille oss sekvensen:
OKBtnClick, Image1MouseMove, FormCreate, Image1Click, CancelBtnClick.
Kanskje det ikke er så merkbart, men det blir litt vanskeligere å lese og forstå. Hvis det ikke er fem metoder, men ti ganger flere, i seksjonen implementation De har en helt annen rekkefølge enn i beskrivelsene av klassene, så kaoset vil bare øke. Derfor, selv om det er vanskelig og kanskje til og med umulig å bevise strengt, kan man håpe at det å skape mer orden vil forbedre lesbarheten av koden. Denne ekstra ordenen fremmes av logisk gruppering av flere metoder som utfører nærliggende oppgaver. Hver gruppe bør få en overskrift, for eksempel:
// работа с таблицей: указание и выбор
Disse overskriftene bør kopieres til starten av modulen og utformes som et innhold. I noen tilfeller med svært lange moduler gir slike innhold bedre navigeringsmuligheter. På samme måte i den lange kroppen til en metode, prosedyre eller funksjon, bør man først merke slutten av denne kroppen:
end; // FormCreateog, for det andre, i forgrenede operatorer med programmeringsklammer begin – end, markere operatoren som den lukkende klammer refererer til:
end; // if s [j] in
end; // for i :=1
end; // FormCreate
For å fremheve overskriftene til grupper og slutten av kroppene til metodene kan man legge til linjer som overskrider lengden på de fleste operatorene og består av symboler som «=» og «_» henholdsvis.
Igjen må det presiseres: vi har et altfor enkelt eksempel. Når koden til metoden ikke får plass på én skjerm, er det ikke alltid enkelt å forstå de seks etterfølgende end-ene for å gjøre endringer i koden. I noen gamle kompileringsprogrammer, for eksempel Pascal 8000 for OS IBM 360/370, ble det i listen trykket ut en tjenestekolonne til venstre som så ut som
B5
…
E5
Dette betydde at den lukkende programmeringsklammeren på linje E5 korresponderte med den åpne klammeren på linje B5.
Selv om programmeringsstil er et svært tvetydig spørsmål, bør ideene som presenteres her sees på som informasjon til refleksjon. To erfarne programmerere, som har utviklet seg forskjellige stiler gjennom mange års arbeid, kan finne det vanskelig å bli enige. Derimot er det en annen sak for en skoleelev som begynner å programmere, og som ikke har hatt tid til å utvikle sin egen stil. Jeg tror læreren i dette tilfellet bør formidle til elevene et enkelt, men for dem ikke åpenbart poeng: suksessen til et program avhenger i stor grad av stilen koden er skrevet i. Eleven trenger ikke å følge den anbefalte stilen, men de bør i det minste reflektere over behovet for «unødvendige» handlinger for å forbedre utformingen av kildekoden.
Når vi går tilbake til vår grunnleggende oppgave med det periodiske systemet: videre utvikling kan gå i forskjellige retninger. En av retningene er referanse: når musepekeren holdes over et celle i tabellen, vises et informasjonsvindu med ekstra opplysninger om det angitte elementet. Videre utvikling - filtre. For eksempel, avhengig av innstillingen i informasjonsvinduet vil det bare være: viktige fysiko-kjemiske data, informasjon om oppdagelseshistorie, informasjon om naturlig forekomst, liste over viktige forbindelser (som dette elementet inngår i), fysiologiske egenskaper, navn på fremmedspråk osv. Når vi husker «anden» til Kaverin, som innleder denne artikkelen, kan vi si at ved en slik utvikling av programmet vil vi få et komplett læreprogram innen naturvitenskap: i tillegg til informatikk, fysikk og kjemi - biologi, økonomisk geografi, vitenskapens historie, og til og med fremmedspråk.
Men en lokal database er ikke en grense. Programmet kobler seg naturlig til Internett. Når et element velges, aktiveres en lenke, og en artikkel fra Wikipedia om det aktuelle elementet åpnes i nettleseren. Wikipedia er kjent for ikke å være en autoritativ kilde. Det er mulig å lenke til autoritative kilder, for eksempel en kjemisk encyklopedi, Store Norske Leksikon, referansetidsskrifter, og be om søkeforespørsel på dette elementet, osv. Slik kan elevene utføre enkle, men innholdsrike oppgaver om temaene DBMS og Internett.
I tillegg til forespørslene om hvert enkelt element, kan man lage funksjonalitet som for eksempel markerer cellene i tabellen med forskjellige farger, i samsvar med bestemte kriterier. For eksempel metaller og ikke-metaller. Eller celler som lokal kjemisk fabrikk tilfører til vannveiene.
Man kan også implementere funksjoner fra en notatblokk-organisator. For eksempel, fremheve i tabellen de elementene som inngår i eksamen. Deretter markere elementene som eleven har studert/gjennomgått i forberedelsene til eksamen.
Her er for eksempel en av de typiske oppgavene fra skolekjemi:
Gitt 10 g kritt. Hvor mye saltsyre trenger man for å løse opp hele dette krittet?
For å løse denne oppgaven må man skrive den kjemiske reaksjonen og sette koeffisientene, deretter beregne de molekylære vektene til kalsiumkarbonat og saltsyre, før man setter opp og løser en proporsjon. Kalkulatoren basert på vårt grunnleggende program kan regne og løse det. Selv om man også må ta hensyn til at man må bruke syre med et rimelig overskudd og i en rimelig konsentrasjon, men det er allerede kjemi, ikke informatik.
Tillegg 1: hvordan fungerer en kjemisk kalkulatorVi skal se på hvordan kalkulatoren fungerer med eksemplet fra oppgaven med kritt og 'saltsyre'. La oss begynne med reaksjonen:
CaCO3 + 2HCl = CaCl2 + H2O
Derfor ser vi at vi vil trenge atomvektene til følgende elementer: kalsium (Ca), karbon (C), oksygen (O), hydrogen (H) og klor (Cl). I det enkleste tilfellet kan vi skrive disse vektene i et en-dimensjonalt array, definert som
AtomicMass : array [1..size] of real;hvor array-indeksen tilsvarer elementets nummer. I tillegg plasserer vi to felter i det ledige plassområdet på formen. tableDlg Det første feltet inneholder opprinnelig: 'Første reaktant gitt', det andre - 'Andre reaktant finne x'. La oss betegne feltene reagent1, reagent2 henholdsvis. Andre tillegg til programmet vil være tydelige fra det neste eksempelet med kalkulatorens arbeid.
Vi skriver på datamaskinens tastatur: 10 g. Teksten i feltet reagent1 endres: 'Første reaktant gitt 10 g'. Nå skriver vi inn formelen for denne reaktanten, og kalkulatoren vil regne ut og vise dens molekylvekt i takt med inntastingen.
Vi klikker med venstre museknapp på cellen i tabellen med symbolet Ca. Teksten i feltet reagent1 endres: 'Første reaktant Ca 40.078 gitt 10 g'.
Vi klikker med venstre museknapp på cellen i tabellen med symbolet C. Teksten i feltet reagent1 endres: 'Første reaktant CaC 52.089 gitt 10 g'. Det vil si at kalkulatoren har lagt sammen atomvektene til kalsium og karbon.
Klikk med venstre museknapp på cellen i tabellen med symbolet O. Teksten i feltet reagent1 endres til: “Første reaktant CaCO 68.088 gitt 10 g”. Kalkulatoren har lagt til atomvekten av oksygen til summen.
Klikk med venstre museknapp på cellen i tabellen med symbolet O. Teksten i feltet reagent1 endres til: “Første reaktant CaCO2 84.087 gitt 10 g”. Kalkulatoren har igjen lagt til atomvekten av oksygen til summen.
Klikk med venstre museknapp på cellen i tabellen med symbolet O. Teksten i feltet reagent1 endres til: “Første reaktant CaCO3 100.086 gitt 10 g”. Kalkulatoren har nok en gang lagt til atomvekten av oksygen til summen.
Trykk Enter på datamaskinen. Innføringen av den første reaktanten er fullført og bytter til feltet reagent2. Det er verdt å merke seg at vi i dette eksemplet gir en minimal versjon. Om ønskelig kan man enkelt organisere multiplikatorer for ett og samme atomtype, slik at man for eksempel ikke trenger å klikke syv ganger på oksygen-cellen ved inntasting av formelen for kromsyre (K2Cr2O7).
Klikk med venstre museknapp på cellen i tabellen med symbolet H. Teksten i feltet reagent2 endres til: “Andre reaktant H 1.008 finn x”.
Klikk med venstre museknapp på cellen i tabellen med symbolet Cl. Teksten i feltet reagent2 endres til: “Andre reaktant HCl 36.458 finn x”. Kalkulatoren har lagt sammen atomvektene til hydrogen og klor. I den nevnte kjemiske reaksjonen har kloridsyren en koeffisient på 2 foran. Derfor klikker vi med venstre museknapp på feltet reagent2. Den molekylære vekten dobles (ved dobbeltklikk for triples og så videre). Teksten i feltet reagent2 endres til: “Andre reaktant 2HCl 72.916 finn x”.
Trykk Enter på datamaskinen. Innføringen av den andre reaktanten er fullført, og kalkulatoren finner x fra proporsjonen

Som var det vi ønsket å finne.
Merk 1. Meningen med den mottatte proporsjonen: for å oppløse 100.086 kalk må man bruke 72.916 Da av syre, og for å oppløse 10 g kalk må man bruke x syre.
Merk 2. Samlinger av lignende oppgaver:
Khomenko I. G., Samling av oppgaver og øvelser i kjemi 2009 (8-11 klasse).
Khomenko G. P., Khomenko I. G., Samling av oppgaver i kjemi for søkere til høyere utdanning, 2019.
Merk 3. For å forenkle oppgaven kan man i den første versjonen forenkle inntastingen av formelen og bare legge til symbolet til elementet på slutten av formelen. Da vil formelen for kalsiumkarbonatet se ut som følger:
CaCOOO
Men sådan skriving vil nok ikke bli likt av kjemilæreren. Det er ikke vanskelig å få riktig skrivemåte — for dette må man legge til et array:
formula : array [1..size] of integer;der indeks – nummer av det kjemiske elementet, og verdien ved denne indeksen – antall atomer (i utgangspunktet blir alle elementene i arrayet nullstilt). Det må tas hensyn til rekkefølgen av atomer i formelen, som er fastsatt i kjemien. For eksempel, O3CaC virker heller ikke tiltalende for mange. La oss legge ansvaret over på brukeren. Vi lager et array:
formulaOrder : array [1..size] of integer; // kan gjøre det korterehvor vi skriver nummeret på det kjemiske elementet basert på rekkefølgen det dukker opp i formelen. Legg til atom currNo til formelen:
if formula [currNo]=0 then // dette atomet har dukket opp for første gang
begin
orderIndex := orderIndex+1; // ved begynnelsen av inntastingen av formelen er orderIndex=0
formulaOrder [orderIndex] := currNo;
end;
formula [currNo]:=formula [currNo]+1;Skrive formelen til en streng:
s := ''; // tom streng for formelen
for i:=1 to orderIndex do // for alle kjemiske symboler i formelen
begin
s:=s+TableSymbols [ formulaOrder[i]]; // legg til kjemisk symbol
if formula [formulaOrder[i]]1 then // legg til antall atomer
s:=s+ intToStr(formula [formulaOrder[i]]);
end;
Merknad 4. Det gir mening å sikre muligheten for alternativ inntasting av reagenformelen fra tastaturet. I så fall må vi implementere en enkel syntaktisk analysator.
Det er verdt å merke seg at:
I dag finnes det flere hundre varianter av tabellen, og forskere foreslår stadig nye varianter. ()
Elever kan vise sin kløkt også i denne retningen, ved å implementere en av de allerede foreslåtte variantene eller prøve å lage sin egen originale. Det kan virke som det mest ubrukelige for informatikkundervisning. Men i den formen av den Periodiske tabellen som er presentert i denne artikkelen, kan enkelte elever kanskje ikke se spesielle fordeler med kontrollkart i forhold til alternative løsninger med standardknapper. TButton. Den spiralformede tabellen (hvor cellene har ulik form) vil bedre demonstrere fordelene ved løsningen som foreslås her.

(, )
La oss også legge til at det er blitt fortalt om en rekke eksisterende dataprogrammer for Mendelejevs tabell i en nylig publisert artikkel på Habré. .
Tillegg 2: eksempler på oppgaver for filtreVed hjelp av filtre kan man for eksempel løse slike oppgaver:
1) Utheve alle elementene i tabellen kjent i middelalderen.
2) Utheve alle elementene kjent på tidspunktet for oppdagelsen av den Periodiske loven.
3) Identifisere syv elementer som alkymister ansett som metaller.
4) Identifisere alle elementer som er i gassform ved normale forhold (n.f.).
5) Identifisere alle elementer som er i flytende tilstand ved n.f.
6) Identifisere alle elementer som er i fast tilstand ved n.f.
7) Identifisere alle elementer som kan være lenge i luft uten merkbare endringer ved n.f.
8) Identifisere alle metaller som løses opp i saltsyre.
9) Identifisere alle metaller som løses opp i svovelsyre ved n.f.
10) Identifisere alle metaller som løses opp i svovelsyre ved oppvarming.
11) Identifisere alle metaller som løses opp i salpetersyre.
12) Identifisere alle metaller som reagerer kraftig med vann ved n.f.
13) Identifisere alle metaller.
14) Identifisere elementer som er utbredt i naturen.
15) Identifisere elementer som forekommer i naturen i fri tilstand.
16) Identifisere elementer som spiller en viktig rolle i menneskekroppen og dyr.
17) Identifisere elementer som brukes mye i hverdagen (i fri tilstand eller i forbindelser).
18) Identifisere elementer som er mest farlige å arbeide med og krever spesielle tiltak og beskyttelsesmidler.
19) Identifisere elementer som i fri tilstand eller i form av forbindelser utgjør den største trusselen mot økologi.
20) Identifisere edle metaller.
21) Identifisere elementer som er dyrere enn edle metaller.
Notater
1) Det gir mening å sørge for at flere filtre fungerer. For eksempel, hvis du aktiverer filteret for oppgaveløsning 1 (alle elementer kjent i middelalderen) og 20 (edle metaller), vil cellene med edle metaller kjent i middelalderen bli markert (for eksempel med farge) (palladium, oppdaget i 1803, vil ikke bli markert).
2) Det gir mening å ha flere filtre i en modus der hvert filter markerer cellene med sin farge, men ikke fjerner markeringen fra det andre filteret helt (del av cellen med én farge, del med en annen). Da vil i det forrige eksempelet elementene som krysser mengdene av de som var åpne i middelalderen og edle metaller, være synlige, samt elementene som tilhører bare den første og bare den andre mengden. Det vil si edle metaller som ikke var kjent i middelalderen, og elementene som var kjent i middelalderen, men ikke er edle metaller.
3) Det gir mening å etter å ha brukt filteret gi mulighet for andre handlinger med de oppnådde resultatene. For eksempel, etter å ha markert elementer kjent i middelalderen, kan brukeren klikke med venstre museknapp på det merkede elementet og komme til en Wikipedia-artikkel om dette elementet.
4) Det gir mening å gi brukeren muligheten til å fjerne markeringen ved å klikke med venstre museknapp på den merkede cellen i tabellen. For eksempel for å fjerne allerede viste elementer.
5) Det gir mening å kunne lagre listen over merkede celler i en fil og laste opp en slik fil med automatisk merking av cellene. Dette vil gi brukeren muligheten til å ta en pause fra arbeidet.
Vi brukte et statisk forhåndsbestemt kontrollkart, men det er mange viktige oppgaver der dynamiske kontrollkart kan brukes, som endres i løpet av programmet. Et eksempel kan være en grafredigerer, der brukeren med musen angir vertiklene i vinduet og tegner kanter mellom dem. For å fjerne en vertex eller kant, må brukeren angi den. Men hvis det er ganske enkelt å angi en vertex, som er merket med en sirkel, så er det vanskeligere å angi en kant, som er tegnet med en tynn linje. Her vil kontrollkartet hjelpe, der vertiklene og kantene tar opp områder som er bredere enn det synlige tegnet.
Det er et interessant tilleggsproblem knyttet til metoden for kompleks læring: kan denne metoden være nyttig for opplæring av AI?
Kilde: habr.com
